Here is my initial draft for the proposed message:
-
MAIN DEPENDENCY: https://github.com/ouster-lidar/lidar-msgs
-
DOWNSTREAM: https://github.com/ouster-lidar/lidarscan-msg-yolo-demo
The following PR provides ouster-ros implementation of the lidar_msgs::LidarInfo and lidar_msgs::LidarScan
- ouster-ros implementation First draft of implementing the proposal for `lidar_msgs::LidarInfo` and `lidar_msgs::LidarScan` messages by Samahu · Pull Request #536 · ouster-lidar/ouster-ros · GitHub
This demo is a complete working example but there are still plenty of TODO(s) which I’ll try to summarize:
- Use default SI unit (meters) for the range data.
- I am considering to have LidarInfo provide per pixel angles (ScanPattern) instead of the current implementation which provides angles per row .. this will signifitcantly increase the LidarInfo message size but is more generic and can support other Lidar sensor types.
- I am yet to implement the association between LidarInfo and LidarScan messages, the current implementation doesn’t handle changes to LidarInfo.
- There is a minor problem with the current
LidarScanToPointCloudmethod implementation in which it expect the LidarScan message in the staggered form. However, this contradicts with the expectation for the consumer with LidarScan 2D channels. So I need to re-work the code a bit such that the driver publish destaggered (corrected) LidarScan message that can be readily passed to 2D operator while maintaining the ability to convert the same message to a PointCloud with no artificats. - I still have work to be done to show case the dual utilization of the
LidarScanmessage for detection and representing the results as 3DPointCloud(s). The example simply plots 2D channels and the 3D PointCloud with no links. - Finally, I want to provide a workspace which includes all the required packages for those interested in contributing or reviewing the proposal and trying it out.
Future Work:
- Check if we can leverage some of the image_transport utilities to compress LidarScan message during transport.
- Address the copying when exposing
LidarScanToPointCloudmethod to the python.