ROS入門筆記(二):ROS安裝與環境配置及解除安裝(重點)
阿新 • • 發佈:2020-06-03
ROS入門筆記(二):ROS安裝與環境配置及解除安裝(重點)
[TOC]
# 1 ROS安裝步驟
## 1.1 ROS版本
ROS目前只支援在Linux系統上安裝部署, 它的首選開發平臺是Ubuntu。
| 釋出時間 | ROS版本 | Ubuntu版本 |
| :--------: | :--------------: | :--------------: |
| 2017.5 | Lunar Loggerhead | Ubuntu 17.04 |
| **2016.5** | **Kinetic Kame** | **Ubuntu 16.04** |
| 2015.5 | Jade Turtle | Ubuntu 15.04 |
| 2014.7 | Indigo lgloo | Ubuntu 14.04 |
| 2013.9 | Hydro Medusa | Ubuntu 12.04 |
| 2012.12 | Groovy Galapagos | Ubuntu 12.04 |
**注**:如果Ubuntu版本和ROS版本不對應的話,安裝就不會成功了~
筆者使用的平臺是Ubuntu 16.04, ROS版本是Kinetic。
說明:Ubuntu官方下載網址https://www.ubuntu.com/download/desktop
## 1.2 確定Ubuntu版本號
在終端中輸入:
```
cat /etc/issue
```
![image-20200325180821296](https://gitee.com/IT-cute/Picbed/raw/master/img/image-20200325180821296.png)
## 1.3 安裝ROS
### 1.3.1 Ubuntu初始環境配置
`開啟 Ubuntu的設定 -> 軟體與更新 -> Ubuntu軟體 ->勾選關鍵字 universe , restricted , multiverse 三項,`和下載源。 如圖所示:
![image-20200326014808792](https://gitee.com/IT-cute/Picbed/raw/master/img/image-20200326014808792.png)
==以上配置完成後, 就可以正式開始安裝ROS了, 開啟終端。==
### 1.3.2 ①新增源地址檔案sources.list
- **新增源地址檔案**使電腦系統可以接受來自packages.ros.org的軟體包;
- 增加下載源(增加ubuntu版的ros資料倉庫,即下載源)(通用指令適合任何版本的ros)
- 執行如下命令將映象新增到Ubuntu系統源列表中 :
```dart
$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $
DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
```
本人選擇了中國科技大學的映象源,可以保證下載速度。
**注:**強烈建議使用國內或者新加波的映象源,這樣能夠大大提高安裝下載速度。
說明:一旦添加了正確的源地址檔案,作業系統就知道去哪裡下載程式,並根據命令自動安裝軟體。
### 1.3.3 ②新增金鑰(key)
公鑰是Ubuntu系統的一種安全機制, 也是ROS安裝中不可缺的一部分。 不然在安裝的時候會通不過系統的安全認證而無法安裝。
方法一
```dart
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
```
方法二
```dart
$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
```
**尋找有效公鑰 **,官網:http://wiki.ros.org/kinetic/Installation/Ubuntu
### 1.3.4 ③安裝ROS
```dart
$ sudo apt-get update # 更新系統, 確保自己的Debian軟體包和索引是最新的。
$ sudo apt-get install ros-kinetic-desktop-full # 桌面完整版安裝(推薦)
```
簡介:
**重點:安裝出現的問題及解決方法 http://wiki.ros.org/ROS/**
ROS中有很多函式庫和工具, 官網提供了四種預設的安裝方式, 當然也可以單獨安裝某個特定的軟體包。 這四種方式包括桌面完整版安裝、 桌面版安裝, 基礎版安裝、 單獨軟體包安裝。
Ubuntu 16.04安裝Kinetic版本
==1)桌面完整版安裝(推薦): 包含ROS、 rqt、 rviz、 通用機器人函式庫、 2D/3D模擬器、 導航以及2D/3D感知功能 :==
```dart
$ sudo apt-get install ros-kinetic-desktop-full
```
2)桌面版安裝:包含ROS、 rqt、 rviz、通用機器人函式庫
```dart
$ sudo apt-get install ros-kinetic-desktop
```
3)基礎版安裝: 包含ROS核心軟體包、 構建工具、通訊相關的程式庫, 無GUI工具
```dart
$ sudo apt-get install ros-kinetic-ros-base
```
4)單個軟體包安裝:這種安裝方式在執行ROS缺少某些**package**依賴時會經常用到。 你可以安裝某個指定的ROS軟體包,使用軟體包名稱替換掉下面的**PACKAGE**。
```dart
$ sudo apt-get install ros-kinetic-PACKAGE
```
**例如**系統提示找不到slam-gmapping, 你就可以:
```dart
$ sudo apt-get install ros-kinetic-slam-gmapping
```
**查詢可用的軟體包**, 請執行:
```dart
apt-cache search ros-kinetic
```
### 1.3.5 ④初始化rosdep
在使用ROS之前,還需要初始化rosdep,即ROS的軟體包依賴項。。 rosdep可以方便在你需要編譯某些原始碼的時候為其安裝一些系統依賴, 同時也是某些ROS核心功能元件所必需用到的工具。
方法一:
```dart
$ sudo rosdep init && rosdep update
```
方法二:
```dart
$ sudo rosdep init
$ rosdep update
```
### 1.3.6 ⑤設定環境變數
```dart
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc # 為了使環境變數設定立即生效
```
注意: ROS的環境配置, 使得你每次開啟一個新的終端, ROS的環境變數都能夠自動配置好, 也就是新增到bash會話中, 因為命令 `source /opt/ros/kinetic/setup.bash` 只在當前終端有作用, 即具有單一時效性, 要想每次新開一個終端都不用重新配置環境, 就用`echo語句`將命令新增到`bash會話`中 。
**可能出現的問題:**
https://answers.ros.org/question/247285/rosdep-update-errorthe-read-operation-timed-out/
- 如果你使用 zsh,替換其中的 bash, 你可以用以下命令來設定你的shell:
```dart
$ echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrc
$ source ~/.zshrc
```
### 1.3.7 ⑥安裝rosinstall
rosinstall 是ROS中一個獨立分開的常用命令列工具, 它可以方便讓你通過一條命令就可以給某個ROS軟體包下載很多原始碼樹。 在ubuntu上安裝這個工具, 請執行:
```dart
$ sudo apt-get install python-rosinstall
```
至此, ROS的安裝就結束了, 下面測試ROS是否成功安裝好。
## 1.4 ROS安裝完成
在Ubuntu中,開啟資料夾找到 Computer--opt--ros--kinetic
![image-20200320174255703](https://gitee.com/IT-cute/Picbed/raw/master/img/image-20200320174255703.png)
**①bin資料夾**:放置一些具體的可執行的程式,在ros的bin資料夾下面儲存的都是ros系統和一些功能包給我們提供的可以直接執行的命令,可以在終端下面執行這些命令。
注:在執行bin資料夾下面的命令時,必須先設定環境變數,不然系統無法找到bin資料夾。
**②etc資料夾**:ros相關的配置檔案(用的相對少)
**③include資料夾**:包含所有通過命令列、通過終端安裝的功能包的程式碼標頭檔案。
**④lib資料夾**:包含通過終端安裝功能包的可執行程式,也就是節點。功能包中的節點,通過執行節點,來啟動相應功能包裡面的功能。
**⑤share資料夾**:裡面有很多通過終端安裝的功能包,儲存的是功能包裡面介面的一些具體資訊,介面包含話題、服務、action等。
## 1.5 測試ROS
第一步,開啟一個終端測試roscore是否能正常啟動,使用ROS必須保證roscore執行:
```dart
$ roscore # 啟動 ROS Master
```
第二步,重新開啟一個終端,執行以下命令:
```dart
$ rosrun turtlesim turtlesim_node # 看到一隻萌萌的海龜出現在螢幕上
```
第三步,再開啟一個終端,執行以下命令:
```dart
$ rosrun turtlesim turtle_teleop_key # 滑鼠在第三個終端視窗上,通過方向鍵操作小海龜
```
![image-20200326021020935](https://gitee.com/IT-cute/Picbed/raw/master/img/image-20200326021020935.png)
![image-20200325220233839](https://gitee.com/IT-cute/Picbed/raw/master/img/image-20200325220233839.png)
# 2 ROS解除安裝步驟
第一步,解除安裝功能包
```
sudo apt-get purge ros-* # *功能包的名字
```
第二步,解除安裝包的依賴包
```dart
sudo apt-get autoremove
```
# 3 附:檢查指令碼配置環境
如果你在查詢和使用ROS軟體包方面遇到了問題,請確保你已經正確配置了指令碼環境。一個檢查的好方法是確保你已經設定了像[ROS_ROOT](http://wiki.ros.org/ROS/EnvironmentVariables#ROS_ROOT)和[ROS_PACKAGE_PATH](http://wiki.ros.org/ROS/EnvironmentVariables#ROS_PACKAGE_PATH)這樣的[環境變數](http://wiki.ros.org/ROS/EnvironmentVariables),可以通過以下命令檢視:
```dart
$ printenv | grep ROS
```
如果發現沒有配置,那這個時候你就需要 'source' 某些 'setup.*sh’檔案了。
ROS會幫你自動生成這些‘setup.*sh’檔案,通過以下方式生成並儲存在不同地方:
- 通過類似apt的軟體包管理器安裝ROS軟體包時會生成setup.*sh檔案。
- 在[編譯](http://wiki.ros.org/catkin/workspaces#Building_Packages_with_catkin)或[安裝](http://wiki.ros.org/catkin/workspaces#Installing_Packages_with_Catkin) catkin 軟體包時自動生成。
# 4 參考資料
http://wiki.ros.org/kinetic/Installation