|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]
Plugins
Recent questions tagged mola_input_rosbag1 at Robotics Stack Exchange
|
mola_input_rosbag1 package from mola_input_rosbag1 repomola_input_rosbag1 |
ROS Distro
|
Package Summary
| Version | 0.5.0 |
| License | BSD-3-Clause |
| Build type | CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mola_input_rosbag1.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-28 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
mola_input_rosbag1
| Distro | Build dev | Builds | Stable release |
|---|---|---|---|
| ROS 2 Humble (u22.04) |
|
||
| ROS 2 Jazzy (u24.04) |
|
||
| ROS 2 Kilted (u24.04) |
|
||
| ROS 2 Lyrical (u26.04) |
|
||
| ROS 2 Rolling (u26.04) |
|
In the “Builds” column, the top badge is for amd64 and the bottom one for arm64.
A MOLA RawDataSource module that reads ROS 1 .bag files and exposes their
contents as MOLA observations, without requiring a ROS 1 installation.
The ROS 1 bag (de)serialization, message definitions, and rosbag_storage
reader are vendored inside this package (see the ros1/ and
mrpt_ros_bridge/ subdirectories), so the module builds and runs in a pure
ROS 2 (or even non-ROS) colcon workspace.
Typical uses:
- Feed a legacy ROS 1 dataset into MOLA LiDAR Odometry or any other MOLA consumer.
- Turn MOLA into a ROS 1 -> ROS 2 bridge: read a
.bagand re-publish its streams as ROS 2 topics +/tf, in real time (see demo below). - Inspect raw sensor streams in the MOLA visualizer.
Supported message types
| ROS 1 message type | MOLA / MRPT observation |
|---|---|
sensor_msgs/Imu |
CObservationIMU |
sensor_msgs/Image |
CObservationImage (mono8, mono16, rgb8, bgr8, rgba8, bgra8, bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8) |
sensor_msgs/CompressedImage |
CObservationImage (JPEG, PNG, BMP, TGA, GIF, PSD, HDR, PNM) |
sensor_msgs/PointCloud2 |
CObservationPointCloud (XYZ / XYZI / XYZIRT) or CObservationRotatingScan
|
livox_ros_driver/CustomMsg, livox_ros_driver2/CustomMsg
|
CObservationPointCloud (XYZIRT: intensity=reflectivity, ring=line, time=offset_time) |
sensor_msgs/LaserScan |
CObservation2DRangeScan |
sensor_msgs/NavSatFix |
CObservationGPS |
nav_msgs/Odometry |
CObservationOdometry (planar; see note below) |
geometry_msgs/PoseStamped, geometry_msgs/PoseWithCovarianceStamped
|
CObservationRobotPose (full SE(3) + 6x6 covariance) |
tf2_msgs/TFMessage (/tf, /tf_static) |
transform tree (sensor pose lookup) |
CObservationOdometry is a planar type: it holds only (x, y, yaw) and a 2D
twist (vx, vy, wz). For a 3D odometry source – a legged robot, a VIO, an
aerial platform – that discards z, roll, pitch and the covariance the source
publishes. To keep them, ask for the SE(3) type explicitly:
sensors:
- topic: /state_estimator/odometry
sensorLabel: odom
type: CObservationRobotPose # instead of the automatic CObservationOdometry
The automatic mapping is unchanged, so existing configurations keep the planar behavior. A source that publishes an all-zero covariance is given a default of 10 cm / 2 deg rather than being read as an exact measurement.
Topics with no known mapping are ignored (a one-time warning is logged).
Sensor poses and /tf
The pose of each sensor in the robot body frame is looked up from the bag’s
/tf and /tf_static tree, as the transform
base_link_frame_id -> <message frame_id>.
- Set
base_link_frame_idto the name of your robot body frame. Note that many ROS 1 bags use namespaced frames (e.g.r1/base_linkinstead ofbase_link). - If the relevant transform is not yet available when a message is read (e.g.
the first few messages before any
/tf), that single observation is dropped and a throttled warning lists the currently known tf frames, which is handy for discovering the correctbase_link_frame_id. - If your bag has no
/tf, override the pose per sensor withfixed_sensor_pose(see the example inrosbag1_lidar.yaml).
Parameters
| Param | Required | Default | Description |
|---|---|---|---|
rosbag_filename |
yes | - | Path to the input .bag file, or a YAML sequence of paths to merge and replay jointly in time order (e.g. a sensors bag plus a separate ground-truth-only bag). |
base_link_frame_id |
no | base_link |
Robot body frame for tf pose lookup. |
time_warp_scale |
no | 1.0 |
Playback speed multiplier. |
read_ahead_length |
no | 15 |
Number of messages pre-read ahead. |
start_paused |
no | false |
Start playback paused. |
sensors |
no | auto | Explicit list of topics, types, and pose overrides. If omitted, all topics with a known mapping are exposed automatically using the topic name as sensorLabel. |
ground_truth_topic |
no | - | Topic (geometry_msgs/PoseStamped or nav_msgs/Odometry) pre-scanned at start-up into a full trajectory, exposed via the mola::OfflineDatasetSource ground-truth API (hasGroundTruthTrajectory() / getGroundTruthTrajectory()), e.g. for evo-style evaluation. This is independent from (and can be combined with) listing the same topic under sensors for normal per-timestep publishing as a CObservationRobotPose/CObservationOdometry. |
See mola-cli-launchs/rosbag1_lidar.yaml for a fully documented sensors
example, and mola-cli-launchs/rosbag1_botanicgarden.yaml for an example
combining multiple input bags with ground_truth_topic.
Demos
Two ready-to-use mola-cli launch files are provided under
mola-cli-launchs/.
1. Visualize raw LiDAR streams
File truncated at 100 lines see the full file
Changelog for package mola_input_rosbag1
0.5.0 (2026-09-25)
- ci: add GitHub release workflow on version tags
- Bump mrpt_ros_bridge: fix FLOAT64 per-point timestamps
- Merge pull request #10 from MOLAorg/feat/mrpt3
- Vendor mrpt_ros_bridge's ros1-mola-vendored branch instead of ros1
- Merge pull request #9 from MOLAorg/feat/mrpt3
- fix: review observations
- Use the bridge's ros1 branch, now that it builds against MRPT 3.x; fix RGB/BGR channel swap in image conversion
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge remote-tracking branch 'origin/feat/per-sensor-time-offset' into feat/mrpt3
- Merge pull request #8 from MOLAorg/fix/float64-per-point-timestamps
- Vendor the bridge's ros1 branch instead of ros1-mola-vendored, fixing FLOAT64 per-point timestamps
- Merge remote-tracking branch 'origin/develop' into feat/mrpt3
- Merge pull request #6 from MOLAorg/fix/camera-info-distortion-model
- Add an optional per-sensor time_offset to correct a constant per-sensor stamp bias
- Accept more camera_info distortion model names, and warn when one is unhandled
- Populate CObservationImage::cameraParams from sensor_msgs/CameraInfo
- Merge pull request #5 from MOLAorg/feat/rosbag1-comma-separated-bag-list
- Accept a comma-separated bag list in rosbag_filename
- Port to MRPT 3.x: cmake targets, TImageChannels, yaml associativity
- Merge pull request #4 from MOLAorg/feat/se3-odometry-as-robot-pose
- Allow reading a 3D odometry source as CObservationRobotPose
- Report the dataset playback time to the GUI (#3)
- Fix a segfault in findOutSensorPose, and resolve ROS1-era slashed frame ids
- Fix build warnings on newer ROS2 distro/g++
- Contributors: Jose Luis Blanco-Claraco
0.4.0 (2026-08-07)
- Expose the bag's /tf tree via mola::TransformTreeSource, so other MOLA modules can query the subtree of coordinate frames below a given root (e.g. a legged robot's joints) with poses resolved against it.
- fix: support missing timestamp channel
- Hide vendored roslz4/xxhash symbols to prevent collision with a system libxxhash, which could otherwise corrupt LZ4 checksum verification on some distros.
- update ros rolling to u26.04
- Contributors: Jose Luis Blanco-Claraco
0.3.0 (2026-07-31)
-
fix clang-format
-
Add use_bag_record_time option for drivers with unsynced header stamps Some drivers (observed on TIERS's Ouster and Livox streams) publish header.stamp from an internal/relative clock never synced to the recording PC's wall clock, which silently breaks ground-truth time lookup for every scan. When set on a sensor, the observation's timestamp is taken from the bag's own message storage time instead.
-
Add support for livox_ros_driver2/CustomMsg too
-
Update mrpt_ros_bridge submodule: drop deprecated point-map overloads Removes the CPointsMapXYZI/CPointsMapXYZIRT fromROS/toROS overloads, which were the source of -Wdeprecated-declarations warnings when building Rosbag1Dataset.cpp; CGenericPointsMap already covers the same conversions.
-
launch: add per-app imgui_app_name for MolaVizImGui Sets a unique imgui_app_name in each launch file so Dear ImGui's layout persistence stores a separate UI configuration per app.
-
Merge pull request #1 from MOLAorg/feature/multi-bag-gt-and-livox-custommsg Multi-bag input, ground-truth trajectory API, and Livox CustomMsg support
-
fix: validate nav_msgs/Odometry GT quaternion; migrate toPointCloud2 off deprecated point map classes
- Apply the same non-finite-quaternion guard already used for geometry_msgs/PoseStamped to the nav_msgs/Odometry ground-truth branch.
- Update mrpt_ros_bridge submodule to a commit adding CGenericPointsMap fromROS/toROS overloads for sensor_msgs/PointCloud2, and switch toPointCloud2() to use them
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mola_lidar_odometry |
Launch files
- ros1/ros_comm/test/test_roscpp/test/launch/fragmented_udp_data.launch
- ros1/ros_comm/test/test_roslaunch/test/ros_args.launch
-
- foo [default: true] — I pity the foo'.
- bar — Someone walks into this.
- baz [default: false]
- nop
- ros1/ros_comm/tools/roslaunch/resources/example-args.launch
-
- test_foo
- ros1/ros_comm/tools/roslaunch/resources/example-gdb.launch
- NOTE: this requires that you 'rosmake roscpp_tutorials'
-
- ros1/ros_comm/tools/roslaunch/resources/example-include.launch
- ros1/ros_comm/tools/roslaunch/resources/example-min.launch
- ros1/ros_comm/tools/roslaunch/resources/example-params.launch
- ros1/ros_comm/tools/roslaunch/resources/example-pass_all_args.launch
-
- test_foo [default: value_foo]
- ros1/ros_comm/tools/roslaunch/resources/example-ssh.launch
- an example launch configuration that launches two demo nodes on a remote machine
-
- ros1/ros_comm/tools/roslaunch/resources/example.launch
- ros1/ros_comm/tools/roslaunch/test/xml/noop.launch
- ros1/ros_comm/tools/roslaunch/test/xml/test-dump-rosparam.launch
- ros1/ros_comm/utilities/roswtf/test/min.launch
- ros1/ros_comm/test/test_roscpp/test/launch/check_master.xml
- ros1/ros_comm/test/test_roscpp/test/launch/check_master_false.xml
- ros1/ros_comm/test/test_roscpp/test/launch/get_master_information.xml
- ros1/ros_comm/test/test_roscpp/test/launch/global_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/handles.xml
- ros1/ros_comm/test/test_roscpp/test/launch/incrementing_sequence.xml
- ros1/ros_comm/test/test_roscpp/test/launch/inspection.xml
- ros1/ros_comm/test/test_roscpp/test/launch/intraprocess_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/latching_publisher.xml
- ros1/ros_comm/test/test_roscpp/test/launch/left_right.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/loads_of_publishers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/local_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_init_fini.xml
- ros1/ros_comm/test/test_roscpp/test/launch/multiple_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_not_remappable.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/name_remapping_ROS_NAMESPACE.xml
- ros1/ros_comm/test/test_roscpp/test/launch/namespaces.xml
- ros1/ros_comm/test/test_roscpp/test/launch/no_remappings.xml
- ros1/ros_comm/test/test_roscpp/test/launch/nonconst_subscriptions.xml
- ros1/ros_comm/test/test_roscpp/test/launch/ns_node_remapping.xml
- ros1/ros_comm/test/test_roscpp/test/launch/parameter_validation.xml
- ros1/ros_comm/test/test_roscpp/test/launch/params.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pingpong_large.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pub_onsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_empty.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_large_message.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_n_fast_udp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_resub_once.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/pubsub_unsub.xml
- ros1/ros_comm/test/test_roscpp/test/launch/real_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/search_param.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_adv_multiple.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_unadv.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_call_zombie.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_deadlock.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_exception.xml
- ros1/ros_comm/test/test_roscpp/test/launch/service_multiple_providers.xml
- ros1/ros_comm/test/test_roscpp/test/launch/sim_time_test.xml
- ros1/ros_comm/test/test_roscpp/test/launch/spinners.xml
- ros1/ros_comm/test/test_roscpp/test/launch/stamped_topic_statistics_with_empty_timestamp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_retry_tcp.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_self.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscribe_star.xml
- ros1/ros_comm/test/test_roscpp/test/launch/subscription_callback_types.xml
- ros1/ros_comm/test/test_roscpp/test/launch/test-node.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_roscpp/test/launch/timer_callbacks.xml
- ros1/ros_comm/test/test_roscpp/test/launch/wait_for_message.xml
- This file is not part of automated testing.
-
- ros1/ros_comm/test/test_rosmaster/test/test-param-server.xml
- this test is designed to be included into another rostest XML file with a 'master' tag setting the appropriate 'type'
-
- ros1/ros_comm/tools/roslaunch/resources/example-env-substutition.xml
- ros1/ros_comm/tools/roslaunch/resources/roscore.xml
- ROS Core Stack definition Before making any modifications to this file, please read: http://ros.org/wiki/roscore
-
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-all.xml
-
- required
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-include.xml
-
- required
- if_test
- include_arg
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-include2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-included.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-redecl.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-invalid-sub.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg-valid-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-arg.xml
-
- required
- if_test
- optional [default: not_set]
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-clear-params.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env-include.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-env.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless-invalid-both.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-if-unless.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-local-param-group.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-10.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-11.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-12.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-6.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-7.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-8.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid-9.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-invalid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-machine-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-cwd.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-env-value.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-exception.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-machine.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-name-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-pkg.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-required-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn-required.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-invalid-type.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-delete.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-dump.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-invalid-name.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-multi.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-ns.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load-param.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-rosparam-load.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-node-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-params-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-from.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-invalid-name-to.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-remap-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-empty.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-3.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-4.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-invalid-5.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-rosparam-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution-duplicate-anon-names.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-substitution.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-output.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-reqd-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-respawn.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-retry.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-1.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-invalid-time-limit-2.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-test-valid.xml
- ros1/ros_comm/tools/roslaunch/test/xml/test-valid.xml
- ros1/ros_comm/utilities/message_filters/test/test_subscriber.xml
- ros1/ros_comm/utilities/message_filters/test/time_sequencer_unittest.xml
Messages
- Logger [Source]
- Constants [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed4 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed1 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Constants [Source]
- Converged [Source]
- Convergent [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed2 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- Converged [Source]
- MigratedAddSub [Source]
- MigratedExplicit [Source]
- MigratedImplicit [Source]
- MigratedMixed [Source]
- PartiallyMigrated [Source]
- Renamed3 [Source]
- Simple [Source]
- SimpleMigrated [Source]
- SubUnmigrated [Source]
- Unmigrated [Source]
- LatencyMessage [Source]
- ThroughputMessage [Source]
- ChannelFloat32 [Source]
- Point32 [Source]
- PointCloud [Source]
- TestArray [Source]
- TestEmpty [Source]
- TestStringInt [Source]
- TestWithHeader [Source]
- ArrayOfFixedLength [Source]
- ArrayOfVariableLength [Source]
- Constants [Source]
- CustomHeader [Source]
- EmbeddedExternal [Source]
- EmbeddedFixedLength [Source]
- EmbeddedVariableLength [Source]
- FixedLength [Source]
- FixedLengthArrayOfExternal [Source]
- FixedLengthStringArray [Source]
- HeaderNotFirstMember [Source]
- VariableLength [Source]
- VariableLengthArrayOfExternal [Source]
- VariableLengthStringArray [Source]
- WithDuration [Source]
- WithHeader [Source]
- WithMemberNamedHeaderThatIsNotAHeader [Source]
- WithTime [Source]
- ArrayOfMsgs [Source]
- FieldNameChange1 [Source]
- FieldNameChange2 [Source]
- FillEmbedTime [Source]
- FillSimple [Source]
- HeaderTest [Source]
- SameSubMsg1 [Source]
- SameSubMsg2 [Source]
- SameSubMsg3 [Source]
- TypeNameChange1 [Source]
- TypeNameChange2 [Source]
- TypeNameChangeArray1 [Source]
- TypeNameChangeArray2 [Source]
- TypeNameChangeComplex1 [Source]
- TypeNameChangeComplex2 [Source]
- Arrays [Source]
- Composite [Source]
- CompositeA [Source]
- CompositeB [Source]
- Embed [Source]
- Empty [Source]
- Floats [Source]
- RosmsgA [Source]
- RosmsgB [Source]
- RosmsgC [Source]
- Simple [Source]
- String [Source]
- TVals [Source]
- TestArrays [Source]
- TestHeader [Source]
- TestPrimitives [Source]
- TestString [Source]
- ArrayVal [Source]
- EmbedTest [Source]
- Empty [Source]
- Floats [Source]
- HeaderHeaderVal [Source]
- HeaderVal [Source]
- PythonKeyword [Source]
- TestConstants [Source]
- TestFixedArray [Source]
- TransitiveImport [Source]
- TransitiveMsg1 [Source]
- TransitiveMsg2 [Source]
- Val [Source]
- ArrayVal [Source]
- Arrays [Source]
- Embed [Source]
- Floats [Source]
- Simple [Source]
- TVals [Source]
- Val [Source]
- RosmsgA [Source]
- RosmsgB [Source]
Services
- Empty [Source]
- GetLoggers [Source]
- SetLoggerLevel [Source]
- BadTestStringString [Source]
- TestStringString [Source]
- AddTwoInts [Source]
- RossrvA [Source]
- RossrvB [Source]
- ConstantsMultiplex [Source]
- EmptyReqSrv [Source]
- EmptyRespSrv [Source]
- EmptySrv [Source]
- ListReturn [Source]
- MultipleAddTwoInts [Source]
- StringString [Source]
- TransitiveSrv [Source]
- HeaderEcho [Source]
- RossrvA [Source]
- RossrvB [Source]
- DemuxAdd [Source]
- DemuxDelete [Source]
- DemuxList [Source]
- DemuxSelect [Source]
- MuxAdd [Source]
- MuxDelete [Source]
- MuxList [Source]
- MuxSelect [Source]