Motion Capture Systems in ROS 2

Dear ROS Community,

Motion Capture Systems (mocap systems, in short) are very important in Robotics. They are critical when testing localization algorithms, commanding groups of indoor drones or AR applications, among many other applications.

Typically, most of the proprietary control software are programs that run in Windows. Still, the vendors (at least Vicon, Optitrack, and Qualisys) provide libraries for different applications with an SDK for connecting from a Linux/Mac/Windows and receiving position data. ROS 2 has many packages available for mocap systems, which use these SDKs and let us work with these systems: mocap_optitrack (Tony Baltovski), motion_capture_tracking (Wolfgang Hönig), vrpn_mocap ( Alvin Sun) and MOCAP4ROS2 (myself).

Wolfgang and I were talking this week and agreed to open a discussion in the community among developers and users to coordinate our efforts. By trying to have common interfaces, users could develop their applications independently of which mocap software package is selected. This requires discussion between mocap experts and users to set standard mocap messages. Currently, the first attempt is in mocap4r2_msgs, but we must agree that this is enough, or we need something more. If there is interest, the next steps could be a REP for these interfaces or a WG if enough people are interested. So, we invited you to a initial meeting next week:

Motion Capture Systems in ROS 2
2024-01-31T19:00:00Z
Link: https://meet.google.com/kns-made-hbd

Best regards

11 Likes

Nice! I will be there :slight_smile:

Thanks for leading this @fmrico . I think this is a good opportunity to coordinate efforts!

3 Likes

This is a great initiative! Sadly I can’t attend the meeting as the timezone is not favorable in Asia.

One aspect that would also be nice to standardize is the endpoints published by the various vrpn drivers. ie, one topic for all rigid bodies vs individual topics per rigid body (namespaced by the name of the rigid body). Also whether or not to publish as TF and if so over /tf_static or /tf.

I just discovered this topic and seemed to have missed the meeting but if there is a summary somewhere I would love to read it.
I think a unified way of accessing the different mocap systems would be extra nice!!

Thanks for leading this!

I missed it too on account of it being a little too late in Asia but would love to catch up if there’s a summary, MoM somewhere.

There’s a general-purpose vrpn client semi-ported to ROS2 here (Ros2 by AlexKaravaev · Pull Request #20 · ros-drivers/vrpn_client_ros · GitHub). I don’t currently have access to equipment to test it.