minwoo0611 / MA-LIO

Asynchronous Multiple LiDAR-Inertial Odometry using Point-wise Inter-LiDAR Uncertainty Propagation
GNU General Public License v2.0
287 stars 36 forks source link

Use for aligning multi-lidar systems #28

Open schablonmassig opened 1 month ago

schablonmassig commented 1 month ago

Hi! First off, thanks for open sourcing MA-LIO. I've had great success in using it. I have a 4x lidar setup, which MA-LIO seems to find high-quality extrinsic parameters for very quickly, considering the mapping quality it produces. In comparison, the extrinsics produced by MLCC are far from as precise, and require a more ardous process of calculating.

Would you mind pointing me in the right direction for estimating the convergence of the extrinsic parameters for each lidar, as well as the covariance? My use case is exporting the parameters as a txt-file for each pose, and then analyzing these, and produce a calibration report, using python. Id be happy to share the script.

My second, and somewhat related question is if it would be possible to turn off the time-wise synchronization. You have shown how to lock translation extrinsics in another issue, however the time domain synchronization seems more deeply integrated and thus harder to single out. The use case is turning it on and off in order to see how effective a hardware time sync is.

minwoo0611 commented 1 week ago

Hello, @schablonmassig,

Firstly, thank you for utilizing our MA-LIO. I'm glad to hear that you've had great success with it, especially with your 4x LIDAR setup. It's encouraging to know that MA-LIO quickly enhances the overall mapping quality, which can greatly benefit your research.

Regarding your questions:

  1. Estimating Convergence of Extrinsic Parameters and Covariance: This repository focuses primarily on odometry rather than calibration, so we do not provide a specific script for analyzing the results. Precise calibration in MA-LIO is achieved only when the trajectory is accurately estimated. For estimating the convergence of the extrinsic parameters and their covariance, I recommend exploring other calibration methods better suited for this purpose.

  2. Disabling Time-Wise Synchronization: The time synchronization method is deeply integrated into the system, making it challenging to disable entirely. However, time synchronization is closely related to point undistortion. B-spline interpolation is primarily used for undistortion, and you can find its implementation here: IMU_Processing.hpp#L483. While other parts also utilize B-spline interpolation, it plays a minor role. I recommend revising this part based on the Fast-LIO2 approach, which uses a discrete model for undistortion. You can reference their implementation here: Fast-LIO IMU_Processing.hpp#L313-L330.

I hope this helps point you in the right direction. If you have any further questions, feel free to make additional issues.