1.2 ROS2安裝
1.2 ROS2安裝
本節(jié)主要介紹如何在Ubuntu 操作系統(tǒng)上安裝ROS2,所以在安裝之前請(qǐng)先準(zhǔn)備好與ROS2版本相匹配的Ubuntu操作系統(tǒng)。
1.2.1 安裝ROS2
整體而言,ROS2的安裝步驟不算復(fù)雜,大致步驟如下:
準(zhǔn)備1:設(shè)置語(yǔ)言環(huán)境;
準(zhǔn)備2:?jiǎn)?dòng)Ubuntu universe存儲(chǔ)庫(kù);
設(shè)置軟件源;
安裝ROS2;
配置環(huán)境。
請(qǐng)注意:雖然安裝比較簡(jiǎn)單,但是安裝過(guò)程比較耗時(shí),需要耐心等待。
1.準(zhǔn)備1:設(shè)置語(yǔ)言環(huán)境
請(qǐng)先檢查本地語(yǔ)言環(huán)境是否支持UTF-8編碼,可調(diào)用如下指令檢查并設(shè)置UTF-8編碼:
locale ?# 檢查是否支持 UTF-8?
sudo apt update && sudo apt install locales?
sudo locale-gen en_US en_US.UTF-8?
sudo update-locale LC_ALL=en_US.UTF-8
export.UTF-8?
locale ?# 驗(yàn)證設(shè)置是否成果
注意:語(yǔ)言環(huán)境可以不同,但必須支持UTF-8編碼。
2.準(zhǔn)備2:?jiǎn)?dòng)Ubuntu universe存儲(chǔ)庫(kù)
常用的啟動(dòng)Ubuntu universe存儲(chǔ)庫(kù)方式有兩種:圖形化操作與命令行操作。
方式1:圖形化操作
請(qǐng)打開(kāi)軟件與更新(Software & Updates)窗口,確保啟動(dòng)了universe存儲(chǔ)庫(kù),以保證可以下載”社區(qū)維護(hù)的免費(fèi)和開(kāi)源軟件“,操作示例如下:

方式2:命令行操作
首先,通過(guò)如下命令檢查是否已經(jīng)啟動(dòng)了Ubuntu universe
存儲(chǔ)庫(kù):
apt-cache policy | grep universe ?
500 http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages ? ? ?release v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=universe,b=amd64
如果沒(méi)有如上所示的輸出,那么請(qǐng)調(diào)用如下命令啟動(dòng)Ubuntu universe存儲(chǔ)庫(kù):
sudo apt install software-properties-common?
sudo add-apt-repository universe
3.設(shè)置軟件源
先將ROS 2 apt存儲(chǔ)庫(kù)添加到系統(tǒng),用apt授權(quán)我們的GPG密鑰:
sudo apt update && sudo apt install curl gnupg lsb-release?
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
提示:如果拋出連接?http://raw.githubusercontent.com?失敗的異常信息,解決方式請(qǐng)參考本節(jié)最后部分補(bǔ)充2內(nèi)容。
然后將存儲(chǔ)庫(kù)添加到源列表:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
4.安裝ROS2
首先更新apt存儲(chǔ)庫(kù)緩存:
sudo apt update
然后升級(jí)已安裝的軟件(ROS2軟件包建立在經(jīng)常更新的Ubuntu系統(tǒng)上,在安裝新軟件包之前請(qǐng)確保您的系統(tǒng)是最新的):
sudo apt upgrade
安裝桌面版ROS2(建議),包含:ROS、RViz、示例與教程,安裝命令如下:
sudo apt install ros-humble-desktop
或者,也可以安裝基礎(chǔ)版ROS2,包含:通信庫(kù)、消息包、命令行工具,但是沒(méi)有 GUI 工具,安裝命令如下:
sudo apt install ros-humble-ros-base
5.配置環(huán)境
終端下,執(zhí)行ROS2程序時(shí),需要調(diào)用如下命令配置環(huán)境:
source /opt/ros/humble/setup.bash
每次新開(kāi)終端時(shí),都得執(zhí)行上述命令,或者也可以執(zhí)行如下命令,將配置環(huán)境指令寫(xiě)入 ”~/.bashrc“ 文件,那么每次新啟動(dòng)終端時(shí),不需要在手動(dòng)配置環(huán)境:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
到目前為止,ROS2就已經(jīng)安裝且配置完畢了。
補(bǔ)充1:關(guān)于卸載(謹(jǐn)慎操作)
ROS2安裝完畢之后,如果想卸載ROS2,可以執(zhí)行如下命令:
sudo apt remove ~nros-humble-* && sudo apt autoremove
還可以再刪除ROS2對(duì)應(yīng)的存儲(chǔ)庫(kù):
sudo rm /etc/apt/sources.list.d/ros2.list?
sudo apt update?
sudo apt autoremove?
# Consider upgrading for packages previously shadowed.?
sudo apt upgrade
補(bǔ)充2:關(guān)于?http://raw.githubusercontent.com?連接失敗的處理
安裝ROS2過(guò)程中,執(zhí)行到步驟3也即設(shè)置軟件源時(shí),可能會(huì)拋出異常。
異常提示:curl: (7) Failed to connect to?http://raw.githubusercontent.com?port 443: 拒絕連接。
異常原因:DNS被污染。
解決思路:查詢(xún)錯(cuò)誤提示中域名的IP地址,然后修改 /etc/hosts 文件,添加域名與IP映射。
具體實(shí)現(xiàn):
1.訪問(wèn)?https://www.ipaddress.com/?并輸入域名?http://raw.githubusercontent.com,查詢(xún) ip 地址。


查詢(xún)到的ip地址可能有多個(gè),記錄任意一個(gè)地址即可。
2.修改/etc/hosts文件:
sudo gedit /etc/hosts
添加ip和域名映射到hosts文件,保存并退出。

操作完畢后,終端再次運(yùn)行安裝指令即可正常執(zhí)行
1.2.2 測(cè)試ROS2
在ROS2中已經(jīng)內(nèi)置了一些案例,安裝完畢之后,就可以運(yùn)行這些案例,以測(cè)試ROS2的安裝與配置是否正常,在此,我們選用ROS2內(nèi)置的小烏龜案例,具體操作如下。
1.打開(kāi)兩個(gè)終端(可以使用快捷鍵Ctrl + Alt + T);
2.終端1中輸入指令:ros2 run turtlesim turtlesim_node
,執(zhí)行完畢,會(huì)啟動(dòng)一個(gè)繪有小烏龜?shù)拇翱冢?/p>
3.終端2中輸入指令:ros2 run turtlesim turtle_teleop_key
,執(zhí)行完畢,可以在此終端中通過(guò)鍵盤(pán)控制烏龜運(yùn)動(dòng)。
運(yùn)行結(jié)果示例如下:

注意:在使用鍵盤(pán)控制烏龜運(yùn)動(dòng)時(shí),需要保證光標(biāo)聚焦在終端2中,否則烏龜無(wú)響應(yīng)。
1.2.3 安裝colcon構(gòu)建工具
colcon是一個(gè)命令行工具,用于改進(jìn)編譯,測(cè)試和使用多個(gè)軟件包的工作流程。它實(shí)現(xiàn)過(guò)程自動(dòng)化,處理需求并設(shè)置環(huán)境以便于使用軟件包。ROS2中便是使用colcon作為包構(gòu)建工具的,但是ROS2中沒(méi)有默認(rèn)安裝colcon,需要自行安裝,安裝命令如下:
sudo apt install python3-colcon-common-extensions
安裝完colcon之后,就可以在ROS2中編寫(xiě)應(yīng)用程序了,下一節(jié)我們將介紹ROS2版本的HelloWorld實(shí)現(xiàn)。

更多內(nèi)容在猛獅知識(shí)星球社區(qū),更多課程和講義內(nèi)容即將推出,詳情可關(guān)注猛獅集訓(xùn)營(yíng)公眾號(hào)和猛獅集訓(xùn)營(yíng) (xuetuling.com)官方網(wǎng)站