官术网_书友最值得收藏!

2.6.2 獲取ROS-2源碼

為了順利安裝ROS-2,我們需要創(chuàng)建工作空間并將ROS-2的代碼倉庫復(fù)制至該工作空間。具體操作為使用以下命令:

成功執(zhí)行上述命令后,終端窗口中將會提示ros2.repos已保存,如圖2.8所示。

圖2.8 獲取最新的代碼倉庫

如果讀者是高級用戶,并且希望使用開發(fā)版本,則只需在前面的命令中將release-latest替換為master。如果讀者想進(jìn)一步試驗,我們還是建議使用前面的命令,因為前面的代碼樹在發(fā)布之前會經(jīng)過嚴(yán)格的測試。最后一步是使用以下命令導(dǎo)入倉庫信息:

現(xiàn)在設(shè)置好了工作空間,下面我們開始安裝依賴項。

1.使用rosdep安裝依賴

和安裝ROS-1時的操作一樣,我們使用rosdep安裝依賴項。讀者在上一章中應(yīng)當(dāng)已經(jīng)初始化了rosdep list。如果沒有執(zhí)行該操作,則執(zhí)行以下命令(否則,跳到下一個命令):

然后,更新rosdep:

接下來安裝以下依賴項:

正常情況下,成功執(zhí)行上述命令后,終端窗口的內(nèi)容將如圖2.9所示。

圖2.9 成功安裝ROS依賴項的圖示

如果讀者想要額外安裝DDS實(shí)現(xiàn),則可以執(zhí)行下一步驟,否則可以跳過該步驟。

2.安裝DDS實(shí)現(xiàn)(可選)

本步驟供想要安裝DDS實(shí)現(xiàn)的讀者參考。安裝過程如下:

1)讀者需要知道的是,ROS-2運(yùn)行于DDS之上,而DDS則有多家供應(yīng)商的實(shí)現(xiàn)版本。在ROS-2中,默認(rèn)的DDS實(shí)現(xiàn)中間件是快速RTPS。讀者可以自行選擇其他供應(yīng)商的DDS實(shí)現(xiàn),如OpenSplice或者Connext,相應(yīng)的命令如下:

·OpenSplice:

·Connext:

需要注意的是,若安裝Connext,則需要來自RTI的授權(quán),當(dāng)然你也可以嘗試試用版,可以從https://www.rti.com/free-trial獲取30天試用授權(quán)。

2)在獲取官方或試用版授權(quán)后,需要設(shè)置授權(quán)文件路徑。可以使用$RTI_LICENSE_FILE環(huán)境變量來指定授權(quán)文件路徑,通過export命令為環(huán)境變量賦值,命令如下:

3)下載授權(quán)文件之后,需要通過$chmod+x命令對$.run文件進(jìn)行權(quán)限設(shè)置。此外,還需要使用source命令導(dǎo)入配置文件,從而設(shè)置$NDDSHOME環(huán)境變量。進(jìn)入相應(yīng)目錄的命令如下:

然后,使用source命令導(dǎo)入文件:

至此,就可以進(jìn)行代碼構(gòu)建了,RTI支持的構(gòu)建將與代碼的構(gòu)建一同完成。

3.構(gòu)建代碼

在ROS-1中,可以使用catkin工具來編譯構(gòu)建功能包。在ROS-2中,我們使用一個升級了的工具,它是catkin_make、catkin_make_isolated、catkin_tools和ament_tools(第一個ROS-2發(fā)行版中使用的構(gòu)建系統(tǒng))的迭代,稱為colcon。這意味著colcon也可以用于編譯ROS-1中的功能包以及ROS-2中沒有功能包清單的功能包。

后面我們將展示如何使用colcon編譯單獨(dú)的功能包。下面,我們首先編譯構(gòu)建ROS-2。使用以下命令安裝colcon:

安裝完colcon之后,我們返回ROS-2的工作空間并編譯構(gòu)建ROS-2,命令如下:

然后使用以下命令編譯功能包:

上述過程大概需要40分鐘到1小時的時間,也可能會更長。本書作者大概花費(fèi)了1時14分鐘。在一切正常的情況下,讀者將會看到與圖2.10類似的終端顯示。

圖2.10 正常的編譯過程

如圖2.10所示,有9個功能包未進(jìn)行編譯構(gòu)建——我們跳過了這9個功能包,因為我們沒有選擇安裝DDS實(shí)現(xiàn)。下面,讓我們嘗試運(yùn)行一些已安裝功能包里的例子。

主站蜘蛛池模板: 高陵县| 大埔县| 印江| 滦南县| 浦北县| 台东市| 丽水市| 连州市| 保亭| 尚义县| 海宁市| 英山县| 弥渡县| 色达县| 镇安县| 奎屯市| 马山县| 沅陵县| 民乐县| 安康市| 柘城县| 肇庆市| 长汀县| 南汇区| 永年县| 惠来县| 甘南县| 女性| 嘉黎县| 土默特右旗| 金寨县| 双流县| 安图县| 浠水县| 吐鲁番市| 霍州市| 文昌市| 清水县| 阿克| 永福县| 永兴县|