-
Notifications
You must be signed in to change notification settings - Fork 152
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
ROS-396: retrieve xyz for non hit #406
base: ros2
Are you sure you want to change the base?
Conversation
Hi @Samahu I’ve actually been working on a similar solution, but in my case, I used a VLP16 sensor, which includes a feature that allows it to send the entire point cloud. From what I understand, Ouster compresses the point cloud by only including return points, whereas Velodyne sends non-return points as NaN values. Aligning these non-return points with the correct ring and azimuth was somewhat challenging, so having a feature that outputs these points with their original orientation would be incredibly useful for my work. |
I think there is some miscommunication, this MR still sends the entire PointCloud when you choose The mainline of the ouster-ros driver currently sets no returns to NaN by default, these NaN values will still be sent in case of All this MR is doing is replace NaN values with a valid point at a fixed distance which you can use to infer the direction from the generated PointCloud. So I am not sure what are we still missing here. |
I think it would be nice to set some specific value on some point field like intensity, reflectivity that notify ray did not return |
Hi @Samahu Maybe, as @SwiftGust suggests, you could delimit a specific field for such values, or directly enable a new field such as (is_hit = 0 or 1). But thank you very much for the effort. I want to ask about why I am receiving the topic /ouster/points at a very low rate. The rest of the topics published by the sensor are at 10Hz as I set up in the launch file arg name="lidar_mode" default="512x10"
|
The issue with this proposal is that some point representation like the PointXYZ (which is a supported point type in the driver) doesn't have an intensity. Other point types have other fields but not intensity. Regardless, you would still need to substitute zero RANGE value (no-return) with some value before computing xyz coordinates. |
The one alternative is to create a custom Point type that encode this information in a separate field ( |
I bet you are using FastDDS, try switching to CycloneDDS ( as noted here ) |
Related Issues & PRs
Summary of Changes
TODO(s):
Validation
This image was generated by manually setting the invalid (out-of-range) value to 1m distance.