- ROS機器人編程實戰
- (印度)庫馬爾·比平
- 1944字
- 2020-03-26 11:10:38
1.2 在桌面系統中安裝ROS
我們假設你現在使用的是一臺安裝Ubuntu 16.04或者Ubuntu 18.04 LTS系統的設備,它配置了Intel Core i5 @3.2 GHz的處理器,8GB的內存或者性能相同的硬件。因此我們必須掌握Linux以及命令行工具的基本知識。如果你需要學習或者更新這些知識的話,可以到互聯網上查找相關的學習資源,也可以查閱一些關于這些內容的書籍。
在本節中,我們將研究ROS發行版以及其對應支持的操作系統,這些內容將幫助我們根據需求選擇正確的組合。
1.2.1 ROS發行版
ROS發行版就是一套ROS功能包集合,它與Linux發行版十分相似。ROS發行版的目的是讓開發人員在開始下一步工作之前可以針對相對穩定的代碼庫進行工作。每個發行版會維護一組穩定的核心功能包,直到該發行版的生命周期結束。
目前最新的推薦ROS發行版是Kinectic Kame,它將一直被支持到2021年5月。而最新的ROS發行版為Melodic Morenia,于2018年5月23日發布,將被支持到2023年5月。不過這個最新的ROS版本存在一個問題:它不支持目前大部分的功能包文件。而這些包還需要一些時間才能完成從之前版本到最新版本的移植,所以我們并不推薦使用這個版本。在ROS網站上可以找到發行版列表(見圖1-1)。

圖1-1 發行版列表
1.2.2 支持的操作系統
ROS在設計上與Ubuntu系統是完全兼容的,而且按照計劃,ROS發行版是與Ubuntu的發行版對應的。此外,Ubuntu ARM、Gentoo、macOS X、Arch Linux和OpenEmbedded也都實現了對ROS的部分支持。表1-1給出了ROS的各種發行版以及它們支持的操作系統。
表1-1

正如在1.2.1節討論過的,這里有多個ROS發行版可供下載和安裝。我建議使用其中有LTS標識的版本,這表示它是最穩定的,同時也是得到了最大支持的版本。
如果你需要使用ROS的最新特性,則可以選擇使用最新版本。不過你可能無法立刻使用完整的功能包文件,因為它們從前一個發行版遷移到這個版本需要一定時間。
在本書中我們將會使用兩個LTS發行版—— ROS Kinetic和ROS Melodic來完成所有實驗。圖1-2給出了這兩個ROS的選擇界面。

圖1-2 兩個ROS的選擇界面
我們可以在ROS網站獲得每個發行版的完整安裝說明。在這個網站的導航欄中依次單擊Getting Started|Install,打開的新頁面中將顯示最新ROS發行版的圖形列表。
1.2.3 如何完成
在下面的內容中我們將會介紹如何安裝最新的ROS發行版。
1.配置Ubuntu軟件庫(repositories)
配置Ubuntu的軟件庫時,我們首先要在Ubuntu的查找工具欄中找到Software & Updates,然后在Ubuntu Software中的main、universe、restricted和multiverse選項前進行勾選,如圖1-3所示。

圖1-3 軟件與更新(Software & Updates)選項卡
2.配置source.list文件
接下來我們需要設置桌面系統接受來自packages.ros的軟件,ROS軟件庫服務器的信息必須要添加到/etc/apt/source.list中:
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -
sc) main" > /etc/apt/sources.list.d/ros-latest.list'
3.設置密鑰
在向Ubuntu軟件庫管理器中添加一個新的軟件庫的時候,我們必須通過添加密鑰的方式來使操作系統信任來自它的包。為了確保能夠從授權的服務器進行下載,在開始安裝之前,我們應該向Ubuntu中添加如下的密鑰:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv- key 421C365BD9FF1F717815A3895523BAEEB01FA116
4.安裝ROS Kinetic
現在,我們開始在Ubuntu上安裝ROS Kinetic功能包。第一步是使用以下命令來更新功能包列表:
$ sudo apt-get update
在ROS中有許多不同的庫和工具,這里提供了4種不同的配置方式。
(1)桌面完整版(Desktop-Full)安裝(推薦):
$ sudo apt-get install ros-kinetic-desktop-full
(2)桌面版(Desktop)安裝:
$ sudo apt-get install ros-kinetic-desktop
(3)基礎版(ROS-Base)安裝:
$ sudo apt-get install ros-kinetic-ros-base
(4)獨立ROS功能軟件包(Individual Package)安裝:
$ sudo apt-get install ros-kinetic-PACKAGE
5.安裝ROS Melodic
現在,我們開始在Ubuntu 18.04上安裝ROS Melodic功能包。第一步是使用以下命令來更新包列表:
$ sudo apt-get update
在ROS中有許多不同的庫和工具,這里同樣也提供了4種不同的默認配置。
(1)桌面完整版(Desktop-Full)安裝(推薦):
$ sudo apt-get install ros-melodic-desktop-full
(2)桌面版(Desktop)安裝:
$ sudo apt-get install ros-melodic-desktop
(3)基礎版(ROS-Base)安裝:
$ sudo apt-get install ros-melodic-ros-base
(4)獨立ROS功能軟件包(Individual Package)安裝:
$ sudo apt-get install ros-melodic-PACKAGE
6.初始化rosdep
在使用ROS之前,你需要執行rosdep的初始化操作。這樣在進行編譯的時候,它會幫助你輕松地安裝好系統依賴項和在ROS中運行所需的核心組件。
$ sudo rosdep init $ rosdep update
配置環境
干得不錯!我們已經完成了ROS的安裝。現在大部分的ROS腳本和可執行文件都安裝在目錄/opt/ros/<ros_version>中。
我們需要將ROS環境變量添加到bash會話中才能訪問這些腳本和可執行文件。下面給出了使用source命令為ROS Kinetic添加bash文件的命令。
$ source /opt/ros/kinetic/setup.bash
如果使用ROS Melodic,則需要進行如下設置:
$ source /opt/ros/melodic/setup.bash
如果每次在啟動新的shell時,ROS環境變量都可以自動添加到bash會話,這對于我們來說會很方便。
對于ROS Kinetic來說,需要進行如下配置:
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc $ source ~/.bashrc
而如果是ROS Melodic,則需要使用如下配置:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc
如果我們不止安裝了一個ROS發行版,那么需要使用source命令來將當前使用版本的setup.bash添加到~/.bashrc中。
$ source /opt/ros/<ros_version>/setup.bash
7.獲得rosinstall
rosinstall是ROS中常用的一個命令行工具,它能夠幫助我們輕松地使用單個命令從多個源下載ROS包。
這個工具是基于Python的,我們可以使用下面命令來安裝它:
$ sudo apt-get install python-rosinstall
8.Build Farm的狀態
ROS包是由ROS Build Farm構建而成的。
好了,恭喜你已經完成了ROS的安裝。接下來執行下面的命令來檢查安裝是否正確。
打開一個新的命令行(shell)窗口運行roscore:
$ roscore
然后在另一個命令行(shell)窗口中打開一個turtlesim節點:
$ rosrun turtlesim turtlesim_node
如果一切正常的話,我們就會看到如圖1-4所示的界面。

圖1-4 ROS執行演示
- DB2 V9權威指南
- 程序員面試筆試寶典(第3版)
- 自己動手寫搜索引擎
- SQL Server 2016從入門到精通(視頻教學超值版)
- PyTorch Artificial Intelligence Fundamentals
- 樂高機器人設計技巧:EV3結構設計與編程指導
- React.js Essentials
- Java設計模式及實踐
- 批調度與網絡問題的組合算法
- Mastering Xamarin.Forms(Second Edition)
- C++從入門到精通(第6版)
- 黑莓(BlackBerry)開發從入門到精通
- Android高級開發實戰:UI、NDK與安全
- RESTful Web API Design with Node.js(Second Edition)
- Kotlin核心編程