PRBonn / kiss-icp

A LiDAR odometry pipeline that just works
https://www.ipb.uni-bonn.de/wp-content/papercite-data/pdf/vizzo2023ral.pdf
MIT License
1.6k stars 321 forks source link

Issue in building a map from rosbags #95

Closed knightshade-aqua closed 1 year ago

knightshade-aqua commented 1 year ago

Dear Sir/ Madam,

Thank you for making the GitHub repository available to us.

I am working on a project to build a 3D map of an environment (bridge) using a clearpath husky. The robot is mounted with lidar scanners, one scanning vertically and the other scanning horizontally. The lidar used is VLP 16. We drove the robot around in the lab and collected the data as a test case scenario. We wanted to construct a 3D map of the lab using the lidar. We are using KISS-ICP for this. We ran the kiss-icp pipeline for rosbags as suggested in the github repository. Given below is the command we ran:

kiss_icp_pipeline --topic /ns1/velodyne_points --visualize messhalle_new.bag

where /ns1/velodyne_points is the point cloud topic and messhalle_new.bag is the rosbag file. The rosbag info is displayed in the screenshot. We had a few issues that we encountered. We could really use your help regarding the issues. We are not entirely sure if we are using the kiss_icp_pipeline correctly.

rosbag_info

  1. We found that there is a large amount of drift when we are trying to create the map. The screenshots of the map creation are attached. The robot motion seems to go in the z-axis instead of staying in the x-y plane. I had driven the robot in the entire lab but the map formed is not the accurate representation of the entire lab. The point clouds are also very sparse.
  2. When we visualize the output we find that the velodyne frame goes in a vertically manner which we think could be attributed to drift, we are not entirely sure regarding this.
  3. According to the original paper we found that the system uses constant velocity model for pose prediction. Does this mean that we must have a copy of the poses from the robot as we move along. When we looked into the kitti dataset we found a file for poses which we think are the ground truth poses and not the poses obtained through the velocity model.
  4. Could VLP 16 be used for the mapping process as it only has 16 scan lines? Would it be able to extract the necessary features.

The rosbag and screenshots of the mapping process are provide below. We did not use any ground truth poses hence I think we got the error of segmentation fault (core dumped)

command_and_output mapping_1 mapping_2 mapping_3 mapping_4

Kindly guide us regarding this query

tizianoGuadagnino commented 1 year ago

Hello, If the platform is moving the z direction it might probably be because the map is too sparse due to the few scan lines in the VP16 and the relatively large voxel size. Have you tried to reduce the max-range to something like 50 or put the voxel size to let's say 0.1 ?

knightshade-aqua commented 1 year ago

Hello,

Thank you for the correction. I implemented the correction and now the results look better. I have attached the screenshot below: image

The issue was because of the voxel size I think as you said. I tried different voxel sizes and as you mentioned 0.1 gave a good result. I tried with a voxel size of even 0.09 but I did not notice much of a difference.

Thank you for the help !!