版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
項目1:認識智能機器人《智能機器人技術(shù)》課程任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價認識智能機器人親身感受智能機器人的操作任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價什么是機器人任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價機器人的基本概念機器人的概念自古代就有,真正現(xiàn)代意義的機器人問世已有幾十年,但對于機器人的定義還沒有形成一個統(tǒng)一的意見。這其中的根本原因是機器人涉及人的概念,成為一個難以回答的哲學(xué)問題。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價機器人的基本概念美國機器人協(xié)會(RIA)的定義:機器人是一種用于移動各種材料、零件、工具或?qū)S醚b置的,通過可編程序動作來執(zhí)行各種任務(wù),并具有編程能力的多功能機械手(manipulator)。日本工業(yè)機器人協(xié)會(JRA)的定義:工業(yè)機器人是一種裝備有記憶裝置和末端執(zhí)行器(endeffector)的,能夠轉(zhuǎn)動并通過自動完成各種移動來代替人類勞動的通用機器。我國對機器人的定義:機器人是一種自動化的機器,所不同的是這種機器具備一些與人或生物相似的智能能力,如感知能力、規(guī)劃能力、動作能力和協(xié)同能力,是一種具有高度靈活性的自動化機器。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價機器人的分類工業(yè)機器人服務(wù)機器人特種機器人任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價工業(yè)機器人工業(yè)機器人指應(yīng)用于生產(chǎn)過程與環(huán)境的機器人,在工業(yè)
生產(chǎn)加工過程中通過自動控制來代替人類執(zhí)行某些單調(diào)、頻繁和重復(fù)的長時間作業(yè),主要包括焊接機器人、搬運機器人、
碼垛機器人、包裝機器人、噴涂機器人、切割機器人和
凈室機器人等。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價服務(wù)機器人人類的活動領(lǐng)城不斷擴大,機器人的應(yīng)用也從制造領(lǐng)域向非制造領(lǐng)域發(fā)展。像海洋開發(fā)、宇宙探測、采掘、建筑、
醫(yī)療、農(nóng)林業(yè)、服務(wù)和娛樂等行業(yè)都提出了自動化和機器人化的要求,服務(wù)機器人由此應(yīng)運而生。服務(wù)機器人主要包括家用服務(wù)機器人、醫(yī)療服務(wù)機器人、娛樂陪伴機器人已經(jīng)專業(yè)服務(wù)機器人等。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價特種機器人特種機器人從本質(zhì)上來講,也屬于服務(wù)機器人。但特種機器人主要是代替人類從事高危環(huán)境和特殊工況的機器人。主要包括軍事作戰(zhàn)機器人、極限作業(yè)機器人和應(yīng)急救援機器人等
。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價執(zhí)行系統(tǒng)驅(qū)動系統(tǒng)感知系統(tǒng)控制系統(tǒng)任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價執(zhí)行系統(tǒng)執(zhí)行系統(tǒng)包括移動機構(gòu)和操作機構(gòu)。一般而言,智能機器人的移動機構(gòu)主要有車輪式移動機構(gòu)、履帶式移動機構(gòu)和足式移動機構(gòu)。此外,還有步進式移動機構(gòu)、蠕動式移動機構(gòu)、混合式移動機構(gòu)和蛇行式移動機構(gòu)等,以適應(yīng)各種特殊的場合。操作機構(gòu)主要為機械臂。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價車輪式移動機構(gòu)是機器人中應(yīng)用最多的一種,在相對平坦的地面上,用車輪移動的方式行走是相當優(yōu)越的。目前智能機器人中采用的車輪結(jié)構(gòu)主要有橡膠輪、麥克納姆輪、全向輪、正交輪以及越障輪。根據(jù)車輪的數(shù)量可以分為單輪式、兩輪式、三輪式、四輪式以及多輪式移動機構(gòu)。移動機構(gòu)任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價移動機構(gòu)履帶式移動機構(gòu)適合在各種路面
以及未經(jīng)鋪設(shè)的野外條件下行動,它是輪式移動機構(gòu)的拓展,履帶起給車輪連續(xù)鋪路的作用。履帶式移動機構(gòu)由履帶、驅(qū)動鏈輪、支承輪、托帶輪和張緊輪組成。履帶式行走機構(gòu)的形狀有很多種,主要為“一”字形或倒梯形。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價移動機構(gòu)足式行走機構(gòu)有很大的適應(yīng)性,尤其在有障礙物的通道(如管道、臺階或樓梯)或很難接近的工作場地更有優(yōu)越性;足式運動方式還具有主動隔振能力,盡管地面高低不平,機身的運動仍然可以相當平穩(wěn);足式移動機構(gòu)在不平地面和松軟地面上的運動速度較高,能耗較少。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價操作機構(gòu)機械臂是機器人的主要操作機構(gòu),根據(jù)不同的功能要求安裝不同結(jié)構(gòu)形式的末端執(zhí)行器,實現(xiàn)抓取、搬運等功能需求。機械臂的結(jié)構(gòu)、工作范圍、靈活性、抓重大小和定位精度都直接影響機器人的工作性能。因此,機械臂的結(jié)構(gòu)型式必須根據(jù)機器人的運動形式、抓取重量、動作自由度和運動精度等因素來確定。直角坐標型圓柱坐標型關(guān)節(jié)坐標型球坐標型任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價驅(qū)動器在機器人中的作用相當于人體的肌肉。驅(qū)動器必須有足夠的功率帶動機器人自身和負載運動。驅(qū)動器必須輕便、經(jīng)濟、精確、靈敏、可靠且便于維護。根據(jù)能量轉(zhuǎn)換方式,可將機器人驅(qū)動器劃分為液壓驅(qū)動系統(tǒng)、氣壓驅(qū)動系統(tǒng)、電氣驅(qū)動系統(tǒng)和新型驅(qū)動器。驅(qū)動系統(tǒng)任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價電氣驅(qū)動一般利用各種電動機產(chǎn)生力和力矩。因為省去了中間能量轉(zhuǎn)換的過程,所以比液壓驅(qū)動和氣動驅(qū)動效率高,使用方便且成本低,其應(yīng)用最廣泛。液壓驅(qū)動是指以液體為工作介質(zhì)進行能量傳遞和控制的一種驅(qū)動方式。一個完整的液壓系統(tǒng)由五個部分組成:動力元件、執(zhí)行元件、控制元件、輔助元件和液壓油。驅(qū)動系統(tǒng)任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價氣動驅(qū)動是以壓縮空氣為動力源,帶動機械完成伸縮或旋轉(zhuǎn)動作。因為是利用空氣具有壓縮性的特點,吸入空氣壓縮儲存,用控制元件控制其方向,帶動執(zhí)行元件的旋轉(zhuǎn)與伸縮。隨著技術(shù)的發(fā)展,出現(xiàn)了利用新工作原理制造的新型驅(qū)動器,如磁致伸縮驅(qū)動器、壓電驅(qū)動器、靜電驅(qū)動器、形狀記憶合金驅(qū)動器。驅(qū)動系統(tǒng)任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價普通電機驅(qū)動普通電動機包括交流電動機、直流電動機及伺服電動機。交流電動機主要由一個用以產(chǎn)生磁場的電磁鐵繞組或分布的定子繞組和一個旋轉(zhuǎn)電樞或轉(zhuǎn)子組成。交流電動機一般不能進行調(diào)速或難以進行無級調(diào)速,即使是多速電動機,也只能進行有限的有級調(diào)速。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價直流電動機主要包括定子和轉(zhuǎn)子2個大部分,直流電動機能夠?qū)崿F(xiàn)無級調(diào)速,由于直流電源價格較高,限制了它在大功率機器人上的應(yīng)用。伺服電動機可以控制速度,位置精度非常準確,可以將電壓信號轉(zhuǎn)化為轉(zhuǎn)矩和轉(zhuǎn)速以驅(qū)動控制對象。普通電機驅(qū)動任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價感知系統(tǒng)感知系統(tǒng),即是傳感器,在機器人的發(fā)展過程中起到了舉足輕重的作用。參照人類的感知能力,機器人的感知系統(tǒng)可以分為視覺、聽覺、觸覺、壓覺、接近覺、力覺和滑覺共七類。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價與人類視覺系統(tǒng)的作用一樣,機器人視覺系統(tǒng)賦予機器人一種高級感覺機構(gòu),使機器人能以“智能”和靈活的方式對其周圍環(huán)境做出反應(yīng)。機器人的視覺信息系統(tǒng)包括圖像傳感器、數(shù)據(jù)傳遞系統(tǒng)以及計算機和處理系統(tǒng)。機器人視覺系統(tǒng)主要利用顏色、形狀等信息來識別環(huán)境
目標。視覺感知任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價自主導(dǎo)航與定位是智能機器人最顯著的特點之一,要實現(xiàn)自主導(dǎo)航與定位,機器人必須對周圍環(huán)境中的物體進行探測,機器人對距離的感知就成為自主導(dǎo)航技術(shù)的先決條件。機器人對距離的感知是測距傳感器實現(xiàn)的,測距傳感器可分為超聲波測距傳感器、紅外線測距傳感器和激光測距傳感器等。距離感知任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價超聲波測距傳感器超聲波對液體、固體的穿透能力很強超聲波碰到雜質(zhì)或分界面會產(chǎn)生顯著反射形成反射回波超聲波碰到活動物體能產(chǎn)生多普勒效應(yīng)因此,超聲波的檢測廣泛應(yīng)用在工業(yè)、國防、生物醫(yī)學(xué)等方面。以超聲波作為檢測手段,必須產(chǎn)生超聲波和接收超聲波,完成這種功能的裝置就是超聲波測距傳感器。
任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價紅外線測距傳感器紅外線測距傳感器是利用紅外線的物理性質(zhì)來進行測量的傳感器。紅外線又稱為紅外光,它具有反射、折射、散射、干涉及吸收等性質(zhì)。任何物質(zhì),只要它本身具有一定的溫度,都能輻射紅外線。紅外線測距傳感器測量時,不與被測物體直接接觸,因此其具有靈敏度高、反應(yīng)快等優(yōu)點。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價激光測距傳感器激光測距傳感器是利用激光技術(shù)進行測量的傳感器。它由激光器、激光檢測器和測量電路組成。激光測距傳感器是新型測量儀表,它的優(yōu)點是能實現(xiàn)無接觸遠距離測量,速度快,精度高,量程大,抗光、電干擾能力強等。
任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價控制系統(tǒng)控制系統(tǒng)是機器人的指揮中樞,相當于人的大腦,負責對作業(yè)指令信息、內(nèi)外環(huán)境信息進行處理,并依據(jù)預(yù)定的本體模型、環(huán)境模型和控制程序做出決策,產(chǎn)生相應(yīng)的控制信號,通過驅(qū)動器驅(qū)動執(zhí)行機構(gòu)的各個關(guān)節(jié)按所需的順序、沿確定的位置或軌跡運動,完成特定的作業(yè)。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價控制系統(tǒng)從控制系統(tǒng)的構(gòu)成看,有開環(huán)控制系統(tǒng)和閉環(huán)控制系統(tǒng)之分;從控制方式看,有程序控制系統(tǒng)、適應(yīng)性控制系統(tǒng)和智能控制系統(tǒng)之分。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價機器人的運動方式?jīng)Q定了機器人的控制方式,而不同的控制方式需要不同的控制原理來實現(xiàn)??刂葡到y(tǒng)控制系統(tǒng)組成示意圖任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價點位控制方式軌跡控制式程序控制方式自適應(yīng)控制方式人工智能控制方式控制系統(tǒng)機器人常見的控制方式有五種。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價(1)認識智能機器人及其組成。(2)用鍵盤和手柄分別控制智能機器人移動。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價序號評價項目評分等級A(25-20)B(19-15)C(14-10)D(9-5)E(4-1)1任務(wù)過程的態(tài)度2任務(wù)完成的完整度3任務(wù)設(shè)計的合理性4任務(wù)實現(xiàn)的效果評定等級:A:優(yōu),得分>90B:好,得分>80C:一般,得分>60D:有待提高,得分<60Thankyou!授課老師:連國云項目2:智能機器人復(fù)雜的大腦《智能機器人技術(shù)》課程任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價在電腦上安裝Ubuntu系統(tǒng)和ROS系統(tǒng)啟動ROS系統(tǒng)中海龜仿真程序,
使用鍵盤控制海龜?shù)囊苿?。任?wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Linux與Ubuntu操作系統(tǒng)中最核心的部分叫做內(nèi)核,但只有內(nèi)核的話,無法實現(xiàn)相應(yīng)的功能,操作系統(tǒng)還需要提供相關(guān)消息和接口與應(yīng)用程序進行交換信息,使得計算機能夠根據(jù)應(yīng)用程序的需要進行相關(guān)操作。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Linux的發(fā)展歷程Linux是一種類似于UNIX的計算機操作系統(tǒng),誕生于1991年10月5日。Linux操作系統(tǒng)屬于模塊化系統(tǒng),在系統(tǒng)底層是由內(nèi)核和硬件進行交互,同時內(nèi)核也代表了應(yīng)用程序控制和調(diào)度所要訪問的資源,而應(yīng)用程序則運行在用戶空間,通過調(diào)用穩(wěn)定的系統(tǒng)程序庫來請求內(nèi)核服務(wù)。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價RedhatRHEL(RedhatEnterpriseLinux,也是RedhatAdvanceServer,為收費版本)FedoraCore(由Redhat桌面版本發(fā)展而來,為免費版本)CentOS(RHEL的社區(qū)克隆版本,為免費版本)Redhat,應(yīng)該稱為Redhat系列,包括:任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價RedhatRedhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分發(fā)方式是編譯好的二進制文件。穩(wěn)定性方面:RHEL和CentOS的穩(wěn)定性非常好,適合于服務(wù)器使用,F(xiàn)edoraCore的穩(wěn)定性較差,一般只用于桌面應(yīng)用。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價DebianDebian系列,包括Debian和Ubuntu等。Debian是社區(qū)類Linux的典范,是迄今為止最遵循GNU規(guī)范的Linux系統(tǒng)。Debian最早由IanMurdock于1993年創(chuàng)建,分為三個版本分支(branch):unstable,testing
和stable。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Debianunstable為最新的測試版本,其中包括最新的軟件包,但是也有相對較多的bug,適合桌面用戶testing的版本都經(jīng)過了unstable中的測試,相對較為穩(wěn)定stable一般只用于服務(wù)器,上面的軟件包大部分都比較過時,但是穩(wěn)定和安全性都非常的高任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價什么是Ubuntu系統(tǒng)Ubuntu系統(tǒng)是一個以桌面應(yīng)用為主的Linux操作系統(tǒng),Ubuntu默認桌面環(huán)境采用GNOME(TheGNUNetworkObjectModelEnvironment,GNU網(wǎng)絡(luò)對象模型環(huán)境)。Ubuntu很注重系統(tǒng)的可用性,其設(shè)計為在標準安裝完成后即可以讓使用者投入使用的操作系統(tǒng)。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價命令的基本格式在Linux的命令行的初始位置有命令行提示符:
[root@localhost~catkin_ws]#[]:這是提示符的分隔符號,沒有特殊含義。root:顯示的是當前的登錄用戶,筆者現(xiàn)在使用的是root用戶登錄。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價命令的基本格式@:分隔符號,沒有特殊含義。localhost:當前系統(tǒng)的簡寫主機名(完整主機名是localhost.localdomain)。~catkin_ws:代表用戶當前所在的目錄,此例中用戶當前所在的目錄是catkin_ws文件夾。#:命令提示符,Linux用這個符號標識登錄的用戶權(quán)限等級。如果是超級用戶,提示符就是#;如果是普通用戶,提示符就是$。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價命令的基本格式命令行中的每一項之間使用一個或多個空格分隔開,以方括號括起來的部分是可選的,即可有可無的。命令:告訴Linux(UNIX)操作系統(tǒng)執(zhí)行什么。選項:定義命令的執(zhí)行特性,可以有長短兩種選項。
長選項:用--引導(dǎo),后面跟完整的單詞,如–help
短選項:用-引導(dǎo),后面跟單個的字符,如-a命令[選項][參數(shù)](command[options][arguments])任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價命令的基本格式參數(shù):是命令處理的對象,通常情況可以是文件名、目錄、或用戶名。Linux中的命令是嚴格區(qū)分大小寫的,也就是大小寫不同,系統(tǒng)認為是兩個不同的命令。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Ubuntu系統(tǒng)的安裝虛擬機安裝硬盤安裝安裝難易簡單復(fù)雜硬件支持一般好運行速度慢快安全備份簡單復(fù)雜適合人群初次接觸或偶爾使用者有一定經(jīng)驗的開發(fā)者任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①下載iso鏡像任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①單擊“創(chuàng)建新的虛擬機”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價②選擇“典型”單擊“下一步”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價③選擇“稍后安裝操作系統(tǒng)”單擊“下一步”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價④選擇“Linux”和“Ubuntu64位”單擊“下一步”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價⑤選擇安裝位置單擊“下一步”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價⑥設(shè)置磁盤大小,選擇“將虛擬機磁盤拆分成多個文件”單擊“下一步”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價單擊“完成”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①編輯虛擬機設(shè)置任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價②選擇“CD/DVD”③選擇下載好的ISO文件④單擊“確定”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價⑤單擊“開啟此虛擬機”進入安裝任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①選擇中文(簡體)②單擊“安裝Ubuntu”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①選擇“漢語”②單擊“繼續(xù)”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①時間充裕的情況下,勾選“正常安裝”與“安裝Ubuntu時下載更新”②單擊“繼續(xù)”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價勾選“清除整個磁盤并安裝Ubuntu“②單擊“現(xiàn)在安裝”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價③單擊“繼續(xù)”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①在地圖上點擊當前所在區(qū)域,默認為“Shanghai”②單擊“繼續(xù)”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①根據(jù)提示設(shè)置好用戶密碼②單擊“繼續(xù)”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①等待安裝任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①單擊“現(xiàn)在重啟”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價①選擇用戶任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價②輸入密碼③單擊“登錄”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Ubuntu的基本操作Ubuntu的文件系統(tǒng)也是一個有層次的樹形結(jié)構(gòu),文件系統(tǒng)的最上層是/,表示根目錄,所有其他文件和目錄都位于跟目錄下,在Linux中,一切皆為文件,包括硬盤、分區(qū)和拔插介質(zhì)。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Ubuntu的基本操作/bin-重要的二進制(binary)應(yīng)用程序,如cp,ls等;/boot-啟動(boot)時用到的核心配置文件;/dev-設(shè)備(device)文件;/etc-存放系統(tǒng)管理所需的配置文件、啟動腳本等(etc)/home-本地用戶主(home)目錄/lib-系統(tǒng)庫(libraries)文件,存放最基本的動態(tài)鏈接共享庫,幾乎所有應(yīng)用程序都要用到該目錄下的文件;任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Ubuntu的基本操作/lost+found-在根(/)目錄下提供一個遺失+查找(lost+found)系統(tǒng),該目錄平時是空的,當系統(tǒng)遇到非正常關(guān)機,會做一些文件的備份工作;/root-root(root)用戶主文件夾,讀作“slash-root”/sbin-重要的系統(tǒng)二進制(systembinaries)文件/sys-系統(tǒng)(system)文件/tmp-臨時(temporary)文件/usr-包含絕大部分所有用戶(users)都能訪問的應(yīng)用程序和文件/var-經(jīng)常變化的(variable)文件,諸如日志或數(shù)據(jù)庫等任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Ubuntu的基本操作Ubuntu系統(tǒng)中對文件操作的主要命令,主要包括:ls:(List)查看當前路徑下的文件目錄,結(jié)果以不同顏色,經(jīng)過排列的文本列出目錄下所有文件mkdir:(MakeDirectory)在當前目錄下創(chuàng)建文件cd:(ChangeDirectory)切換目錄,從當前目錄切換成cd后跟的目錄cp:(Copy)拷貝源文件到指定目標文件目錄rm:(Remove)刪除指定的文件任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Ubuntu的基本操作mv:(Move)移動指定的文件或目錄到指定的目錄下,相當于執(zhí)行剪切
操作;locate:查找文件或目錄;可以使用通配符來匹配一個或多個文件,用“*”匹配所有文件,用“
?”匹配單個字符;pwd:(printworkingdirectory)顯示當前所在目錄;man:(Manual)顯示某個命令的說明信息;ifconfig:顯示系統(tǒng)的網(wǎng)絡(luò);任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價系統(tǒng)管理命令Linux系統(tǒng)中提供了大量對系統(tǒng)自身進行管理的命令,通過這些命令可以對系統(tǒng)的各項性能進行管理。whois:(whois)該指令會去查找并顯示指定帳號的用戶相關(guān)信息;whoami:(whoamI)顯示自身的用戶名稱;w:(who)執(zhí)行這項指令可得知目前登入系統(tǒng)的用戶有那些人,以及他們正在執(zhí)行的程序;usermod:(usermodify)該指令可以用來修改用戶帳號的各項設(shè)定;任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價apt命令Ubuntu本身提供了很多應(yīng)用程序軟件可供下載安裝,這些軟件包可以通過apt實現(xiàn)在Internet上搜索、安裝和更新等操作。Apt(AdvancedPackagingTool)是Ubuntu中用來管理程序軟件包的命令行程序,可以方便地完成對軟件的安裝、卸載和更新,也可以對ubuntu系統(tǒng)本身進行升級。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價apt命令安裝軟件包:sudoapt-getinstallpackagename重新安裝軟件包:sudoapt-getinstallpackagename--reinstall刪除軟件包:sudoapt-getremovepackagename刪除軟件包和配置文件:sudoapt-getremovepackagename–purge任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價操作系統(tǒng)獲取新的軟件包列表:sudoapt-getupdate更新已安裝的軟件包:sudoapt-getupgrade升級系統(tǒng):sudoapt-getdist-upgrade搜索軟件包:sudoapt-cachesearchpackagename查看軟件包的詳細信息:sudoapt-cacheshowpackagename任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS系統(tǒng)簡介ROS是機器人操作系統(tǒng)(RobotOperatingSystem)的英文縮寫,用于編寫機器人軟件程序的一種具有高度靈活性的軟件架構(gòu)。ROS是一個適用于機器人的開源的元操作系統(tǒng)。它提供了操作系統(tǒng)應(yīng)有的服務(wù),包括硬件抽象,底層設(shè)備控制,常用函數(shù)的實現(xiàn),進程間消息傳遞,以及包管理。ROS也提供用于獲取、編譯、編寫、和跨計算機運行代碼所需的
工具和庫函數(shù)。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS系統(tǒng)簡介ROS發(fā)展史任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS的安裝過程ROS目前只支持在Linux系統(tǒng)上安裝部署,它的首選開發(fā)平臺是Ubuntu。
為了提供最穩(wěn)定的開發(fā)環(huán)境,ROS的每個版本都有一個推薦運行的Ubuntu版本。ROS版本名稱發(fā)布時間支持的操作系統(tǒng)Noetic2020年5月Ubuntu20.04Melodic2018年5月Ubuntu17.10Lunar2017年5月Ubuntu16.04Kinetic2016年5月Ubuntu
15.10Jade2015年5月Ubuntu14.04………任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價在正式的安裝前,先檢查下Ubuntu初始環(huán)境是否配置正確。打開Ubuntu的設(shè)置->軟件與更新->Ubuntu軟件->勾選關(guān)鍵字universe,restricted,multiverse三項。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價1.添加ROS軟件源$
sudosh-c'./etc/lsb-release&&echo"deb/ros/ubuntu/$DISTRIB_CODENAMEmain">/etc/apt/sources.list.d/ros-latest.list'2.添加密鑰$sudoapt-keyadv--keyserver--recv-keysF42ED6FBAB17C6545.設(shè)置環(huán)境變量$echo"source/opt/ros/melodic/setup.bash">>~/.bashrc$source~/.bashrc3.安裝ROS$sudoapt-getupdate$sudoapt-getinstallros-melodic-desktop-full4.初始化rosdep$sudorosdepinit&&rosdepupdate6.安裝rosinstall$sudoapt-getinstallpython-rosinstall任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS的基本操作roscore:該命令用來啟動master(ROS名稱服務(wù))、rosout(日志記錄)和parameterserver(參數(shù)管理)rosrun:運行節(jié)點節(jié)點命令roslaunch:該命令可以launch文件,launch文件中可以包含多個節(jié)點及設(shè)置運行選項rosclean:檢查或刪除ROS日志文件命令ROS中的執(zhí)行命令任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS的基本操作rospack:顯示與ROS功能包相關(guān)的信息rosinstall:安裝ROS附加功能包rosdep:安裝該功能包的依賴性文件roslocate:與ROS功能包信息有關(guān)的命令roscreate-pkg:自動生成ROS功能包(用于舊的rosbuild系統(tǒng))rosmake:構(gòu)建ROS功能包(用于舊的rosbuild系統(tǒng))ROS中的功能包命令任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS的基本操作rostopic:該命令用來確認ROS話題信息rosservice:該命令用來確認ROS服務(wù)信息rosnode:該命令用來確認ROS節(jié)點信息rosparam:該命令用來確認和修改ROS參數(shù)信息ROS中的信息命令rosbag:該命令用來記錄和回放ROS消息rosmsg:該命令用來顯示ROS消息類型rossrv:該命令用來顯示ROS服務(wù)類型rosversion:該命令用來顯示ROS功能包的版本信息roswtf:該命令用來檢查ROS系統(tǒng)任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價小海龜仿真1.啟動ROSMaster$
roscore任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價小海龜仿真2.啟動小海龜仿真器$
rosrunturtlesimturtlesim_node任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價小海龜仿真3.啟動海龜控制節(jié)點$
rosrunturtlesimturtle_teleop_key將鼠標聚焦在第三個終端窗口上,然后通過鍵盤上的方向鍵,進行操作小海龜,如果小海龜正常移動,并且在屏幕上留下自己的移動軌跡。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價根據(jù)本工作任務(wù)的要求,擬定工作步驟如下:Ubuntu系統(tǒng)安裝,在安裝之前,首先下載Ubuntu系統(tǒng)的安裝鏡像,并制作Ubuntu系統(tǒng)的安裝啟動盤,然后按照Ubuntu系統(tǒng)的安裝步驟進行Ubuntu系統(tǒng)安裝ROS系統(tǒng)安裝ROS系統(tǒng)安裝成功之后,啟動ROS海龜仿真節(jié)點,控制海龜?shù)倪\動任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價序號評價項目評分等級A(25-20)B(19-15)C(14-10)D(9-5)E(4-1)1任務(wù)過程的態(tài)度2任務(wù)完成的完整度3任務(wù)設(shè)計的合理性4任務(wù)實現(xiàn)的效果評定等級:A:優(yōu),得分>90B:好,得分>80C:一般,得分>60D:有待提高,得分<60Thankyou!授課老師:連國云項目3:智能機器人蹣跚學(xué)步《智能機器人技術(shù)》課程任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價使用ROS系統(tǒng)中turtlesim功能包,完成如下操作:使用鍵盤控制turtle的移動查看turtle仿真過程中啟動的相關(guān)topic、service和計算圖利用topic使turtle平移、旋轉(zhuǎn)和轉(zhuǎn)圈利用service清除移動軌跡任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的節(jié)點在ROS系統(tǒng)中,最小的進程單元就是節(jié)點(node)。由于機器人的功能模塊非常復(fù)雜,我們往往不會把所有功能都集中到一個節(jié)點上,而會采用分布式的方式。ROS系統(tǒng)中不同功能模塊之間的通信,就是節(jié)點間的通信。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價節(jié)點管理器機器人的元器件很多,功能龐大,因此實際運行時往往會運行眾多的節(jié)點,這就需要一個管理工具對節(jié)點進行調(diào)配與管理ROS提供了節(jié)點管理器(master),在整個網(wǎng)絡(luò)通信架構(gòu)里相當于管理中心,管理著各個節(jié)點。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價節(jié)點管理器節(jié)點啟動時,需要首先在節(jié)點管理器處進行注冊,之后節(jié)點之間的通信就由節(jié)點管理器進行調(diào)配,實現(xiàn)相互之間的通信。運行ROS,首先啟動節(jié)點管理器,然后依次啟動相應(yīng)的節(jié)點。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價節(jié)點管理器啟動節(jié)點管理器的命令為:$roscore啟動ROSmaster,同時啟動rosout和parameter
server,
其中rosout是負責日志輸出的一個節(jié)點,其作用是告知用戶當前系統(tǒng)的狀態(tài),包括輸出系統(tǒng)的error、warning等等,并且將log記錄于日志文件中,parameterserver即是參數(shù)服務(wù)器,它并不是一個節(jié)點,而是一個存儲參數(shù)配置的服務(wù)器。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價節(jié)點管理器在ROS的文件系統(tǒng)中,程序包(package)中存放著可執(zhí)行文件,當系統(tǒng)執(zhí)行這些可執(zhí)行文件,將這些文件加載到內(nèi)存中,它就成為了動態(tài)的節(jié)點。具體啟動node的語句是:$rosrunpkg_name
node_name任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價rosnode命令rosnode命令主要功能rosnodelist列出當前運行的node信息rosnodeinfonode_name顯示出node的詳細信息rosnodekillnode_name結(jié)束某個noderosnodeping測試鏈接節(jié)點rosnodemachine列出在特定機器或列表機器上運行的節(jié)點rosnodecleanup清除不可到達節(jié)點的注冊信息ROS系統(tǒng)中為node專門提供了管理命令rosnode,通過該命令可以查看、操作以及監(jiān)測已經(jīng)運行的ros節(jié)點,rosnode命令的詳細作用列表如下:任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS的通信機制ROS的通信架構(gòu)包括數(shù)據(jù)的處理,進程的運行,消息的傳遞等。ROS是以節(jié)點的形式開發(fā)的,節(jié)點是根據(jù)其目的細分的可執(zhí)行程序的最小單位。節(jié)點則通過特定的數(shù)據(jù)結(jié)構(gòu)與其他的節(jié)點交換數(shù)據(jù),最終成為一個大型的程序。節(jié)點之間的消息通信可分為三種:
單向消息發(fā)送/接收方式的話題(topic);
雙向消息請求/響應(yīng)方式的服務(wù)(service);
雙向消息目標(goal)/結(jié)果(result)/反饋(feedback)方式的動作(action)。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價節(jié)點管理器節(jié)點中使用的參數(shù)可以從外部進行修改。在進行ROS編程時,為所實現(xiàn)的控制功能選擇合適的通信機制
(話題、服務(wù)、動作和參數(shù)服務(wù)器)是十分關(guān)鍵的開發(fā)工作之一。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的話題ROS節(jié)點之間進行通信所使用的機制是消息傳遞。在ROS中,消息是
有組織地存放在話題里。ROS中消息機制的基本思路是:當一個節(jié)點想要分享信息時,它就會發(fā)布(publish)消息到對應(yīng)的一個或者多個話題(topic);當一個節(jié)點想要接收信息時,它就會訂閱(subscribe)所需要的一個或者多個話題。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的話題ROS節(jié)點管理器負責確保發(fā)布節(jié)點和訂閱節(jié)點能找到對方;而且消息(message)是直接地從發(fā)布節(jié)點傳遞到訂閱節(jié)點,中間并不經(jīng)過節(jié)點管理器轉(zhuǎn)交。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的話題Subscriber(訂閱者)接收消息會進行處理,一般這個過程叫做回調(diào)(Callback)。回調(diào)是提前定義好了一個處理函數(shù),當有消息來就會觸發(fā)這個處理函數(shù),函數(shù)會對消息進行處理。ROS系統(tǒng)中為topic專門提供了管理命令rostopic,通過該命令可以查看、操作以及監(jiān)測ROS系統(tǒng)中存在的topic的相關(guān)信息。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的話題rostopic命令rosnode命令主要功能rostopiclist列出當前所有的topicrostopicinfotopic_name顯示某個topic的屬性信息rostopicechotopic_name顯示某個topic的內(nèi)容rostopicpubtopic_name…向某個topic發(fā)布內(nèi)容rostopicbwtopic_name查看某個topic的帶寬rostopichztopic_name查看某個topic的頻率rostopicfindtopic_type查找某個類型的topicrostopictypetopic_name查看某個topic的類型(msg)任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的消息在ROS中topic有著嚴格的格式要求,所有的信息需要按照對應(yīng)所屬類別的數(shù)據(jù)格式要求進行構(gòu)造、傳遞和解讀,而傳遞信息對應(yīng)的數(shù)據(jù)格式就是消息(message)。消息(message)按照定義解釋就是topic內(nèi)容的數(shù)據(jù)類型,也稱之為topic的格式標準。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的消息在ROS系統(tǒng)中的元功能包中,提供了許多不同消息類型的功能包,這些系統(tǒng)定義的消息可以滿足一些基本的消息發(fā)布的需求?;镜膍sg包括bool、int8、int16、int32、int64(以及uint)、float、float64、string、time、duration、header、可變長數(shù)組array[]、固定長度數(shù)組array[C]。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的消息std_msg/Headerheaderuint32seqtimestampstringframe_iduint32heightuint32widthstringencodinguint8is_bigendianuint32stepuint8[]data任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的話題rosmsg命令rosmsg命令主要功能rosmsglist列出系統(tǒng)上所有的msgrosmsgshowmsg_name顯示某個msg的內(nèi)容通過定義圖像的寬度,高度等來規(guī)范圖像的格式。ROS為消息(message)提供了專用的操作命令rosmsg,主要的命令有兩個任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的服務(wù)topic是ROS中的一種單向的異步通信方式。當一些節(jié)點只是臨時而非周期性的需要某些數(shù)據(jù),如果用topic通信方式就會消耗大量的系統(tǒng)資源,造成系統(tǒng)的低效率高功耗。這種情況下,就需要有另外一種請求-查詢式的通信模型--服務(wù)(service)。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的服務(wù)service通信是雙向的,它不僅可以發(fā)送消息,同時還會有反饋。service包括兩部分,一部分是請求方(Client),另一部分是應(yīng)答方/服務(wù)
提供方(Server)。這時請求方(Client)就會發(fā)送一個request,要等待應(yīng)答方(server)處理,反饋回一個response,這樣通過類似“請求-應(yīng)答”的機制完成整個服務(wù)通信。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的服務(wù)NodeB是應(yīng)答方
(server),提供了一個服務(wù)的接口,叫做/Service,一般都會用string類型來指定service的名稱,類似于topic。NodeA向NodeB發(fā)起了請求,經(jīng)過處理后得到了反饋。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的服務(wù)topic與service通信方式對比對比項目TopicService通信方式異步通信同步通信實現(xiàn)原理TCP/IPTCP/IP通信模型Publish-SubscribeRequest-Reply節(jié)點映射關(guān)系Publish-Subscribe(多對多)Request-Reply(多對一)反饋機制無有傳輸數(shù)據(jù)格式*.msg*.srv特點接受者收到數(shù)據(jù)會回調(diào)(Callback)遠程過程調(diào)用(RPC)服務(wù)器端的服務(wù)應(yīng)用場景連續(xù)、高頻的數(shù)據(jù)發(fā)布任務(wù)間歇性邏輯處理任務(wù)舉例激光雷達、里程計發(fā)布數(shù)據(jù)開關(guān)傳感器、拍照、逆解計算topic與service是ROS系統(tǒng)最重要的兩種通信方式,智能機器人的大部分分布式控制功能都是依靠這兩種通信機制進行的,這兩種通信機制具有不同的特點。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的服務(wù)rosservice命令rosservice命令主要功能rosservicelist顯示服務(wù)列表rosserviceinfo打印服務(wù)信息rosservicetype打印服務(wù)類型rosserviceuri打印服務(wù)ROSRPCurirosservicefind按服務(wù)類型查找服務(wù)rosservicecall使用所提供的args調(diào)用服務(wù)rosserviceargs打印服務(wù)參數(shù)ROS系統(tǒng)中為service專門提供了管理命令rosservice,通過該命令可以查看、操作以及監(jiān)測ROS系統(tǒng)中存在的service的相關(guān)信息。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的服務(wù)與topic中msg類似,ROS中的service數(shù)據(jù)是通過srv來進行定義和實現(xiàn)的。service通信的數(shù)據(jù)格式定義在*.srv文件中,它聲明了一個可以用于service的數(shù)據(jù)格式,即srv,一個完整的srv包括請求(request)和響應(yīng)(response)兩部分,request與response部分的定義通過“---”分開。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的服務(wù)rossrv命令rossrv命令主要功能rossrvshow顯示服務(wù)描述rossrvlist列出所有服務(wù)rossrvmd5顯示服務(wù)md5sumrossrvpackage列出包中的服務(wù)rossrvpackages列出包含服務(wù)的包與msg類似,ROS也為srv提供專用的rossrv命令任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的參數(shù)服務(wù)器與前兩種通信方式不同,參數(shù)服務(wù)器也可以說是特殊的“通信方式”。特殊點在于參數(shù)服務(wù)器是節(jié)點存儲參數(shù)的地方、用于配置參數(shù),全局共享參數(shù)。參數(shù)服務(wù)器使用互聯(lián)網(wǎng)傳輸,在節(jié)點管理器中運行,實現(xiàn)整個通信過程。Key/rosdistro/rosversion/use_sim_time…Value‘kinetic’‘1.12.7’True…任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的參數(shù)服務(wù)器參數(shù)服務(wù)器,作為ROS中另外一種數(shù)據(jù)傳輸方式,有別于topic和service,它更加的靜態(tài)。參數(shù)服務(wù)器維護著一個數(shù)據(jù)字典,字典里存儲著各種參數(shù)和配置。
“字典”,其實就是一個個的鍵值對,ROS中的“字典”可以對比普通意義的字典概念進行理解記憶。鍵值key可以理解為“索引”,每一個key都是唯一的。Key/rosdistro/rosversion/use_sim_time…Value‘kinetic’‘1.12.7’true…任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價每一個key不重復(fù),且每一個key對應(yīng)著一個value。也可以說字典是一種映射關(guān)系。ROS中的參數(shù)服務(wù)器任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的parameterserver機制類似于程序中的全局變量,發(fā)送者去更新全局
變量(共享的參數(shù)),Listener去獲取更新后的全局變量(共享的參數(shù));這個通信過程不涉及
TCP/UDP的通信。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的參數(shù)服務(wù)器發(fā)送者通過RPC更新ROSMaster中的共享參數(shù)(包含參數(shù)名和參數(shù)值),實現(xiàn)全局變量的更新;接收者通過RPC
向ROSMaster發(fā)送參數(shù)查詢請求(包含要查詢的參數(shù)名);ROSMaster通過RPC回復(fù)接收者的請求(包括參數(shù)值)。參數(shù)服務(wù)器的維護方式非常的簡單靈活,總的來講有三種方式:使用命令進行數(shù)據(jù)讀寫launch文件內(nèi)進行數(shù)據(jù)讀寫node代碼進行數(shù)據(jù)讀寫如果接收者想實時知道共享參數(shù)的變化,需要自己不停的去詢問
ROSMaster任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的參數(shù)服務(wù)器rosparam命令rosparam命令主要功能rosparamsetparam_keyparam_value設(shè)置參數(shù)rosparamgetparam_key顯示參數(shù)rosparamloadfile_name從文件加載參數(shù)rosparamdumpfile_name保存參數(shù)到文件rosparamdelete刪除參數(shù)rosparamlist列出參數(shù)名稱使用命令行來維護參數(shù)服務(wù)器,主要使用
rosparam
語句來進行操作的各種命令任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的動作動作(action)機制從原理上看的話,其實是基于topic實現(xiàn)的,相當于制定了一套由目標話題,反饋話題,結(jié)果話題組成的高級協(xié)議。動作(action)實現(xiàn)一種類似于service的請求/響應(yīng)通訊機制,區(qū)別在于action帶有反饋機制,用來不斷向客戶端反饋任務(wù)的進度,并且還支持在任務(wù)中途中止運行。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的動作動作(action)的操作過程主要為:客戶端給服務(wù)端拋出一個目標,然后客戶端就可以去執(zhí)行其他的處理任務(wù)了,在任務(wù)執(zhí)行期間,客戶端會以消息的形式,周期性地接收到來自
服務(wù)端的進度反饋,如果沒有終止任務(wù)的話這個過程會一直延續(xù)到收到最終的結(jié)果。當然也可以隨時終止當前的操作,開始一個全新的操作。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價action的工作原理是client-server模式,也是一個雙向的通信模式。通信雙方在ROSactionProtocol下通過消息進行數(shù)據(jù)的交流通信。client和server為用戶提供一個簡單的API來請求目標(在客戶端)或通過函數(shù)調(diào)用和回調(diào)來執(zhí)行目標(在服務(wù)器端)。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Qt工具箱ROS為機器人開發(fā)提供各種GUI工具。這些GUI開發(fā)工具被稱為rqt,它集成了30多種工具,可以作為一個綜合的GUI工具來使用。另外,RVIZ也被集成到rqt的插件中,這使rqt成為ROS的一個不可缺少的GUI工具。另外,rqt是基于Qt開發(fā)的,而Qt是一個廣泛用于計算機編程的GUI編程的跨平臺框架,用戶可以方便自由地添加和開發(fā)插件。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價Qt工具箱在ROS中Qt工具箱需要進行安裝,安裝命令如下:$sudoapt-getinstallros-melodic-rqt$sudoapt-getinstallros-melodic-rqt-common-plugins任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價rqt_console$rqt_consolerqt_console工具是用來顯示和篩選ROS系統(tǒng)運行過程中的所有日志信息的,所顯示的日志包括info、warn、error等級別的日志。rqt_console工具的使用十分簡單,只需要在ROS系統(tǒng)中輸入以下命令:任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價根據(jù)任務(wù)要求,具體的工作任務(wù)實施步驟如下:(1)啟動新的終端,輸入啟動ROS命令。$roscore任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價(2)啟動新的終端,輸入啟動turtle仿真節(jié)點命令。$
rosrunturtlesimturtlesim_node任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價(3)啟動新的終端,輸入啟動turtle仿真鍵盤控制命令。$rosrunturtlesimturtlesim_teleop任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價(4)將電腦的焦點放到鍵盤控制的終端上,通過鍵盤的方向鍵控制小海龜移動。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價(5)啟動新的終端,查看當前的計算圖。$rqt_graph任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價(6)啟動新的終端,輸入查看當前話題和服務(wù)。$
rostopiclist$rosservicelist任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價(7)啟動新的終端,查看turtle仿真節(jié)點中啟動的cmd_veltopic中的msgs類型$rostopicinfo/turtle1/cmd_vel任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價(8)利用topic通信機制分別控制turtle的移動、旋轉(zhuǎn)。通過在msgs中指定相應(yīng)方向的速度值,控制小海龜沿直線前進$rostopicpub-1/turtle1/cmd_vel/geometry_msgs/Twist“l(fā)inearx:5.0y:0.0z:0.0angular:x:0.0y:0.0z:0.0”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價通過在msgs中指定相應(yīng)方向的速度值,控制小海龜旋轉(zhuǎn)一定角度$rostopicpub-1/turtle1/cmd_vel/geometry_msgs/Twist“l(fā)inearx:0.0y:0.0z:0.0angular:x:0.0y:0.0z:3.0”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價通過在msgs中指定相應(yīng)方向的速度值,控制小海龜轉(zhuǎn)圓圈$rostopicpub-r20/turtle1/cmd_vel/geometry_msgs/Twist“l(fā)inearx:1.0y:0.0z:0.0angular:x:0.0y:0.0z:3.0”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價(9)利用service機制清除turtle軌跡線。$rosservicecall/clear“{}”任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價序號評價項目評分等級A(25-20)B(19-15)C(14-10)D(9-5)E(4-1)1任務(wù)過程的態(tài)度2任務(wù)完成的完整度3任務(wù)設(shè)計的合理性4任務(wù)實現(xiàn)的效果評定等級:A:優(yōu),得分>90B:好,得分>80C:一般,得分>60D:有待提高,得分<60Thankyou!授課老師:連國云項目4:智能機器人發(fā)電報《智能機器人技術(shù)》課程任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價編寫publisher代碼文件,發(fā)布“/hello_msg”topic,通過該topic傳遞“helloworld”文本message。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的工作空間ROS中的工作空間是ROS中開發(fā)具體項目的空間,所有功能包的源碼、配置、編譯都在該空間下完成。ROS開發(fā)中同時開發(fā)多個項目,就會產(chǎn)生多個工作空間,所以工作空間之間也有一個層次的問題,類似于優(yōu)先級的概念。ROS默認是啟動最上層的工作空間(overlay),上層工作空間中的功能包會覆蓋(override)下層工作空間(underlay)中的同名功能包。所以有多個工作空間存在的時候,我們還需要注意設(shè)置工作空間的層次。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的工作空間ROS原始的編譯和打包系統(tǒng)是rosbuild,而catkin是現(xiàn)在ROS官方指定的編譯系統(tǒng)。catkin的原理和流程和CMake很類似,與rosbuild相比,它的可移植性,以及對交叉編譯的支持更好。自己編寫的ROS代碼通常放在工作空間中,目前個人用戶
開發(fā)的絕大部分源代碼功能包都是通過catkin進行編譯和開發(fā)的。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的工作空間首先我們要在計算機上創(chuàng)建一個初始的catkin_ws/路徑,這也是catkin工作空間結(jié)構(gòu)的最高層級。輸入下列指令,完成初始創(chuàng)建。$mkdir-p~/catkin_ws/src#直接創(chuàng)建了第二層級的文件夾src$cd~/catkin_ws/#進入工作空間$catkin_init_workspace#初始化工作空間任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的工作空間catkin工作空間的結(jié)構(gòu)其實非常清晰。在工作空間下用tree命令,顯示文件結(jié)構(gòu)$cd~/catkin_ws$sudoaptinstalltree$tree任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價catkin工作空間包括了src、build、devel三個路徑,在有些編譯選項下也可能包括其他。但這三個文件夾是catkin編譯系統(tǒng)默認的。它們的具體作用如下:src/:代碼空間(sourcespace),ROS的catkin軟件包(源代碼包)build/:編譯空間(buildspace),catkin(CMake)的緩存信息和中間文件devel/:開發(fā)空間(developmentspace),生成的目標文件(包括頭文件,動態(tài)鏈接庫,靜態(tài)鏈接庫,可執(zhí)行文件等)、環(huán)境變量任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的工作空間build和devel路徑是由catkin系統(tǒng)自動生成、管理,我們?nèi)粘5拈_發(fā)一般不會去涉及,而主要用到的是src文件夾,我們寫的ROS程序、網(wǎng)上下載的ROS源代碼包都存放在這里。在編譯時,catkin編譯系統(tǒng)會遞歸的查找和編譯src/的每一個源代碼包。因此可以把幾個源代碼包放到同一個文件夾下,catkin可以遍歷的對代碼進行編譯。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的功能包在ROS中,所有軟件都被組織為軟件包的形式,稱為ROS軟件包或功能包,有時也簡稱為包ROS軟件包是一組用于實現(xiàn)特定功能的相關(guān)文件的集合,
包括可執(zhí)行文件和其他支持文件所有的ROS軟件都是一個軟件包或其他軟件包的一部分任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的工作空間ROS作為一個機器人開發(fā)與控制的平臺,將所有文件按照一定的規(guī)則進行組織,不同功能的文件被放置在不同的文件夾下ROS系統(tǒng)中的功能包主要可以分為兩大類,功能包(Package)和元功能包(MetaPackage),其中功能包(Package)中又可以
分為二進制功能包和源代碼功能包任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價二進制功能包里面包括了已經(jīng)編譯完成,可以直接運行的程序。
通過sudoapt-getinstall來進行下載和解包(安裝),執(zhí)行完該指令后就可以
馬上使用了。因此,這種方式簡單快捷,適合比較固定、無需改動的程序。源代碼包里是程序的原始代碼,在ROS系統(tǒng)中必須經(jīng)過編譯,生成可執(zhí)行的二進制文件,方可運行。一般個人開發(fā)的程序、第三方修改或者運行進行修改的程序都應(yīng)當通過源代碼包的來編譯安裝。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價二進制功能包和源代碼包對比表比較項目二進制包源代碼包下載方式apt-getinstall/直接下載debgitclone/直接下載源代碼ROS包存放位置/opt/ros/kinetic/通常~/catkin_ws/src編譯方式無需編譯通過make/cmake/caktin來源官方apt軟件源開源項目、第三方開發(fā)者擴展性無法修改通過源代碼修改可讀性無法查看源代碼方便閱讀源代碼優(yōu)點下載簡單,安裝方便源碼可修改,便于定制功能缺點無法修改編譯工具、軟件包依賴、版本和參數(shù)應(yīng)用場景基礎(chǔ)軟件需要查看、開發(fā)和修改的程序任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價對于個人用戶,主要進行開發(fā)與操作的是源代碼包catkin_make編譯的對象就是一個個ROS的package,也就是說任何ROS程序只有組織成package才能編譯。所以package也是ROS源代碼存放的地方,任何ROS的代碼無論是C++還是Python都要放到package中,這樣才能正常的編譯和運行。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價在此命令中,創(chuàng)建package所需的依賴可以根據(jù)需要進行增減,此外在工作空間中,package的名字是不允許重復(fù)的。例如:catkin_create_pkgexamplestd_msgsrospyroscpp一個完整的package下常見的文件、路徑有:CMakeLists.txt:定義package的包名、依賴、源文件、目標文件等編譯規(guī)則,是package不可少的成分;package.xml:描述package的包名、版本號、作者、依賴等信息,是package不可少的成分;任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價src/:存放ROS的源代碼,包括C++的源碼和(.cpp)以及Python的module(.py);include/:存放C++源碼對應(yīng)的頭文件;scripts/:存放可執(zhí)行腳本,例如shell腳本(.sh)、Python腳本(.py);msg/:存放自定義格式的消息(.msg);srv/:存放自定義格式的服務(wù)(.srv);install/:安裝空間,功能包的安裝路徑,在開發(fā)是一般用不到;models/:存放機器人或仿真場景的3D模型(.sda,.stl,.dae等);urdf/:存放機器人的模型描述(.urdf或.xacro);launch/:存放launch文件(.launch或.xml)。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的工作空間通常ROS文件組織都是按照以上的形式,這是約定俗成的命名習慣,建議遵守。以上路徑中,只有CMakeLists.txt和package.xml是必須的,其余路徑根據(jù)軟件包是否需要來決定。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價ROS中的工作空間rospack命令rospack命令主要功能rospackhelp顯示rospack的用法rospacklist列出本機所有packagerospackdepends[package]顯示package的依賴包rospackfind[package]定位某個packagerospackprofile刷新所有package的位置記錄ROS系統(tǒng)為功能包提供了專用的命令rospack,通過該命令可以實現(xiàn)對功能包的相關(guān)管理和操作。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價CMakeLists.txt文件CMakeLists.txt文件直接規(guī)定了這個package要依賴的package,要編譯生成的目標,如何編譯等流程。所以CMakeLists.txt指定了由源碼到目標文件的規(guī)則,catkin編譯系統(tǒng)在工作時首先會找到每個package下的CMakeLists.txt,然后按照規(guī)則來編譯構(gòu)建。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價CMakeLists.txt文件CMakeLists.txt的基本語法都還是按照CMake,而Catkin在其中加入了少量的宏:必需的CMake版本:cmake_minimum_required()軟件包名:project()查找編譯依賴的其他CMake/Catkin包(聲明依賴庫):find_package()啟動Python模塊支持:catkin_python_package()任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價消息/服務(wù)/操作(Message/Service/Action)生成器:add_message_files(),add_service_files(),add_action_files()調(diào)用消息/服務(wù)/操作生成:generate_messages()指定包編譯信息導(dǎo)出:catkin_package()添加要編譯的庫和可執(zhí)行文件:add_library()/add_executable()/target_link_libraries()測試編譯:catkin_add_gtest()安裝規(guī)則:install()任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價package.xml文件pacakge.xml包含了package的名稱、版本號、內(nèi)容描述、維護人員、軟件許可、編譯構(gòu)建工具、編譯依賴、運行依賴等信息。它為用戶提供了快速了解一個package的渠道。pacakge.xml遵循xml標簽文本的寫法,由于版本更迭原因,現(xiàn)在有兩種格式并存,不過區(qū)別不大。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價package.xml文件pacakge.xml文件的主體結(jié)構(gòu)如下:<depend>指定依賴項為編譯、導(dǎo)出、運行需要的依賴,最常用<build_depend>編譯依賴項<build_export_depend>導(dǎo)出依賴項<exec_depend>運行依賴項<test_depend>測試用例依賴項<doc_depend>文檔依賴項<pacakge>根標記文件<name>包名<version>版本號<description>內(nèi)容描述<maintainer>維護者<license>軟件許可證<buildtool_depend>編譯構(gòu)建工具,通常為catkin任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價rospy及其主要接口其實這些工具本質(zhì)上都是基于ROS的客戶端庫(ClientLibarary)實現(xiàn)的,客戶端庫一套接口,ROS為機器人開發(fā)者提供了不同語言的接口,比如rospy是Python語言的ROS接口,roscpp是C++語言ROS接口,直接調(diào)用所提供的函數(shù)就可以實現(xiàn)topic、service等通信功能在前面的內(nèi)容已經(jīng)講解到用命令行啟動ROS程序、發(fā)送指令消息,這些工具到底是如何實現(xiàn)這些功能的呢?任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價通常來說,Python代碼有兩種組織方式,一種是單獨的一個Python腳本,適用于簡單的程序,另一種是Python模塊,適合體量較大的程序。(1)單獨的Python腳本:對于一些小體量的ROS程序,一般就是一個Python文件,放在script/路徑下。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價(2)Python模塊:當程序的功能比較復(fù)雜,難以在一個腳本中進行功能實現(xiàn)時,就需要把一些功能放到PythonModule里,以便其他的腳本來調(diào)用。任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價主要方法與類通過Python代碼實現(xiàn)ROS中相應(yīng)的功能調(diào)用與控制,需要掌握rospy的一些常用的函數(shù),以及一些重要的類rospy是Python版本的ROS客戶端庫,提供了Python編程需要的接口,可以認為rospy就是一個Python的模塊(Module)任務(wù)要求知識導(dǎo)入任務(wù)實施任務(wù)評價主要方法與類rospy中與node相關(guān)的主要函數(shù)函數(shù)名主要功能函數(shù)返回值rospy.lnit_node(name.argv
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年醫(yī)療醫(yī)院醫(yī)療廢物檢測合同
- 2025年社交網(wǎng)絡(luò)平臺安全監(jiān)管項目可行性研究報告
- 2025年高端定制家具生產(chǎn)企業(yè)項目可行性研究報告
- 2025年多功能文化活動中心建設(shè)項目可行性研究報告
- 2025年社交網(wǎng)絡(luò)數(shù)據(jù)分析平臺項目可行性研究報告
- 2025年新能源車基礎(chǔ)設(shè)施升級項目可行性研究報告
- 中俄導(dǎo)航協(xié)議書
- 網(wǎng)貸中介合同范本
- 停工結(jié)算協(xié)議書
- 云計算環(huán)境下的滲透測試工程師面試要點
- 高校物業(yè)安全培訓(xùn)內(nèi)容課件
- (正式版)DB33∕T 1430-2025 《海塘安全監(jiān)測技術(shù)規(guī)程》
- 醫(yī)藥競聘地區(qū)經(jīng)理匯報
- 水庫調(diào)度操作規(guī)程模板
- 產(chǎn)科護士長年終總結(jié)
- 酒店情況診斷報告
- 2025年夏季山東高中學(xué)業(yè)水平合格考地理試卷試題(含答案)
- DBJ04-T483-2025 海綿型城市道路與廣場設(shè)計標準
- 農(nóng)藥運輸儲存管理制度
- TD/T 1036-2013土地復(fù)墾質(zhì)量控制標準
- 童年的閱讀測試題及答案
評論
0/150
提交評論