This repository adapts the state-of-the-art LiDAR-Inertial-Visual odometry system, FAST-LIVO
, to our lidar product Active Camera.
FAST-LIVO is a fast LiDAR-Inertial-Visual odometry system, which builds on two tightly-coupled and direct odometry subsystems: a VIO subsystem and a LIO subsystem. The LIO subsystem registers raw points (instead of feature points on e.g., edges or planes) of a new scan to an incrementally-built point cloud map. The map points are additionally attached with image patches, which are then used in the VIO subsystem to align a new image by minimizing the direct photometric errors without extracting any visual features (e.g., ORB or FAST corner features).
If you need further information about the FAST-LIVO
algorithm, you can refer to their official website and contributors:
- Website: https://github.com/hku-mars/FAST-LIVO
- Contributors: Chunran Zheng 郑纯然, Qingyan Zhu 朱清岩, Wei Xu 徐威
Follow the specified content in the official tutorial for your operating system.
Sophus Installation for the non-templated/double-only version.
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build && cd build && cmake ..
make
sudo make install
Clone this repository into a create an existing ros2
workspace and execute the following command to build and install:
colcon build --symlink-install
Edit config/RS_META.yaml
to set the below parameters:
lid_topic
: The topic name of LiDAR data.imu_topic
: The topic name of IMU data.img_topic
: The topic name of camera data.img_enable
: Enbale vio submodule.lidar_enable
: Enbale lio submodule.point_filter_num
: The sampling interval for a new scan. It is recommended that3~4
for faster odometry, and1~2
for denser map.outlier_threshold
: The outlier threshold value of photometric error (square) of a single pixel. It is recommended that50~250
for the darker scenes, and500~1000
for the brighter scenes. The smaller the value is, the faster the vio submodule is, but the weaker the anti-degradation ability is.img_point_cov
: The covariance of photometric errors per pixel.laser_point_cov
: The covariance of point-to-plane redisual per point.filter_size_surf
: Downsample the points in a new scan. It is recommended that0.05~0.15
for indoor scenes,0.3~0.5
for outdoor scenes.filter_size_map
: Downsample the points in LiDAR global map. It is recommended that0.15~0.3
for indoor scenes,0.4~0.5
for outdoor scenes.pcd_save_en
: Iftrue
, save point clouds to the PCD folder. Save RGB-colored points ifimg_enable
is1
, intensity-colored points ifimg_enable
is0
.delta_time
: The time offset between the camera and LiDAR, which is used to correct timestamp misalignment.
After setting the appropriate topic name and parameters, you can directly run RS-FAST-LIVO on the dataset.
extrinsic_T
: translation of LiDAR with respect to IMUextrinsic_R:
: rotation of LiDAR with respect to IMURcl
: translation of LiDAR with respect to cameraPcl
: rotation of LiDAR with respect to cameracamera_pinhole_rs.yaml
: camera intrinsic
Download our collected rosbag files via OneDrive (FAST-LIVO-Datasets) containing xx rosbag files.
ros2 run slam slam_node
Thanks for FAST-LIVO, FAST-LIVO2 and VINS-Mono
The source code of this package is released under GPLv2 license.