Ros平台下:从零开始学习SLAM(序)
ROS平臺下:從零開始學習SLAM(序)
前言
16年年底,我們實驗室迎來了一只可愛的小家伙,它有綠綠的皮膚,甚是俏皮可愛;它還有一個帥氣的名字:Irobotcreat2。
伴隨著導師一聲令下,一段神奇的Slam之旅至此拉開了序幕。
年后返校,2月初。我和實驗室的小伙伴:靚,就抱著這個綠皮的小家伙開始折騰了…..現在一晃,兩個多月就這么快地過去了。在這兩個多月的時間里:我們寫過Python,用來控制Irobotcreat2,一度欣喜若狂,后來發現在Github上竟然有完整的控制包;在讀取激光雷達時,寫過C++底層來讀取雷達的字節流數據,一度崩潰,后來竟然發現激光雷達也有自己對應的包;在初探Ubuntu安裝ROS時,一臉懵逼,各種問題,啥也不懂……這兩個月里,想過放棄,郁悶地睡不著覺;在取得小突破后,又會極度欣喜,晚上也睡不著覺,然后第二天早早地到實驗室進行調試……
這兩個月真的發生了很多事。這里,我感謝這段時間來一起同甘共苦的靚,在前期不遺余力為我解決問題的安師兄,和網絡、博客上各位熱心善良的朋友。為此,我決心將這一路的學習心得記錄下來:所謂一步一回首,一步一思量。愿各位少走彎路!
廢話少說,回歸正題!
寫作目的
在接下來的一段時間里,我將從零開始,和大家一起學習ROS,學習Slam。寫此文的目的有二:
1. 寫給所有擁有一樣的移動機器人平臺,對ROS,對Slam感興趣的初學者。
2. 作為一份guidebook留給下一屆的師弟師妹們。
一入Slam/ROS深似海,從此假期是路人!各位加油!
行文結構
ROS平臺下:從零開始學習SLAM,你可以把它當做是一個體系完整的guidebook。在接下來的時間里,我將從七個部分進行講解。
Part0 硬件準備
在ROS平臺下:從零開始學習SLAM系列教程中,你需要的硬件有(也就是我用到的硬件):
1. 兩臺筆記本電腦
2. 一臺Irobotcreat2底座(見上圖)
3. 一個RplidarA2激光雷達(見下圖)
Part1 ROS初探—安裝ROS
在這一部分,我將講解Ros到底是什么?它與Ubuntu的關系等一些關于Ros的基本概念。
其次,考慮到很多初學者使用的Pc安裝的都是Windows系統,我將手把手教你如何分別在在虛擬機(VM)或者雙系統模式下,安裝Ubuntu14.04 LTS,并配置Ros的環境。
Part2 ROS入門—在一臺Pc上學習ROS
在這一部分,我將推薦你幾個網站與幾本參考書進行Ros入門學習,并對其中的一些難點與重點進行講解。通過這一部分的學習,我可以認為你已經能在一臺Pc上,熟練地進行一些ROS的基本操作了。
Part3 ROS進階—在兩臺(多臺)Pc上操作ROS
在這一部分,我將手把手教你如何使用SSH遠程登錄另外一臺Pc,通過設置Master,在兩臺Pc上進行數據的收發或基本的控制。通過這一部分的學習,你將深刻理解,ROS分布式操作的特性與優勢,為接下來遠程控制機器人打下基礎。
Part4 硬件平臺(Irobotcreat2、Rplidar)驅動的安裝與調試
在這一部分,我將手把手教你如何下載安裝Irobotcreat2與Rplidar的驅動,并教你利用Part3所學的ROS分布式特性,遠程控制你的Irobotcreat2和利用SSH遠程開啟你的Rplidar。
最后,我將初步介紹rviz界面,讓你能在虛擬的仿真環境中直觀地看到你的機器人與雷達的掃描數據。
Part5 手工搭建自己的Irobotcreat2的實驗平臺
在這一部分,我將結合我的Irobotcreat2實驗平臺的搭建過程,給出Irobotcreat2 CAD圖紙的使用說明和有關Irobotcreat2平臺選材,平臺布局的建議。
Part6 tf_tree的建立與維護
在這一部分你將學習到如何將自己現實世界的機器人模型通過Urdf在Rviz的仿真界面顯示出來。之后,我將闡述一下我對tf_tree的理解與如何維護你的tf_tree使之能正確地將雷達得到的數據通過tf變換傳輸到最上層。最后,我將針對tf_tree中的/map to /odom坐標系的變換進行辨析。
Part7 Slam_Gmapping的配置
這一部分,我將簡要闡述Slam_Gmapping的工作機制,與如何配置Slam_Gmapping包,讓機器人在未知的環境中定位與建圖,也就是Slam(Simultaneous Localization and Mapping)!
結語
路漫漫其修遠兮,吾將上下而求索。
雄關漫道真如鐵,而今邁步從頭越!
歡迎各位看官打賞哦~
總結
以上是生活随笔為你收集整理的Ros平台下:从零开始学习SLAM(序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python交通流预测算法_对各种交通流
- 下一篇: 使用 Django + Wusgi +