《智能網(wǎng)聯(lián)汽車計(jì)算平臺(tái)部署與測(cè)試》 課件 任務(wù)8 中間件ROS配置與測(cè)試_第1頁(yè)
《智能網(wǎng)聯(lián)汽車計(jì)算平臺(tái)部署與測(cè)試》 課件 任務(wù)8 中間件ROS配置與測(cè)試_第2頁(yè)
《智能網(wǎng)聯(lián)汽車計(jì)算平臺(tái)部署與測(cè)試》 課件 任務(wù)8 中間件ROS配置與測(cè)試_第3頁(yè)
《智能網(wǎng)聯(lián)汽車計(jì)算平臺(tái)部署與測(cè)試》 課件 任務(wù)8 中間件ROS配置與測(cè)試_第4頁(yè)
《智能網(wǎng)聯(lián)汽車計(jì)算平臺(tái)部署與測(cè)試》 課件 任務(wù)8 中間件ROS配置與測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

任務(wù)八中間件ROS配置與測(cè)試智能網(wǎng)聯(lián)汽車計(jì)算平臺(tái)部署與測(cè)試某國(guó)產(chǎn)自主品牌汽車試制車間實(shí)習(xí)技師小張順利完成了中間件的安裝任務(wù),接下來(lái)劉師傅將帶領(lǐng)小張進(jìn)行中間件的系統(tǒng)配置與測(cè)試,劉師傅囑咐小張,不僅要掌握中間件的基本通信機(jī)制,還應(yīng)爭(zhēng)取掌握中間件在其他方面的強(qiáng)大功能。那么,請(qǐng)和小張一起開始今天的學(xué)習(xí)吧。1.如何進(jìn)行中間件ROS配置?2.中間件ROS的測(cè)試內(nèi)容有哪些?裝調(diào)技師劉師傅、實(shí)習(xí)技師小張能根據(jù)操作系統(tǒng)手冊(cè)與計(jì)算平臺(tái)技術(shù)手冊(cè),規(guī)范完成中間件ROS系統(tǒng)配置。能根據(jù)操作系統(tǒng)手冊(cè)與計(jì)算平臺(tái)技術(shù)手冊(cè),規(guī)范完成中間件ROS通信測(cè)試與仿真測(cè)試。ROS組成ROS系統(tǒng)配置ROS的基本功能是作為中間件為機(jī)器人和汽車自動(dòng)駕駛軟件提供通訊和資源管理的服務(wù)ROS的整體由通信機(jī)制、開發(fā)工具、應(yīng)用功能與生態(tài)系統(tǒng)四大部分組成。ROS組成ROS系統(tǒng)配置可以被簡(jiǎn)單的比喻為“一棟建筑物內(nèi)部的供水管道”,實(shí)現(xiàn)不同程序或者應(yīng)用之間信息和數(shù)據(jù)傳遞?;镜腞OS即ROS1,核心是點(diǎn)對(duì)點(diǎn)的分布式通信機(jī)制,基于TCP/IP的通信方式實(shí)現(xiàn)模塊間點(diǎn)對(duì)點(diǎn)的松耦合連接,可以執(zhí)行若干種類型的通信,包括基于話題(Topic)的異步數(shù)據(jù)流通信,基于服務(wù)(Service)的同步數(shù)據(jù)流通信,還有參數(shù)服務(wù)器上的數(shù)據(jù)存儲(chǔ)等。在自動(dòng)駕駛領(lǐng)域大規(guī)模應(yīng)用方面,ROS的實(shí)時(shí)性、穩(wěn)定性、兼容性因其通信機(jī)制受到限制,ROS2采用DDS(數(shù)據(jù)分布服務(wù))的通訊方式來(lái)提高通訊的實(shí)時(shí)性,百度APOLLO平臺(tái)等科技公司的產(chǎn)品也在ROS1基礎(chǔ)進(jìn)行改進(jìn)。ROS組成ROS系統(tǒng)配置ROS開發(fā)工具分為原生工具、編譯與測(cè)試工具和第三方工具三類。原生工具:ROS系統(tǒng)開發(fā)人員編寫的開發(fā)用軟件例如工程管理工具catkin、可視化工具rviz、qt工具箱、命令行工具。編譯和測(cè)試工具:基于已有工具進(jìn)一步的包裝,例如rosbag是記錄和回放數(shù)據(jù),統(tǒng)一的時(shí)間戳rostime的工具。第三方工具:其他科技公司基于其成熟工具軟件利用插件或接口與ROS進(jìn)行系統(tǒng)兼容的工具。ROS組成ROS系統(tǒng)配置ROS應(yīng)用功能ROS擁有眾多的現(xiàn)成應(yīng)用模塊,便于使用者直接采用以節(jié)省開發(fā)時(shí)間,包括:底層驅(qū)動(dòng)眾多傳感器、執(zhí)行器的驅(qū)動(dòng),常用硬件在ROS匹配的驅(qū)動(dòng)功能包由專門的網(wǎng)站可供下載2導(dǎo)航,環(huán)境感知,語(yǔ)音識(shí)別上層功能3控制器、硬件資源、控制器管理器控制模塊4TF、URDF、Message常用組件1ROS組成ROS系統(tǒng)配置ROS生態(tài)系統(tǒng)主要由社區(qū)和標(biāo)準(zhǔn)兩部分構(gòu)成:社區(qū)在全球范圍內(nèi)擁有數(shù)量龐大的技術(shù)社群,在國(guó)內(nèi)外各類技術(shù)平臺(tái)上,都可以獲取ROS相關(guān)的文件和代碼資源,相關(guān)網(wǎng)站包括/cn等2基礎(chǔ)消息是std_msgssensor_msgs是封裝的各種傳感器消息geometry_msgs是各種各樣的幾何消息nav_msgs是指SLAM消息,目前主要是室內(nèi)的SLAMdiagnostic_msgs則是診斷內(nèi)部各個(gè)硬件狀態(tài)的消息標(biāo)準(zhǔn)1系統(tǒng)配置ROS系統(tǒng)配置ROS系統(tǒng)配置內(nèi)容主要包括:01設(shè)置環(huán)境變量2安裝常用命令行工具和依賴023初始化rosdep034安裝檢驗(yàn)041系統(tǒng)配置ROS系統(tǒng)配置設(shè)置環(huán)境變量ROS默認(rèn)安裝路徑為/opt/ros,系統(tǒng)默認(rèn)的可執(zhí)行程序大多存放在usr/bin目錄,工作中需要在終端中頻繁使用ROS相關(guān)的命令,為了能方便找到ROS命令所在的位置,需要對(duì)ROS的環(huán)境變量進(jìn)行設(shè)置。以ROSMelodicMorenia版本為例,環(huán)境變量設(shè)置所用指令為echo“source/opt/ros/melodic/setup.bash”>>~/.bashrc

source~/.bashrc系統(tǒng)配置ROS系統(tǒng)配置安裝常用命令行工具和依賴命令行工具(Command-linetools)是為可以為工作提供極大便利的軟件包。依賴(Dependencies)指的是一個(gè)ROS軟件包所依賴的其他ROS軟件包。這些依賴關(guān)系描述了ROS軟件包之間的相互關(guān)系,其中一個(gè)軟件包可能需要其他軟件包提供的一些功能或服務(wù)才能正常運(yùn)行。依賴關(guān)系是ROS軟件包的重要組成部分,它可以幫助ROS系統(tǒng)自動(dòng)處理軟件包之間的依賴關(guān)系,從而簡(jiǎn)化軟件包的安裝、編譯和運(yùn)行過程。每個(gè)ROS軟件包都需要在其CMakeLists.txt文件中指定它所依賴的其他軟件包。sudoaptinstallpython3-rosdeppython3-rosinstallpython3-rosinstall-generatorpython3-wstoolbuild-essential系統(tǒng)配置ROS系統(tǒng)配置初始化rosdep當(dāng)工作中編譯代碼或者使用ROS的某些核心組件時(shí),rosdep可以很容易地幫助操作者安裝相關(guān)的依賴,安裝步驟為依此在終端輸入指令:

sudoaptinstallpython-rosdep

sudorosdepinit

rosdepupdate系統(tǒng)配置ROS系統(tǒng)配置安裝檢驗(yàn)驗(yàn)證ROS安裝后是否正常運(yùn)行roscore是ROS的系統(tǒng)先決條件節(jié)點(diǎn)和程序的集合,必須運(yùn)行roscore才能使ROS節(jié)點(diǎn)進(jìn)行通信。roscore將啟動(dòng)以下三項(xiàng):rosmaster、ros參數(shù)服務(wù)器、rosout日志節(jié)點(diǎn)。在終端輸入指令roscoreROS系統(tǒng)配置學(xué)號(hào)法?學(xué)號(hào)01-05的學(xué)生為一組?學(xué)號(hào)06-10的學(xué)生為一組?以此類推ROS系統(tǒng)配置一名同學(xué)負(fù)責(zé)對(duì)ROS系統(tǒng)進(jìn)行系統(tǒng)配置。一名同學(xué)負(fù)責(zé)查詢操作系統(tǒng)手冊(cè)。記錄員負(fù)責(zé)填寫工作記錄表。ROS系統(tǒng)配置ROS系統(tǒng)配置ROS系統(tǒng)配置確認(rèn)操作系統(tǒng)版本與ROS版本。指令輸入正確。進(jìn)行安裝檢驗(yàn)。ROS系統(tǒng)配置計(jì)算平臺(tái)實(shí)訓(xùn)臺(tái)架無(wú)筆、計(jì)算機(jī)操作系統(tǒng)手冊(cè)ROS系統(tǒng)配置無(wú)?確認(rèn)操作系統(tǒng)與ROS版本信息確保指令輸入正確理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試工作機(jī)制中包含節(jié)點(diǎn)、消息、話題、服務(wù)、ROS控制器、消息記錄包等基本概念硬件抽象、設(shè)備驅(qū)動(dòng)、庫(kù)函數(shù)、可視化、進(jìn)程間消息傳遞和軟件包管理等一系列程序庫(kù)和工具的集合理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試節(jié)點(diǎn)(node)ROS是一個(gè)分布式的進(jìn)程框架,架構(gòu)中存在若干“節(jié)點(diǎn)”,進(jìn)程被封裝在不同的程序包或功能包中。ROS是以節(jié)點(diǎn)的形式進(jìn)行開發(fā),節(jié)點(diǎn)是根據(jù)任務(wù)目的可細(xì)分可執(zhí)行程序的最小單位。一些部署和裝調(diào)任務(wù)中節(jié)點(diǎn)也被稱為軟件模塊。ROS提供用于處理節(jié)點(diǎn)的工具,用于節(jié)點(diǎn)信息、狀態(tài)、可用性等的查詢操作。理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試常用節(jié)點(diǎn)處理工具:

rosnodelist:列出當(dāng)前活動(dòng)節(jié)點(diǎn)

rosnodeinfo<node_name>:輸出指定節(jié)點(diǎn)的信息

rosnodekill<node_name>:結(jié)束指定節(jié)點(diǎn)

rosnodeping<node_name>:測(cè)試節(jié)點(diǎn)的網(wǎng)絡(luò)連通性

rosnodecleanup:將無(wú)法訪問的節(jié)點(diǎn)的信息清除

rosnodemachine<host_name>:列出指定計(jì)算機(jī)上運(yùn)行的節(jié)節(jié)點(diǎn)可視化工具rqt_graph可用于開發(fā)者查看一個(gè)程序中節(jié)點(diǎn)間的關(guān)系,指令為rosrunrqt_graphrqt_graph理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試消息(message)消息是信息數(shù)據(jù),節(jié)點(diǎn)通過消息完成溝通。消息以一種發(fā)布(Publication)/訂閱(Subscription)的方式傳遞,一個(gè)或多個(gè)節(jié)點(diǎn)可以在一個(gè)給定的話題中發(fā)布消息,多se個(gè)節(jié)點(diǎn)可以訂閱同一個(gè)話題。ROS提供的獲取消息的命令工具:

rosmsglist:列出所有消息

rosmsgshow<message_type>:顯示指定的消息

rosmsgusers<message_type>:搜索使用該消息的代碼文件

rosmsgmd5<message_type>:顯示消息的MD5求和結(jié)果

rosmsgpackage<package_name>:列出功能包的所有消息理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試話題(topic)每個(gè)消息都必須發(fā)布到相應(yīng)的話題,通過話題實(shí)現(xiàn)ROS計(jì)算圖網(wǎng)絡(luò)中的路由轉(zhuǎn)發(fā)。同一個(gè)話題可以有多個(gè)訂閱者也可以有多個(gè)發(fā)布者,且發(fā)布者和訂閱者定義的消息類型必須與話題的消息類型相匹配。通過話題進(jìn)行消息路由,不需要節(jié)點(diǎn)之間直接連接,發(fā)布節(jié)點(diǎn)和訂閱節(jié)點(diǎn)之間不需要有關(guān)聯(lián),實(shí)現(xiàn)發(fā)布節(jié)點(diǎn)與訂閱節(jié)點(diǎn)之間的解耦。理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試操作話題的命令工具:

rostopiclist:列出當(dāng)前活動(dòng)話題

rostopicinfo<topic_name>:輸出話題的信息

rostopicecho<topic_name>:顯示話題中的消息數(shù)據(jù)

rostopichz<topic_name>:顯示話題的發(fā)布頻率

rostopicbw<topic_name>:顯示話題所使用的帶寬

rostopictype<topic_name>:輸出話題發(fā)布的消息類型

rostopicfind<message_type>:按照消息類型查找話題理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試服務(wù)(service)一種同時(shí)使用請(qǐng)求和響應(yīng)的一對(duì)一消息交換機(jī)制。服務(wù)通常被用作請(qǐng)求智能設(shè)備執(zhí)行特定操作時(shí)使用的命令,或者用于根據(jù)特定條件需要產(chǎn)生事件的節(jié)點(diǎn)。不同于基于話題發(fā)布/訂閱的通信方法這種異步方法,服務(wù)是同步消息交換機(jī)制。一個(gè)服務(wù)被分成服務(wù)服務(wù)器和服務(wù)客戶端,其中服務(wù)器只在有請(qǐng)求(request)的時(shí)候才響應(yīng)(response),而服務(wù)客戶端會(huì)在發(fā)送請(qǐng)求后接收響應(yīng)。另外一個(gè)與話題不同的點(diǎn)是,服務(wù)是一次性消息通信。當(dāng)服務(wù)的請(qǐng)求和響應(yīng)完成時(shí),兩個(gè)連接的節(jié)點(diǎn)將被斷開。由于服務(wù)是一次性的通信方式,在網(wǎng)絡(luò)上的負(fù)載很小,所以它也被用作代替基于話題發(fā)布/訂閱的通信手段。理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試ROS管理者(ROSmaster)又稱ROS控制器,位于節(jié)點(diǎn)之上,管控所有節(jié)點(diǎn)的正常工作,具體功能包括節(jié)點(diǎn)的名稱注冊(cè)、查找、設(shè)置節(jié)點(diǎn)間的通信等。通過RPC(remoteprocedurecallprotocol,遠(yuǎn)程過程調(diào)用)的方式提供登記列表(registration)、對(duì)其他節(jié)點(diǎn)/話題的查找。節(jié)點(diǎn)管理器相關(guān)的命令行工具是roscore。roscore:?jiǎn)?dòng)節(jié)點(diǎn)管理器,加載ROS節(jié)點(diǎn)管理器和其他ROS核心組件。ROS管理者與節(jié)點(diǎn)的關(guān)系理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試消息記錄包(bag)一種用于保存和回放ROS消息數(shù)據(jù)的文件格式,消息記錄包的運(yùn)用是一種用于存儲(chǔ)數(shù)據(jù)的重要機(jī)制。消息記錄包可以幫助記錄一些難以收集的傳感器數(shù)據(jù),然后通過反復(fù)回放數(shù)據(jù)進(jìn)行算法的性能開發(fā)和測(cè)試。ROS創(chuàng)建的消息記錄包文件以*.bag為擴(kuò)展名,可以播放、停止、后退操作該文件,便于算法調(diào)試。理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試ROS提供的消息記錄包相關(guān)的命令行工具:

rosbaginfo<bag_file>:顯示數(shù)據(jù)包的信息

rosbagrecord<topic_name>:記錄指定的topic

rosbagrecord-a:記錄所有的topic

rosbagplay--clock*.bag:回放包的內(nèi)容。理論概念及相關(guān)命令行工具ROS系統(tǒng)測(cè)試示例ROS中最小的進(jìn)程單元是節(jié)點(diǎn)(node),節(jié)點(diǎn)之間通過話題(topic)傳遞消息信息(message)。相機(jī)節(jié)點(diǎn)(cameranode)從攝像頭獲取數(shù)據(jù),圖像處理節(jié)點(diǎn)(imageprocessingnode)像相機(jī)節(jié)點(diǎn)請(qǐng)求數(shù)據(jù),相機(jī)節(jié)點(diǎn)作為回饋向圖像處理節(jié)點(diǎn)發(fā)送圖像數(shù)據(jù)的“消息”。ROS管理者(ROSmaster)控制和監(jiān)控兩個(gè)節(jié)點(diǎn)的狀態(tài)。智能網(wǎng)聯(lián)汽車攝像頭圖像信息處理的ROS計(jì)算圖網(wǎng)絡(luò)簡(jiǎn)化圖ROS通信機(jī)制ROS系統(tǒng)測(cè)試01話題通信2服務(wù)通信023利用參數(shù)服務(wù)器進(jìn)行數(shù)據(jù)共享031ROS通信機(jī)制ROS系統(tǒng)測(cè)試話題(topic)通信一種基于發(fā)布訂閱模式,即一個(gè)節(jié)點(diǎn)發(fā)布消息,另一個(gè)節(jié)點(diǎn)訂閱該消息。話題通信是ROS中使用頻率最高的一種通信模式。適用于不斷更新的數(shù)據(jù)傳輸相關(guān)的應(yīng)用場(chǎng)景。例如智能網(wǎng)聯(lián)汽車在執(zhí)行導(dǎo)航功能時(shí)使用的傳感器是激光雷達(dá),自動(dòng)駕駛系統(tǒng)會(huì)采集激光雷達(dá)感知到的信息,計(jì)算后生成運(yùn)動(dòng)控制信息驅(qū)動(dòng)底盤運(yùn)動(dòng)。在該場(chǎng)景立,ROS中有一個(gè)節(jié)點(diǎn)需要時(shí)刻發(fā)布當(dāng)前雷達(dá)采集到的數(shù)據(jù),導(dǎo)航模塊中也有節(jié)點(diǎn)會(huì)訂閱并解析雷達(dá)數(shù)據(jù)。再以運(yùn)動(dòng)消息的發(fā)布為例,導(dǎo)航模塊會(huì)根據(jù)傳感器采集的數(shù)據(jù)時(shí)時(shí)的計(jì)算出運(yùn)動(dòng)控制信息并發(fā)布給底盤,底盤也有一個(gè)節(jié)點(diǎn)訂閱運(yùn)動(dòng)信息并最終轉(zhuǎn)換成控制電機(jī)的脈沖信號(hào)。話題通信實(shí)現(xiàn)模型中,在ROSMaster(管理者)的管理下,Talker的角色是發(fā)布者,Listener的角色是訂閱者。ROS通信機(jī)制ROS系統(tǒng)測(cè)試話題(topic)通信機(jī)制是ROSMaster負(fù)責(zé)保管Talker和Listener注冊(cè)的信息,并匹配話題相同的Talker與Listener,幫助Talker與Listener建立連接,連接建立后,Talker發(fā)布消息,且發(fā)布的消息會(huì)被Listener訂閱。ROS通信機(jī)制ROS系統(tǒng)測(cè)試服務(wù)通信話題通信的信息流只能是由發(fā)布者流向接收者,而且節(jié)點(diǎn)之間的通信是有延遲的,并不同步。服務(wù)通信則滿足了雙向同步的通信,這種通信只允許有一個(gè)服務(wù)器,客戶端可以有多個(gè),服務(wù)器和客戶端之間雙向同步通信,采取請(qǐng)求和應(yīng)答的模式進(jìn)行通信?;谡?qǐng)求響應(yīng)模式的通信模式。服務(wù)通信是一種應(yīng)答機(jī)制,即一個(gè)節(jié)點(diǎn)A向另一個(gè)節(jié)點(diǎn)B發(fā)送請(qǐng)求,B接收處理請(qǐng)求并產(chǎn)生響應(yīng)結(jié)果返回給A。服務(wù)通信更適用于對(duì)實(shí)時(shí)性有要求、具有一定邏輯處理的應(yīng)用場(chǎng)景。例如智能網(wǎng)聯(lián)汽車盲區(qū)檢測(cè)時(shí),控制系統(tǒng)分析傳感器數(shù)據(jù)發(fā)現(xiàn)車輛周邊出現(xiàn)可能發(fā)生碰撞的物體或人員時(shí),此時(shí)需要線控底盤進(jìn)行緊急制動(dòng)。上述場(chǎng)景使用服務(wù)通信機(jī)制,過程為一個(gè)節(jié)點(diǎn)需要向底盤節(jié)點(diǎn)發(fā)送制動(dòng)請(qǐng)求,底盤節(jié)點(diǎn)處理制動(dòng)請(qǐng)求并返回處理結(jié)果閱。ROS通信機(jī)制ROS系統(tǒng)測(cè)試服務(wù)通信服務(wù)通信實(shí)現(xiàn)模型中,在ROSMaster(管理者)的管理下,Talker的角色是服務(wù)端(server),Listener的角色是客戶端(client)。ROSMaster負(fù)責(zé)保管Talker和Listener注冊(cè)的信息,并匹配話題相同的Talker和Listener,幫助兩者建立連接,連接建立后,Listener發(fā)送請(qǐng)求信息,Talker返回響應(yīng)信息。ROS通信機(jī)制ROS系統(tǒng)測(cè)試話題通信與服務(wù)通信對(duì)比ROS通信機(jī)制ROS系統(tǒng)測(cè)試參數(shù)服務(wù)器(parameterserver)在ROS中用于實(shí)現(xiàn)不同節(jié)點(diǎn)之間的數(shù)據(jù)共享。作用是獨(dú)立于所有節(jié)點(diǎn)的一個(gè)公共容器,系統(tǒng)將數(shù)據(jù)存儲(chǔ)在該容器中,被不同的節(jié)點(diǎn)調(diào)用,同時(shí)不同節(jié)點(diǎn)也可以往其中存儲(chǔ)數(shù)據(jù)。一般適用于存在數(shù)據(jù)共享的一些應(yīng)用場(chǎng)景。舉例說(shuō)明如智能網(wǎng)聯(lián)汽車進(jìn)行自動(dòng)駕駛導(dǎo)航時(shí)系統(tǒng)開始路徑規(guī)劃,首先進(jìn)行全局路徑規(guī)劃,計(jì)算出一個(gè)從出發(fā)點(diǎn)到目標(biāo)點(diǎn)的最優(yōu)路徑。接下來(lái)進(jìn)行本地路徑規(guī)劃,根據(jù)當(dāng)前路況生成實(shí)時(shí)的行進(jìn)路徑。上述場(chǎng)景中,全局路徑規(guī)劃和本地路徑規(guī)劃時(shí)都會(huì)使用例如車輛尺寸等參數(shù),系統(tǒng)將這些參數(shù)都放置在參數(shù)服務(wù)器中,便于不同階段的路徑規(guī)劃進(jìn)行調(diào)用。ROS通信機(jī)制ROS系統(tǒng)測(cè)試參數(shù)服務(wù)器(parameterserver)參數(shù)通信實(shí)現(xiàn)模型中,在ROSMaster(管理者)的管理下,Talker的角色是參數(shù)設(shè)置者,Listener的角色是參數(shù)調(diào)用者。機(jī)制是ROSMaster作為一個(gè)公共容器保存參數(shù),Talker可以向容器中設(shè)置參數(shù),Listener可以獲取參數(shù)。ROS文件系統(tǒng)及相關(guān)指令ROS系統(tǒng)測(cè)試ROS文件系統(tǒng)指的是在硬盤上ROS源代碼的組織形式。ROS的文件系統(tǒng)可以使用Linux命令來(lái)操作文件。在ROS中為了更好的用戶體驗(yàn),ROS專門提供了一些類似于Linux的命令,這些命令較之于Linux原生命令更為簡(jiǎn)潔高效。常用ROS文件系統(tǒng)操作指令ROS集成開發(fā)環(huán)境ROS系統(tǒng)測(cè)試集成開發(fā)環(huán)境(integrateddevelopmentenvironment,IDE)是為程序開發(fā)提供便利的應(yīng)用程序。工具主要包括VScode等。VSCode全稱VisualStudioCode,是一款輕量級(jí)代碼編輯器,免費(fèi)、開源而且功能強(qiáng)大。它支持幾乎所有主流的程序語(yǔ)言的語(yǔ)法高亮、智能代碼補(bǔ)全、自定義熱鍵、括號(hào)匹配、代碼片段、代碼對(duì)比Diff、GIT等特性,支持插件擴(kuò)展,并針對(duì)網(wǎng)頁(yè)開發(fā)和云端應(yīng)用開發(fā)做了優(yōu)化。軟件跨平臺(tái)支持Win、Mac以及Linux。01代碼編輯器、編譯器、調(diào)試器和圖形用戶界面等工具2集成了代碼編寫、分析、編譯、調(diào)試等功能023提供一體化的開發(fā)軟件服務(wù)套件031ROS工作空間及功能包創(chuàng)建ROS系統(tǒng)測(cè)試ROS中所使用的編程語(yǔ)言主要是C++和Python。C++運(yùn)行效率高但是編碼效率低,而Python則反之,基于二者互補(bǔ)的特點(diǎn),ROS設(shè)計(jì)者分別設(shè)計(jì)了roscpp與rospy庫(kù),前者旨在成為ROS的高性能庫(kù),而后者則一般用于對(duì)性能無(wú)要求的場(chǎng)景,旨在提高開發(fā)效率。ROS測(cè)試ROS系統(tǒng)測(cè)試通信測(cè)試分別建立talker和listener程序,查看信息傳遞情況。以ROS2通信測(cè)試為例,測(cè)試方法如下:第一步,啟動(dòng)一個(gè)終端并通過命令新建一個(gè)數(shù)據(jù)的發(fā)布者節(jié)點(diǎn),指令為

ros2rundemonodescpptalkerROS測(cè)試ROS系統(tǒng)測(cè)試通信測(cè)試第二步,在這個(gè)終端不關(guān)閉進(jìn)程的情況下,打開第二個(gè)終端,通過命令

ros2rundemo_nodes_pylistener

啟動(dòng)一個(gè)數(shù)據(jù)的訂閱者節(jié)點(diǎn)。ROS測(cè)試ROS系統(tǒng)測(cè)試通信測(cè)試第二步,在這個(gè)終端不關(guān)閉進(jìn)程的情況下,打開第二個(gè)終端,通過命令

ros2rundemo_nodes_pylistener

啟動(dòng)一個(gè)數(shù)據(jù)的訂閱者節(jié)點(diǎn)。第三步,對(duì)比發(fā)布者與訂閱者的字符串內(nèi)容,如果一致表明通信正常。本例中,“HelloWorld”字符串在兩個(gè)終端中正常傳輸,該系統(tǒng)通信正常。ROS測(cè)試ROS系統(tǒng)測(cè)試仿真測(cè)試第一步,啟動(dòng)三個(gè)終端,依次鍵入如下指令,

終端一鍵入

roscore

#啟動(dòng)ros

終端二鍵入

rosrunturtlesimturtlesim_nod

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論