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

Filtering out dust/fog/smoke using DUAL RETURNS #248

Open
Pallav1299 opened this issue Nov 2, 2023 · 6 comments
Open

Filtering out dust/fog/smoke using DUAL RETURNS #248

Pallav1299 opened this issue Nov 2, 2023 · 6 comments
Assignees
Labels
question Further information is requested

Comments

@Pallav1299
Copy link

Pallav1299 commented Nov 2, 2023

Hi @Samahu @kairenw

  1. We're using Ouster OS0-32 Rev-06 Lidar. We're using the latest ouster_ros driver in LEGACY mode. We recently realized that dust is being detected in the pointcloud. I know that we can get two pointcloud rostopics (points1, points2) by setting to DUAL RETURN mode in ROS driver, and leverage the second pointcloud topic to get pointcloud data without dust particles detection. But, how should I use the second pointcloud?
  2. Shouldn't the pointcloud comprise of points with second return whenever there are dual returns? Please provide reference documentation for the same.
  3. Could you please also tell, which resolutions support DUAL RETURN mode?

Platform:

  • Ouster Sensor? OS-0
  • Ouster Firmware Version? v2.5.2
  • ROS version/distro? melodic
  • Operating System? Linux
  • Machine Architecture? arm64
  • git commit hash (if not the latest).
@Pallav1299 Pallav1299 added the question Further information is requested label Nov 2, 2023
@Samahu Samahu self-assigned this Nov 3, 2023
@Samahu
Copy link
Contributor

Samahu commented Nov 6, 2023

@Pallav1299 I agree there is a lack of documentation/support on how to utilize the second return to filter smoke or dust and other particles. But in principle when dual mode is enabled the first return penetrates through fog/smoke etc. The second return has measurements that correspond to less dense objects such as tree leaves, smoke, maybe glass, etc. You could enable the dual return in the ROS driver and check what type of objects gets captured in the second point cloud and how it differs from the first point cloud (both point clouds are visualized with different colors in RVIZ). It is currently left open to the user on how they want to utilize the second point cloud.

@Pallav1299
Copy link
Author

Pallav1299 commented Nov 16, 2023

@Samahu, thanks for your response. I saw this THREAD and this VIDEO of Ouster's Dirt drive performance. It seems to be performing quite good.

Questions:

  1. Is there a parameter to check which return is stronger in dual return mode?
  2. Can you please tell what approach was used in the video to filter out the dirt/dust from the raw pointcloud? Was only dual return used for this?
  3. Is it possible to share this Dirt Drive, Smoke and Fog test data(ROSBAG) and ouster configuration to test it ourselves? It would be very helpful.
  4. Is there a measurement metric for fog/smoke/dust density, under which Ouster performs good? Or is it general?

@Samahu
Copy link
Contributor

Samahu commented Nov 20, 2023

@Pallav1299 I am asking around if we can publicly share access to the raw data of the recording that you referenced. According to one of my colleagues the capture didn't utilize any specific technique to filter out the dust, this was the raw output of the sensor.

I could also refer you to some additional literature about the subject (which may or may not apply to some or all of our sensors):

@Pallav1299
Copy link
Author

@Samahu, sorry for not replying sooner.
I'm attaching link to compressed ROSBAG data that we collected using OS-32 in Dual_Return profile.
DATA_LINK

I want to understand what’s leading to different results in our data and the DIRT DRIVE data from Ouster related to more dust particles being detected.

We seek your insights regarding dust/smoke/fog filtering to handle complex use-cases.

@Samahu
Copy link
Contributor

Samahu commented Nov 27, 2023

@Pallav1299 You should take advantage of the signal/intensity channel in both returns since it response is weak to smoke and fog. The PointCloud(s) generated by ouster-ros driver directly embeds this information for each point (refer to https://github.com/ouster-lidar/ouster-ros/blob/master/include/ouster_ros/os_point.h). Utilizing this information and picking the right threshold will enable you to filter unwanted particles from the scene. Simply relying on the raw xyz data from the range data won't be sufficient.

@Pallav1299
Copy link
Author

Pallav1299 commented Dec 4, 2023

@Samahu, Thanks for sharing the resources and insights.

  • In dual return mode we get two pointclouds on, ouster/points and ouster/points2 rostopics? What's the measure of strongest return? Is it the intensity/signal channel? Does "ouster/points" topic always the strongest return and "ouster/points2" the second strongest?

Utilizing this information and picking the right threshold will enable you to filter unwanted particles from the scene. Simply relying on the raw xyz data from the range data won't be sufficient.

  • Does it mean for different type of environment we've to do intensity/signal channel thresholding to filter out unwanted particles? How can we make it more general?
  • Design of Dust-Filtering Algorithms for LiDAR Sensors Using Intensity and Range Information in Off-Road Vehicles
  • We're tried this but it runs offline for us. Trying to make it run realtime for our use case.

3. Is it possible to share this Dirt Drive, Smoke and Fog test data(ROSBAG) and ouster configuration to test it ourselves? It would be very helpful.

  • Can this data be shared publicly for testing purposes?

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

No branches or pull requests

2 participants