吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

激光SLAM:Faster-Lio算法編譯與測試

新機器視覺 ? 來源:古月居 ? 2024-01-12 10:22 ? 次閱讀

來源:古月居

前言

Faster-LIO是基于FastLIO2開發(fā)的。FastLIO2是開源LIO中比較優(yōu)秀的一個,前端用了增量的kdtree(ikd-tree),后端用了迭代ESKF(IEKF),流程短,計算快。Faster-LIO則把ikd-tree替換成了iVox,順帶優(yōu)化了一些代碼邏輯,實現(xiàn)了更快的LIO。在典型的32線激光雷達(dá)中可以取得100-200Hz左右的計算頻率,在固態(tài)雷達(dá)中甚至可以達(dá)到1000-2000Hz,能夠達(dá)到FastLIO2的1.5-2倍左右的速度。當(dāng)然具體數(shù)值和計算平臺相關(guān)。

FasterLIO使用了一種基于稀疏體素的近鄰結(jié)構(gòu)iVox(incremental voxels)。我們會發(fā)現(xiàn)這種結(jié)構(gòu)用來做LIO更加合適,可以有效的降低點云配準(zhǔn)時的耗時,也不會影響LIO的精度表現(xiàn)。

iVox也可以被集成到其他LO或LIO里,但是大部分方案里,最近鄰并不是主要的計算瓶頸,gtsam/ceres什么的耗時相比最近鄰那可太多了。、把iVox集成到Lego-LOAM里,、主要只是省了增量地圖構(gòu)建那部分時間,優(yōu)化方面沒什么變化(點少)。所以iVox與FastLIO倒是相性更好一些。

編譯

部署系統(tǒng):ubuntu20.04
ROS版本: noetic

github 地址:https://github.com/gaoxiang12/faster-lio

下載源碼

git clone https://github.com/gaoxiang12/faster-lio

正克隆到 ‘faster-lio’…
remote: Enumerating objects: 224, done.
remote: Counting objects: 100% (108/108), done.
remote: Compressing objects: 100% (43/43), done.
remote: Total 224 (delta 76), reused 65 (delta 65), pack-reused 116
接收對象中: 100% (224/224), 38.13 MiB | 1.49 MiB/s, 完成.
處理 delta 中: 100% (97/97), 完成.

985009e6-b0db-11ee-8b88-92fbcf53809c.png

將原文件拷入ros工作空間

依賴

?ROS (melodic or noetic)

?glog: sudo apt-get install libgoogle-glog-dev

?eigen: sudo apt-get install libeigen3-dev

?pcl: sudo apt-get install libpcl-dev

?yaml-cpp: sudo apt-get install libyaml-cpp-dev

編譯

catkin_make

報錯1:

CMake Error at /home/jk-jone/jone_ws/build/livox_ros_driver/livox_ros_driver/cmake/livox_ros_driver-genmsg.cmake:14 (add_custom_target):
add_custom_target cannot create target “l(fā)ivox_ros_driver_generate_messages”
because another target with the same name already exists. The existing
target is a custom target created in source directory
“/home/jk-jone/jone_ws/src/faster-lio/thirdparty/livox_ros_driver”. See
documentation for policy CMP0002 for more details.
Call Stack (most recent call first):
/opt/ros/noetic/share/genmsg/cmake/genmsg-extras.cmake:307 (include)
livox_ros_driver/livox_ros_driver/CMakeLists.txt:46 (generate_messages)

985636fe-b0db-11ee-8b88-92fbcf53809c.png

如果工作空間中之前編譯了 livox_ros_driver 的功能包,則需要刪掉 faster-lio/thirdparty/livox_ros_driver 這個文件夾

再次編譯

CMake Error at faster-lio/CMakeLists.txt:15 (add_subdirectory):
add_subdirectory given source “thirdparty/livox_ros_driver” which is not an
existing directory.

985b4c70-b0db-11ee-8b88-92fbcf53809c.png

因為把那個文件刪了,所以找不到路徑

將 faster-lio/CMakeLists.txt 文件的第15行注釋掉

add_subdirectory(thirdparty/livox_ros_driver)
改為
#add_subdirectory(thirdparty/livox_ros_driver)

再次編譯

[100%] Linking CXX shared library /home/jk-jone/jone_ws/devel/lib/libfaster_lio.so
[100%] Built target faster_lio
Scanning dependencies of target run_mapping_offline
Scanning dependencies of target run_mapping_online
[100%] Building CXX object faster-lio/app/CMakeFiles/run_mapping_online.dir/run_mapping_online.cc.o
[100%] Building CXX object faster-lio/app/CMakeFiles/run_mapping_offline.dir/run_mapping_offline.cc.o
[100%] Linking CXX executable /home/jk-jone/jone_ws/devel/lib/faster_lio/run_mapping_online
[100%] Built target run_mapping_online
[100%] Linking CXX executable /home/jk-jone/jone_ws/devel/lib/faster_lio/run_mapping_offline
[100%] Built target run_mapping_offline

9863ea60-b0db-11ee-8b88-92fbcf53809c.png

編譯成功

測試

Faster-lio支持離線的測試與在線測試

離線測試

首先下載rosbag數(shù)據(jù)包到電腦

aviabags(https://drive.google.com/drive/folders/1YL5MQVYgAM8oAWUm7e3OGXZBPKkanmY1?usp=sharing)

ncltbags(https://drive.google.com/drive/folders/1VBK5idI1oyW0GC_I_Hxh63aqam3nocNK)

百度云盤下載地址:
BaiduYun:https://pan.baidu.com/s/1ELOcF1UTKdfiKBAaXnE8sQ?pwd=fekyaccess code: feky

OneDrive下載地址:
OneDrive:https://1drv.ms/u/s!AgNFVSzSYXMahcEZejoUwCaHRcactQ?e=YsOYy2

Call run_mapping_offline with parameters to specify the bag file and the config file like:
通過下面的指令 運行 run_mapping_offline 文件 并且加載對應(yīng)的rosbag文件 和對應(yīng)的配置文件

./build/devel/lib/faster_lio/run_mapping_offline --bag_file your_avia_bag_file --config_file ./config/avia.yaml

其中 your_avia_bag_file 路徑需要更換為下載的數(shù)據(jù)包路徑

同樣對于nclt數(shù)據(jù)包可以運行下面的指令。數(shù)據(jù)是機械式激光雷達(dá)velodyne的數(shù)據(jù)

./build/devel/lib/faster_lio/run_mapping_offline --bag_file your_nclt_bag_file --config_file ./config/velodyne.yaml

your_nclt_bag_file 路徑需要更換為下載的數(shù)據(jù)包路徑

運行FasterLIO,然后退出的時候 會在終端打印FPS和time

像下面這樣:

I0216 17:16:05.286536 26492 run_mapping_offline.cc:89] Faster LIO average FPS: 1884.6
I0216 17:16:05.286549 26492 run_mapping_offline.cc:91] save trajectory to: ./src/fast_lio2/Log/faster_lio/20120615.tum
I0216 17:16:05.286706 26492 utils.h:52] >>> ===== Printing run time =====
I0216 17:16:05.286711 26492 utils.h:54] > [   IVox Add Points ] average time usage: 0.0147311 ms , called times: 6373
I0216 17:16:05.286721 26492 utils.h:54] > [   Incremental Mapping ] average time usage: 0.0271787 ms , called times: 6373
I0216 17:16:05.286731 26492 utils.h:54] > [   ObsModel (IEKF Build Jacobian) ] average time usage: 0.00745852 ms , called times: 25040
I0216 17:16:05.286752 26492 utils.h:54] > [   ObsModel (Lidar Match) ] average time usage: 0.0298004 ms , called times: 25040
I0216 17:16:05.286775 26492 utils.h:54] > [ Downsample PointCloud ] average time usage: 0.0224052 ms , called times: 6373
I0216 17:16:05.286784 26492 utils.h:54] > [ IEKF Solve and Update ] average time usage: 0.342008 ms , called times: 6373
I0216 17:16:05.286792 26492 utils.h:54] > [ Laser Mapping Single Run ] average time usage: 0.530618 ms , called times: 6387
I0216 17:16:05.286800 26492 utils.h:54] > [ Preprocess (Livox) ] average time usage: 0.0267813 ms , called times: 6387
I0216 17:16:05.286808 26492 utils.h:54] > [ Undistort Pcl ] average time usage: 0.0810455 ms , called times: 6375
I0216 17:16:05.286816 26492 utils.h:59] >>> ===== Printing run time end =====

默認(rèn)點云會以pcd文件的格式保存下來

在線測試

用之前建立的仿真環(huán)境下的 mid360雷達(dá)的數(shù)據(jù)進(jìn)行一個初步在線測試

打開仿真環(huán)境

986c5fba-b0db-11ee-8b88-92fbcf53809c.png

faster-lio 里面沒有 mid360 雷達(dá)的 配置文件和啟動文件 ,有avia的,都是livox的固態(tài)雷達(dá),基本雷達(dá),仿照avia的寫一個就行

mid360.yaml 如下

common:
  lid_topic: "/livox/lidar"
  imu_topic: "/livox/imu"
  time_sync_en: false     # ONLY turn on when external time synchronization is really not possible
  time_offset_lidar_to_imu: 0.0 # Time offset between lidar and IMU calibrated by other algorithms, e.g. LI-Init (can be found in README).
                 # This param will take effect no matter what time_sync_en is. So if the time offset is not known exactly, please set as 0.0


preprocess:
  lidar_type: 1        # 1 for Livox serials LiDAR, 2 for Velodyne LiDAR, 3 for ouster LiDAR, 
  scan_line: 4
  blind: 0.5


mapping:
  acc_cov: 0.1
  gyr_cov: 0.1
  b_acc_cov: 0.0001
  b_gyr_cov: 0.0001
  fov_degree:  360
  det_range:   100.0
  extrinsic_est_en: false   # true: enable the online estimation of IMU-LiDAR extrinsic
  extrinsic_T: [ -0.011, -0.02329, 0.04412 ]
  extrinsic_R: [ 1, 0, 0,
          0, 1, 0,
          0, 0, 1]


publish:
  path_en: false
  scan_publish_en: true    # false: close all the point cloud output
  dense_publish_en: true    # false: low down the points number in a global-frame point clouds scan.
  scan_bodyframe_pub_en: true # true: output the point cloud scans in IMU-body-frame


pcd_save:
  pcd_save_en: true
  interval: -1         # how many LiDAR frames saved in each pcd file; 
                 # -1 : all frames will be saved in ONE pcd file, may lead to memory crash when having too much frames.

launch文件如下


 


  


  


  
  
  
  
  
  
  
   


  
  
  


運行該launch文件

roslaunch faster_lio mapping_mid360.launch

初始位置的情景和點云模型

987133f0-b0db-11ee-8b88-92fbcf53809c.png

飛一圈后整個地圖模型

9875869e-b0db-11ee-8b88-92fbcf53809c.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4630

    瀏覽量

    93358
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4124

    瀏覽量

    133996
  • SLAM
    +關(guān)注

    關(guān)注

    23

    文章

    426

    瀏覽量

    31931
  • 激光雷達(dá)
    +關(guān)注

    關(guān)注

    968

    文章

    4026

    瀏覽量

    190411

原文標(biāo)題:激光SLAM:Faster-Lio 算法編譯與測試

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    AGV激光雷達(dá)SLAM定位導(dǎo)航技術(shù)

    4個開關(guān)量輸入信號組合選取15組區(qū)域組(FieldSet)中的任一個作為當(dāng)前工作區(qū)域組,適應(yīng)復(fù)雜多變的應(yīng)用環(huán)境,還可以輸出點云數(shù)據(jù)。    ■鐳神激光雷達(dá)+SLAM算法可實現(xiàn)的五大功能  激光
    發(fā)表于 11-09 15:59

    SLAM技術(shù)的應(yīng)用及發(fā)展現(xiàn)狀

    應(yīng)用行業(yè)也可分為兩大類,即工業(yè)領(lǐng)域和商業(yè)領(lǐng)域。商業(yè)用途方面,目前應(yīng)用最為成熟的應(yīng)該是掃地機行業(yè),而掃地機也算機器人里最早用到SLAM技術(shù)這一批了,國內(nèi)的科沃斯、塔米掃地機、嵐豹掃地機通過用SLAM算法
    發(fā)表于 12-06 10:25

    激光SLAM與視覺SLAM有什么區(qū)別?

    機器人定位導(dǎo)航中,目前主要涉及到激光SLAM與視覺SLAM激光SLAM在理論、技術(shù)和產(chǎn)品落地上都較為成熟,因而成為現(xiàn)下最為主流的定位導(dǎo)航方
    發(fā)表于 07-05 06:41

    激光SLAM技術(shù)在機器人運動控制系統(tǒng)中的應(yīng)用是什么

    什么是激光SLAM激光SLAM技術(shù)在機器人運動控制系統(tǒng)中的應(yīng)用是什么?
    發(fā)表于 07-30 06:37

    基于SLAM的移動機器人設(shè)計

    )Kinect攝像頭  7)激光雷達(dá)2、已完成的部分,成果展示  根據(jù)Kinect攝像頭,小車能夠自主避障  利用Kinect攝像頭和slam算法,小車能在室內(nèi)建...
    發(fā)表于 11-08 06:17

    激光SLAM和視覺VSLAM的分析比較

    什么是激光SLAM?視覺VSLAM又是什么?激光SLAM和視覺VSLAM有哪些不同之處?
    發(fā)表于 11-10 07:16

    一種基于RBPF的、優(yōu)化的激光SLAM算法

    針對基于RBPF的激光SLAM算法在重采樣過程中出現(xiàn)的樣本貧化和激光測量模型不準(zhǔn)確的問題,提出種優(yōu)化的激光
    發(fā)表于 04-01 10:48 ?6次下載
    一種基于RBPF的、優(yōu)化的<b class='flag-5'>激光</b><b class='flag-5'>SLAM</b><b class='flag-5'>算法</b>

    激光雷達(dá)SLAM算法有哪些?

    一般將使用單線雷達(dá)建構(gòu)二維地圖的SLAM算法,稱為2D Lidar SLAM。大家熟知的2D Lidar SLAM算法有:gmapping,
    的頭像 發(fā)表于 04-18 10:18 ?1.3w次閱讀
    <b class='flag-5'>激光</b>雷達(dá)<b class='flag-5'>SLAM</b><b class='flag-5'>算法</b>有哪些?

    基于三維激光數(shù)據(jù)的層級式SLAM方法

    課題組已將該研究成果應(yīng)用于智能駕駛即時定位與建圖(SLAM)任務(wù)中,提出了基于三維激光數(shù)據(jù)的層級式SLAM方法,實現(xiàn)了無GNSS環(huán)境下智能無人系統(tǒng)的高精度自主定位定姿,在智能駕駛國際著名公開數(shù)據(jù)集KITTI上排名全球第7(純
    的頭像 發(fā)表于 04-20 09:19 ?2119次閱讀
    基于三維<b class='flag-5'>激光</b>數(shù)據(jù)的層級式<b class='flag-5'>SLAM</b>方法

    智行者提出全新基于ivox激光雷達(dá)算法

    近日,智行者高翔博士帶領(lǐng)的定位團隊撰寫的論文《Faster-LIO: Lightweight Tightly Coupled Lidar-inertial Odometry using
    的頭像 發(fā)表于 02-25 18:17 ?2977次閱讀
    智行者提出全新基于ivox<b class='flag-5'>激光</b>雷達(dá)<b class='flag-5'>算法</b>

    3D激光雷達(dá)SLAM技術(shù)的應(yīng)用趨勢

    算法框架和關(guān)鍵模塊, 分析闡述了近年來的研究熱點問題和未來發(fā)展趨勢, 梳理了3D激光雷達(dá) SLAM 算法性能的評估標(biāo)準(zhǔn), 并據(jù)此選取目前較為成熟的具有代表性的6種開源 3D
    的頭像 發(fā)表于 03-21 16:07 ?5198次閱讀

    有哪些激光雷達(dá)SLAM算法

    一般將使用單線雷達(dá)建構(gòu)二維地圖的SLAM算法,稱為2D Lidar SLAM。大家熟知的2D Lidar SLAM算法有:gmapping,
    的頭像 發(fā)表于 03-27 11:06 ?2288次閱讀

    3D激光SLAM,為什么要選LeGo-LOAM?

    對于學(xué)術(shù)研究而言,LeGo-LOAM是激光SLAM的經(jīng)典框架,LeGo-LOAM源碼簡潔清晰,比LOAM算法的代碼可讀性要高很多。近幾年各頂會上的很多SLAM
    的頭像 發(fā)表于 07-03 10:47 ?939次閱讀
    3D<b class='flag-5'>激光</b><b class='flag-5'>SLAM</b>,為什么要選LeGo-LOAM?

    NeRF何去何從?GS SLAM到底哪家強?來看看最新的開源方案!

    跟蹤場景表示。這里也推薦工坊推出的新課程《徹底剖析室內(nèi)、室外激光SLAM關(guān)鍵算法和實戰(zhàn)(cartographer+LOAM+LIO-SAM)》。
    的頭像 發(fā)表于 12-26 16:38 ?1290次閱讀
    NeRF何去何從?GS <b class='flag-5'>SLAM</b>到底哪家強?來看看最新的開源方案!

    激光雷達(dá)在SLAM算法中的應(yīng)用綜述

    SLAM算法運行的重要傳感器。基于激光雷達(dá)的SLAM算法,對激光雷達(dá)
    的頭像 發(fā)表于 11-12 10:30 ?1047次閱讀
    <b class='flag-5'>激光</b>雷達(dá)在<b class='flag-5'>SLAM</b><b class='flag-5'>算法</b>中的應(yīng)用綜述
    美国太阳城养老社区| 百家乐官网推广| 百家乐官网牡丹娱乐城| 威尼斯人娱乐城新闻| 大丰市| 百家乐的嬴钱法| 大发888客服电话 在线| 澳门赌百家乐官网打法| 真人百家乐博弈| 百家乐官网图表分析| 博士百家乐现金网| bet365存款| 百家乐官网的弱点| 大发888金皇冠娱乐城| 百家乐官网赌场游戏平台| 网上玩百家乐官网的玩法技巧和规则 | 昂仁县| 百家乐怎么看单| 365足球备用| 2404这个房号 风水| 星空棋牌大厅下载| 百家乐官网网开服表| 六合彩特码| 网上百家乐解码器| 镇巴县| 缅甸百家乐赌博现场下载| 保时捷娱乐城| 百家乐为什么庄5| 苗栗市| 太阳城百家乐注册平台| 临邑县| 单机百家乐破解方法| 百家乐官网gamble| 大发888老虎机手机版| 百家乐官网网上娱乐场开户注册| 大发888游戏官方网站| 博狗百家乐官网的玩法技巧和规则| 正网皇冠开户| 百家乐翻天腾讯视频| 澳门百家乐官网玩法| 二八杠玩法|