參考資料:
1. Itread01_ROS—SLAM與Navigation
2. 知呼_從零開始一起學習SLAM | SLAM有什麼用?
#終於來到了今天...我會入坑ROS完全是為了室內定位(?)
做機器人要討論的問題包括:建圖(Mapping)、定位(Localization)和路徑規劃(Path Planning);若機器人帶有機器手臂,就還要討論到:運動規劃(Motion Planning)
而SLAM(全名:simultaneous localization and mapping,中譯:同步定位與建圖)顧名思義就是定位跟建圖的交集:
#就像你到了一處沒有來過的公園,給你一些紙筆~你就邊走邊畫地圖,然後你就會得到你的位置跟公園的地圖。
在ROS中SLAM有一些常用的演算法:
Gmapping SLAM、Hector SLAM、Karto SLAM、Cartographer SLAM....
#明天會講Gmapping,後天Hector
在SLAM建圖的過程中,你可以在RViz裡看到像以下這樣過程的地圖
由ROS#2架構概念可以想像:
地圖在ROS中是以Topic的形式維護和呈現的
訊息型別是nav_msgs/OccupancyGridrosed nav_msgs OccupancyGrid.msg
檢視srv檔案,可以看到/map話題的資料結構,包含了三個主要的部分:header, info和data。
SLAM所使用的傳感器主要分為激光雷達和視覺兩大類。在SLAM研究史上,早期SLAM研究幾乎全使用LIDAR作為傳感器;視覺SLAM就是用攝像頭作為主傳感器,用拍攝的視頻流作為輸入來實現同時定位與建圖。
#但為何我找不太到用攝像頭實現的SLAM...QQ就沒錢買LIDAR阿XD(如果找成功、實作後我在更新文章)