Quick start for natnet_bridge

Clone the repo into ROS_Workspace, and run $ catkin_make.

1. Configuring Motive

Open the Data Streaming Pane in Motive by clicking on View->Data Streaming. click on the 3 dots in the right upper corner, then click Show Advanced. set Type in Advanced Network Settings to Multicast, specify (command and data) port`(default is 1510 and 1511) if necessary and set the ``Multicast Interface` (default: 239.255.42.99)

2. Configuring natnet_bridge

Configuring the multicast IP address/data port/command port, iteratively run following commands

$ roscd natnet_bridge/config
$ vim parameter.yaml

If you want to use 2d information, specify the use_2d_bool and use_2d_plane_height. If you want to additionally get information like unidentified markers, change corresponding parameter publish_xxx as true.

It could also be configured later via dynamic_reconfigure.

Note

make sure that the Motive coordinate setting in both Motive-side and Ros-Side(parameter: optitrack_coordinate) are the same. Otherwise it will be wrong.

3. Run natnet_bridge

Run the command:

$ roslaunch natnet_bridge natnet_bridge.launch

If you want to show complete information like ROS_DEBUG information, you can run

$ roslaunch natnet_bridge natnet_bridge.launch show_debug_info:=true

Otherwise it is also possible to run following command via running:

$ rosconsole set /natnet_node ros.natnet_bridge debug

You can also change the configuration while running via, it would convenient when you need to change the settings while running.:

$ roslaunch natnet_bridge natnet_bridge.launch launch_reconfigure:=true

Note

The rigid bodys’ name will be identical with the definition in windows’ Motive side setting. But you have to firstly name the rigid body’s before run natnet_node. Since in case of updating of rigid body’s setting like ID/name, Motive will not notify receiver.

Make sure your setting of rigid bodies, ID and names do not repeat. It is important. NatnetNode will check repeating while initializing but does not check while receiving. If you add rigid body while receiving, the unknown rigid body will be published as "unknown"+ID.

../_images/dyn_conf1.png

Comparison with prior optitrack_bridge

  • More stable for running logic.

  • Fixed bugs of optitrack_bridge.

  • Non-Blocking. Saving cpu resources.

  • More completely parsing information of NatNet

  • Controllable loop rate…

  • Time information

  • Get server version and natnet version from the motive serve

  • Friendly parameter setting, friendly information print out…