《鴻蒙機(jī)器人編程》3-創(chuàng)建工作空間-教案_第1頁
《鴻蒙機(jī)器人編程》3-創(chuàng)建工作空間-教案_第2頁
《鴻蒙機(jī)器人編程》3-創(chuàng)建工作空間-教案_第3頁
《鴻蒙機(jī)器人編程》3-創(chuàng)建工作空間-教案_第4頁
《鴻蒙機(jī)器人編程》3-創(chuàng)建工作空間-教案_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ROS星火計劃 工作空間創(chuàng)建 NXROBO&ExBot工作空間創(chuàng)建上一講中,我們介紹了ROS的工作機(jī)制。接下來的詳細(xì)討論下ROS使用前的環(huán)境設(shè)置及系統(tǒng)依賴管理、工作區(qū)的創(chuàng)建與overlay、功能包的創(chuàng)建、編譯及運行和功能包配置文件規(guī)則;本講主要講解:ROS功能包的系統(tǒng)依賴管理編譯構(gòu)建系統(tǒng)及工作空間功能包創(chuàng)建及package.xml規(guī)則ROS的編譯構(gòu)建系統(tǒng)建Catkin:官方推薦的ROS編譯構(gòu)建系統(tǒng),是原ROS編譯構(gòu)建系統(tǒng)rosbuild的繼承者。catkin通過綜合CMake宏和Python腳本在CMake正常工作流程之前實現(xiàn)一些功能操作。(Drypackages)Rosbuild:過時的編譯構(gòu)建系統(tǒng),不建議使用。但目前官方還在支持以保證早期功能包工作。(Wetpackages)Catkin工作空間創(chuàng)建設(shè)置環(huán)境變量$source/opt/ros/noetic/setup.bash創(chuàng)建命令$mkdir-p~/catkin_ws/src

$cd~/catkin_ws/src&catkin_init_workspace構(gòu)建$cd~/catkin_ws/

$catkin_makeCatkin工作空間結(jié)構(gòu)源碼空間存放功能包的所有源碼檔,編譯構(gòu)建時就從這個目錄尋找功能包。其顯著標(biāo)志就是CMakeLists.txt檔,連結(jié)\opt\ros\distro\catkin\cmake\toplevel.cmake文件。構(gòu)建空間存放編譯構(gòu)建過程中的中間檔。開發(fā)空間存放構(gòu)建好的可執(zhí)行程序和運行庫,可由CATKIN_DEVEL_PREFIX變量重新設(shè)定,但目錄的選擇要求必須滿足子目錄沒有功能包。安裝空間是功能包的安裝目錄,可由CATKIN_INSALL_PREFIX變量重新設(shè)定。因為新建工作空間,所以默認(rèn)的install目錄并未創(chuàng)建,執(zhí)行以下命令創(chuàng)建。$catkin_makeinstall工作空間的overlay單個catkin功能包可以像普通的CMake項目一樣建成一個獨立的項目,但創(chuàng)建catkin工作空間可以一次編譯構(gòu)建多個有依賴關(guān)系的功能包。Catkin工作空間的創(chuàng)建由catkin本身完成。Catkin一般在安裝ROS已經(jīng)安裝完成,使用時需要設(shè)置環(huán)境變量。工作空間的overlay實際上就是系統(tǒng)環(huán)境鏈的overlay。Overlay上層遮蔽下層OverlayROS系統(tǒng)目錄、overlay工作空間環(huán)境變量設(shè)置通過setup.xxxshell腳本引入$source/opt/ros/noetic/setup.bash在~/.bashrc文件中添加source命令環(huán)境變量查看$env|greprosROS環(huán)境變量Catkin工作空間overlaycatkin工作空間執(zhí)行catkin_make會在devel目錄下生成系統(tǒng)環(huán)境設(shè)置腳本(setup.XXX),執(zhí)行catkin_makeinstall會在安裝目錄生成類似的系統(tǒng)環(huán)境設(shè)置腳本,這些腳本已包含ROS系統(tǒng)安裝目錄環(huán)境設(shè)置腳本的設(shè)置內(nèi)容,也會保留其它腳本已經(jīng)設(shè)置的環(huán)境變量。通過這些腳本就可以實現(xiàn)catkin工作空間的overlay。如overlay系統(tǒng)安裝目錄:$source/opt/ros/noetic/setup.bash

$env|grepros

$mkdir-p~/catkin_ws/src

$cd~/catkin_ws/src;catkin_init_workspace

$cd~/catkin_ws;catkin_make

$source~/catkin_ws/devel/setup.bash

$env|grepros因為catkin功能包編譯默認(rèn)是對整個工作空間所有功能包的編譯,所以大多用戶會有需求創(chuàng)建一個以上的catkin工作空間。下面實現(xiàn)兩個catkin工作空間的overlay,如在前面的基礎(chǔ)上:$mkdir-p~/catkin_ws_2/src

$cd~/catkin_ws_2/src;catkin_init_workspace

$cd~/catkin_ws_2;catkin_make

$source~/catkin_ws_2/devel/setup.bash

$env|grepros創(chuàng)建ROS功能包功能包編寫一般包括下面幾個步驟:先使用建構(gòu)系統(tǒng)工具創(chuàng)建功能包、功能包功能編寫和配置文件編寫、功能包編譯、環(huán)境變量設(shè)置及功能包運行。下面及下課分別介紹這幾個步驟。###3.1新建功能包從這里開始只討論用catkin編譯構(gòu)建系統(tǒng)。catkin功能包主要有以下幾部分組成:? 必須包含package.xml文件;? 必須包含CMakeLists.txt文件;? 在每一個文件夾下只能有一個功能包,且功能包之間不允許嵌套。catkin功能包使用catkin_create_pkg腳本創(chuàng)建,其用法如下:>catkin_create_pkg[depend1][depend2][depend3]...其中,package_name為功能包的名字,必填,后面為此功能包的依賴列表。下面創(chuàng)建一個名為beginner_tutorials,依賴std_msgs、rospy、roscpp的功能包,在創(chuàng)建之前進(jìn)入源碼空間:catkin_creat_pkg命令行工具創(chuàng)建新的功能包:$cd~/catkin_ws/src$catkin_create_pkg[depend1][depend2][depend3]…此命令的格式包括功能包的名稱和依賴項;通常以來像包括std_msgs、rospy和roscpp。功能包命名規(guī)則:只允許使用小寫字母、數(shù)字、和底線;首字符必須是小寫字母。示例:$cd~/catkin_ws/src$catkin_create_pkgbeginner_tutorialsstd_msgsrospyroscppCatkin功能包配置文件CMakeLists.txt范本文件:/usr/lib/python3/dist-packages/catkin_pkg/templates/CMakeLists.txt.inpackage.xml范本文件:/usr/lib/python3/dist-packages/catkin_pkg/templates/package.xml.inpackage.xml主要內(nèi)容從上面的功能包文件結(jié)構(gòu)中看到,功能包創(chuàng)建的同時也創(chuàng)建了兩個文件,一個是CMakeLists.txt和package.xml,上面在功能包組成中也提到,這兩個文件是catkin功能包必有的文件,且位于功能包的根目錄下,它們是catkin_create_pkg根據(jù)模板文件/usr/lib/python2.7/dist-packages/catkin_pkg/templates/CMakeLists.txt.in和/usr/lib/python2.7/dist-packages/catkin_pkg/templates/package.xml.in來生成的。這一課我們先說說package.xml文件。package.xml文件是rosbuild系統(tǒng)中stack.xml和manifest.xml文件的替代者,主要包含以下4方面信息:描述性數(shù)據(jù)(如功能包的簡介、維護(hù)者)依賴的ROS功能包或系統(tǒng)軟件包功能包的元信息(如作者、網(wǎng)站)打包發(fā)行信息(如功能包版本)package.xml規(guī)則——基本信息標(biāo)簽基礎(chǔ)結(jié)構(gòu)package.xml實際是以XML形式組織的結(jié)構(gòu)化數(shù)據(jù),其根節(jié)點標(biāo)簽為,其它標(biāo)簽都作為其子節(jié)點,形式如下:XML<packageformat="2"></package>必填標(biāo)簽:為保證功能包的描述完整,有幾個必須存在的標(biāo)簽,分別是:<name>:功能包名;<version>:版本號,以d.d.d的格式,d表示整數(shù);<description>:功能包特性簡介;<maintainer>:功能包發(fā)布者信息;<license>遵循的版權(quán)協(xié)議名如下。可選標(biāo)簽<url>:功能包的網(wǎng)址信息,主要有功能包相關(guān)主頁,開源項目地址等;<author>:功能包的作者信息,可以有多個。package.xml規(guī)則——依賴關(guān)系標(biāo)簽上述功能包清單文件中還包含了一個依賴關(guān)系標(biāo)簽:,catkin功能包至少要包含一個依賴關(guān)系。實際上通過此清單文件可以定義6種依賴關(guān)系:編譯構(gòu)建依賴:<build_depend>,指定構(gòu)建此功能包需要的軟件包。構(gòu)建匯出依賴:<build_export_depend>,指定此功能包構(gòu)建庫文件需要的軟件包。執(zhí)行依賴:<exec_depend>,指定此功能包運行時需要的軟件包。測試依賴:<test_depend>,指定單元測試需要的附加依賴。構(gòu)建工具依賴:<buildtool_depend>,指定這個包需要構(gòu)建的工具。文檔工具依賴:<doc_depend>,指定了這個包生成文檔的需要文檔生成工具。一個有用的包管理工具:rosdep安裝好ROS,在用之前,一般需做兩項工作:一是建立本地ROS功能包依賴數(shù)據(jù)庫;二是ROS環(huán)境變量的設(shè)置。環(huán)境變量設(shè)置后面會專門提及,暫且不談;ROS功能包依賴管理在實際使用過程中常常用到,管理工作則是根據(jù)本地數(shù)據(jù)庫完成的,所以在此建立ROS功能包依賴數(shù)據(jù)庫很必要,那就先說說功能包依賴管理。因為安裝的ROS發(fā)行版一般只安裝ROS的核心功能包庫、圖形化工具、機(jī)器人開發(fā)的通用庫、仿真包及導(dǎo)航包,而我們下載或編寫的功能包往往需要依賴其它的ROS功能包或第三方軟件包。ROS為我們方便檢查安裝管理系統(tǒng)依賴提供了便捷的工具————rosdep。(rosdep是為數(shù)不多的不依賴ROS獨立發(fā)布的工具之一,默認(rèn)安裝于/usr/bin/目錄下)###1.1初始化并更新rosdep如果本地還沒有安裝rosdep,可以通過以下命令安裝

溫馨提示

  • 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

提交評論