基于ROS的機器人路徑導航系統(tǒng)的設計4張CAD圖
基于ROS的機器人路徑導航系統(tǒng)的設計4張CAD圖,基于,ROS,機器人,路徑,導航系統(tǒng),設計,CAD
畢業(yè)設計(論文)要求及原始數(shù)據(jù)(資料): 移動機器人的設計與研發(fā)涉及到多個領域,它的移動控制問題涉及到動力學、運動學等,它的定位導航問題需要結合信息論、概率論等學科方面的知識。設計一個可用穩(wěn)定的移動機器人路徑導航系統(tǒng)需要解決三個核心問題:定位、建圖和導航。由于移動機器人的研究起步較晚,很多標準都不統(tǒng)一,從而造成了很多重復的開發(fā)工作,隨著該領域的逐步發(fā)展,系統(tǒng)化、模塊化的開發(fā)標準將是必然的選擇。本次設計基于開源機器人操作系統(tǒng)?ROS?來設計一個模塊化、系統(tǒng)化、性能穩(wěn)定的移動機器人路徑導航系統(tǒng),在設計中需要對?ROS?的總體架構,以及導航系統(tǒng)總體設計方案進行詳細分析與探討。
采用ROS機器人系統(tǒng);
SLAM建圖,導航
激光雷達檢測
畢業(yè)設計(論文)主要內容: 1、設計圖樣要求:
設計原理正確,運用相關標準、查閱相關手冊,正確處理好圖、數(shù)字、符號、標準等的關系,圖樣完整準確??傮w設計完整、圖紙表達清晰、標注采用國家最新標準;完成整機裝配圖紙設計,保證結構方案確定最優(yōu)化;完成控制系統(tǒng)設計;完成零件圖設計。
2、畢業(yè)設計說明書:
設計依據(jù)可靠,參數(shù)選用合理,計算準確,內容完整,中英文摘要與科技論文必須做到準確無誤。對主要系統(tǒng)方案進行比較和選擇、并可行性論證。對主要的系統(tǒng)進行控制的計算,可行性的校核。
畢業(yè)設計說明書參考文獻15篇以上,原則上所涉及的參考文獻論文資料為近5年出版發(fā)表。
學生應交出的設計文件(論文): 設計成果要求:提交紙質資料(打印和部分手工繪制圖紙)和電子文檔資料。圖紙使用AutoCAD軟件繪制,文件為*.dwg格式。設計說明書資料為*.doc格式。
1、畢業(yè)設計(論文)開題報告。
2、畢業(yè)設計說明書1份,字數(shù)2-2.5萬字。按《山西能源學院本科畢業(yè)設計(論文)撰寫規(guī)范》執(zhí)行。
3、圖紙:
(1) 機器人總裝配圖(A0號)1張;
(2) 控制系統(tǒng)原理圖(A1號)1張;
(3) 傳感器零件圖(A3號)不少于2張;
4、文獻綜述&外文翻譯:按《山西能源學院本科畢業(yè)設計(論文)撰寫規(guī)范》執(zhí)行。
(1)?文獻綜述:字數(shù)不少于3000字;
(2)?外文翻譯:外文翻譯必須與畢業(yè)設計課題相關,字數(shù)不少于5000字,并標明文章出處。
主要參考文獻(資料): 1] 陳超,唐堅,靳祖光,等.一種基于可視圖法導盲機器人路徑規(guī)劃的研究[J].機械科學與技術,2014;
[2] 霍鳳財,遲金.移動機器人路徑規(guī)劃算法綜述[J].吉林大學學報,2018;
[3] 雷碧波,曾文彬,李晨曦.基于 ROS 二維地圖構建的方法[J].工業(yè)控制計算機,2017,09;
[4] 李明磊,趙杰,李戈.面向方形節(jié)點拓撲地圖下的移動機器人路徑規(guī)劃算法研究[J].機械與電子,2015;
[5] 彭勝軍,馬宏緒.移動機器人導航空間表示及SLAM 問題研究[J].計算機仿真 ,2006;
[6] 楊雪,夢姚敏,茹曹凱.移動機器人 SLAM 關鍵問題和解決方法綜述[J]計算機系統(tǒng)應用,2018;
[7] 張建偉,張立偉,胡穎,等.開源機器人操作系統(tǒng):ROS[M].北京:科學出版社,2012;
畢業(yè)設計(論文)題目:基于 ROS 的機器人路徑導航系統(tǒng)的設計畢業(yè)設計(論文)要求及原始數(shù)據(jù)(資料):
1、原始數(shù)據(jù)(資料):
移動機器人的設計與研發(fā)涉及到多個領域,它的移動控制問題涉及到動力學、運動學等,它的定位導航問題需要結合信息論、概率論等學科方面的知識。設計一個可用穩(wěn)定的移動機器人路徑導航系統(tǒng)需要解決三個核心問題:定位、建圖和導航。由于移動機器人的研究起步較晚,很多標準都不統(tǒng)一,從而造成了很多重復的開發(fā)工作,隨著該領域的逐步發(fā)展,系統(tǒng)化、模塊化的開發(fā)標準將是必然的選擇。本次設計基于開源機器人操作系統(tǒng) ROS 來設計一個模塊化、系統(tǒng)化、性能穩(wěn)定的移動機器人路徑導航系統(tǒng),在設計中需要對 ROS 的總體架構,以及導航系統(tǒng)總體設計方案進行詳細分析與探討。
采用 ROS 機器人系統(tǒng);
SLAM 建圖,導航激光雷達檢測
2、畢業(yè)設計(論文)要求:
(1)、任務要求
全面了解設計任務書,掌握設計意圖,明確設計任務,根據(jù)設計基本內容,分析基于 ROS 情況下,機器人路徑導航系統(tǒng)的關鍵技術研究,包括即時定位與地圖生成。(SLAM)、詳細分析 ROS 平臺的架構以及移動機器人導航系統(tǒng)的關鍵技術, 最后分析設計整個系統(tǒng)的導航架構。制定基于 ROS 的仿真實驗、繪制機器人總裝配圖、控制系統(tǒng)圖。同時完成相應的計算說明過程。主要任務如下:
①畢業(yè)設計(論文)開題報告;
②文獻綜述&外文翻譯;
③設計、計算、繪制相應設計內容的技術圖紙;
④畢業(yè)設計說明書。
(2)、時間進度要求
序號
時間
周次
指導教師工作及要求
1
2021.3.22-
2021.3.28
第 1 周
按任務書,查閱相關文獻、撰寫文獻綜述、翻譯外文資料
2
2021.3.29-2021.4.4
第 2 周
開題報告的撰寫
3
2021.4.5-2021.4.11
第 3 周
審核開題報告,進行開題答辯
4
2021.4.12-2021.5.9
第 4-7 周
試驗研究或設計階段,繪制相關圖紙,編寫設計說明書
5
2021.5.10-
2021.5.16
第 8 周
畢業(yè)設計期中檢查
6
2021.5.17-
2021.5.30
第 9-10 周
修改相關圖紙,完善畢業(yè)設計說明書
7
2021.5.31-2021.6.6
第 11 周
論文查重、修改論文
8
2021.6.7-2021.6.13
第 12 周
打印裝訂、指導老師與評閱老師賦分、畢業(yè)答辯
畢業(yè)設計(論文)主要內容:
1、設計圖樣要求:
設計原理正確,運用相關標準、查閱相關手冊,正確處理好圖、數(shù)字、符號、標準等的關系,圖樣完整準確??傮w設計完整、圖紙表達清晰、標注采用國家最新標準;完成整機裝配圖紙設計,保證結構方案確定最優(yōu)化;完成控制系統(tǒng)設計;完成零件圖設計。
2、畢業(yè)設計說明書:
設計依據(jù)可靠,參數(shù)選用合理,計算準確,內容完整,中英文摘要與科技論文必須做到準確無誤。對主要系統(tǒng)方案進行比較和選擇、并可行性論證。對主要的系統(tǒng)進行控制的計算,可行性的校核。
畢業(yè)設計說明書參考文獻 15 篇以上,原則上所涉及的參考文獻論文資料為近
5 年出版發(fā)表。
學生應交出的設計文件(論文):
設計成果要求:提交紙質資料(打印和部分手工繪制圖紙)和電子文檔資料。圖紙使用 AutoCAD 軟件繪制,文件為*.dwg 格式。設計說明書資料為*.doc 格式。
1、畢業(yè)設計(論文)開題報告。
2、畢業(yè)設計說明書 1 份,字數(shù) 2-2.5 萬字。按《山西能源學院本科畢業(yè)設計
(論文)撰寫規(guī)范》執(zhí)行。
3、圖紙:
(1) 機器人總裝配圖(A0 號)1 張; (2) 控制系統(tǒng)原理圖(A1 號)1 張;
(3) 傳感器零件圖(A3 號)不少于 2 張;
4、文獻綜述&外文翻譯:按《山西能源學院本科畢業(yè)設計(論文)撰寫規(guī)范》執(zhí)行。
(1) 文獻綜述:字數(shù)不少于 3000 字;
(2) 外文翻譯:外文翻譯必須與畢業(yè)設計課題相關,字數(shù)不少于 5000 字,并標明文章出處。
基于ROS的自主室內導航SLAM算法仿真
摘要----在這篇文章中,我們正在檢查基于SLAM的移動機器人在室內環(huán)境中建圖和導航的靈活性。它基于機器人操作系統(tǒng)(ROS)框架。模型機器人采用Gazebo軟件包制作,在Rviz中模擬。建圖過程是通過使用GMapping算法來完成的,GMapping算法是一種開源算法。本文的目的是評估移動機器人模型在未知環(huán)境中的建圖、定位和導航。
關鍵詞----Gazebo;ROS;Rviz;GMapping;激光掃描;導航;SLAM;機器人模型;軟件包。
19
引言
在現(xiàn)代世界,由于機器人出錯的概率降低,對機器的需求也在增加。機器人的研究和應用從醫(yī)療保健到人工智能。人們的生活中也出現(xiàn)很多機器人他們極大的便利了人們的生活,但是他們是如何工作的,他們真的像人類一樣嗎?他們真的能夠感知外界環(huán)境嗎?其實并不是,除非給機器人一些感知能力,否則它們無法理解周圍的環(huán)境。我們可以使用不同的傳感器,如激光雷達、RGB-D相機、慣性測量單元(IMU)和聲納來提供傳感能力。通過使用傳感器和建圖算法,機器人可以創(chuàng)建周圍環(huán)境的地圖,并在地圖中定位自己。機器人將不斷檢查環(huán)境中發(fā)生的動態(tài)變化。我們的目標是建立一個室內應用的自主導航平臺。在本文中,我們通過測量機器人模型到達目的地所花費的行進時間來檢驗在ROS(機器人操作系統(tǒng))中實現(xiàn)的基于SLAM(同時定位和建圖)的機器人模型的效率。測試在Rviz創(chuàng)建的虛擬環(huán)境中進行。通過在地圖中為不同的目的地放置不同的動態(tài)障礙物,來測量行進時間。
思路
與機器人一起工作需要很多傳感器,每個過程都需要實時處理。為了使用需要每10-50毫秒更新一次的傳感器和執(zhí)行器,我們需要一種能夠滿足這種要求的的操作系統(tǒng)。而機器人操作系統(tǒng)(ROS)為我們提供了實現(xiàn)這一點的架構。首先ROS是開源的,有許多來自好的研究機構的代碼,人們可以很容易地在他們自己的項目中使用和實現(xiàn)。此外,機器人的工程師們早些時候缺乏一個共同的合作和交流平臺,這推遲了機器人管家的采用和其他相關的發(fā)展。自過去十年以來,機器人創(chuàng)新隨著ROS的出現(xiàn)而迅速發(fā)展,工程師可以在ROS中構建機器人應用程序和程序。機器人導航是機器人領域大多數(shù)研究者關注的一個非常廣泛的課題。為了使移動機器人系統(tǒng)能夠自主,它必須分析來自不同傳感器的數(shù)據(jù)并執(zhí)行決策,以便在未知環(huán)境中導航。ROS幫助我們解決與移動機器人導航相關的不同問題,并且這些技術不限于特定的機器人,而是可以在機器人領域的不同開發(fā)項目中重復使用。
相關工作
在研究論文[1]中,作者使用Gmapping算法和ROS進行定位和導航。Gmapping算法使用激光雷達傳感器的激光掃描數(shù)據(jù)來生成地圖。該地圖由OpenCV人臉檢測和corobot技術持續(xù)監(jiān)控,以識別人并在工作環(huán)境中導航。研究論文[2]的作者解釋了2個基于ROS、建圖和定位的協(xié)作機器人。這些機器人是自主移動的,在未知的地區(qū)工作。對于這個項目,使用的算法也是SLAM。在這里,機器人的主要任務是撿起三塊積木,并以預定的方式排列它們。在ROS平臺的支持下,他們?yōu)榇酥圃炝藱C器人。在研究論文[3]中,作者創(chuàng)建了機械手的仿真實驗,并說明了在短時間內實現(xiàn)機器人控制的方法。使用ROS和Gazebo軟件包,他們建立了一個7自由度的取放機器人模型,并設法找到了一種花費更少時間的機器人控制器。一篇研究論文[5]通過仿真比較了3種SLAM算法核心SLAM、Gmapping和Hector SLAM。最佳算法用于在不同地形中測試無人地面小車(UGV),以執(zhí)行防御任務。通過模擬實驗,他們比較了不同算法的表現(xiàn),并制作了一個執(zhí)行定位和建圖的機器人平臺。研究論文[6]的作者利用自動視覺和導航框架構建了一個導航平臺,利用ROS,將開源的GMapping捆綁包用于即時定位和地圖生成(SLAM)。使用Rviz的這個設置,turtlebot 2可以實現(xiàn)。用Kinect傳感器代替激光測距儀,降低了成本。該雜志[9]涉及基于智能手機中傳感器的室內導航。智能手機既是測量平臺,也是用戶界面。雜志[10]的作者實現(xiàn)了一個6自由度姿態(tài)估計方法和一個室內視覺障礙者尋路系統(tǒng)。地板平面從三維攝像機的點云中提取,并作為地標節(jié)點添加到6自由度SLAM的圖形中,以減少誤差。滾轉、俯仰、偏航、X、Y和Z是6個軸。用戶界面是通過聲音。期刊[11]解釋了為什么室內環(huán)境對自主四軸飛行器來說很困難。由于實驗是在室內進行的,他們不能使用全球定位系統(tǒng),他們使用激光測距儀、XSens IMU和激光鏡的組合來生成三維地圖,并在其中定位。四軸飛行器正在使用SLAM算法導航。在論文[12]中,作者描述了固定路徑算法和輪椅的特點,輪椅在模擬技術的幫助下使用該算法。論文[13]的作者解釋了Arduino制造的自動導航平臺,以及使用ani2c協(xié)議與數(shù)字羅盤和旋轉編碼器等組件接口來計算距離。在論文[14]中,作者利用Matlab中的模糊工具箱創(chuàng)建了一個自主移動機器人,并使用該機器人進行路徑規(guī)劃。對機器人執(zhí)行24條模糊規(guī)則。論文[15]的作者使用射頻識別超高頻無源標簽和閱讀器創(chuàng)建了室內空間的對象級建圖。他們說這種方法被用來以經(jīng)濟有效的方式生成一個大的室內區(qū)域地圖。
系統(tǒng)
A.ROS
ROS的故事始于2000年代中期,當時斯坦福大學正處于創(chuàng)建支持斯坦福 AI機器人和個人機器人項目的系統(tǒng)的階段。2007年,位于加州門洛帕克的公司W(wǎng)illow Garage通過提供大量資源參與了該系統(tǒng)的開發(fā),從而為機器人領域制造的靈活動態(tài)軟件系統(tǒng)的進一步開發(fā)做出了貢獻這也從無數(shù)涉及發(fā)展的研究中提供了更多的資源和專業(yè)知識。該系統(tǒng)是在BSD許可下開發(fā)的,并且漸漸地吸引了更多的專家去使用它。隨著時間的推移,它已經(jīng)成為機器人研究界廣泛使用的平臺。2013年,ROS的核心開發(fā)和維護被轉移到開源機器人基金會,并一直運行到今天。目前,ROS由世界各地成千上萬的用戶使用,從愛好到大規(guī)模的工業(yè)自動化系統(tǒng)。
機器人操作系統(tǒng)(ROS)是一個免費的開源軟件,也是最受歡迎的機器人編程中間件之一。ROS自帶消息傳遞接口、工具、包管理、硬件抽象等。它為機器人應用程序提供不同的庫、軟件和一些集成工具。ROS是一個提供進程間通信的消息傳遞接口,因此它通常被稱為中間件。ROS提供了許多設施來幫助研究人員開發(fā)機器人應用程序。在這項研究工作中,ROS是主要的基礎,因為它以主題的形式在不同的節(jié)點之間發(fā)布消息,并具有分布式參數(shù)系統(tǒng)。ROS還提供平臺間可操作性、模塊化、并發(fā)資源處理。ROS通過確保線程不一直讀寫共享資源,而是僅僅發(fā)布和訂閱消息,簡化了系統(tǒng)的整個過程。ROS還幫助我們創(chuàng)建虛擬環(huán)境,生成機器人模型,實現(xiàn)算法,并在虛擬世界中可視化它,而不是在硬件本身中實現(xiàn)整個系統(tǒng)。因此,可以對系統(tǒng)進行相應的改進,最終在硬件上實現(xiàn)時,可以獲得更好的效果?,F(xiàn)在已經(jīng)建立了對ROS結構的基本理解,可以呈現(xiàn)自動導航特征的綜合描述了。ROS中的自動導航過程是在導航棧中實現(xiàn)的,它需要不同的信息以便對期望的目的地進行正確的計算。
B.Gazebo
Gazebo是一個機器人模擬器。Gazebo使用戶能夠創(chuàng)建復雜的環(huán)境,并提供了在創(chuàng)建的環(huán)境中模擬機器人的機會。在Gazebo,用戶可以制作機器人的模型,并在三維空間中集成傳感器。就環(huán)境而言,用戶可以創(chuàng)建一個平臺,并為其設置障礙。對于機器人模型,用戶可以使用URDF文件,并可以給出機器人的鏈接。通過給出鏈接,我們可以給出機器人每個部分的運動程度。本研究創(chuàng)建的機器人模型是一個差動驅動機器人,帶有兩個輪子,激光和一個攝像頭。在Gazebo中創(chuàng)建一個示例環(huán)境,供機器人相應地移動和建圖。在這種環(huán)境中,一些對象被隨機放置在創(chuàng)建地圖的地方,這些對象被視為靜態(tài)障礙物。
C.SLAM
自主機器人應該能夠安全地探索周圍環(huán)境,而不會與人相撞或撞到物體。同步定位和映射(SLAM)使機器人能夠通過了解周圍環(huán)境的樣子(建圖)和它相對于周圍環(huán)境的位置(定位)來完成這項任務。SLAM可以使用不同類型的1D、2D和3D傳感器來實現(xiàn),如聲學傳感器、激光測距傳感器、立體視覺傳感器和RGB-D傳感器。ROS可以用來實現(xiàn)不同的SLAM算法,比如Gmapping、Hector SLAM、KartoSLAM、Core SLAM、Lago SLAM。ROS中的Gmapping包提供了通過使用激光和里程計數(shù)據(jù)創(chuàng)建二維地圖的工具。SLAM算法通過在該區(qū)域執(zhí)行定位操作來創(chuàng)建未知環(huán)境的地圖。在未知區(qū)域被繪制成地圖并且機器人知道其相對于地圖的位置后便可以執(zhí)行路線規(guī)劃和導航。因此,SLAM算法是實現(xiàn)機器人自動導航的重要組成部分。激光器需要配備一個固定的水平安裝的激光測距儀。SLAM也是避免機器人行進中障礙物的重要功能。
KartoSLAM,Hector SLAM,Gmapping算法比其它都要好。從地圖精度的角度來看,這些算法具有非常相似的性能,但實際上在概念上是不同的。也就是說,赫克托SLAM是基于EKF的,Gmapping是基于RBPF占用網(wǎng)格建圖,KartoSLAM是基于圖形建圖。對于一個處理能力較低的機器人來說,Gmapping可以表現(xiàn)得很好。ROS中的建圖包提供基于激光的SLAM(即使定位和建圖),所以ROS節(jié)點稱為SLAM_Gmapping。
SLAM算法可以包含以下五個重要步驟:
1.數(shù)據(jù)采集:從攝像機或激光掃描儀等傳感器收集測量出的數(shù)據(jù)。
2.特征提取:獨特且可識別的關鍵點和特征是從數(shù)據(jù)庫中挑選的。
3.特征關聯(lián):來自先前測量的關鍵點和特征與最近的關鍵點和特征相關聯(lián)。
4.姿態(tài)估計:利用關鍵點和特征之間的相對過渡以及機器人的位置來估計機器人的新姿態(tài)。
5.地圖調整:基于新的姿態(tài)和等效測量,地圖被相應地更新。
D.Rviz
Rviz是一個模擬器,我們可以在其中可視化3D環(huán)境中的傳感器數(shù)據(jù),例如,如果我們給Gazebo中的機器人模型固定一個Kinect,激光掃描值可以在Rviz中可視化。從激光掃描數(shù)據(jù),我們就可以建立一個地圖用于自動導航。在Rviz中,我們可以使用攝像機圖像、激光掃描等方式訪問和圖形化表示這些值。這些信息可用于構建點云和深度圖像。在Rviz坐標中稱為框架。我們可以選擇許多顯示器在Rviz中觀看,它們是來自不同傳感器的數(shù)據(jù)。通過點擊添加按鈕,我們可以在Rviz中顯示任何數(shù)據(jù)。網(wǎng)格顯示器將給出地面或參考。激光掃描顯示器將給出來自激光掃描儀的顯示。激光掃描顯示器將是傳感器msgs/激光掃描類型。點云顯示器將顯示程序給出的位置。軸顯示器將給出參考點。
實現(xiàn)
用于機器人模型執(zhí)行導航的環(huán)境在Gazebo中創(chuàng)建,并且所創(chuàng)建的機器人模型被導入到環(huán)境中。機器人模型由兩個輪子組成,兩個腳輪便于移動,一個攝像頭連接到機器人模型上。然后,Hokuyo激光傳感器被添加到機器人,插件也含于Gazebo文件。Hokuyo激光傳感器提供激光數(shù)據(jù),可用于創(chuàng)建地圖。使用Gmapping包,通過添加必要的不同參數(shù),在Rviz中就能創(chuàng)建一個地圖。最初,機器人模型被移動到環(huán)境的每一個角落,直到使用“teleop_key”包創(chuàng)建了完整的地圖,其中機器人使用鍵盤進行控制的。結果表明,Rviz中最終生成的地圖與Gazebo中創(chuàng)建的環(huán)境非常相似。對于Rviz中的可視化,選擇并添加了必要的主題。該機器人模型中使用的Hokuyo激光傳感器以主題“/掃描”的形式發(fā)布激光數(shù)據(jù),而且是Rviz中激光掃描的主題。以創(chuàng)建地圖的類似方式,添加了“/map”主題。生成的地圖使用ROS中可用的地圖服務器包保存。一旦地圖生成并保存,機器人現(xiàn)在就可以合并導航堆棧包了。
非常重要的是要注意,如果不把地圖給機器人,它就不能導航。使用amcl的導航堆棧包為機器人在2D環(huán)境中移動提供了一個概率定位系統(tǒng)?,F(xiàn)在,機器人已經(jīng)準備好在創(chuàng)建的地圖中任何地方導航。機器人的目的地可以使用Rviz中的2D導航目標選項給出,該選項基本上確認了機器人有一個目標。用戶必須在地圖上點擊想要的區(qū)域,還應該指出機器人的方向。藍線是機器人到達目的地必須遵循的實際路徑。由于一些參數(shù)的原因,機器人可能不會遵循給它的確切路徑,但它總是試圖通過不斷地重新規(guī)劃路徑來遵循它。節(jié)點圖指示了不同節(jié)點正在發(fā)布和訂閱的不同主題。其中/move_base節(jié)點訂閱了幾個主題,如里程計、速度命令、地圖、目標,這些主題為機器人的基礎在環(huán)境中導航提供了必要的數(shù)據(jù)。
結果評估
為了評估ROS和基于SLAM的Gmapping和導航的性能,創(chuàng)建了特定的環(huán)境。在每個環(huán)境中,不同的參數(shù),如SLAM生成的地圖代表現(xiàn)實的程度,機器人到達給定目的地所需的時間。此外,動態(tài)障礙物被放置在機器人的導航路徑上,以測試機器人重新規(guī)劃路徑到另一條路徑所需的時間。通過測試算法的幾個目的地,當目的地A作為機器人的目標時,SLAM根據(jù)之前生成的地圖找出最短路徑,但是當我們在路徑中放置動態(tài)障礙物時,激光傳感器掃描地圖,并通過在地圖中添加檢測到的障礙物來更新地圖。一旦地圖更新,SlAM找到到達目的地的下一條最短路徑。
結論
為了驗證基于ROS和SLAM的SLAM建圖和導航的性能。在本項目中,通過驅動機器人穿過在Rviz模擬器中創(chuàng)建的特定環(huán)境及其地圖。創(chuàng)建地圖后且目標點固定后。然后計算機器人到達目的地的時間。通過考慮10次試驗,得出平均值。通過改變目的地點,類似的過程得以繼續(xù)。在某些情況下,也引入一些障礙物,這樣機器人就會找到另一條路,并穿過它。以同樣的方式創(chuàng)建和測試第二個環(huán)境。計算到達目的地所需的時間。
從這項研究中可以觀察到,機器人給出了很好的響應時間,并且只需要合理的時間來覆蓋從出發(fā)點到目的地的距離。隨著距離的增加,增加的時間也增加。在地圖有障礙物的情況下,機器人會找到最短的路徑。如果引入額外的障礙物,機器人將停止并重新計算新路徑。
參考外文文獻
[1] International Journal of Pure and Applied Mathematics Volume 118 No. 7 2018, 199-205
ROS based Autonomous Indoor Navigation Simulation Using SLAM Algorithm
Rajesh Kannan Megalingam, Chinta Ravi Teja, Sarath Sreekanth, Akhil Raj
Department of Electronics and Communication Engineering, Amrita Vishwa Vidaypeetham, Amritapuri, Kerala, India.
Abstract—In this paper, we are checking the flexibility of a SLAM based mobile robot to map and navigate in an indoor environment. It is based on the Robot Operating System (ROS) framework. The model robot is made using gazebo package and simulated in Rviz. The mapping process is done by using the GMapping algorithm, which is an open source algorithm. The aim of the paper is to evaluate the mapping, localization, and navigation of a mobile robotic model in an unknown environment. Keywords—Gazebo; ROS; Rviz; Gmapping; laser scan; Navigation; SLAM; Robot model; Packages.
I. INTRODUCTION
In the modern world, the need for machines are increasing due to the probability of making mistakes by the robot is less. The research and application of robotics are from healthcare to artificial intelligence. A robot can’t understand the surroundings unless they are given some sensing power. We can use different sensors like LIDAR, RGB-D camera, IMU (inertial measurement units) and sonar to give the sensing power. By using sensors and mapping algorithms a robot can create a map of the surroundings and locate itself inside the map. The robot will be continuously checking the environment for the dynamic changes happening there. Our aim was to build an autonomous navigation platform for indoor application. In this paper, we are checking the efficiency of a SLAM (Simultaneous Localization and Mapping) based robot model implemented in ROS (Robot Operating System) by measuring the travel time taken by the robot model to reach the destination. The test is done in a virtual environment created by Rviz. By placing different dynamic obstacles for different destinations in the map, the travel time is measured.
II. MOTIVATION
Working with the robots need a lot of sensors and every process needs to be handled in real time. To use the sensors and actuators which needs to be updated every 10-50 milliseconds we need a type of operating system that gives this kind of privilege. Robot Operating System (ROS) provides us with the architecture to achieve this. ROS is open source and there are a lot of codes available from good research institutes which one can readily use and implement in their own projects. Further robot’s engineers earlier lacked a common platform for collaboration and communication which delayed the adoption of robotic butlers and other related developments. The robotic innovation has quickly paced up since last decade with the advent of ROS wherein the engineers can build robotic apps and programs. Robot navigation is a very wide topic which most of the researchers are concentrating in the field of robotics. For a mobile robot system to be autonomous, it has to analyze data from different sensors and perform decision making in order to navigate in an unknown environment. ROS helps us in solving different problems related to the navigation of the mobile robot and also the techniques are not restricted to a particular robot but are reusable in different development projects in the field of robotics.
III. RELATED WORKS
In the research paper [1], the Authors use ROS with a gmapping algorithm to localize and navigate. Gmapping algorithm uses laser scan data from the LIDAR sensor to make the map. The map is continuously monitored by OpenCV face detection and corobot to identify human and navigate through the working environment. The authors of research paper [2] explain about 2 cooperative robots which work based on ROS, mapping, and localization. These robots are self-driving and working in unknown areas. For this project also the algorithm used is SLAM. Here the main tasks of the robots are to pick up three block pieces and to arrange them in a predetermined manner. With the help of the ROS, they made robots for this purpose. In the research paper [3], the Authors created a simulation of the manipulator and illustrated the methods to implement robot control in a short time. Using ROS and gazebo package, they build a model of pick and place robot with 7 DOF. They managed to find a robot control which takes less time. A research paper [5] compares 3 SLAM algorithms core SLAM, Gmapping, and Hector SLAM using simulation. The best algorithm is used to test unmanned ground vehicles(UGV) in different terrains for defense missions. Using simulation experiments they compared the performance of different algorithms and made a robotic platform which performs localization and mapping. The authors of the research paper [6], made a navigation platform with the use of automated vision and navigation framework, With the use of ROS, the open source GMapping bundle was used for Simultaneous Localization and Mapping (SLAM). Using this setup with rviz, the turtlebot 2 is implemented. Using a Kinect sensor in place of laser range finder, the cost is reduced. The journal [9], deals with indoor navigation based on sensors that are found in smart phones. The smartphone is used as both a measurement platform and user interface. The Author of the journal [10] implemented a 6-degree of freedom (DOF) pose estimation (PE) method and an indoor wayfinding system for the visually impaired. The floor plane is extracted from the 3-D camera’s point cloud and added as a landmark node into the graph for 6-DOF SLAM to reduce errors. roll, pitch, yaw, X, Y, and Z are the 6 axes. The user interface is through sound. Journal [11] explains why the indoor environment is difficult for an autonomous quadcopter. Since the experiment is done indoor they couldn’t use GPS, they used a combination of a laser range finder, XSens IMU, and laser mirror to make 3-D map and locate itself inside it. The quadcopter is navigating using SLAM algorithm.In paper [12] the authors describe fixed path algorithm and characteristics of the wheelchair which uses this with the help of simulation techniques. The authors of paper [13] explain about an auto navigation platform made in Arduino and the use of ani2c protocol to interface components like adigital compass and a rotation encoder to calculate the distance. In the paper [14], using Fuzzy toolbox in Matlab the authors created an autonomous mobile robot and uses the robot for path planning. 24 fuzzy rules on the robot are carried out. The authors of the paper [15], creates an object level mapping of an indoor space using RFID ultra-high frequency passive tags and readers. they say the method is used to map a large indoor area in a cost-effective manner.
IV. SYSTEM
A. ROS Robotic Operating System (ROS) is a free and open-source and one of the most popular middlewares for robotics programming. ROS comes with message passing interface, tools, package management, hardware abstraction etc. It provides different libraries, packages and several integration tools for the robot applications. ROS is a message passing interface that provides inter-process communication so it is commonly referred as middleware. There are numerous facilities that are provided by ROS which helps researchers to develop robot applications. In this research work, ROS is considered as the main base because it publishes messages in the form of topics in between different nodes and has a distributed parameter system. ROS also provides Interplatform operability, Modularity, Concurrent resource handling. ROS simplifies the whole process of a system by ensuring that the threads aren't actually trying to read and write to shared resources, but are rather just publishing and subscribing to messages. ROS also helps us to create a virtual environment, generate robot model, implement the algorithms and visualize it in the virtual world rather than implementing the whole system in the hardware itself. Therefore, the system can be improved accordingly which provides us a better result when it is finally implemented it in the hardware.
B. Gazebo The gazebo is a robot simulator. Gazebo enables a user to create complex environments and gives the opportunity to simulate the robot in the environment created. In Gazebo the user can make the model of the robot and incorporate sensors in a three-dimensional space. In the case of the environment, the user can create a platform and assign obstacles to that. For the model of the robot, the user can use the URDF file and can give links to the robot. By giving the link we can give the degree of movement for each part of the robot. The robot model which is created for this research is a differential drive robot with two wheels, Laser, and a camera on it as shown in Fig. 1. A sample environment is created in the Gazebo for the robot to move and map accordingly. The sample map is shown in Fig. 2. In this environment, several objects were placed randomly where the map is created along with it the objects as these objects were considered as static obstacles.
C. SLAM Autonomous robots should be capable of safely exploring their surroundings without colliding with people or slamming into objects. Simultaneous localization and mapping (SLAM) enable the robot to achieve this task by knowing how the surroundings look like (mapping) and where it stays with respect to the surrounding (localization). SLAM can be implemented using different types of 1D, 2D and 3D sensors like acoustic sensor, laser range sensor, stereo vision sensor and RGB-D sensor. ROS can be used to implement different SLAM algorithms such as Gmapping, Hector SLAM, KartoSLAM, Core SLAM, Lago SLAM. KartoSLAM, Hector SLAM, and Gmapping are better in the group compared to others. These algorithms have a quite similar performance from map accuracy point of view but are actually conceptually different. That’s, Hector SLAM is EKF based, Gmapping is based on RBPF occupancy grid mapping and KartoSLAM in based on thegraph-based mapping. Gmapping can perform well for a less processing power robot. The mapping package in ROS provides laser-based SLAM (Simultaneous Localization and Mapping), as the ROS node called slam_gmapping.
D. Rviz Rviz is a simulator in which we can visualize the sensor data in the 3D environment, for example, if we fix a Kinect in the robot model in the gazebo, the laser scan value can be visualized in Rviz. From the laser scan data, we can build a map and it can be used for auto navigation. In Rviz we can access and graphically represent the values using camera image, laser scan etc. This information can be used to build the point cloud and depth image. In rviz coordinates are known as frames. We can select many displays to be viewed in Rviz they are data from different sensors. By clicking on the add button we can give any data to be displayed in Rviz. Grid display will give the ground or the reference. Laser scan display will give the display from the laser scanners. Laser scan displays will be of the type sensor msgs/Laser scans. Point cloud display will display the position that is given by the program. Axes display will give the reference point.
V. IMPLEMENTATION
The environment for the robot model to perform the navigation is created in the gazebo and the robot model which was created is imported into the environment. The robot model consists of two wheels, two caster wheels for the ease of movement and a camera is attached to the robot model. Later the Hokuyo Laser is added to the robot and plugins were incorporated into the gazebo files. Hokuyo laser provides laser data which can be used for creating the map. Using the Gmapping packages a map is created in the Rviz by adding the different parameters that are necessary. The Fig. 3, shows the initial generation of the map when launched. Initially, the robot model is moved to every corner of the environment until a full map is created using the “teleop_key” package where the robot is controlled using the keyboard. As shown in the Fig. 4, the final generated map in the Rviz which is very much similar to the created environment in the gazebo. For visualization in Rviz, necessary topics were selected and added. The Hokuyo laser sensor which is used in this robot model publishes the laser data in the form of the topic “/scan” which is selected as a topic of laser scan in rviz. In a similar way for creating the map, “/map” topic is added. The generated map is saved using the map_server package that is available in the ROS. Once the map is generated and saved the robot is now ready for the incorporation of navigation stack packages
It is very important to note that a robot cannot be navigated without feeding the map to it. Navigation stack packages by using amcl were used which provides a probabilistic localization system for a robot to move in a 2D. Now, the robot is ready to navigate anywhere in the created map. The destination for the robot can be given using the 2D nav goal option in the Rviz which basically acknowledges the robot with a Goal. The user has to click on the desired area in the map and should also point out the orientation of the robot that it has to be in. The blue line is the actual path that the robot has to follow to reach the destination. The robot may not follow the exact path that is given to it due to some of the parameters but it always tries to follow it by rerouting itself constantly. The node graph that is shown in the Fig. 5, indicates the different topics that are being published and subscribed to the different nodes. The /move_base node is subscribed to several topics like odometry, velocity commands, map, goal, these topics gives the necessary data for the base of the robot to navigate in the environment.
VI. EVALUATION OF THE RESULTS
In order to evaluate the performance of ROS and slam based Gmapping and navigation, specific environments were created. In each environment, different parameters like how well the SLAM generated maps represent reality, the time it took for the robot to reach the given destination. Also, the dynamic obstacles were placed in the robot's navigation path to
收藏