README
vrpn_mocap
ROS2 VRPN client built pirmarily to interface with motion capture devices such as VICON and OptiTrack. A detailed list of supported hardware can be found on vrpn wiki.
Installation
Install From Binary Release
sudo apt install ros-<rosdistro>-vrpn-mocap
Build From Source
Clone this repo into your ROS2 workspace
Run
rosdep install --from-paths src -y --ignore-src
to install dependenciesRun
colcon build
Your usual ROS2 routines:
source install/setup.zsh
, etc.
Usage
Launch Default Configuration from Command Line
Run the following command,
ros2 launch vrpn_mocap client.launch.yaml server:=<server ip> port:=<port>
replacing <server ip>
and <port>
with your VRPN server ip and port, e.g.
ros2 launch vrpn_mocap client.launch.yaml server:=192.168.0.4 port:=3883
Then with ros2 topic list
, you should be able to see the following topics
/vrpn_mocap/<tracker_name>/pose
/vrpn_mocap/<tracker_name>/twist # optional when mocap reports velocity data
/vrpn_mocap/<tracker_name>/accel # optional when mocap reports acceleration data
where <tracker_name>
is usually the name of your tracked objects.
Customized Launch
Check out the default parameter file and launch file. You can then write your own launch file with custom configurations.
Parameters
server (string)
– server name, either ip address or domain name (default:"localhost"
)port (int)
– VRPN server port (default:3883
)frame_id (string)
– frame name of the fixed world frame (default:"world"
)update_freq (double)
– frequency of the motion capture data publisher (default:100.
)refresh_freq (double)
– frequency of dynamic adding new tracked objects (default:1.
)sensor_data_qos
– use best effort QoS for VRPN data stream, set to false to use system default QoS which is reliable (default:true
)multi_sensor (bool)
– set to true if there are more than one sensor (frame) reporting on the same object (default:false
)use_vrpn_timestamps (bool)
– use timestamps coming from VRPN. This ensures that the interval between frames timestamps is not modified (default:false
)
Acknowledgement
Some ideas are borrowed from the well known vrpn_client_ros – a ROS1 package for interfacing with VRPN devices. I thank the authors and developers for delivering and maintaining the original implementation.