Configurable qos and default history depth #229
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related Issues & PRs
#190
ouster-lidar/ouster-sdk#120
Summary of Changes
Set history depth on lidar packets topic to be something more reasonable.
Allow for configuring qos of the packet topics using parameters. https://design.ros2.org/articles/qos_configurability.html
Note that this requires at least ROS Galactic. It is not compatible with Foxy or earlier. If that backward compatibility is desirable I would like to instead expose a parameter that at least can set the history depth.
This is desirable because neither the system default qos nor the sensor data qos profiles have very large history depths, and the lidar packet topic can be publishing at hundreds of hertz, and I believe it might be dropped packets that are causing missing data in the pointcloud. For example:
Note that this also applies to intraprocess communication since the intraprocess buffer is set to the size of the history depth qos.
Validation
Lost packets show up if the os_cloud process is under high load, resulting in a "propeller effect". I can confirm that increasing the history depth eliminates this issue.