|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |
Launch files
Messages
Services
Plugins
Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange
|
mola_bridge_ros2 package from mola repomola mola_bridge_ros2 mola_demos mola_input_lidar_bin_dataset mola_input_rawlog mola_input_rosbag2 mola_input_video mola_kernel mola_launcher mola_metric_maps mola_msgs mola_pose_list mola_relocalization mola_traj_tools mola_viz mola_viz_imgui mola_yaml |
ROS Distro
|
Package Summary
| Version | 3.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-07-31 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_bridge_ros2
RawDataSource acting as a bidirectional bridge between ROS2 and MOLA modules.
Can be used to:
- ROS2->MOLA: Interface a real sensor using a ROS driver node and run SLAM with it. See
mola_lidar_odometrydemos. - MOLA->ROS2: Expose a dataset as ROS2 topics, from any of the datasets supported by MOLA. Example: kitti
- ROS2<->MOLA: Run SLAM on a live sensor stream, then send back the reconstructed map and trajectory to ROS for further processing or visualization in RViz. See
mola_lidar_odometrydemos.
If you want to run SLAM on a rosbag, the module mola_input_rosbag2 provides
a more convenient interface, e.g. allows fast-forwarding or skipping parts of a bag.
Building this module requires ROS 2 to be installed, and its setup.bash
activation script being sourced before invoking CMake to configure and build MOLA.
See package docs for instructions and options to install ROS prerequisites.
Provided MOLA modules:
-
BridgeROS2, type RawDataSourceBase.
Build and install
Refer to the root MOLA repository.
Docs and examples
See this package page in the documentation.
License
This package is released under the BSD 3-clause license.
Changelog for package mola_bridge_ros2
Forthcoming
- fix: ros rolling changed arguments of tf2_ros tf listeners; fixed GCC error in Rolling due to missing direct rclcpp/Node.hpp include; dropped MRPT2 point cloud classes.
- fix(bridge): REP-105 stale-odom TF fallback now logs a loud, explanatory warning the first time it fires (with the recommended fix), instead of only a throttled one.
- Contributors: Jose Luis Blanco-Claraco
3.0.0 (2026-07-17)
- chore: less verbose warning
- fix: rep105 mode made robust against lagging odom frame
- fix: replace rclcpp deprecated spin_some()
- Merge pull request #153 from Zeal-Robotics/fix/bridge_ros2-relocalize-frame fix(bridge_ros2): transform relocalization pose into reference frame
- fix(bridge_ros2): transform relocalization pose into reference frame The relocalization topic callback and the relocalize_near_pose service fed the incoming PoseWithCovarianceStamped straight to relocalize_near_pose_pdf(), ignoring its header.frame_id. The pose was therefore interpreted in the localization reference_frame regardless of the frame it was actually expressed in. When a tool publishes it in a different frame (e.g. RViz's "2D Pose Estimate" in the fixed frame) that differs from reference_frame, the relocalization lands in the wrong place. Compose reference_frame <- header.frame_id via the tf buffer before relocalizing, in both the topic callback and the service. The covariance is propagated through the rotation by CPose3DPDFGaussian::changeCoordinatesReference(). Requests are skipped (topic) or rejected (service) when the transform is unavailable, instead of silently relocalizing to a wrong pose.
- fix: safer owned_rclcpp flag
- Merge pull request #150 from MOLAorg/fix/bridge-ros2-rclcpp-shutdown-ownership feat: bridge ros2 now autodetects rclpp shutdown ownership
- feat: bridge ros2 now autodetects rclpp shutdown ownership
- Merge pull request #149 from MOLAorg/fix/tf-listener-share-ros-node fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time
- fix(mola_bridge_ros2): share rosNode_ with TF listener for consistent clock/use_sim_time handling Pass rosNode_ to TransformListener so its /tf and /tf_static subscriptions share the bridge's DDS participant, clock, and use_sim_time setting. Without this, the default constructor creates an anonymous node that ignores use_sim_time -- causing subtle inconsistencies when playing bags with --clock. spin_thread=false avoids a redundant second spinner since rosNode_ is already spun by the bridge's main loop.
- Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh
2.9.0 (2026-05-11)
- Merge pull request #143 from MOLAorg/bump-cmake-version bump min req cmake version to 3.22
- bump min req cmake version to 3.22
- Less verbose output: don't print covariance matrix for each geo-referenced solution
- Contributors: Jose Luis Blanco-Claraco
2.8.0 (2026-04-29)
-
Merge pull request #140 from MOLAorg/feat/bridge-ros2-qos feat: BridgeROS2 now have configurable QoS
-
fix: harden parameter parsing
-
feat: BridgeROS2 now have configurable QoS
-
Merge pull request #135 from MOLAorg/pr-132 feat(bridge_ros2): align REP-105 TF with Nav2 conventions without regressing direct-publish mode
-
feat(bridge_ros2): align REP-105 TF publishing with Nav2 conventions This brings the localization /tf publisher in line with the convention used by AMCL, slam_toolbox, RTAB-Map and Cartographer, addressing three issues observed when MOLA is consumed by Nav2-style downstream nodes:
1. REP-105 composition bug (fix). The inner factor of map -> odom = (map -> base)(t_scan) * (base -> odom)(t) was sampled at "latest" via waitForTransform(), which only supports tf2::TimePoint{}. The two factors must be sampled at the same instant or the published correction is biased by the odom-frame motion accumulated during the localizer's processing latency. Switch to tf_buffer_->lookupTransform(..., scan_tp). On lookup failure the publish is skipped (an empty default-constructed TransformStamped would inject TF_NO_FRAME_ID into every consumer's tf2 buffer).
2. transform_tolerance (new param, default 0.1s). The published
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola | |
| mola_state_estimation_smoother |