Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Runtime selectable QoS to allow for recording sensor data with rosbag2 #26

Merged
merged 6 commits into from
Mar 13, 2020
Merged

Runtime selectable QoS to allow for recording sensor data with rosbag2 #26

merged 6 commits into from
Mar 13, 2020

Conversation

tpanzarella
Copy link
Member

Currently, rosbag2 in Eloquent cannot record data whose reliability level is anything but RELIABLE. See: ros2/rosbag2#125. In this package, all sensor data are correctly published with rmw_qos_profile_sensor_data whose reliability is BEST_EFFORT. However, this precludes us from being able to record bag files with rosbag2. Not good for doing offline data analysis and development work. This PR adds a new parameter called use_system_default_qos_for_sensor_data that when set to True uses the rmw_qos_profile_default. When run in this way, rosbag2 can record the sensor topics.

Hopefully the issues with rosbag2 are addressed in Foxy and this patch can be reverted on (I assume) the forthcoming foxy-devel branch.

…ta via

rosbag2 in Eloquent.

Apparently, as of this writing, rosbag2 cannot record topic data whose QoS has
a reliability level of anything but `RELIABLE`. See:
ros2/rosbag2#125. The `rmw_qos_profile_sensor_data`
(which we are using in this project *a priori*) employs `BEST_EFFORT`
reliability. I've added a new parameter
`use_system_default_qos_for_sensor_data` to the node and parameter file. By
default this is set to `False` which maintains the original behavior of this
package. However, if set to `True`, rather than `rmw_qos_profile_sensor_data`
we use ``rmw_qos_profile_default` as our QoS profile for the sensor
topics. This (supposedly) most closely mimics ROS (classic) behavior but more
importantly, allows rosbag2 to record data from these topics. Hopefully this
issue with rosbag2 gets addressed by Foxy and we can deprecate this
feature. But for now, not having the ability to record data for offline
analysis is very limiting and we need something like this in this driver
package.
Copy link
Member

@SteveMacenski SteveMacenski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small things

  • Please add to README table with parameters and descriptions
  • Rename parameter
  • Include quick note in yaml file

ros2_ouster/include/ros2_ouster/ouster_driver.hpp Outdated Show resolved Hide resolved
ros2_ouster/params/os1.yaml Outdated Show resolved Hide resolved
@SteveMacenski
Copy link
Member

Waiting on CI and response on action item

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants