Git Product home page Git Product logo

fast-lio-sam-qn's Introduction

FAST-LIO-SAM-QN


Computational complexity
in KITTI seq. 05 with i9-10900k CPU

  • FAST-LIO-SAM: max 118% CPU usage, 125 times of ICP, 124.9ms consumption on average
  • FAST-LIO-SAM-N (only Nano-GICP): max 164% CPU usage, 130 times of ICP, 61.9ms consumption on average
  • FAST-LIO-SAM-QN:
    • Advanced matching - max 325% CPU usage, 85 times of ICP, 140ms consumption on average
    • Optimized matching (with max 200 correspondences downsampling) - max 569% CPU usage, 90 times of ICP, 128.6ms consumption on average
  • Note: loop_timer_func runs at fixed basic/loop_update_hz. So how many times of ICP occurred can be different depending on the speed of matching methods.


KITTI seq 05 top view - (left): FAST-LIO2 (middle): FAST-LIO-SAM (bottom): FAST-LIO-SAM-QN


KITTI seq 05 side view - (top): FAST-LIO2 (middle): FAST-LIO-SAM (bottom): FAST-LIO-SAM-QN

Dependencies

  • C++ >= 17, OpenMP >= 4.5, CMake >= 3.10.0, Eigen >= 3.2, Boost >= 1.54
  • ROS
  • GTSAM
    wget -O gtsam.zip https://github.com/borglab/gtsam/archive/refs/tags/4.1.1.zip
    unzip gtsam.zip
    cd gtsam-4.1.1/
    mkdir build && cd build
    cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..
    sudo make install -j16
  • Teaser++
    git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
    cd TEASER-plusplus && mkdir build && cd build
    cmake .. -DENABLE_DIAGNOSTIC_PRINT=OFF
    sudo make install -j16
    sudo ldconfig
  • tbb (is used for faster Quatro)
    sudo apt install libtbb-dev

How to build and use

  • Get the code and then build the main code.
    cd ~/your_workspace/src
    git clone https://github.com/engcang/FAST-LIO-SAM-QN --recursive
    
    cd ~/your_workspace
    # nano_gicp, quatro first
    catkin build nano_gicp -DCMAKE_BUILD_TYPE=Release
    # Note the option!
    catkin build quatro -DCMAKE_BUILD_TYPE=Release -DQUATRO_TBB=ON
    catkin build -DCMAKE_BUILD_TYPE=Release
    . devel/setup.bash
  • Then run (change config files in third_party/FAST_LIO)
    roslaunch fast_lio_sam_qn run.launch lidar:=ouster
    roslaunch fast_lio_sam_qn run.launch lidar:=velodyne
    roslaunch fast_lio_sam_qn run.launch lidar:=livox

Structure

  • odom_pcd_cb
    • pub realtime pose in corrected frame
    • keyframe detection -> if keyframe, add to pose graph + save to keyframe queue
    • pose graph optimization with iSAM2
  • loop_timer_func
    • process a saved keyframe
      • detect loop -> if loop, add to pose graph
  • vis_timer_func
    • visualize all (Note: global map is only visualized once uncheck/check the mapped_pcd in rviz to save comp.)

Memo

  • Quatro module fixed for empty matches
  • Quatro module is updated with optimizedMatching which limits the number of correspondences and increased the speed

fast-lio-sam-qn's People

Contributors

engcang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

fast-lio-sam-qn's Issues

A problem when catkin build

Hi.
Thanks for your work!
But sadly i meet the problem as follows when catkin build:
fba387f6-f4b7-49b5-a78e-85e5227fb712
Is this normal? Can you give me some advice?

std::length_error

Thanks for sharing the code. I encountered an error after running the launch file a few seconds.
fastliosam_error

Question about the repo

Hi, thank you for your great work. I'm having some problems testing your code.

After I run the following command roslaunch fast_lio_sam_qn run.launch lidar:=ouster, two rvizs appear on the screen.
2023-10-26 15-57-51screnn

The following is displayed in the terminal:

started core service [/rosout]
process[rviz_lio-2]: started with pid [7151]
process[rviz_sam-3]: started with pid [7152]
process[fast_lio_sam_qn_node-4]: started with pid [7153]
process[laserMapping-5]: started with pid [7154]
Multi thread started 
p_pre->lidar_type 3
~~~~/home/liang/fastliosamqn/src/FAST-LIO-SAM-QN/third_party/FAST_LIO/ file opened
[ WARN] [1698307158.405163953]: Main class, starting node...

After I play the bag,terminal display:

QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)

And I found that the point cloud in one of them doesn't move, and the other one seems to be the result of lio-sam.
After a while,terminal display:

[fast_lio_sam_qn_node-4] process has died [pid 7153, exit code -11, cmd /home/liang/fastliosamqn/devel/lib/fast_lio_sam_qn/fast_lio_sam_qn_node __name:=fast_lio_sam_qn_node __log:=/home/liang/.ros/log/8febb6a8-73d5-11ee-870b-3c7c3f4c5a16/fast_lio_sam_qn_node-4.log].
log file: /home/liang/.ros/log/8febb6a8-73d5-11ee-870b-3c7c3f4c5a16/fast_lio_sam_qn_node-4*.log

Is this normal? Can you give me some advice?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.