Hi everyone,
We are happy to announce MOCAP4ROS2 2.0.0, a complete revival of the motion capture framework for ROS 2. It may have looked quiet for a while, but a lot of people use it, and it deserved a proper update.
One version, from one branch, now builds and is released for Humble, Jazzy, Kilted and Lyrical, and builds on Rolling. Binaries will be available after the next sync of each distro. Until then, you can build from source.
Drivers
- OptiTrack: uses the official NatNet SDK, or a built-in open implementation of NatNet. The binary packages no longer ship proprietary libraries.
- Vicon: DataStream SDK 1.13. Stamps are compensated with the latency the SDK reports.
- Qualisys: QTM.
- Gazebo: a plugin for modern Gazebo (Jazzy and newer), with demos for robot ground truth and human motion.
- Simulated system: for testing without hardware.
One interface for every system
mocap4r2_interfaces covers markers, rigid bodies and skeletons for every system. Every message has tracking validity, stable ids and one frame convention. Drivers derive from a common MocapSystemNode. Every tool works with every driver, including drivers written outside the project.
New tools
- CLI:
ros2 mocap4r2lists, starts, stops and records your systems.ros2 mocap4r2 doctorchecks the route to the mocap server. - Terminal UI: shows rates, latency and tracking live for each system.
- Robot ground truth:
- a TF tree parallel to your robot’s
- body calibration
- map alignment
- online ATE/RPE
- TUM export for evo
- Human motion:
- skeletons as TF and joint angles
- zero-phase filtering
- gap filling
- C3D export for biomechanics software
New website
The website has getting started, concepts, a guide for each system, tools and a developer guide. It is versioned: latest follows development, and 2.0.0 is frozen for this release.
Migrating from 1.x
mocap4r2_msgsis replaced bymocap4r2_interfaces. For example,mocap4r2_msgs::msg::RigidBodiesbecomesmocap4r2_interfaces::msg::RigidBodies.- In Humble, Jazzy and Kilted,
mocap4r2_msgsstays at its last version, marked end-of-life. It is not released for Lyrical.
- In Humble, Jazzy and Kilted,
- These packages were removed:
rqt_mocap4r2_control, replaced by the CLI and the terminal UImocap4r2_dummy_driver, replaced by the simulated systemmocap4r2_marker_publisher
- Drivers publish TF themselves (
publish_tfparameter). Every driver has aframe_idparameter.
Contributing
To add your mocap system, write a driver that translates the system’s data into the MOCAP4ROS2 interfaces. All the tools then work with it from the first frame. The guide is here: Writing a driver for a new system - MOCAP4ROS2
Issues and PRs are welcome: MOCAP4ROS2-Project · GitHub
Thanks to everyone who reported issues and sent patches over the years. Many of them shaped this release.
Francisco


