智能終端應(yīng)用開發(fā)基礎(chǔ) 課件 第8、9章 ROS簡介與基礎(chǔ)、ROS常用組件_第1頁
智能終端應(yīng)用開發(fā)基礎(chǔ) 課件 第8、9章 ROS簡介與基礎(chǔ)、ROS常用組件_第2頁
智能終端應(yīng)用開發(fā)基礎(chǔ) 課件 第8、9章 ROS簡介與基礎(chǔ)、ROS常用組件_第3頁
智能終端應(yīng)用開發(fā)基礎(chǔ) 課件 第8、9章 ROS簡介與基礎(chǔ)、ROS常用組件_第4頁
智能終端應(yīng)用開發(fā)基礎(chǔ) 課件 第8、9章 ROS簡介與基礎(chǔ)、ROS常用組件_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第8章

ROS簡介與基礎(chǔ)Contents01.引言02.初識ROS04.服務(wù)通信與開發(fā)03.ROS基礎(chǔ)與通信01引言AI引領(lǐng)新革命:AI技術(shù)的注入,為機(jī)器人行業(yè)帶來前所未有的發(fā)展機(jī)遇,機(jī)器人與AI攜手,將如互聯(lián)網(wǎng)般再次革新我們的生活,引領(lǐng)全新科技革命。機(jī)器人時代來臨:自20世紀(jì)70年代起,計算機(jī)、傳感器與電子技術(shù)飛躍,機(jī)器人技術(shù)步入黃金期,從工業(yè)邁向家庭、醫(yī)療、教育、救援、軍事,領(lǐng)域廣泛。機(jī)器人技術(shù)革新ROS操作系統(tǒng)介紹工具與庫函數(shù):ROS提供豐富工具和庫函數(shù),支持代碼獲取、編譯、編寫及跨機(jī)運(yùn)行,旨在促進(jìn)機(jī)器人軟件的開發(fā)與復(fù)用。ROS定義:開源元操作系統(tǒng),專為機(jī)器人設(shè)計,集成硬件抽象、底層控制、函數(shù)實現(xiàn)、消息傳遞及包管理,提供全面基礎(chǔ)服務(wù)。節(jié)點(diǎn)框架:ROS采用分布式節(jié)點(diǎn)框架,節(jié)點(diǎn)封裝于程序包中,支持分享與發(fā)布。此設(shè)計促進(jìn)工程協(xié)作與獨(dú)立開發(fā),同時ROS工具可整合所有工程。聯(lián)合系統(tǒng):類似于代碼儲存庫的聯(lián)合系統(tǒng),支持工程的協(xié)作及發(fā)布。這個設(shè)計可以使一個工程的開發(fā)和實現(xiàn)從文件系統(tǒng)到用戶接口完全獨(dú)立決策。ROS軟件架構(gòu)詳解02初識ROSROS歷史與特點(diǎn)ROS起源與發(fā)展:自2000年斯坦福大學(xué)STAIR項目起,ROS歷經(jīng)多年發(fā)展,成為機(jī)器人研究開源協(xié)作框架,推動機(jī)器人技術(shù)跨領(lǐng)域革新。分布式網(wǎng)絡(luò)架構(gòu):采用TCP/IP通信,實現(xiàn)模塊間松耦合連接,支持話題異步流、服務(wù)同步流等多種通信,便于多機(jī)器人協(xié)同工作。多語言支持:設(shè)計為語言弱相關(guān)框架,使用簡潔定義語言跨語言交互,支持Python、C++、Java等多語言編程,促進(jìn)代碼復(fù)用與模塊化設(shè)計。精簡集成與復(fù)用:模塊化設(shè)計提升軟件復(fù)用性,統(tǒng)一消息接口簡化移植。集成OpenCV、PCL等開源庫,加速機(jī)器人應(yīng)用開發(fā)與功能創(chuàng)新。組件化工具包:集成3D可視化rviz、消息查看工具及物理仿真環(huán)境等組件,為機(jī)器人開發(fā)者提供一站式開發(fā)平臺,提升開發(fā)效率與仿真測試能力。免費(fèi)并且開源:BSD許可賦能,自由修改發(fā)布,促進(jìn)代碼共享與商業(yè)化應(yīng)用。全球開發(fā)者維護(hù),代碼庫持續(xù)增長,加速機(jī)器人生態(tài)繁榮與技術(shù)創(chuàng)新。ROS主要支持Ubuntu,也適用于OSX、Android等。本書選ROSMelodicMorenia,Ubuntu16.04LTS為長期支持版,穩(wěn)定可靠。系統(tǒng)要求與選擇為確保軟件源最新,需啟用restricted、universe、multiverse倉庫。可通過Ubuntu軟件中心檢查并調(diào)整設(shè)置。配置Ubuntu軟件倉庫需將ROS官方或國內(nèi)鏡像源地址加入sources.list.d/ros-latest.list,便于后續(xù)安裝時正確下載ROS相關(guān)軟件。添加sources.listROS安裝與配置通過curl命令下載ROS簽名密鑰并安裝,確保軟件包的完整性和來源可靠性,為后續(xù)安裝操作提供安全基礎(chǔ)。設(shè)置密鑰為終端會話啟用ROS軟件包,需將setup.bash(或setup.zsh)命令的輸出追加至對應(yīng)shell的配置文件中。環(huán)境變量配置通過apt-get更新包索引后,可選擇安裝ROS桌面完整版、桌面版、基礎(chǔ)版或單個軟件包,以滿足不同開發(fā)需求。安裝軟件包ROS安裝與配置安裝rosinstall、wstool和build-essential等工具,以便于管理和構(gòu)建自己的ROS工作區(qū),支持多包下載與編譯。執(zhí)行rosdep初始化與更新操作,確保在編譯源碼時自動安裝系統(tǒng)依賴,同時滿足ROS核心功能組件的運(yùn)行需求。初始化rosdep配置開發(fā)依賴ROS安裝與配置架構(gòu)簡介ROS架構(gòu)分三層,OS層依托Linux(含Ubuntu、macOS等),中間層主打TCPROS/UDPROS通信與Nodelet進(jìn)程內(nèi)通信優(yōu)化,應(yīng)用層通過Master管理節(jié)點(diǎn)。計算圖通過節(jié)點(diǎn)、話題、服務(wù)及節(jié)點(diǎn)管理器構(gòu)建端對端拓?fù)浣Y(jié)構(gòu),實現(xiàn)分布式計算模塊的高效連接與協(xié)同工作,特別適用于復(fù)雜動態(tài)的機(jī)器人系統(tǒng)開發(fā)。開源社區(qū)依托發(fā)行版管理軟件源、Wiki記錄文檔、郵件列表促進(jìn)交流、Answers解答疑問及博客發(fā)布資訊,構(gòu)建全方位資源平臺,加速ROS軟件的知識共享與開發(fā)創(chuàng)新。文件系統(tǒng)采用分層文件夾結(jié)構(gòu)組織功能包、元功能包及消息、服務(wù)定義,支持自定義擴(kuò)展,實現(xiàn)代碼、配置與數(shù)據(jù)的清晰分離,便于管理與復(fù)用。ROS架構(gòu)解析話提和服務(wù)區(qū)別話題異步廣播適用于數(shù)據(jù)實時更新少邏輯處理;服務(wù)同步調(diào)用適合數(shù)據(jù)量少但邏輯處理強(qiáng)的場景,兩者互補(bǔ)滿足ROS通信需求。參數(shù)管理機(jī)制利用ROSMaster管理全局參數(shù),節(jié)點(diǎn)間通過RPC查詢和更新參數(shù)值,實現(xiàn)數(shù)據(jù)共享和配置靈活性,無需直接交互。服務(wù)通信機(jī)制簡化雙向通信流程,節(jié)點(diǎn)注冊后直接TCP連接交換數(shù)據(jù),ROSMaster匹配并提供地址信息輔助建立連接。話提通信機(jī)制通過RPC實現(xiàn)節(jié)點(diǎn)間信息注冊與匹配,TCP建立網(wǎng)絡(luò)連接后進(jìn)行數(shù)據(jù)傳輸,ROSMaster作為核心協(xié)調(diào)節(jié)點(diǎn)間的通信過程。ROS通信機(jī)制ROS開發(fā)基礎(chǔ)小烏龜例程:通過turtlesim功能包學(xué)習(xí)控制小烏龜移動,掌握ROS節(jié)點(diǎn)、話題和服務(wù)的基本用法,以及參數(shù)調(diào)整。工作空間和功能包:介紹ROS工作空間結(jié)構(gòu)及src、build、devel、install目錄作用,并步驟展示如何創(chuàng)建功能包和編譯工作空間。自定義軟件包:深入剖析catkin_create_pkg生成的package.xml和CMakeLists.txt,展示如何自定義這些文件以滿足特定需求。深入工作空間:解釋ROS工作空間Overlaying機(jī)制,展示如何通過多個工作空間管理功能包,包括查看環(huán)境變量和包路徑。創(chuàng)建自定義的ROS消息和服務(wù):介紹msg和srv文件定義及存放規(guī)則,展示如何生成跨語言源代碼,并使用rosmsg和rossrv命令查看消息和服務(wù)的定義。話題通信開發(fā):分析小烏龜例程的節(jié)點(diǎn)關(guān)系和話題通信,使用rostopic和rqt_graph工具調(diào)試話題,實現(xiàn)數(shù)據(jù)發(fā)送與訂閱,優(yōu)化節(jié)點(diǎn)間的信息交互。03ROS基礎(chǔ)與通信小烏龜例程烏龜控制流程:安裝turtlesim包后,啟動ROSMaster,運(yùn)行turtlesim仿真器,再啟動鍵盤控制節(jié)點(diǎn),即可通過方向鍵控制小烏龜在仿真界面移動,享受編程樂趣。turtlesim入門包:turtlesim功能包是ROS提供的入門級功能包,通過鍵盤控制小烏龜移動,初學(xué)者可借此了解ROS基礎(chǔ)功能及輔助工具使用,奠定開發(fā)基礎(chǔ)。工作空間概覽:ROS功能包源代碼存放于工作空間,其采用Catkin編譯系統(tǒng),包含src、build、devel、install四目錄,分別用于存儲源碼、編譯緩存、可執(zhí)行文件及安裝文件。創(chuàng)建與編譯:創(chuàng)建工作空間并初始化,包含運(yùn)行catkin_make編譯及設(shè)置環(huán)境變量;同時創(chuàng)建功能包,依賴特定包如std_msgs、roscpp等,確保路徑唯一并編譯以集成開發(fā)。創(chuàng)建工作空間和功能包自定義package.xml生成后需編輯description描述,添加maintainer維護(hù)者信息,選定license許可證,并列出所有依賴項,確保軟件包正確編譯與運(yùn)行。消息生成定義新msg后,需更新package.xml并修改CMakeLists.txt以包含消息生成依賴;使用rosmsgshow驗證消息識別,確保ROS正確處理新定義的消息格式。服務(wù)復(fù)制與適配創(chuàng)建新服務(wù)時,利用roscp復(fù)制現(xiàn)有srv定義,確保消息依賴正確處理。更新package.xml和CMakeLists.txt以支持服務(wù)代碼生成,并通過rossrvshow驗證服務(wù)識別。依賴管理在package.xml中聲明依賴項,包括buildtool_depend、build_depend、run_depend等,并確保在CMakeLists.txt中正確設(shè)置這些依賴項以生成消息。自定義軟件包工作空間覆蓋機(jī)制01ROS通過Overlaying機(jī)制管理多個工作空間,按環(huán)境變量中路徑順序查找功能包,優(yōu)先匹配最前端路徑,實現(xiàn)功能包覆蓋,簡化開發(fā)并支持多版本共存。路徑管理與環(huán)境變量02查看ROS環(huán)境變量時,關(guān)鍵在于理解ROS_PACKAGE_PATH如何影響功能包查找順序。通過設(shè)置或修改此變量,可靈活控制ROS在運(yùn)行時加載特定版本的功能包。覆蓋風(fēng)險與策略03工作空間覆蓋雖便利,但需注意版本兼容性和依賴關(guān)系變化可能引發(fā)的風(fēng)險。合理組織工作空間,避免不必要的復(fù)雜性和潛在的沖突,是高效使用ROS的關(guān)鍵。深入工作空間在ROS中,msg文件定義了消息格式,用于不同語言間的消息傳遞;srv文件則定義服務(wù),包含請求和響應(yīng)部分,兩者均支持跨語言服務(wù)調(diào)用。Msg與Srv定義定義新msg后,需編輯package.xml并修改CMakeLists.txt以包含消息生成依賴;使用rosmsg工具生成源代碼,確保消息類型在ROS中跨語言使用。消息生成與轉(zhuǎn)換利用roscp復(fù)制現(xiàn)有srv定義至新包,確保消息依賴正確處理。更新package.xml和CMakeLists.txt以支持服務(wù)代碼生成,并通過rossrv工具驗證服務(wù)識別。服務(wù)復(fù)制與適配修改CMakeLists.txt以包含新msg和srv生成,并重新編譯軟件包;使用rosmsg和rossrv工具分別顯示消息和服務(wù)信息,驗證ROS是否正確識別并處理自定義類型。代碼生成與驗證創(chuàng)建自定義的ROS消息和服務(wù)話題分析通過rqt_graph分析小烏龜例程的節(jié)點(diǎn)關(guān)系,理解話題/turtle1/cmd_vel如何實現(xiàn)鍵盤控制速度指令的發(fā)布與訂閱,以及節(jié)點(diǎn)間的動態(tài)交互。使用rostopic工具如echo和list調(diào)試話題通信;echo顯示話題數(shù)據(jù),list列出所有活躍話題及其發(fā)布者、訂閱者信息,助力深入理解ROS話題機(jī)制。通過rostopicecho命令查看/turtle1/cmd_vel話題發(fā)布的數(shù)據(jù),確認(rèn)其包含linear和angular速度信息,確保小烏龜控制邏輯正確實現(xiàn)。結(jié)合rqt_graph的實時刷新功能與rostopicecho的訂閱操作,觀察話題數(shù)據(jù)的實時變化及節(jié)點(diǎn)間的交互情況,有效定位并解決通信問題。rostopic工具消息類型驗證圖形化調(diào)試話題通信開發(fā)04服務(wù)通信與開發(fā)服務(wù)節(jié)點(diǎn)間通信通過ROS服務(wù)框架實現(xiàn),允許同步請求與響應(yīng)。客戶端發(fā)送請求至服務(wù)端,服務(wù)端處理后返回結(jié)果,適用于復(fù)雜邏輯處理和數(shù)據(jù)交換。服務(wù)節(jié)點(diǎn)通信編寫ROS服務(wù)涉及定義.srv文件,內(nèi)含請求和響應(yīng)消息類型,以及實現(xiàn)服務(wù)端的C++代碼,接收請求、處理并返回響應(yīng),完成服務(wù)節(jié)點(diǎn)開發(fā)。編寫服務(wù)文件服務(wù)節(jié)點(diǎn)開發(fā)涵蓋定義.srv文件、編寫C++處理邏輯、編譯運(yùn)行,需確保依賴正確、代碼無誤,運(yùn)行后測試驗證服務(wù)功能,保障節(jié)點(diǎn)穩(wěn)定運(yùn)行。編譯運(yùn)行測試編寫服務(wù)節(jié)點(diǎn)客戶端節(jié)點(diǎn)客戶端節(jié)點(diǎn)是使用ROS服務(wù)的核心,發(fā)送請求并接收服務(wù)端的響應(yīng)。它負(fù)責(zé)啟動連接、發(fā)送請求數(shù)據(jù)、接收并處理響應(yīng),是實現(xiàn)ROS服務(wù)通信的關(guān)鍵部分。編寫客戶端邏輯編寫ROS客戶端邏輯涉及定義服務(wù)類型、啟動與服務(wù)端的連接、發(fā)送請求數(shù)據(jù)、接收并處理響應(yīng),確保數(shù)據(jù)正確傳輸與處理,是實現(xiàn)ROS服務(wù)通信的關(guān)鍵。測試客戶端功能編寫完客戶端節(jié)點(diǎn)后,進(jìn)行充分的測試是驗證其功能正確性的關(guān)鍵。這包括模擬各種輸入條件、檢查響應(yīng)數(shù)據(jù)的準(zhǔn)確性以及處理異常情況,確保客戶端的穩(wěn)定性。編寫客戶端節(jié)點(diǎn)節(jié)點(diǎn)構(gòu)建系統(tǒng)ROS采用Catkin作為構(gòu)建系統(tǒng),支持make和ament。Catkin基于make,而ament是輕量級構(gòu)建系統(tǒng),提供跨操作系統(tǒng)兼容性。了解并掌握Catkin和ament的使用。編譯設(shè)置編譯設(shè)置位于工作空間根目錄的CMakeLists.txt和package.xml中。這些文件定義了構(gòu)建規(guī)則和包依賴項,確保所有節(jié)點(diǎn)都按需編譯,并引入必要的系統(tǒng)和庫依賴項。編譯節(jié)點(diǎn)編譯節(jié)點(diǎn)前需確保工作空間正確設(shè)置,然后通過catkin_make或colcon等工具編譯。編譯過程生成可執(zhí)行文件和庫,確保節(jié)點(diǎn)正確鏈接和運(yùn)行,為后續(xù)開發(fā)打下基礎(chǔ)。構(gòu)建節(jié)點(diǎn)與編譯運(yùn)行檢驗01編譯完成后,運(yùn)行檢驗是確保服務(wù)端和客戶端正常工作的關(guān)鍵步驟。這包括啟動ROSMaster和其他相關(guān)節(jié)點(diǎn),以及運(yùn)行服務(wù)端和客戶端進(jìn)行實際通信測試。測試覆蓋率02測試覆蓋服務(wù)端和客戶端的所有功能分支和數(shù)據(jù)類型,確保無遺漏。這包括正常操作、異常情況和邊界條件測試,以提高服務(wù)的可靠性和穩(wěn)定性。日志調(diào)試03運(yùn)行中查看日志以監(jiān)控節(jié)點(diǎn)狀態(tài)和識別潛在問題。日志包含關(guān)鍵信息如連接嘗試、數(shù)據(jù)接收和錯誤消息,幫助快速定位并修復(fù)問題,確保服務(wù)端和客戶端穩(wěn)定運(yùn)行。檢驗服務(wù)端和客戶端感謝您的觀看與聆聽第9章

ROS常用組件Contents01.rosbag數(shù)據(jù)記錄與回放02.launch文件03.TF的作用與使用04.rqt工具箱05.RViz三維可視化工具01rosbag數(shù)據(jù)記錄與回放啟動roscore進(jìn)程,作為ROS系統(tǒng)的主節(jié)點(diǎn),隨后在終端中運(yùn)行turtlesim節(jié)點(diǎn),以啟動turtlesim可視化工具。初始化ROS節(jié)點(diǎn)在烏龜移動時,確保選中啟動turtle_teleop_key的終端窗口,以便通過鍵盤方向鍵控制烏龜在屏幕上的移動。記錄話題數(shù)據(jù)執(zhí)行turtle_teleop_key命令,啟動一個允許用戶通過鍵盤方向鍵控制turtlesim中烏龜移動的節(jié)點(diǎn)。啟動鍵盤控制錄制數(shù)據(jù)使用rostopic工具檢查當(dāng)前系統(tǒng)中發(fā)布的所有話題,包括/turtle1/color_sensor、/turtle1/cmd_vel等。列出話題創(chuàng)建目錄以存儲數(shù)據(jù),運(yùn)行rosbagrecord-a命令錄制所有發(fā)布的話題數(shù)據(jù)至bag文件,持續(xù)記錄直至系統(tǒng)狀態(tài)變化。錄制數(shù)據(jù)在turtle_teleop節(jié)點(diǎn)所在的終端窗口中控制烏龜移動約10秒后,按Ctrl+C停止rosbagrecord命令。停止錄制錄制所有發(fā)布的話題123運(yùn)行rosbaginfo查看bag文件內(nèi)容,確認(rèn)包含的話題、消息數(shù)量和類型,驗證錄制的數(shù)據(jù)完整性。查看bag文件使用rosbagplay命令回放bag文件,重現(xiàn)系統(tǒng)運(yùn)行過程,通過控制烏龜移動驗證數(shù)據(jù)回放的一致性。播放bag文件調(diào)整rosbagplay的等待時間和發(fā)布速率,觀察烏龜移動軌跡的變化,實現(xiàn)自定義的播放控制。自定義播放檢查并回放bag文件03檢查內(nèi)容查看subset.bag文件內(nèi)容,確認(rèn)僅包含指定話題的數(shù)據(jù),驗證錄制數(shù)據(jù)子集的準(zhǔn)確性。01啟動節(jié)點(diǎn)重新啟動turtlesim節(jié)點(diǎn)和鍵盤控制節(jié)點(diǎn),確保系統(tǒng)處于可錄制狀態(tài),為錄制特定話題做準(zhǔn)備。02錄制子集使用rosbagrecord命令,指定輸出文件為subset.bag,并僅訂閱/turtle1/cmd_vel和/turtle1/pose話題。錄制數(shù)據(jù)子集行為微妙變化:turtlesim的移動路徑對系統(tǒng)定時敏感,rosbag無法完全復(fù)制錄制時的系統(tǒng)運(yùn)行行為,包括消息處理過程中的微小變化。路徑差異:烏龜路徑在rosbag回放時可能與原始鍵盤控制路徑有細(xì)微差異,受系統(tǒng)定時精度影響,整體形狀相似但非完全一致。rosbag錄制和回放的局限性02launch文件launch文件介紹Launch文件一鍵啟動:Launch文件集合節(jié)點(diǎn)與參數(shù),簡化一鍵啟動。ROS系統(tǒng)復(fù)雜,需并行運(yùn)行多節(jié)點(diǎn),手工啟動繁瑣。Roslaunch工具助力,一鍵啟動,高效管理。Roslaunch簡介:Roslaunch是ROS啟動工具,支持SSH啟動多節(jié)點(diǎn),設(shè)置參數(shù),重啟進(jìn)程,自動啟動roscore。讀取.roslaunch和XML文件,指定參數(shù)和節(jié)點(diǎn)及運(yùn)行機(jī)器。傳遞參數(shù)參數(shù)設(shè)置語法:在啟動文件中,若需為節(jié)點(diǎn)設(shè)置參數(shù),采用與ROS重映射相同的語法。例如,為my_file.launch文件中的節(jié)點(diǎn)設(shè)置arg參數(shù),其值為value。啟動時設(shè)置參數(shù):若要啟動的文件指定了需要設(shè)置的參數(shù),則可以使用與ROS重映射參數(shù)相同的語法進(jìn)行設(shè)置,例如$roslaunchmy_file.launcharg:=value。Launch文件還包含machine、env、test等高級標(biāo)簽,分別用于定義機(jī)器信息、設(shè)置環(huán)境變量、以及指示測試節(jié)點(diǎn)運(yùn)行。Group標(biāo)簽用于將一組配置應(yīng)用于其內(nèi)部節(jié)點(diǎn),支持命名空間ns。Arg標(biāo)簽則用于定義啟動參數(shù),提升啟動文件的可重用性和可配置性。Node標(biāo)簽內(nèi)可定義name、pkg、type等屬性,同時支持env、remap等子標(biāo)簽,實現(xiàn)環(huán)境變量設(shè)置、參數(shù)重映射等功能。Launch文件核心為node標(biāo)簽,定義ROS節(jié)點(diǎn)。同時包含rosparam、param、include等標(biāo)簽,分別用于參數(shù)設(shè)置、參數(shù)傳遞、文件導(dǎo)入。Group與Arg標(biāo)簽Node節(jié)點(diǎn)配置Roslaunch高級標(biāo)簽Launch文件基礎(chǔ)標(biāo)簽解析launch文件03TF的作用與使用避免障礙物碰撞通過實時跟蹤和變換坐標(biāo),TF能夠確保機(jī)器人在復(fù)雜環(huán)境中精確導(dǎo)航,避免與障礙物發(fā)生碰撞,提升機(jī)器人操作的安全性和可靠性。參考系跟蹤TF,即時間參考系,功能包通過樹型數(shù)據(jù)結(jié)構(gòu),以時間為軸,跟蹤多個參考系變化,維護(hù)坐標(biāo)變換關(guān)系,確保數(shù)據(jù)準(zhǔn)確性。坐標(biāo)變換在機(jī)器人系統(tǒng)中,TF幫助用戶查詢不同參考系間的坐標(biāo)變換,如機(jī)器人、激光雷達(dá)、相機(jī)等相對位置,為導(dǎo)航、感知提供基礎(chǔ)數(shù)據(jù)。分布式操作TF的分布式操作特性確保所有節(jié)點(diǎn)組件均可訪問參考系變換關(guān)系,無需中心服務(wù)器存儲,提高系統(tǒng)靈活性和可擴(kuò)展性。TF的作用坐標(biāo)系變換01在小車系統(tǒng)中,base_laser和base_link是兩個關(guān)鍵坐標(biāo)系。激光傳感器感知障礙物時,需將激光數(shù)據(jù)從base_laser變換到base_link,確保數(shù)據(jù)準(zhǔn)確性。精度提升02在小車系統(tǒng)中,通過坐標(biāo)變換精確調(diào)整激光雷達(dá)數(shù)據(jù),減少誤差,提升系統(tǒng)精度,滿足高精度導(dǎo)航需求,確保機(jī)器人在復(fù)雜環(huán)境中穩(wěn)定運(yùn)行。ROS與TF框架03ROS提供了TF框架,極大地簡化了坐標(biāo)系轉(zhuǎn)換的復(fù)雜性,使得開發(fā)者無需手動處理繁瑣的坐標(biāo)關(guān)系,提高了開發(fā)效率和系統(tǒng)穩(wěn)定性。TF示例廣播TF變換:向系統(tǒng)中廣播參考系之間的坐標(biāo)變換關(guān)系,直接將變換關(guān)系插入TF樹中,無需同步。監(jiān)聽TF變換:接收并緩存系統(tǒng)中發(fā)布的所有參考系變換,并從中查詢所需要的參考系變換。TF使用方法04rqt工具箱日志輸出工具工具啟動:使用rqt_console命令可啟動該工具,界面可視化展示日志內(nèi)容,支持按級別過濾,方便調(diào)試和監(jiān)控ROS系統(tǒng)運(yùn)行狀態(tài)。消息概述:rqt_console工具用來圖像化顯示和過濾ROS系統(tǒng)運(yùn)行狀態(tài)中的所有日志消息,包括info、warn、error等級別的日志。計算圖展示:rqt_graph工具可以圖形化顯示當(dāng)前ROS系統(tǒng)中的計算圖,節(jié)點(diǎn)和邊清晰展示,便于理解和分析系統(tǒng)運(yùn)行狀態(tài)。工具啟動:在系統(tǒng)運(yùn)行時,使用rqt_graph命令即可啟動該工具,通過圖形化界面觀察計算圖,提升系統(tǒng)分析和調(diào)試效率。計算圖可視化工具數(shù)值曲線繪制:rqt_plot是一個二維數(shù)值曲線繪制工具,可以將需要顯示的數(shù)據(jù)在xy坐標(biāo)系中使用曲線描繪。工具啟動:使用rqt_plot命令啟動工具后,在界面上方的Topic輸入框中輸入需要顯示的話題消息,rqt_plot工具將數(shù)據(jù)以曲線形式展示。數(shù)據(jù)繪圖工具動態(tài)配置:rqt_reconfigure工具可以在不重啟系統(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

提交評論