This repository is a modified version of LVI-SAM.
- Add function to get extrinsic parameters.The original code assumes there are no translation between the sensors and their parameters are written in the code. But now both our datasets and LVI-SAM official datasets are working well.
- Add "lidar to imu extrinsics" in params_camera.yaml.
- Using MahonyAHRS to caculate quaternion.So you don't need to prepare a 9-axis IMU.
- Add lidar ring calculation method,whether your lidar provides "ring" information or not,it works.
- Make some changes to the code for sensor alignment.
- Fix depth association between camera and lidar (Default lidar orientation is x--->front,y--->left,z--->up).
- Most of the changes are marked by "# modified".
- If you are using VSCode and "#include xxx" prompt error,please ctrl+shit+p and enter C/C++ Edit Configurations(UI), add the following paths in Include path. /opt/ros/melodic/include/** /usr/include/**
- Please make sure you have the same version of dependencies as LVI-SAM.If you have problems installing or importing multiple version of dependencies,you can refer to this blog.
- You need to download and compile yaml-cpp.
- You can use kalibr to get cam_to_imu,and calibration_camera_lidar to get cam_to_lidar,lidar_to_imu = cam_to_lidar.transpose * cam_to_imu
- If you are looking up for Chinese annotation, please click this link LVI-SAM_detailed_comments.
- You can see the difference between Fix depth association or not in the following pictures.Feature points are not easily go through wall, more reasonable.
- The original version is from LVI-SAM.
- Inspired by this workLVI_SAM_fixed.