HKUST-Aerial-Robotics / G3Reg

A fast and robust global registration library for outdoor LiDAR point clouds.
MIT License
204 stars 13 forks source link

run it on a 16-line LiDAR #3

Closed Raidenzheng closed 3 months ago

Raidenzheng commented 3 months ago

Have you tried running on a 16 line laser and what was the effect? I tried it with a 16-line LiDAR, but the effect was not good. The extracted plane\line\cluster also have a poor effect.Is it because the point cloud is too sparse?

qiaozhijian commented 3 months ago

Thank you for your feedback. Are you testing G3Reg on Nuscenes? or some other datasets. I have thought about it, but I didn't try it. Would you mind uploading some pairs (better with GT in our format)? I can finetune the parameters for you.

Raidenzheng commented 3 months ago

I can provide the rosbag files and some data in .pcd format. How would you prefer to receive them? Is BaiduNetdisk convenient for you? The total data amounts to approximately 40GB. This is an indoor data package. I think there are obvious large planar features at the start of indoor that can be used for global localization. And, as it moves to the middle of the workshop, it enters a degraded environment. here is the link of BaiduNetdisk: link:https://pan.baidu.com/s/1EsWC4S3I5nMU4wVs1SrxUA?pwd=sger code:sger

Raidenzheng commented 3 months ago

Can I ask which version of PCL you are using? I use the PCL-1.12. And I modified many instances of boost::shared_ptr to std::shared_ptr in the source code to get it to compile successfully. I saw a lot of formal parameters of type "boost::shared_ptr" in the source code, but the actual parameters were of type "std::shared_ptr". I couldn't compile it successfully, so I modified them. Did I do the right thing?? or is your compilation environment able to automatically convert between boost::shared_ptr and std::shared_ptr?

qiaozhijian commented 3 months ago

I can provide the rosbag files and some data in .pcd format. How would you prefer to receive them? Is BaiduNetdisk convenient for you? The total data amounts to approximately 40GB. This is an indoor data package. I think there are obvious large planar features at the start of indoor that can be used for global localization. And, as it moves to the middle of the workshop, it enters a degraded environment. here is the link of BaiduNetdisk: link:https://pan.baidu.com/s/1EsWC4S3I5nMU4wVs1SrxUA?pwd=sger code:sger

It's very slow of BaiduDisk. Could you please send it by the email attachment? I perfer pcd files. Giving me several pcd pairs is okay. I don't need too much. Thank you.

qiaozhijian commented 3 months ago

Can I ask which version of PCL you are using? I use the PCL-1.12. And I modified many instances of boost::shared_ptr to std::shared_ptr in the source code to get it to compile successfully. I saw a lot of formal parameters of type "boost::shared_ptr" in the source code, but the actual parameters were of type "std::shared_ptr". I couldn't compile it successfully, so I modified them. Did I do the right thing?? or is your compilation environment able to automatically convert between boost::shared_ptr and std::shared_ptr?

Did you install libboost-dev on your ubuntu system?

qiaozhijian commented 3 months ago

I have added a new file that can display the effects of point cloud segmentation. You can refer to the command

 ./bin/demo_seg configs/apollo_lc_bm/gem_pagor.yaml examples/data/velodyne/source.pcd 

to run it.

If you want to try with your own point cloud, you first need to replace the path to the point cloud, and also change the "sensor_dir" in the yaml file to "configs/sensors/velodyne16".

Below is a visual comparison of the segmentation of your point cloud by Velodyne64 and Velodyne16.

2024-05-19_17-25_1 2024-05-19_17-25

However, I have not finely tuned the parameters for Velodyne16, so there is still room for improvement. The main parameters that need adjustment are the plane segmentation and TRAVEL clustering.