Other subjects also has sensor fusion related content, while the papers here are more specific with multi-sensor fusion.
Table of Contents
Lidar Image summary (2022)
we normally have two types of systems :
- lidar based : camera pose as initial estimation and as constrain. I personal perfer this one, since our system is generally lidar based.
- project lidar to camera, and form a vio odometry system. It wastes lots of calculation, I don’t think it is necessary to maintain two slam system.
- project camera information to lidar pts, to form lidar pts constrain. This seems more reasonable to me.
- camera based : lidar project to camera to offer depth
visual-lidar-imu (with vins vio odometry)
visual-lidar-imu (with direct method image odometry)
Compare R3LIVE++, LVI-SAM and Mine:
R3LIVE++ | LVI-SAM | Mine |
---|---|---|
single system | two system | single system |
Optical flow tracking | Slide window VIO : VINS-MONO | Direct sparse tracking |
with photometric calibration | without | with photometric calibration |
Filter based LIO (FAST-LIO2) | Pose Graph Based LIO (LOAM) | Filter based LIO (FAST-LIO2) |
2022
R3LIVE++: A Robust, Real-time, Radiance reconstruction package with a tightly-coupled LiDAR-Inertial-Visual state Estimator, github code following R3LIVE, with the camera photometric calibration and the online estimation of camera exposure time.
2021
R3LIVE: A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package. Visual-Lidar-Imu filter.
- even though in its paper it said it has two system, it actually uses one single imu-based filter back bone. so it uses imu for filter predict, then has lidar and image measurements.
- use lidar pointcloud for VIO tracking, VIO system won’t optimize map points.
- finally use MVS to make mesh (delaunay triangulation), ‘texturing’ is to update pcl color with the raw lidar map.
LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping (looks similar to V-LOAM + IMU) optimization with the following factors (with two system) (It is actually not so tightly coupled):
- Use lidar information in VINS (difference compared to VINS)
- use lidar odometry pose for vins initialization
- project lidar cloud to get vio feature depth neighbor pts model a plane,
- feature depth in vins is anchored by the first observation. so here depth from lidar also valid only for first observation.
- in marginalization if the marginalized pt has lidar depth, move its flags to the next.
- set depth constant if has lidar depth.
- Use vision in VIO-SAM (difference compared to VIO-SAM)
- use visual loop detection result as lidar loop candidate (to further process ICP).
- use VINS pose as initial pose for lidar registration.
My implementation: I use FAST-LIO2 base instead of V-LOAM base.
- looks good while the movement is not too dramatic.
- while VINS is not stable when movement (for an example in car), or scene has lots of moving objects.
2020
CamVox, Lidar visual mapping using livox.
- Livox generate dense lidar cloud, match visual edge with lidar intensity image edge for extrinsic parameters calibration.
- IMU for lidar un-distortion.
- Run ORBSLAM2 RGBD pipeline.
Augmenting Visual Place Recognition with Structural Cues Use both image (e.g. NetVLAD 2016) and 3d cloud (e.g. PointNetVLAD 2018) encoders.
[Stereo Localization in LiDAR Maps]https://github.com/tony1098/Stereo-Localization-in-LiDAR-Maps). Localize stereo camera in pre-built lidar map.
- Using ZED stereo camera, opencv (StereoSGBM and DisparityWLSFilter) to compute depth image.
- Registration using Nelder-Mead method.
RGB2LIDAR: Towards Solving Large-Scale Cross-Modal Visual Localization DL match rgb image and depth image (from lidar cloud)
Lidar-Monocular Visual Odometry using Point and Line Features (loosely coupled)
- image -> point feature (ORB), line feature (LSD) -> project lidar to estimat depth -> odometry -> local BA current pose and landmarks.
- ICP relative pose factors.
- Global BA using ICP factors, ORB factors, LSD factors.
LIC-Fusion 2.0: LiDAR-Inertial-Camera Odometry with Sliding-Window Plane-Feature Tracking Tracking planes in the sliding window.
2019
CMRNet: Camera to LiDAR-Map Registration. Project a depth into plane (from an initial pose guess), CMRNet use RGB and depth as input, output 2D correspondings for each depth value. Finally PnP-RANSAC for pose estimation.
2018
LIMO: Lidar-Monocular Visual Odometry
- Depth estiamtion : project lidar into image -> estimate local plane (select local range, foreground segmentation) -> check the depth.
- Visual Odometry, global BA.
2017
DSAC Differentiable RANSAC. replace non-differentiable parts of RANSAC algorithm with approximated differentiable parts (by soft argmax and probabilistic selection). Then make a deep learning DSAC. (As I understand, RANSAC is mathematically proved, I don’t understand how its accuracy can be improved).