ROS原理與技術(shù)應用 課件3-1 認知ROS系統(tǒng)_第1頁
ROS原理與技術(shù)應用 課件3-1 認知ROS系統(tǒng)_第2頁
ROS原理與技術(shù)應用 課件3-1 認知ROS系統(tǒng)_第3頁
ROS原理與技術(shù)應用 課件3-1 認知ROS系統(tǒng)_第4頁
ROS原理與技術(shù)應用 課件3-1 認知ROS系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

《ROS原理與技術(shù)應用》能力模塊三掌握自動駕駛系統(tǒng)的安裝與使用方法

任務一認知ROS系統(tǒng)導入假設你想要搭建一個類似這樣可以自主建圖和導航的智能車,那么你首先需要選擇一個合適的自動駕駛系統(tǒng),目前機器人操作系統(tǒng)(ROS)就能很好解決這些問題目錄

CONTENTS01020304ROS的發(fā)展歷程自動駕駛系統(tǒng)開發(fā)系統(tǒng)首選ROSROS的主要特性ROS常見的功能工具05初步成型的ROS生態(tài)系統(tǒng)新授硬件技術(shù)的飛速發(fā)展在促進機器人領域快速發(fā)展和復雜化的同時,也對機器人系統(tǒng)的軟件開發(fā)提出了巨大挑戰(zhàn)在近幾年里,產(chǎn)生了多種優(yōu)秀的機器人軟件框架,為軟件開發(fā)工作提供了極大的便利,其中最為優(yōu)秀的軟件框架之一就是機器人操作系統(tǒng)(RobotOperatingSystem,ROS)一、ROS的發(fā)展歷程一、ROS的發(fā)展歷程ROS是一個用于編寫機器人軟件的靈活框架。它集成了大量的工具、庫、協(xié)議,提供了類操作系統(tǒng)所提供的功能,包括硬件抽象描述、底層驅(qū)動程序管理、共用功能的執(zhí)行、程序間的消息傳遞、程序發(fā)行包管理,可以極大簡化繁雜多樣的機器人平臺下的復雜任務創(chuàng)建與穩(wěn)定行為控制。ROS基本發(fā)展歷程如圖所示。一、ROS的發(fā)展歷程一、ROS的發(fā)展歷程2017年12月8日,萬眾矚目的ROS2.0終于發(fā)布了第一個正式版——ArdentApalone,其宣傳海報如圖所示。考慮到配套功能包的完備性,本教材仍將采用ROS1.0版本完成相關實訓任務。

嚴格意義上來講,ROS是一款用于機器人或自動駕駛的應用軟件開發(fā)平臺,并不是一個真正的操作系統(tǒng)(因為它需要是基于Ubuntu操作系統(tǒng)安裝使用)。要保證一個復雜的系統(tǒng)穩(wěn)定、高效地運行,每個模塊都能發(fā)揮出最大的潛能,ROS提供了一個成熟有效的管理機制,使得系統(tǒng)中的每個軟硬件模塊都能有效地進行互動。ROS提供了大量的程序庫和工具,使得開發(fā)人員能夠更好地在機器人或人工智能領域中進行學習與研究。另外,ROS本身還具有許多功能,軟硬件驅(qū)動、可視化工具、消息傳遞等。二、自動駕駛系統(tǒng)開發(fā)系統(tǒng)首選--ROSROS的主要目標是為機器人研究和開發(fā)提供代碼復用的支持。ROS是一個分布式框架,以節(jié)點(node)為進程,這些進程被封裝在易于被分享和發(fā)布的功能包和程序包中。ROS的主要特性可以歸納為以下幾點:三、ROS的主要特性4豐富的功能軟件包5免費且開源性1點對點設計2分布式設計3支持多語言三、ROS的主要特性在ROS中,每一個進程都以一個節(jié)點的形式運行,可以分布于多個不同的主機。節(jié)點間的通信消息通過一個帶有發(fā)布和訂閱功能的RPC傳輸系統(tǒng),從發(fā)布節(jié)點傳送到接收節(jié)點。這種點對點的設計可以分散定位、導航等功能帶來的實時計算壓力,適應多機器人的協(xié)同工作。ROS在處理進程之間的通信時,采用了耦合度相對較低的點對點設計。點對點設計ROS是一個分布式設計的框架,不僅可以實現(xiàn)ROS工程之間的集成和發(fā)布,還能夠移植到其他軟件平臺上使用。ROS框架具有的模塊化特點使得每個功能節(jié)點可以進行單獨編譯,并且使用統(tǒng)一的消息接口讓模塊的移植、復用更加便捷。同時,ROS開源社區(qū)中移植或集成了大量已有開源項目車、PointCloudLibrary庫等,開發(fā)者可以使用豐富的資源實現(xiàn)機器人應用的快速開發(fā)。分布式設計三、ROS的主要特性為了支持更多應用的移植和開發(fā),ROS被設計成為一種語言弱相關的框架結(jié)構(gòu)。ROS使用簡潔、中立的定義語言描述模塊之間的消息接口,在編譯過程中再產(chǎn)生所使用語言的目標文件,為消息交互提供支持,同時也允許消息接口的嵌套使用。目前已經(jīng)支持Python、C++、Java、Octave和LISP等多種不同的語言,也可以同時使用這些語言完成不同模塊的編程。支持多語言目前ROS已經(jīng)可以支持使用的第三方軟件包數(shù)量達到數(shù)千個,可以大大提高開發(fā)與測試的工作效率。例如可視化,開發(fā)者可以根據(jù)ROS定義的接口在其中顯示機器人3D模型、周圍環(huán)境圖、機器人導航路線等信息。此外,ROS中還有消息查看工具、物理仿真環(huán)境等組件,提高了機器人開發(fā)的效率。豐富的功能軟件包ROS遵照的BSD許可(一種開源許可)給使用者較大的自由,允許其修改和重新發(fā)布其中的應用代碼,甚至可以進行商業(yè)化的開發(fā)與銷售。ROS開源社區(qū)中的應用代碼以維護者來分類,主要包含WillowGarage公司和一些開發(fā)者設計、維護的核心庫部分,以及由不同國家的ROS社區(qū)組織開發(fā)和維護的全球范圍的開源代碼。免費且開源性四、ROS常見的功能工具ROS開發(fā)時經(jīng)常使用的工具包括:Gazebo、Rviz、rqt、rosbag、rosbridge、moveit。Gazebo是一款免費的機器人仿真軟件,其使用界面如圖所示。它提供高保真度的物理模擬,一整套傳感器模型,以及對用戶和程序非常友好的交互方式。能夠在復雜的室內(nèi)和室外環(huán)境中準確高效地模擬機器人工作的功能,通常與ROS聯(lián)合使用,為開發(fā)者提供了優(yōu)異的仿真環(huán)境。gazebo支持urdf/sdf格式文件,后文會提及兩者的區(qū)別,它們均用于描述仿真環(huán)境,官方也提供了一些集成好的常用的模型模塊,可以直接導入使用。四、ROS常見的功能工具RViz是ROS中一款三維可視化平臺(其操作界面如圖所示),一方面能夠?qū)崿F(xiàn)對外部信息的圖形化顯示,另外還可以通過rviz給對象發(fā)布控制信息,從而實現(xiàn)對機器人的監(jiān)測與控制。中間部分為3D視圖顯示區(qū),能夠顯示外部信息;上部為工具欄,包括視角控制、目標設置、地點發(fā)布等,還可以添加自定義的一些插件;左側(cè)為顯示項目,顯示當前選擇的插件,并且能夠?qū)Σ寮膶傩赃M行設置;下側(cè)為時間顯示區(qū)域,包括系統(tǒng)時間和ROS時間等;右側(cè)為觀測視角設置區(qū)域,可以設置不同的觀測視角rqt是非常好用的數(shù)據(jù)流可視化工具,其顯示界面如圖所示。使用rqt可以更直觀地看到消息的通信架構(gòu)和流通路徑,rqt是一個圖形化用戶接口框架,它允許以插件的形式來實現(xiàn)各種圖形工具和接口。在rqt中你能以可停靠窗口的形式來運行所以存在的GUI工具。四、ROS常見的功能工具ROS常見的功能工具rosbag主要用于記錄、回放、分析rostopic中的數(shù)據(jù),其數(shù)據(jù)結(jié)構(gòu)如圖3-1-12所示。它可以將指定rostopic中的數(shù)據(jù)記錄到.bag后綴的數(shù)據(jù)包中,便于對其中的數(shù)據(jù)進行離線分析和處理。ROS常見的功能工具四、ROS常見的功能工具rosbridge是一個用在ROS系統(tǒng)和其他系統(tǒng)之間的一個功能包,就像是它的名字一樣,起到一個“橋梁”的作用,使得ros系統(tǒng)和其他系統(tǒng)能夠進行交互。01ROS節(jié)點1可以是智慧貓決策單元jetsonnano,ROS節(jié)點2是底盤控制單元Arduino2560控制板,它們之間的通信就是通過rosbridge來完成的。rosbridge為非ROS程序提供了一個JSONAPI,有許多與rosbridge進行交互的前端,包括一個用于Web瀏覽器交互的WebSocket服務器。Rosbridge_suite是一個包含rosbridge的元程序包,用于rosbridge的各種前端程序包(如WebSocket程序包)和幫助程序包。比如在自動駕駛領域,rosbridge功能包用于自動駕駛主控單元與底盤之間的通信。0302risvridge四、ROS常見的功能工具moveit是ros中一系列移動操作的功能包的組成,其顯示界面如圖所示。這個功能包特別適合多關節(jié)機械臂的運動控制,它提供了一系列成熟的插件和工具,可以實現(xiàn)機械臂控制的快速配置。起初,各種硬件技術(shù)泛濫,卻沒有能整合它們的操作系統(tǒng)。目前該領域最受矚目的ROS已經(jīng)開始為這些各種各樣的機器人部件初步構(gòu)建了較為龐大的生態(tài)系統(tǒng),如圖所示。ROS起步雖然微不足道,但正是其免費且開源的特性,ROS軟件包的數(shù)量近年來呈指數(shù)級增長,開發(fā)者可以在社區(qū)中下載、復用琳瑯滿目的自動駕駛功能模塊,這大大加速了ROS在自動駕駛領域的應用推廣。在ROS生態(tài)系統(tǒng)中,利用這些豐富且集中的資源,開發(fā)者和學習者可以實現(xiàn)機器人硬件設計、輔助開發(fā)自研機器人、仿真環(huán)境下的算法驗算、機器人系統(tǒng)的技能學習等目的。無論是提高個人技能,還是進行商業(yè)開發(fā),ROS生態(tài)系統(tǒng)提供的平臺和資源都能夠讓使用者站在巨人的肩膀上向更高處攀登,從而促進機器人領域的發(fā)展。五、初步成型的ROS生態(tài)系統(tǒng)任務實施一、任務準備(一)軟件、硬件準備(二)安全要求及注意事項1.JetsonNano或普通計算機,1臺。11.注意ROS系統(tǒng)的版本選擇Melodic。22.輸入命令的時候一定要細心,不要將命令輸入錯誤。

實施步驟有:二、實施步驟從互聯(lián)網(wǎng)搜索并了解常用的ROS發(fā)行版本包括哪些?它們對應的Ubuntu版本號是什么?發(fā)布時間和停止支持時間又是什么?將結(jié)果記錄到任務實施工單。01請根據(jù)網(wǎng)絡搜索ROS的特性主要包含哪些內(nèi)容,并將結(jié)果整理記錄到任務實施

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論