rosx_introspection

Parse any ROS/ROS2 message without compile-time information

README

ROS X Introspection

Unified successor of the following libraries:

The library compiles either using:

  • ROS1 (catkin),

  • ROS2 (colcon/ament) or

  • without any ROS dependency (vanilla cmake).

To parse any ROS message at runtime, it requires:

  • The name of the type (for instance “sensors_msgs/JointState”)

  • The definition of the type (for instance this one),

  • The raw memory buffer to be deserialized into individual key/values pairs.

The raw memory buffer is usually obtained by:

Python binding

Compilation instructions:

cmake -S. -B build_python -DCMAKE_BUILD_TYPE=Release -DROSX_PYTHON_BINDINGS=ON
cmake --build build_python

If you have a rosbag (MCAP file) you can test it with this command

PYTHONPATH=build_python/python python3 python/mcap_ros_parser.py path_to_your_rosbag.mcap

Note that we are providing the folder where the dynamic library is using PYTHONPATH.