智能機(jī)器人原理與應(yīng)用 課件 第8章 ROS機(jī)器人操作系統(tǒng)_第1頁
智能機(jī)器人原理與應(yīng)用 課件 第8章 ROS機(jī)器人操作系統(tǒng)_第2頁
智能機(jī)器人原理與應(yīng)用 課件 第8章 ROS機(jī)器人操作系統(tǒng)_第3頁
智能機(jī)器人原理與應(yīng)用 課件 第8章 ROS機(jī)器人操作系統(tǒng)_第4頁
智能機(jī)器人原理與應(yīng)用 課件 第8章 ROS機(jī)器人操作系統(tǒng)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北京信息科技大學(xué)自動化學(xué)院智能機(jī)器人原理與應(yīng)用“智能檢測技術(shù)與模式識別”研究所北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》第八章ROS機(jī)器人操作系統(tǒng)

機(jī)器人操作系統(tǒng)(robot

operating

system),簡稱ROS,是由WillowGarage公司于2010年發(fā)布并開源的高度靈活的軟件架構(gòu),用于編寫機(jī)器人軟件程序。ROS極大地提高了研發(fā)效率,減少了重復(fù)工作,也降低了硬件設(shè)計和開發(fā)的難度。8.1.1ROS簡介

ROS并不是傳統(tǒng)意義上的操作系統(tǒng),它是基于計算機(jī)操作系統(tǒng)之上開發(fā)的一個框架,提供了硬件抽象、底層設(shè)備管理與控制、常用功能實現(xiàn)、進(jìn)程間消息、程序包發(fā)送等功能。ROS具備操作系統(tǒng)的許多功能,但是它需要運行在計算機(jī)操作系統(tǒng)之上,故一般被稱作次級操作系統(tǒng)或元操作系統(tǒng)。ROS采用了分布式結(jié)構(gòu),基于TCP/IP的通信方式,其強(qiáng)大的耦合性使得每個功能模塊都可以單獨設(shè)計、編譯,然后在運行時松散地進(jìn)行合成。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架ROS基于分布式處理框架,使得多種不同功能可單獨設(shè)計,并能在運行時松散耦合。如圖所示,這種基于模塊間點對點的松散耦合的網(wǎng)絡(luò)連接處理架構(gòu)執(zhí)行若干種類型的通訊,包括基于服務(wù)的同步RPC(遠(yuǎn)程過程調(diào)用)通信、基于Topic的異步數(shù)據(jù)流通信,還有參數(shù)服務(wù)器上的數(shù)據(jù)存儲。8.1.1ROS簡介1.ROS的運行機(jī)制北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架(1)點對點的設(shè)計。ROS有眾多的任務(wù)進(jìn)程,系統(tǒng)將其抽象為節(jié)點,由Master統(tǒng)一管理。其中每個節(jié)點的耦合程度較低,而Master為服務(wù)和客戶建立連接充當(dāng)媒介,各個節(jié)點功能間都可進(jìn)行通信,這種消息傳遞機(jī)制使得ROS可分布式部署,并且更加簡單高效。8.1.1ROS簡介2.ROS系統(tǒng)的特點(2)多語言支持。ROS利用了簡單的、與語言無關(guān)的接口定義語言描述模塊之間的消息傳送。接口定義語言使用簡短的文本描述每條消息的結(jié)構(gòu),也允許消息的合成。在ROS系統(tǒng)中,每個節(jié)點內(nèi)部的程序可由各種語言編寫,只要其發(fā)出的接口相符,通過網(wǎng)絡(luò)套接字通信的方式便可獲取節(jié)點想表達(dá)的數(shù)據(jù)信息,此種通信方式有利于代碼的移植。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架(3)集成程度高。在設(shè)計之初,大多數(shù)已經(jīng)存在的機(jī)器人軟件工程都包含了可復(fù)用的驅(qū)動和算法,但是由于接口不兼容,大部分代碼的中間層都非?;靵y,故ROS建立的系統(tǒng)具有模塊化的特點。在實際工程中,既可以編寫或使用一兩個節(jié)點單獨運行,又可以通過代碼復(fù)用令多個節(jié)點融合。8.1.1ROS簡介2.ROS系統(tǒng)的特點(4)工具包豐富。為了提升系統(tǒng)的管理效率,ROS參考已有的計算機(jī)操作系統(tǒng),構(gòu)建采用了豐富的工具包。這些工具承擔(dān)了各種各樣的任務(wù),豐富的工具包使基于ROS的開發(fā)更有效率。(5)源碼開放。ROS的所有的源碼都是公開發(fā)布,以分布式的關(guān)系遵循著BSD許可,即允許各種商業(yè)和非商業(yè)的工程開發(fā)。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架如圖所示,從架構(gòu)上看,ROS架構(gòu)分為3個層次:一是建立在Linux系統(tǒng)上的OS層;二是實現(xiàn)通信機(jī)制與機(jī)器人開發(fā)庫的中間層;三是在ROSMaster管理下保證各個節(jié)點功能運行的應(yīng)用層。8.1.2ROS整體架構(gòu)分析在中間層中,ROS做了大量工作,并專門設(shè)計了通信系統(tǒng),各個節(jié)點之間均使用ROS提供的消息傳遞機(jī)制。在通信機(jī)制之上,ROS提供了大量機(jī)器人開發(fā)相關(guān)的庫,如數(shù)據(jù)類型定義、坐標(biāo)變換、運動控制等,可以提供給應(yīng)用層使用。應(yīng)用層中負(fù)責(zé)管理整個系統(tǒng)的正常運行管理者為Master。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架如圖所示,從應(yīng)用層面看,ROS系統(tǒng)可以分為3三個級別,分別為計算圖級、文件系統(tǒng)級、開源社區(qū)級。計算圖集描述程序如何運行,以及各個進(jìn)程與系統(tǒng)之間的通信。文件系統(tǒng)級表達(dá)的是硬盤中的代碼程序以及軟件如何組織和構(gòu)建的。開源社區(qū)級主要是ROS資源的獲取和分享,如何開源代碼。8.1.2ROS整體架構(gòu)分析北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架計算圖級是ROS處理數(shù)據(jù)的一種點對點的網(wǎng)絡(luò)形式,該網(wǎng)絡(luò)是節(jié)點之間通過主題或服務(wù)來連接。系統(tǒng)運行時,任何節(jié)點都可以訪問此網(wǎng)絡(luò),通過獲取其他節(jié)點發(fā)布的消息,或是將自身數(shù)據(jù)發(fā)布到網(wǎng)絡(luò)上來達(dá)到節(jié)點之間數(shù)據(jù)交換的目的。ROS中的基本計算圖級概念包括:節(jié)點、節(jié)點管理器、參數(shù)服務(wù)器、消息、服務(wù)、主題和消息記錄包。這些概念以各種形式來提供數(shù)據(jù)交互。8.1.2ROS整體架構(gòu)分析1.計算圖級1)節(jié)點(node)節(jié)點是ROS中抽象出來的最基本的計算執(zhí)行進(jìn)程。在工程中,若要使用某個功能包,或是調(diào)用自己編寫的可執(zhí)行文件,必然要創(chuàng)建一個節(jié)點,并將此節(jié)點連接到ROS的網(wǎng)絡(luò)中,定義好該節(jié)點的接口和通信形式,以便完成節(jié)點之間的數(shù)據(jù)交換。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架8.1.2ROS整體架構(gòu)分析1.計算圖級2)節(jié)點管理器(master)節(jié)點管理器是為了管理節(jié)點產(chǎn)生的,用于節(jié)點的主題、信息和參數(shù)修改等,而節(jié)點之間的通信完全是由節(jié)點管理器控制。同時,對于部署在不同設(shè)備的節(jié)點來說,可以通過一個節(jié)點管理器統(tǒng)一管理。3)參數(shù)服務(wù)器(parameter

server)參數(shù)服務(wù)器是可以通過網(wǎng)絡(luò)訪問的共享的多變量字典,是節(jié)點存儲參數(shù)的地方,通過關(guān)鍵字存儲。使用節(jié)點時,通過參數(shù)服務(wù)器存儲和檢索參數(shù),也通過參數(shù)服務(wù)器修改節(jié)點的工作任務(wù)。4)消息(message)節(jié)點之間的通信可以通過消息實現(xiàn)數(shù)據(jù)交換。消息包含了一個節(jié)點所發(fā)布的數(shù)據(jù)信息,消息的類型很多,前面已有了介紹,除了介紹的消息類型外,也可以進(jìn)行自定義消息操作。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架8.1.2ROS整體架構(gòu)分析1.計算圖級5)主題(topic)主題是ROS網(wǎng)絡(luò)對節(jié)點發(fā)布消息一種通信方式,它通過發(fā)布/訂閱來實現(xiàn),每一條消息都會發(fā)布到相應(yīng)的主題上。當(dāng)一個節(jié)點發(fā)送數(shù)據(jù)時,可稱為此節(jié)點項主題發(fā)布消息,其他訂閱此主題的節(jié)點可通過主題接收消息,這是ROS中常見的通信方式。6)服務(wù)(service)服務(wù)是ROS網(wǎng)絡(luò)對節(jié)點發(fā)出請求的一種通信方式,它通過請求/應(yīng)答來實現(xiàn),服務(wù)也必須有唯一的名稱。當(dāng)一個節(jié)點提供了某一個服務(wù)后,ROS中的所有節(jié)點都可以使用ROS編寫的代碼與其通信。7)消息記錄包(bag)消息記錄包是用來保存ROS消息數(shù)據(jù)的文件格式。在工程中,可以通過消息記錄包記錄各種難以收集的傳感器數(shù)據(jù),并且收集多次實驗的數(shù)據(jù),以便開發(fā)者的開發(fā)和調(diào)試。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架8.1.2ROS整體架構(gòu)分析2.文件系統(tǒng)級ROS的內(nèi)部結(jié)構(gòu)、文件結(jié)構(gòu)和所需的核心文件都在這一層。由于ROS有眾多的文件,而這些文件需要進(jìn)行統(tǒng)一的管理,不同的程序文件放在不同的文件夾下,根據(jù)不同的功能進(jìn)行分類。1)功能包集(metapackage)將多個功能接近甚至相互依賴的軟件包放到一個集合之中,稱為功能包集,在ROShydromedusa版本之前,相似的概念為stack(功能包集)。2)功能包(package)功能包在ROS中是組成軟件的最基本形式,無論是單個節(jié)點的運行還是多個節(jié)點組織,都需要用功能包搭建。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架8.1.2ROS整體架構(gòu)分析2.文件系統(tǒng)級4)消息類型(message)在ROS中,消息是節(jié)點之間進(jìn)行數(shù)據(jù)交換的一種通信形式,它既有ROS設(shè)計時規(guī)定的消息格式,也可以根據(jù)工程需要進(jìn)行消息格式的自定義。5)服務(wù)類型(service)服務(wù)是節(jié)點之間通信的另一種方式,是一種簡化的服務(wù)描述語言,以實現(xiàn)節(jié)點之間的請求/響應(yīng)的通信。與消息的通信方式不同,此種通信方式面對一對一的節(jié)點數(shù)據(jù)交換。3)功能包清單(manifest)功能包清單主要描述此功能包的依賴關(guān)系、名稱、版本號、作者、維護(hù)者等信息。一般來說,每個功能包都會對應(yīng)地提供一個功能包清單,以便更加方便地安裝應(yīng)用功能包,通過功能包清單實現(xiàn)對功能包的管理工作。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架8.1.2ROS整體架構(gòu)分析3.開源社區(qū)級ROS的資源共享機(jī)制主要來源于其開源社區(qū),其共享途徑有多種方式,通過獨立的網(wǎng)絡(luò)社區(qū)分享軟件和知識。發(fā)行版(distribution):類似Linux發(fā)行版,ROS發(fā)行版包括一系列帶有版本號、可直接安裝的功能包,這使得ROS的軟件管理和安裝更加容易,而且可以通過軟件集合來維持統(tǒng)一的版本號。軟件源(repository):ROS依賴共享網(wǎng)絡(luò)上的開源代碼,不同的組織結(jié)構(gòu)可以開發(fā)或共享自己的機(jī)器人軟件。ROS

wiki:記錄ROS信息文檔的主要論壇。所有人都可以注冊、登錄該論壇,上傳自己的開發(fā)文檔、更新、編寫教程。郵件列表(mailinglist):ROS郵件列表是交流ROS更新的主要渠道,也可以交流ROS開發(fā)的各種疑問。ROS

Answers:ROSAnswers是一個咨詢ROS相關(guān)問題的網(wǎng)站,用戶可以在該網(wǎng)站提交自己的問題,并得到其他開發(fā)者的問答。博客(blog):發(fā)布ROS社區(qū)中的新聞、圖片、視頻。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.1ROS框架8.1.3ROS名稱系統(tǒng)在設(shè)計之初,ROS便考慮到大型的工程存在很多節(jié)點以及節(jié)點通信時的主題等,通過對各個部分的名稱加以組織,工程會進(jìn)行得更加順利,以便ROS處理和提取復(fù)雜的信息,如節(jié)點、主題、服務(wù)、參數(shù)服務(wù)器都有各自對應(yīng)的名稱。資源名稱的解析可以是相對的,故資源不一定需要知道它們所在的命名空間的位置。編寫節(jié)點時,可以假設(shè)它們在根命名空間中,如果編寫更大的系統(tǒng),它們可以被放到另一個指定的命名空間內(nèi)。這種可以移動到其他命名空間的機(jī)制提升了ROS的可復(fù)用性。在ROS中,每一個資源被定義在一個命名空間之中,此資源可以共享。資源可以在它們的命名空間內(nèi)創(chuàng)建,在自己的命名空間內(nèi)或上一級命名空間內(nèi)連接資源,連接可以在不同命名空間的資源間進(jìn)行。此種封裝將系統(tǒng)的不同部分進(jìn)行分離,避免命名錯誤導(dǎo)致占用全局名稱,使得調(diào)用出錯。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.2ROS通信機(jī)制8.2.1ROS通信機(jī)制概述ROS在中間層做的最多的是通信機(jī)制的改動,它提供了點對點的通信機(jī)制,在機(jī)器人開發(fā)中可以輕松地處理單獨模塊,靈活地使用機(jī)器人。ROS是基于Socket網(wǎng)絡(luò)連接的構(gòu)架,其中所有的消息通信都必須使用節(jié)點管理器。ROS通信實現(xiàn)的要素在8.1節(jié)進(jìn)行了詳細(xì)講解,包括節(jié)點、節(jié)點管理器、參數(shù)服務(wù)器、消息、服務(wù)、主題。ROS的架構(gòu)是基于ROS的松耦合網(wǎng)絡(luò)連接的處理架構(gòu),提供多種通信服務(wù),包括使用主題的異步數(shù)據(jù)流通信、使用服務(wù)的遠(yuǎn)程電泳通信和通過參數(shù)服務(wù)器數(shù)據(jù)傳輸通信,可以實現(xiàn)多種情況下的網(wǎng)絡(luò)連接。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.2ROS通信機(jī)制8.2.1ROS通信機(jī)制概述使用主題的異步數(shù)據(jù)流通信是ROS中最主要的通信方式,它實現(xiàn)了節(jié)點之間多對多的連接,并通過單向的數(shù)據(jù)通道傳輸數(shù)據(jù)。節(jié)點只需將數(shù)據(jù)發(fā)送到對應(yīng)的主題,訂閱者通過主題接收信息,實現(xiàn)了節(jié)點之間的通信解耦。使用遠(yuǎn)程調(diào)用服務(wù)通信可實現(xiàn)節(jié)點間一對一的連接,采用了請求/應(yīng)答的通信模式。當(dāng)一個節(jié)點發(fā)送請求并要從其他節(jié)點獲取數(shù)據(jù)時,可使用此種類型的通信方式。使用參數(shù)服務(wù)器數(shù)據(jù)傳輸通信可實現(xiàn)通過ROS搭建的網(wǎng)絡(luò)獲取多元共享的參數(shù)字典,節(jié)點運行時可在參數(shù)服務(wù)器上存儲或獲取參數(shù)。參數(shù)服務(wù)器運行在節(jié)點管理器上,主要實現(xiàn)一些參數(shù)的配置。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.2ROS通信機(jī)制8.2.2主題異步數(shù)據(jù)流通信原理簡介主題使用發(fā)布/訂閱模型進(jìn)行消息的傳遞,名稱是唯一的。在使用ROS的智能機(jī)器人中,一個節(jié)點若要與其他節(jié)點通信,只需在主題上發(fā)布消息,消息的發(fā)布者和訂閱者不需要相互知曉,實現(xiàn)了兩者之間的解耦,如圖所示。在ROS中,一個主題可以有多個發(fā)布者和訂閱者,同時,一個節(jié)點可發(fā)布或訂閱多個主題,并且可以隨時新建發(fā)布者或訂閱者。但每個發(fā)布者只能向一個主題發(fā)布消息,訂閱者只能訂閱一個主題。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.2ROS通信機(jī)制8.2.2主題異步數(shù)據(jù)流通信原理簡介通過主題的方式發(fā)布接收消息,實現(xiàn)節(jié)點間的單向數(shù)據(jù)流,發(fā)布者通過數(shù)據(jù)流向主題發(fā)布消息,而不用關(guān)注訂閱者是否接收到,訂閱者從主題接收消息,也不用反饋給發(fā)布者是否收到消息。在一個完整的ROS系統(tǒng)中,必須包含一個節(jié)點管理器Master,用來管理發(fā)布者和訂閱者,使消息可以正常地發(fā)布和訂閱,故每創(chuàng)建一個新的發(fā)布者或訂閱者,都要在Master上注冊。當(dāng)發(fā)布者在Master上注冊時,Master會保存發(fā)布者的統(tǒng)一資源標(biāo)識符和發(fā)布者發(fā)布的主題,當(dāng)有訂閱者在Master上注冊并訂閱某個主題時,它會在保存的信息中尋找發(fā)布者,之后將發(fā)布者的統(tǒng)一資源標(biāo)識符發(fā)送給訂閱者,從而建立一對多的連接。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.2ROS通信機(jī)制8.2.3同步遠(yuǎn)程過程調(diào)用服務(wù)通信發(fā)布/訂閱的通信方式屬于單向的多對多的通信方式,發(fā)布者與訂閱者之間解耦,這種通信方式不適合遠(yuǎn)程過程調(diào)用的請求/應(yīng)答模型。請求/應(yīng)答是分布式系統(tǒng)常用的信息交互方式,故ROS提供了遠(yuǎn)程過程服務(wù)通信方式,實現(xiàn)遠(yuǎn)程過程調(diào)用請求/應(yīng)答模型。服務(wù)是由一對一的消息組成,一個用于實現(xiàn)請求,一個用來實現(xiàn)應(yīng)答。節(jié)點用字符名定義服務(wù),客戶端通過發(fā)送一個請求消息調(diào)用服務(wù),之后等待響應(yīng)。如圖所示。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.2ROS通信機(jī)制8.2.4參數(shù)服務(wù)器數(shù)據(jù)傳輸簡介參數(shù)服務(wù)器是在ROS上的一種共享的多變量參數(shù)字典,節(jié)點運行時可在參數(shù)服務(wù)器上存儲或獲取參數(shù)。參數(shù)服務(wù)器通常用于存儲靜態(tài)的非二進(jìn)制數(shù)據(jù),并非是為了高性能數(shù)據(jù)存儲。參數(shù)服務(wù)器是全局可見的,所有節(jié)點都可以獲取和存儲參數(shù),可以刪除、修改數(shù)據(jù)。如圖所示。參數(shù)屬于參數(shù)服務(wù)器,即節(jié)點創(chuàng)建了參數(shù),在節(jié)點終止后,參數(shù)依然會保留在參數(shù)服務(wù)器中。這種模式提高了ROS節(jié)點的靈活性和可配置性。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.3ROS開發(fā)實例—基于ROS的室內(nèi)智能機(jī)器人導(dǎo)航與控制8.3.1ROS開發(fā)環(huán)境搭建支持ROS的操作系統(tǒng)有多種,但正式支持的只有Ubuntu系統(tǒng)。以Ubuntu系統(tǒng)為例,本節(jié)介紹ROS開發(fā)環(huán)境的搭建。這里主要介紹ROS的安裝和ROS開發(fā)環(huán)境的搭建,Ubuntu系統(tǒng)的安裝不再贅述。ROS的常規(guī)安裝操作如下。(1)設(shè)置網(wǎng)絡(luò)時間協(xié)議(network

time

protocol,NTP)。(2)添加代碼列表。這里需要在ros-latestl.ist添加ROS版本庫(3)設(shè)置公鑰。設(shè)置公鑰能獲取從ROS庫下載功能包的權(quán)限。(4)更新軟件包索引。(5)安裝ROS

Kinetic

Kame。此操作的目的是安裝臺式機(jī)的ROS功能包,功能包涵蓋ROS、rqt、RViz、機(jī)器人相關(guān)的一些庫、仿真、導(dǎo)航等內(nèi)容。(6)初始化rosdep。(7)安裝rosinstall。(8)加載環(huán)境配置文件。(9)創(chuàng)建并初始化工作目錄。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.3ROS開發(fā)實例—基于ROS的室內(nèi)智能機(jī)器人導(dǎo)航與控制8.3.2室內(nèi)移動服務(wù)機(jī)器人的系統(tǒng)結(jié)構(gòu)室內(nèi)環(huán)境是一種結(jié)構(gòu)化環(huán)境,并具有一定動態(tài)性。這要求室內(nèi)移動服務(wù)機(jī)器人具備周邊環(huán)境感知、動態(tài)環(huán)境下的地圖構(gòu)建、面向任務(wù)的導(dǎo)航以及人機(jī)間交互與合作的能力。室內(nèi)移動服務(wù)機(jī)器人的基本硬件組成主要包括運動底盤、地圖構(gòu)建設(shè)備、感知與導(dǎo)航設(shè)備等。1.硬件結(jié)構(gòu)(1)運動底盤。雖然兩輪差動底盤對地面的適應(yīng)性能較差,并且存在運動約束,但從控制成本角度考慮,選擇了YujinRobot公司生產(chǎn)的智能機(jī)器人底盤Kobuki。Kobuki具有碰撞、高精度碼盤以及陀螺儀等傳感器,具有判別行進(jìn)路面的情況以及自身姿態(tài)的能力。(2)地圖構(gòu)建設(shè)備。本文使用RPLIDAR激光雷達(dá)作為地圖構(gòu)建設(shè)備,它能夠?qū)崿F(xiàn)360°、6m范圍內(nèi)的激光測距掃描,在各類室內(nèi)環(huán)境以及無日光直接照射的室外環(huán)境下表現(xiàn)不錯。(3)視覺導(dǎo)航與認(rèn)知。為實現(xiàn)高性能的場景認(rèn)知功能,本文采用具有深度信息獲取功能的XtionPROLive攝像頭完成。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.3ROS開發(fā)實例—基于ROS的室內(nèi)智能機(jī)器人導(dǎo)航與控制8.3.2室內(nèi)移動服務(wù)機(jī)器人的系統(tǒng)結(jié)構(gòu)根據(jù)上述要求,室內(nèi)服務(wù)機(jī)器人的系統(tǒng)結(jié)構(gòu)如圖8.10所示。硬件層包括移動底盤,用于地圖構(gòu)建的傳感器以及用于完成任務(wù)的視覺傳感器。虛線部分為驅(qū)動層,用于應(yīng)用層與硬件的溝通。定位導(dǎo)航模塊負(fù)責(zé)完成機(jī)器人的自主移動,可視化部分是人機(jī)交互的接口。2.軟件結(jié)構(gòu)北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.3ROS開發(fā)實例—基于ROS的室內(nèi)智能機(jī)器人導(dǎo)航與控制8.3.3系統(tǒng)實現(xiàn)本文構(gòu)建的基于ROS的軟件系統(tǒng)主要分為4大部分:機(jī)器人運動控制模塊、同步定位與地圖構(gòu)建模塊、定位導(dǎo)航模塊、三維視覺認(rèn)知模塊。所有模塊獨立完成,開發(fā)者可以根據(jù)需要拼接。如圖所示,模塊運行時,統(tǒng)一由ROS_Master完成調(diào)度。北京信息科技大學(xué)自動化學(xué)院課程《智能機(jī)器人原理與應(yīng)用》8.3ROS開發(fā)實例—基于ROS的室內(nèi)智能機(jī)器人導(dǎo)航與控制8.3.3系統(tǒng)實現(xiàn)SLAM是機(jī)器人認(rèn)知外界環(huán)境的一種方式,也是智能機(jī)器人實現(xiàn)自主行為規(guī)劃的前提。其功能可以描述為:在未知的環(huán)境中,根據(jù)地圖以及傳感器信息進(jìn)行定位估計,并在定位的基礎(chǔ)上建造增量式地圖。1.同號定位與地圖構(gòu)建2.定位與導(dǎo)航智能機(jī)器人的定位導(dǎo)航是實現(xiàn)機(jī)器人自主運動的關(guān)鍵,本系統(tǒng)使用激

溫馨提示

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

評論

0/150

提交評論