百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
S

SLAM-application

> 编程语言
开源

LeGO-LOAM、LIO-SAM、LVI-SAM、FAST-LIO2、Faster-LIO、VoxelMap、R3LIVE、Point-LIO、KISS-ICP、DLO、DLIO、Ada-LIO、PV-LIO、SLAMesh、ImMesh、FAST-LIO-MULTI、M-LOAM,

1.2K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

LeGO-LOAM、LIO-SAM、LVI-SAM、FAST-LIO2、Faster-LIO、VoxelMap、R3LIVE、Point-LIO、KISS-ICP、DLO、DLIO、Ada-LIO、PV-LIO、SLAMesh、ImMesh、FAST-LIO-MULTI、M-LOAM,

SLAM-application: installation and test

  • 3D, single-LiDAR without IMU (or optionally with IMU): LeGO-LOAM, KISS-ICP, DLO, CT-ICP, and GenZ-ICP
  • 3D, single-LiDAR with IMU: LIO-SAM, LVI-SAM, FAST-LIO2, Faster-LIO, VoxelMap, R3LIVE, PV-LIO, SLAMesh, ImMesh, iG-LIO, and SR-LIO
  • 3D, multi-LiDARs: FAST-LIO-MULTI, M-LOAM, LOCUS2.0, SLICT1.0, and MA-LIO

Results:

● Single-LiDAR

  • video: Lego-LOAM vs LIO-SAM vs LVI-SAM
  • video2: LIO-SAM vs LVI-SAM
  • video3: LIO-SAM vs FAST-LIO2
  • video4: FAST-LIO2 vs Livox-mapping vs LOAM-Livox using Livox Mid-70 LiDAR, real-world
  • video5: FAST-LIO2 in the building with narrow stairs using Ouster OS0-128, real-world
  • video6: FAST-LIO2 in the narrow tunnels using Ouster OS0-128 on the UAV (drone)
  • video7: Faster-LIO vs FAST-LIO in the building with narrow stairs using Ouster OS0-128, real-world
  • video8: VoxelMap in the building using Intel Realsense L515, real-world
  • video9: R3LIVE in the building and around the building using Livox Mid-70 LiDAR, FLIR Blackfly S, Pixhawk4 mini, real-world
  • video10: FAST-LIO2 vs Ada-LIO vs Point-LIO vs KISS-ICP in the building with narrow stairs, real-world
  • video11: FAST-LIO2 vs Ada-LIO in Gazebo challenging environments
  • video12: DLO vs FAST-LIO2
  • video13: DLO vs DLIO vs Ada-LIO vs FAST-LIO2
  • video15: Ada-LIO vs PV-LIO vs SLAMesh
  • video16: Ada-LIO vs PV-LIO
  • video17: Ada-LIO vs ImMesh

● Multi-LiDARs

  • video14: FAST-LIO-MULTI bundle update vs asynchronous update

Dependencies

  • Common packages

    bash
    $ sudo apt-get install -y ros-noetic-navigation ros-noetic-robot-localization ros-noetic-robot-state-publisher
  • [CMake] version should be more recent than 3.20.5 for CT-ICP

    bash
    $ wget https://github.com/Kitware/CMake/archive/refs/tags/v3.31.3.tar.gz
    $ tar zxf v3.31.3.tar.gz
    $ cd CMake-3.31.3
    $ ./bootstrap
    $ make
    $ sudo make install
  • GTSAM for LVI-SAM and LIO-SAM

    bash
    $ wget -O gtsam.zip https://github.com/borglab/gtsam/archive/4.0.2.zip
    $ unzip gtsam.zip
    $ cd gtsam-4.0.2/
    $ mkdir build && cd build
    $ cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..
    $ sudo make install -j8
  • Ceres solver for LVI-SAM, SLAMesh, and SLICT1.0

    bash
    $ sudo apt-get install -y cmake libgoogle-glog-dev libatlas-base-dev libsuitesparse-dev
    $ wget http://ceres-solver.org/ceres-solver-1.14.0.tar.gz #LVI-SAM
    $ wget http://ceres-solver.org/ceres-solver-2.1.0.tar.gz #SLAMesh, SLICT1.0
    $ tar zxf ceres-solver-1.14.0.tar.gz #LVI-SAM
    $ tar zxf ceres-solver-2.1.0.tar.gz #SLAMesh, SLICT1.0
    $ mkdir ceres-bin
    $ mkdir solver && cd ceres-bin
    $ cmake ../ceres-solver-1.14.0 -DEXPORT_BUILD_DIR=ON -DCMAKE_INSTALL_PREFIX="../solver"  #good for build without being root privileged and at wanted directory
    $ make -j8 # 8 : number of cores
    $ make test
    $ make install
  • CGAL and pcl-tools for R3LIVE

    bash
    $ sudo apt install libcgal-dev pcl-tools
    
    Optionally,
    $ sudo apt install meshlab
  • glog, g++-9 and gcc-9 for Faster-LIO

    bash
    $ sudo apt-get install libgoogle-glog-dev
    $ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    $ sudo apt update
    $ sudo apt install gcc-9 g++-9
    $ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9

Note: Ouster-ros package cannot be built with gcc and g++ with the version higher than 6,

  • When building ouster-ros,
    bash
    catkin b -DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6 -DCMAKE_BUILD_TYPE=Release

Installation (single LiDAR without IMU)

● LeGO-LOAM

bash
$ cd ~/your_workspace/src
$ git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release

● DLO

bash
$ sudo apt install libomp-dev libpcl-dev libeigen3-dev 
$ cd ~/your_workspace/src
$ git clone https://github.com/vectr-ucla/direct_lidar_odometry.git
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release

● CT-ICP

  • [CMake] version should be more recent than 3.20.5 for CT-ICP
    bash
    $ wget https://github.com/Kitware/CMake/archive/refs/tags/v3.31.3.tar.gz
    $ tar zxf v3.31.3.tar.gz
    $ cd CMake-3.31.3
    $ ./bootstrap
    $ make
    $ sudo make install
  • Clone and build
…

● KISS-ICP (ROS1)

Note: KISS-ICP (ROS1) cannot be build with gcc and g++ with the version higher than 9

bash
$ cd ~/your_workspace/src
$ git clone https://github.com/PRBonn/kiss-icp.git
$ git reset --hard 460c6f2
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9

● GenZ-ICP

Note: GenZ-ICP cannot be build with gcc and g++ with the version higher than 9

bash
$ cd ~/your_workspace/src
$ git clone https://github.com/cocel-postech/genz-icp
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9

Installation (single LiDAR with IMU)

● LIO-SAM

bash
$ cd ~/your_workspace/src
$ git clone https://github.com/TixiaoShan/LIO-SAM.git
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release

● LVI-SAM

bash
$ cd ~/your_workspace/src
$ git clone https://github.com/TixiaoShan/LVI-SAM.git
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release

● Trouble shooting for LVI-SAM

  • for OpenCV 4.X, edit LVI-SAM/src/visual_odometry/visual_loop/ThirdParty/DVision/BRIEF.cpp:53
cpp
// cv::cvtColor(image, aux, CV_RGB2GRAY);
cv::cvtColor(image, aux, cv::COLOR_RGB2GRAY);

● FAST-LIO2

bash
$ cd ~/your_workspace/src
$ git clone https://github.com/Livox-SDK/livox_ros_driver.git
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release

$ cd ~/your_workspace/src
$ git clone --recursive https://github.com/hku-mars/FAST_LIO.git
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release

● Faster-LIO

bash
$ cd ~/your_workspace/src
$ git clone https://github.com/gaoxiang12/faster-lio.git

$ cd faster-lio/thirdparty
$ tar -xvf tbb2018_20170726oss_lin.tgz

$ cd ~/your_workspace
$ catkin build -DCUSTOM_TBB_DIR=$(pwd)/src/faster-lio/thirdparty/tbb2018_20170726oss -DCMAKE_BUILD_TYPE=Release

● Faster-LIO on ARM architecture (e.g., Jetson Xavier)

bash
$ cd ~/your_workspace/src
$ git clone https://github.com/gaoxiang12/faster-lio.git

$ cd faster-lio/thirdparty
$ git clone https://github.com/syoyo/tbb-aarch64
$ cd tbb-aarch64
$ ./scripts/bootstrap-aarch64-linux.sh
$ cd build-aarch64
$ make && make install

$ gedit faster-lio/cmake/packages.cmake

Edit line 13 as:
    #set(TBB2018_LIBRARY_DIR "${CUSTOM_TBB_DIR}/lib/intel64/gcc4.7")
    set(TBB2018_LIBRARY_DIR "${CUSTOM_TBB_DIR}/lib")

$ cd ~/your_workspace
$ catkin build -DCUSTOM_TBB_DIR=$(pwd)/src/faster-lio/thirdparty/tbb-aarch64/dist -DCMAKE_BUILD_TYPE=Release

● VoxelMap

bash
$ cd ~/your_workspace/src
$ git clone https://github.com/Livox-SDK/livox_ros_driver.git
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release

$ git clone https://github.com/hku-mars/VoxelMap.git
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release

● Trouble shooting for VoxelMap

  • /usr/include/lz4.h:196:57: error: conflicting declaration ‘typedef struct LZ4_stream_t LZ4_stream_t’ ...
    • You could meet this error in ROS-noetic. Fix as here
bash
$ sudo mv /usr/include/flann/ext/lz4.h /usr/include/flann/ext/lz4.h.bak
$ sudo mv /usr/include/flann/ext/lz4hc.h /usr/include/flann/ext/lz4.h.bak

$ sudo ln -s /usr/include/lz4.h /usr/include/flann/ext/lz4.h
$ sudo ln -s /usr/include/lz4hc.h /usr/include/flann/ext/lz4hc.h

● R3LIVE

bash
$ cd ~/your_workspace/src
$ git clone https://github.com/hku-mars/r3live.git
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release

● Trouble shooting for R3LIVE

  • LiDAR incoming frame too old ...
    • Original Livox-ros-driver does not publish the data with ROS timestamp, but LiDAR time.
    • So, use modified livox-ros-driver here
    • If that does not solve the problem, edit lddc.cpp yourself, line 563:
    cpp
    //livox_msg.header.stamp = ros::Time((timestamp - init_lidar_tim - packet_offset_time )  / 1e9 + init_ros_time);
      livox_msg.header.stamp = ros::Time::now();
      /**************** Modified for R2LIVE **********************/
      ros::Publisher *p_publisher = Lddc::GetCurrentPublisher(handle);
      if (kOutputToRos == output_type_)
      {
        p_publisher->publish(livox_msg);
      }

● How to properly set configuration for R3LIVE

  • Camera calibration - use Kalibr or camera_calibration
    • Kalibr - refer original repo
    • camera_calibration - use as here
  • Lidar-Camera calibration
    • Other spinning LiDARs are not supported yet (for RGB mapping), but try to use lidar_camera_calibration repo, if you want to.
    • For LiVOX LiDAR, use livox_camera_calib repo
      • Record a bag file of LiVOX LiDAR data and capture the image from RGB camera you use.
      • Convert a bag file into a PCD file with (change directories in the launch file):
      bash
      $ roslaunch livox_camera_calib bag_to_pcd.launch
      • Then, calibrate LiDAR and camera as (change directories in the launch and config files):
      bash
      $ roslaunch livox_camera_calib calib.launch

★Note: extrinsic rotational parameter from livox_camera_calib should be transposed in the r3live_config.yaml file. Refer my extrinsic result and r3live config file

Left: Target image. Right: Target PCD

Left: calibrated image and residuals. Right: calibrated image

Sensor configuration of mine: Pixhawk4

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C++lidarlidar-inertial-odometrylidar-odometrymulti-lidar-inertial-odometry

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言