|
rosx_introspection package from rosx_introspection reporosx_introspection |
ROS Distro
|
Package Summary
| Version | 2.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Deserialize any ROS message, without compilation time information. |
| Checkout URI | https://github.com/facontidavide/rosx_introspection.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-21 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Davide Faconti
Authors
- Davide Faconti
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:
- rosbag::MessageInstance and Topic::ShapeShifter in ROS1.
-
GenericSubscriber
or
rosbag2_storage::SerializedBagMessageon ROS2. - MCAP.
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.
Changelog for package rosx_introspection
2.1.0 (2026-02-21)
-
Fix multiple bugs in serialization, deserialization, and JSON handling
- Fix missing throw in ROS_Deserializer::deserialize for unsupported types
- Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
- Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
- Fix Tree::find using &_root instead of _root.get() on unique_ptr
- Fix msgpack pointer invalidation after vector resize for large messages
- Fix blob detection in deserialize() (was restricted to OTHER type only)
- Fix deserializeIntoJson blob skip not advancing the deserializer
- Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields
- Add complete ROS_Serializer implementation (serialize, serializeString, etc.)
- Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>
-
Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization
-
Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true
-
Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++
-
Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings
-
Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp
-
fix: compiler warnings
-
fix: correct nsecs duration serialization
-
Make convertToMsgPack() available in C++
-
Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING
-
remove ament_target_dependencies
-
Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin
2.0.1 (2025-10-01)
- Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
- Fix CMakeLists to support scikit-build-core installations
- Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
- replace sprintf with snprintf
- inline vs constexpr
- Contributors: Bryan Zhao, Davide Faconti, Neal Tanner
2.0.0 (2025-09-24)
- optionally remove JSON support
- new formatting
- fix memory and add README
- add python binding
- NanoCDR
- Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
- Fix issue #13
- Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| sensor_msgs | |
| geometry_msgs | |
| roscpp | |
| roscpp_serialization | |
| ament_index_cpp | |
| rclcpp | |
| rosbag2_cpp |
System Dependencies
| Name |
|---|
| rapidjson-dev |
Dependant Packages
| Name | Deps |
|---|---|
| foxglove_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged rosx_introspection at Robotics Stack Exchange
|
rosx_introspection package from rosx_introspection reporosx_introspection |
ROS Distro
|
Package Summary
| Version | 2.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Deserialize any ROS message, without compilation time information. |
| Checkout URI | https://github.com/facontidavide/rosx_introspection.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-21 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Davide Faconti
Authors
- Davide Faconti
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:
- rosbag::MessageInstance and Topic::ShapeShifter in ROS1.
-
GenericSubscriber
or
rosbag2_storage::SerializedBagMessageon ROS2. - MCAP.
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.
Changelog for package rosx_introspection
2.1.0 (2026-02-21)
-
Fix multiple bugs in serialization, deserialization, and JSON handling
- Fix missing throw in ROS_Deserializer::deserialize for unsupported types
- Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
- Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
- Fix Tree::find using &_root instead of _root.get() on unique_ptr
- Fix msgpack pointer invalidation after vector resize for large messages
- Fix blob detection in deserialize() (was restricted to OTHER type only)
- Fix deserializeIntoJson blob skip not advancing the deserializer
- Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields
- Add complete ROS_Serializer implementation (serialize, serializeString, etc.)
- Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>
-
Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization
-
Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true
-
Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++
-
Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings
-
Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp
-
fix: compiler warnings
-
fix: correct nsecs duration serialization
-
Make convertToMsgPack() available in C++
-
Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING
-
remove ament_target_dependencies
-
Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin
2.0.1 (2025-10-01)
- Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
- Fix CMakeLists to support scikit-build-core installations
- Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
- replace sprintf with snprintf
- inline vs constexpr
- Contributors: Bryan Zhao, Davide Faconti, Neal Tanner
2.0.0 (2025-09-24)
- optionally remove JSON support
- new formatting
- fix memory and add README
- add python binding
- NanoCDR
- Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
- Fix issue #13
- Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| sensor_msgs | |
| geometry_msgs | |
| roscpp | |
| roscpp_serialization | |
| ament_index_cpp | |
| rclcpp | |
| rosbag2_cpp |
System Dependencies
| Name |
|---|
| rapidjson-dev |
Dependant Packages
| Name | Deps |
|---|---|
| foxglove_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged rosx_introspection at Robotics Stack Exchange
|
rosx_introspection package from rosx_introspection reporosx_introspection |
ROS Distro
|
Package Summary
| Version | 2.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Deserialize any ROS message, without compilation time information. |
| Checkout URI | https://github.com/facontidavide/rosx_introspection.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-21 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Davide Faconti
Authors
- Davide Faconti
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:
- rosbag::MessageInstance and Topic::ShapeShifter in ROS1.
-
GenericSubscriber
or
rosbag2_storage::SerializedBagMessageon ROS2. - MCAP.
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.
Changelog for package rosx_introspection
2.1.0 (2026-02-21)
-
Fix multiple bugs in serialization, deserialization, and JSON handling
- Fix missing throw in ROS_Deserializer::deserialize for unsupported types
- Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
- Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
- Fix Tree::find using &_root instead of _root.get() on unique_ptr
- Fix msgpack pointer invalidation after vector resize for large messages
- Fix blob detection in deserialize() (was restricted to OTHER type only)
- Fix deserializeIntoJson blob skip not advancing the deserializer
- Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields
- Add complete ROS_Serializer implementation (serialize, serializeString, etc.)
- Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>
-
Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization
-
Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true
-
Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++
-
Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings
-
Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp
-
fix: compiler warnings
-
fix: correct nsecs duration serialization
-
Make convertToMsgPack() available in C++
-
Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING
-
remove ament_target_dependencies
-
Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin
2.0.1 (2025-10-01)
- Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
- Fix CMakeLists to support scikit-build-core installations
- Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
- replace sprintf with snprintf
- inline vs constexpr
- Contributors: Bryan Zhao, Davide Faconti, Neal Tanner
2.0.0 (2025-09-24)
- optionally remove JSON support
- new formatting
- fix memory and add README
- add python binding
- NanoCDR
- Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
- Fix issue #13
- Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| sensor_msgs | |
| geometry_msgs | |
| roscpp | |
| roscpp_serialization | |
| ament_index_cpp | |
| rclcpp | |
| rosbag2_cpp |
System Dependencies
| Name |
|---|
| rapidjson-dev |
Dependant Packages
| Name | Deps |
|---|---|
| foxglove_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged rosx_introspection at Robotics Stack Exchange
|
rosx_introspection package from rosx_introspection reporosx_introspection |
ROS Distro
|
Package Summary
| Version | 2.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Deserialize any ROS message, without compilation time information. |
| Checkout URI | https://github.com/facontidavide/rosx_introspection.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-21 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Davide Faconti
Authors
- Davide Faconti
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:
- rosbag::MessageInstance and Topic::ShapeShifter in ROS1.
-
GenericSubscriber
or
rosbag2_storage::SerializedBagMessageon ROS2. - MCAP.
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.
Changelog for package rosx_introspection
2.1.0 (2026-02-21)
-
Fix multiple bugs in serialization, deserialization, and JSON handling
- Fix missing throw in ROS_Deserializer::deserialize for unsupported types
- Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
- Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
- Fix Tree::find using &_root instead of _root.get() on unique_ptr
- Fix msgpack pointer invalidation after vector resize for large messages
- Fix blob detection in deserialize() (was restricted to OTHER type only)
- Fix deserializeIntoJson blob skip not advancing the deserializer
- Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields
- Add complete ROS_Serializer implementation (serialize, serializeString, etc.)
- Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>
-
Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization
-
Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true
-
Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++
-
Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings
-
Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp
-
fix: compiler warnings
-
fix: correct nsecs duration serialization
-
Make convertToMsgPack() available in C++
-
Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING
-
remove ament_target_dependencies
-
Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin
2.0.1 (2025-10-01)
- Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
- Fix CMakeLists to support scikit-build-core installations
- Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
- replace sprintf with snprintf
- inline vs constexpr
- Contributors: Bryan Zhao, Davide Faconti, Neal Tanner
2.0.0 (2025-09-24)
- optionally remove JSON support
- new formatting
- fix memory and add README
- add python binding
- NanoCDR
- Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
- Fix issue #13
- Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| sensor_msgs | |
| geometry_msgs | |
| roscpp | |
| roscpp_serialization | |
| ament_index_cpp | |
| rclcpp | |
| rosbag2_cpp |
System Dependencies
| Name |
|---|
| rapidjson-dev |
Dependant Packages
| Name | Deps |
|---|---|
| foxglove_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged rosx_introspection at Robotics Stack Exchange
|
rosx_introspection package from rosx_introspection reporosx_introspection |
ROS Distro
|
Package Summary
| Version | 2.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Deserialize any ROS message, without compilation time information. |
| Checkout URI | https://github.com/facontidavide/rosx_introspection.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-21 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Davide Faconti
Authors
- Davide Faconti
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:
- rosbag::MessageInstance and Topic::ShapeShifter in ROS1.
-
GenericSubscriber
or
rosbag2_storage::SerializedBagMessageon ROS2. - MCAP.
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.
Changelog for package rosx_introspection
2.1.0 (2026-02-21)
-
Fix multiple bugs in serialization, deserialization, and JSON handling
- Fix missing throw in ROS_Deserializer::deserialize for unsupported types
- Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
- Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
- Fix Tree::find using &_root instead of _root.get() on unique_ptr
- Fix msgpack pointer invalidation after vector resize for large messages
- Fix blob detection in deserialize() (was restricted to OTHER type only)
- Fix deserializeIntoJson blob skip not advancing the deserializer
- Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields
- Add complete ROS_Serializer implementation (serialize, serializeString, etc.)
- Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>
-
Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization
-
Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true
-
Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++
-
Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings
-
Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp
-
fix: compiler warnings
-
fix: correct nsecs duration serialization
-
Make convertToMsgPack() available in C++
-
Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING
-
remove ament_target_dependencies
-
Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin
2.0.1 (2025-10-01)
- Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
- Fix CMakeLists to support scikit-build-core installations
- Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
- replace sprintf with snprintf
- inline vs constexpr
- Contributors: Bryan Zhao, Davide Faconti, Neal Tanner
2.0.0 (2025-09-24)
- optionally remove JSON support
- new formatting
- fix memory and add README
- add python binding
- NanoCDR
- Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
- Fix issue #13
- Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| sensor_msgs | |
| geometry_msgs | |
| roscpp | |
| roscpp_serialization | |
| ament_index_cpp | |
| rclcpp | |
| rosbag2_cpp |
System Dependencies
| Name |
|---|
| rapidjson-dev |
Dependant Packages
| Name | Deps |
|---|---|
| foxglove_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged rosx_introspection at Robotics Stack Exchange
|
rosx_introspection package from rosx_introspection reporosx_introspection |
ROS Distro
|
Package Summary
| Version | 2.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Deserialize any ROS message, without compilation time information. |
| Checkout URI | https://github.com/facontidavide/rosx_introspection.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-21 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Davide Faconti
Authors
- Davide Faconti
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:
- rosbag::MessageInstance and Topic::ShapeShifter in ROS1.
-
GenericSubscriber
or
rosbag2_storage::SerializedBagMessageon ROS2. - MCAP.
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.
Changelog for package rosx_introspection
2.1.0 (2026-02-21)
-
Fix multiple bugs in serialization, deserialization, and JSON handling
- Fix missing throw in ROS_Deserializer::deserialize for unsupported types
- Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
- Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
- Fix Tree::find using &_root instead of _root.get() on unique_ptr
- Fix msgpack pointer invalidation after vector resize for large messages
- Fix blob detection in deserialize() (was restricted to OTHER type only)
- Fix deserializeIntoJson blob skip not advancing the deserializer
- Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields
- Add complete ROS_Serializer implementation (serialize, serializeString, etc.)
- Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>
-
Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization
-
Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true
-
Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++
-
Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings
-
Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp
-
fix: compiler warnings
-
fix: correct nsecs duration serialization
-
Make convertToMsgPack() available in C++
-
Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING
-
remove ament_target_dependencies
-
Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin
2.0.1 (2025-10-01)
- Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
- Fix CMakeLists to support scikit-build-core installations
- Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
- replace sprintf with snprintf
- inline vs constexpr
- Contributors: Bryan Zhao, Davide Faconti, Neal Tanner
2.0.0 (2025-09-24)
- optionally remove JSON support
- new formatting
- fix memory and add README
- add python binding
- NanoCDR
- Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
- Fix issue #13
- Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| sensor_msgs | |
| geometry_msgs | |
| roscpp | |
| roscpp_serialization | |
| ament_index_cpp | |
| rclcpp | |
| rosbag2_cpp |
System Dependencies
| Name |
|---|
| rapidjson-dev |
Dependant Packages
| Name | Deps |
|---|---|
| foxglove_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged rosx_introspection at Robotics Stack Exchange
|
rosx_introspection package from rosx_introspection reporosx_introspection |
ROS Distro
|
Package Summary
| Version | 2.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Deserialize any ROS message, without compilation time information. |
| Checkout URI | https://github.com/facontidavide/rosx_introspection.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-21 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Davide Faconti
Authors
- Davide Faconti
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:
- rosbag::MessageInstance and Topic::ShapeShifter in ROS1.
-
GenericSubscriber
or
rosbag2_storage::SerializedBagMessageon ROS2. - MCAP.
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.
Changelog for package rosx_introspection
2.1.0 (2026-02-21)
-
Fix multiple bugs in serialization, deserialization, and JSON handling
- Fix missing throw in ROS_Deserializer::deserialize for unsupported types
- Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
- Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
- Fix Tree::find using &_root instead of _root.get() on unique_ptr
- Fix msgpack pointer invalidation after vector resize for large messages
- Fix blob detection in deserialize() (was restricted to OTHER type only)
- Fix deserializeIntoJson blob skip not advancing the deserializer
- Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields
- Add complete ROS_Serializer implementation (serialize, serializeString, etc.)
- Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>
-
Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization
-
Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true
-
Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++
-
Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings
-
Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp
-
fix: compiler warnings
-
fix: correct nsecs duration serialization
-
Make convertToMsgPack() available in C++
-
Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING
-
remove ament_target_dependencies
-
Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin
2.0.1 (2025-10-01)
- Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
- Fix CMakeLists to support scikit-build-core installations
- Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
- replace sprintf with snprintf
- inline vs constexpr
- Contributors: Bryan Zhao, Davide Faconti, Neal Tanner
2.0.0 (2025-09-24)
- optionally remove JSON support
- new formatting
- fix memory and add README
- add python binding
- NanoCDR
- Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
- Fix issue #13
- Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| sensor_msgs | |
| geometry_msgs | |
| roscpp | |
| roscpp_serialization | |
| ament_index_cpp | |
| rclcpp | |
| rosbag2_cpp |
System Dependencies
| Name |
|---|
| rapidjson-dev |
Dependant Packages
| Name | Deps |
|---|---|
| foxglove_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged rosx_introspection at Robotics Stack Exchange
|
rosx_introspection package from rosx_introspection reporosx_introspection |
ROS Distro
|
Package Summary
| Version | 2.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Deserialize any ROS message, without compilation time information. |
| Checkout URI | https://github.com/facontidavide/rosx_introspection.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-21 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Davide Faconti
Authors
- Davide Faconti
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:
- rosbag::MessageInstance and Topic::ShapeShifter in ROS1.
-
GenericSubscriber
or
rosbag2_storage::SerializedBagMessageon ROS2. - MCAP.
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.
Changelog for package rosx_introspection
2.1.0 (2026-02-21)
-
Fix multiple bugs in serialization, deserialization, and JSON handling
- Fix missing throw in ROS_Deserializer::deserialize for unsupported types
- Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
- Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
- Fix Tree::find using &_root instead of _root.get() on unique_ptr
- Fix msgpack pointer invalidation after vector resize for large messages
- Fix blob detection in deserialize() (was restricted to OTHER type only)
- Fix deserializeIntoJson blob skip not advancing the deserializer
- Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields
- Add complete ROS_Serializer implementation (serialize, serializeString, etc.)
- Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>
-
Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization
-
Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true
-
Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++
-
Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings
-
Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp
-
fix: compiler warnings
-
fix: correct nsecs duration serialization
-
Make convertToMsgPack() available in C++
-
Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING
-
remove ament_target_dependencies
-
Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin
2.0.1 (2025-10-01)
- Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
- Fix CMakeLists to support scikit-build-core installations
- Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
- replace sprintf with snprintf
- inline vs constexpr
- Contributors: Bryan Zhao, Davide Faconti, Neal Tanner
2.0.0 (2025-09-24)
- optionally remove JSON support
- new formatting
- fix memory and add README
- add python binding
- NanoCDR
- Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
- Fix issue #13
- Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| sensor_msgs | |
| geometry_msgs | |
| roscpp | |
| roscpp_serialization | |
| ament_index_cpp | |
| rclcpp | |
| rosbag2_cpp |
System Dependencies
| Name |
|---|
| rapidjson-dev |
Dependant Packages
| Name | Deps |
|---|---|
| foxglove_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged rosx_introspection at Robotics Stack Exchange
|
rosx_introspection package from rosx_introspection reporosx_introspection |
ROS Distro
|
Package Summary
| Version | 2.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Deserialize any ROS message, without compilation time information. |
| Checkout URI | https://github.com/facontidavide/rosx_introspection.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-02-21 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Davide Faconti
Authors
- Davide Faconti
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:
- rosbag::MessageInstance and Topic::ShapeShifter in ROS1.
-
GenericSubscriber
or
rosbag2_storage::SerializedBagMessageon ROS2. - MCAP.
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.
Changelog for package rosx_introspection
2.1.0 (2026-02-21)
-
Fix multiple bugs in serialization, deserialization, and JSON handling
- Fix missing throw in ROS_Deserializer::deserialize for unsupported types
- Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
- Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
- Fix Tree::find using &_root instead of _root.get() on unique_ptr
- Fix msgpack pointer invalidation after vector resize for large messages
- Fix blob detection in deserialize() (was restricted to OTHER type only)
- Fix deserializeIntoJson blob skip not advancing the deserializer
- Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields
- Add complete ROS_Serializer implementation (serialize, serializeString, etc.)
- Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>
-
Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization
-
Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true
-
Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++
-
Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings
-
Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp
-
fix: compiler warnings
-
fix: correct nsecs duration serialization
-
Make convertToMsgPack() available in C++
-
Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING
-
remove ament_target_dependencies
-
Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin
2.0.1 (2025-10-01)
- Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
- Fix CMakeLists to support scikit-build-core installations
- Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
- replace sprintf with snprintf
- inline vs constexpr
- Contributors: Bryan Zhao, Davide Faconti, Neal Tanner
2.0.0 (2025-09-24)
- optionally remove JSON support
- new formatting
- fix memory and add README
- add python binding
- NanoCDR
- Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
- Fix issue #13
- Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| sensor_msgs | |
| geometry_msgs | |
| roscpp | |
| roscpp_serialization | |
| ament_index_cpp | |
| rclcpp | |
| rosbag2_cpp |
System Dependencies
| Name |
|---|
| rapidjson-dev |
Dependant Packages
| Name | Deps |
|---|---|
| foxglove_bridge |