rpng / MINS

An efficient and robust multisensor-aided inertial navigation system with online calibration that is capable of fusing IMU, camera, LiDAR, GPS/GNSS, and wheel sensors. Use cases: VINS/VIO, GPS-INS, LINS/LIO, multi-sensor fusion for localization and mapping (SLAM). This repository also provides multi-sensor simulation and data.
GNU General Public License v3.0
427 stars 75 forks source link

Adopt Livox lidar #39

Open qiqzhang opened 1 month ago

qiqzhang commented 1 month ago

Thanks for your wonderful job. When I adopt livox lidar with point time relative to first point time, header time use first lidar point time, but traj is drift than undistorted pointcloud. what should i do to adopt livox lidar

qiqzhang commented 1 month ago

I change some code to adopt livox,only lidar + imu run, like this, success = state->get_interpolated_pose(lidar_inL->time + lidar_inL->pointcloud->points[i].curvature * 1e-6, RGtoIi, pIiinG);

if ((it)->time + state->lidar_dt.at((it)->id)->value()(0) + (it)->pointcloud->points[(it)->pointcloud->points.size() -1 ].curvature * 1e-6 > state->newest_clone_time()) { it++; continue; }

the gap of lidar first timestamp with last timestamp about 100ms, i also try use get_interpolated_pose_linear, but also misalign. 1、use get_interpolated_pose function, raw_remove_motion_blur set false get_interpolated_pose 2、use get_interpolated_pose_linear function, raw_remove_motion_blur set false image 3、raw_remove_motion_blur set true,pointcloud will mismatch; undistorted

I try simulation with only lidar and set raw_remove_motion_blur true roslaunch mins simulation.launch cam_enabled:=false lidar_enabled:=true the result is also mismatch, use get_interpolated_pose_linear is correct image if set raw_remove_motion_blur false,
roslaunch mins simulation.launch cam_enabled:=false lidar_enabled:=true the result is correct image

anyone can