A ROS package for extracting streaming information from Optitrack system and publishing rigid-body and free marker information.
This has been tested in the Stanford ASL setup with Motive:Tracker 2.2.0 and ROS Noetic.
Clone this repository to your ROS [ROS_WS]/src folder and then run catkin_make to build the package.
Modify the mocap_optitrack/config/mocap.yaml configuration file. The optitrack_config parameters in this file are currently set for the Stanford ASL setup. Set free_markers to true if you want all unlabeled markers (not belonging to rigid bodies) to be published. Define a new rigid-body for each rigid-body that is being tracked by the Optitrack system that you want published. The number corresponds to the Streaming ID value set in the Motive:Tracker software for the particular asset. The remaining parameters for each rigid-body specify the ROS topic name information.
Create any assets in the scene that you want to stream information for.
Enable Broadcast Frame Data
Under View -> Data Streaming Pane make sure Local Interface is set to the IP address of the computer running Motive:Tracker corresponding to the network that is used to share the data stream.
Enable Rigid Bodies and Unlabeled Markers
Set Transmission Type to Multicast
Ensure the Command Port, Data Port, and Multicast Interface match the values in the mocap_optitrack/config/mocap.yaml configuration file.
Run the mocap ROS node by:
roslaunch mocap_optitrack mocap.launch