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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.

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

Bidirectional bridge ROS2-MOLA

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional 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_odometry demos.
  • 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_odometry demos.

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

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_bridge_ros2 at Robotics Stack Exchange