iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0
AI & Data

ROS新手挑戰AI&Data組系列 第 11

[ROS#10]Hector SLAM教學

  • 分享至 

  • xImage
  •  

參考資料:
1. ROS SLAM #2 Hector SLAM (2D地圖建置)
2. SLAM:經典2D_SLAM演算法比較:Hector slam、gmapping、cartographer
3. hector_slam
4. ROS中開源激光slam(2D)[gmapping hector karto cartographer]
5. Hector SLAM算法学习与代码解析

• Hector SLAM演算法原理解析
Hector slam利用高斯牛頓方法解決scan-matching問題
#特色: 不需要里程計;可以結合IMU數據使用;沒有閉環檢測部分,精確度高;柵格地圖

優點 缺點
不需要使用里程計,但在不平坦的區域建圖會存在運用的可行性;利用已經獲得的地圖對鐳射束點陣進行優化, 估計鐳射點在地圖的表示,和佔據網格的概率;利用高斯牛頓方法解決scan-matching 問題,獲得鐳射點集對映到已有地圖的剛體變換(x,y,theta);為避免區域性最小而非全域性最優,使用多解析度地圖;導航中的狀態估計加入慣性測量系統(IMU),利用EKF濾波 需要雷達(LRS)的更新頻率較高,但測量噪聲小;在製圖過程中,需要robot速度控制在比較低的情況下,建圖效果才會比較理想,這也是它沒有迴環(loop close)的一個後遺症;且在里程計資料比較精確的時候,無法有效利用里程計資訊。

備註: hector_slam通過最小二乘法匹配掃描點,且依賴高精度的鐳射雷達資料,因此掃描角很小且噪聲較大的Kinect是不行的,匹配時會陷入區域性點,地圖比較混亂。

• Hector node graph
https://ithelp.ithome.com.tw/upload/images/20190925/20120406UpyUWGucid.png

• Particle Filter Flow(粒子過濾器)
以粒子的方式模擬機器人位置分佈的概率。每個粒子代表一個機器人分佈的可能,存儲所有歷史時刻的pose,map,和對應的weight。
#也就是說
如果粒子數量無限多,那總有一個粒子代表真實,那它的軌跡和地圖就是所求。
剛開始粒子權重都一樣,但隨着不同的輸入與觀測與地圖的對應差異,越接近真實的機器人表示的粒子權重會增加,反之逐漸減小。

• Score、Weight、Update map
sanmatcher匹配好壞的評價標準: 就是調整當前幀激光束對應的位置,使得激光束與前面生成的gridmap儘量的重合,重合越高,分數越高,越具有參考價值。
當前開源算法中scanMatcher採取的方法主要是以下四種:
https://ithelp.ithome.com.tw/upload/images/20190925/20120406oL2YnWQXDy.png
scanMatcher 主要涉及兩個評價函數: 一個是score 用於優化調整粒子pose作爲參考;一個是likelihoodAndScore 用於確定優化後的每個粒子pose對應的權重更新作爲參考。

• Hector SLAM應用與實作
tu-darmstadt-ros-pkg/hector_slam
Week3 Video Tutorial 1 - Using the Hector SLAM


上一篇
[ROS#9]Laser Based 2D SLAM演算法實戰
下一篇
[ROS#11]Localization
系列文
ROS新手挑戰AI&Data組30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言