hku-mars / LiDAR_IMU_Init

[IROS2022] Robust Real-time LiDAR-inertial Initialization Method.
GNU General Public License v2.0
803 stars 138 forks source link

Strange behavior during "Online Refinement". #94

Open SangHunHan92 opened 5 months ago

SangHunHan92 commented 5 months ago

wrong2

Hi! Thanks for great work!!

I ran the code in my setup using Velodyne 32 channels and found that the code behaved a little strangely.

During Initialization, it works very well. However, after Initialization was completed, my setup went to a strange place during Online Refinement! For this reason, the results of Initialization are very good, but the result of Online Refinement shows incorrect extrinsic parameter values.

I ran the code with my saved rosbag file. Could there be a problem in this part?

image

I also attached my config file for reference. thank you !

zfc-zfc commented 5 months ago

rosbag

This issue may be caused by an excessive number of points and the non-real-time lidar odometry. Due to the non-real-time case of LO, the IMU buffer stores a significant amount of data. When the initialization is completed and the system transitions into LIO mode, the timestamps of these IMU measurements are not modified, leading to incorrect results. One possible way to improve this is by reducing the number of point clouds.

However, generally speaking, we have more confidence in the results obtained during initialization and use the calibrated extrinsic parameters and time offsets in FAST-LIO2. The refinement process, which involves optimizing a large number of variables, sometimes yields extrinsic parameters that are not as accurate as the results obtained during initialization.

zfc-zfc commented 5 months ago

wrong2 wrong2

Hi! Thanks for great work!!

I ran the code in my setup using Velodyne 32 channels and found that the code behaved a little strangely.

During Initialization, it works very well. However, after Initialization was completed, my setup went to a strange place during Online Refinement! For this reason, the results of Initialization are very good, but the result of Online Refinement shows incorrect extrinsic parameter values.

I ran the code with my saved rosbag file. Could there be a problem in this part?

image

I also attached my config file for reference. thank you !

cut_frame_num = 20? That's too large, 3~4 will be fine.

SangHunHan92 commented 5 months ago

Thank you for your kind reply. It seems that I should use the result of initialization.

However, the recommended value for cut_frame_num = 3 ~ 4 is too low. In my case, the minimum value of cut_frame_num for correct results is 10 ~ 20, and cut_frame_num = 3~4 shows strange behavior, such like the Online Refinement process above.

zfc-zfc commented 5 months ago

Thank you for your kind reply. It seems that I should use the result of initialization.

However, the recommended value for cut_frame_num = 3 ~ 4 is too low. In my case, the minimum value of cut_frame_num for correct results is 10 ~ 20, and cut_frame_num = 3~4 shows strange behavior, such like the Online Refinement process above.

It seems strange. If a point cloud frame is splitted into 10 parts based on timestamps, each frame would only have a FoV of 36°, which could easily lead to degradation of the LiDAR. Can you share your bag with me so that I can investigate this issue?