wh200720041 / floam

Fast LOAM: Fast and Optimized Lidar Odometry And Mapping for indoor/outdoor localization IROS 2021
Other
1.05k stars 274 forks source link

Would you mind adding Velodyne 16 support? #2

Closed shibowing closed 4 years ago

shibowing commented 4 years ago

Hi! Congratulations for your great work! I think you really make the loam algorithm easy to understand. However, I just tested this algorithm on my Velodyne 16 dataset. The result is not promising. Since your algorithm needs undistorted point clouds, I just preprocess my dataset and feed the undistorted point cloud. Even though the dataset is undistorted, the output is still not good. I think it must be something wrong with the config. Would you mind adding new launch files for vlp 16? Thank you very much!

Compared with Aloam, would you mind summarizing why your method is so fast? Which one do you think is most helpful for improve real-time performance? Thank you very much!

  1. remove auto jacobian
  2. only scan to the local map
  3. reduce laser range and frequently downsampling
  4. anything else? floam
wh200720041 commented 4 years ago

Hi shibowing:

Thanks for your feedback.

To use VLP-16, you need to set "scan_line" to 16 in launch file. I have added comments.

I think it only has very limited effects for distorted point clouds, as long as your robot does not move very fast. I am not sure about your case because I don't have your dateset. Based on the picture I think the algorithm should work.

Currently we are not allowed to enter lab due to COVID-19 situation, so I cannot test vlp-16 on my local platform. I will carry out some experiments next month. Perhaps I can provide some local experiments data for evaluation by then.

For your last question, I think point 1 and point 3 contribute most, while point 2 only reduce memory cost.

Thanks

Regards Han

shibowing commented 4 years ago

Thanks a lot for your answer! That is great!

Thanks again for your sharing!

wh200720041 commented 4 years ago

Hi @shibowing I have tested on my own Velodyne VLP16 and you may find the velodyne support from the updated version. Since I tested the code on KITTI dataset, I changed some parameters and forgot to highlight. I think the grid size was set high for large scale mapping. For indoor use you may want to change the map_resulotion to a smaller value. You may try the new launch file floam_velodyne.launch for a quick test.

I think the localization thread is working correctly on VLP-16, while I observed one bug on the mapping thread only. I think there wont be any issue when you play rosbag file. However, the bug comes when I launch velodyne sensor instead. If you also encounter this problem, please remove the mapping thread. I will fixed this problem later.

And thanks again for your valuable question. And let me know if the bug still happens on your side.

Regards Han

FishInWave commented 2 years ago

Hi shibowing:

Thanks for your feedback.

To use VLP-16, you need to set "scan_line" to 16 in launch file. I have added comments.

I think it only has very limited effects for distorted point clouds, as long as your robot does not move very fast. I am not sure about your case because I don't have your dateset. Based on the picture I think the algorithm should work.

Currently we are not allowed to enter lab due to COVID-19 situation, so I cannot test vlp-16 on my local platform. I will carry out some experiments next month. Perhaps I can provide some local experiments data for evaluation by then.

For your last question, I think point 1 and point 3 contribute most, while point 2 only reduce memory cost.

Thanks

Regards Han

Point 2, i.e. only scan-to-map rather than original odometry-mapping mode in LOAM, obviously improve real-time performance, isn't it?