在Ubuntu14.04上安裝和配置ROS Indigo
1. Ubuntu和ROS版本的對應關係
Ubuntu 和 ROS 都存在不同的版本,其對應關係如下:。
每一個 ROS 版本都對應著一個或兩個對應的 Ubuntu 版本
ROS釋出日期 | ROS版本 | 對應Ubutnu版本 |
2016.3 |
ROS Kinetic Kame |
Ubuntu 16.04 (Xenial) / Ubuntu 15.10 (Wily) |
2015.3 |
ROS Jade Turtle |
Ubuntu 15.04 (Wily) / Ubuntu LTS 14.04 (Trusty) |
2014.7 |
ROS Indigo Igloo |
Ubuntu 14.04 (Trusty) |
2013.9 |
ROS Hydro Medusa |
Ubuntu 12.04 LTS (Precise) |
2012.12 |
ROS Groovy Galapagos |
Ubuntu 12.04 (Precise) |
... | ... | ... |
2.配置Ubuntu的軟體源
配置Ubuntu要求允許接受restricted、universe和multiverse的軟體源,可以根據下面的連結配置:
配置成如下圖所示即可,一般情況下,這些配置都是預設的。
軟體源配置
3.新增軟體源到sources.list
3.1 設定軟體源的程式碼如下:
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
一旦添加了正確的軟體源,作業系統就知道去哪裡下載程式,並根據命令自動安裝軟體。
3.2 設定金鑰
$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
4.安裝
4.1 首先確認你的Debian的軟體包索引是最新的。Debian計劃是一個致力於建立一個自由作業系統的合作組織。我們所建立的這個作業系統名為 Debian。Debian系統目前採用Linux核心或者FreeBSD核心。
$ sudo apt-get update
4.2 在ROS中有許多不同的函式庫和工具,建議是完全安裝,也可以根據自己的要求分別安裝。完全安裝時的工具包括ROS、rqt、視覺化環境rviz、通用機器人庫robot-generic libraries、2D(如stage)和3D(如Gazebo)模擬環境2D/3D simulators、導航功能包集navigation and 2D/3D(移動、定位、地圖繪製、機械臂控制)、感知庫perception(如視覺、鐳射雷達、RGB-D攝像頭等)。
$ sudo apt-get install ros-indigo-desktop-full
5.初始化rosdep
rosdep不僅能夠使你更方便的安裝一些系統依賴程式包,而且ROS的一些主要部件的執行也需要rosdep。
$ sudo rosdep init
$ rosdep update
6.安裝rosinstall
rosinstall命令是一個使用的非常頻繁的命令,使用這個命令可以輕鬆的下載許多ROS軟體包。
$ sudo apt-get install python-rosinstall
7.設定環境
新增ROS的環境變數,這樣,當你開啟你新的shell時,你的bash會話中會自動新增環境變數。
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
# 為了使環境變數設定立即生效,在終端中輸入:
$ source ~/.bashrc
8.配置你的ROS環境
注意:當你用像apt這樣的軟體包安裝管理器安裝ROS,那麼這些軟體包使用者是沒有權利的去編輯的,當建立一個ROS package和處理一個ROS package時,你應該始終選擇一個你有許可權工作的目錄作為工作目錄。
9.管理你的環境
在安裝ROS的時候,你會看到提示:source(命令)幾個setup.*sh檔案,或者甚至新增sourcing到你的shell啟動指令碼中。這是必須的,因為ROS依賴於結合使用shell環境的概念上。這使得開發依賴不同版本的ROS或者不同系列的package更加容易。
如果你在尋找或者使用你的ROS package上有問題,請確定的你的ROS環境變數設定好了,檢查是否有ROS_ROOT和ROS_PACKAGE_PATH這些環境變數。
$ export | grep ROS
如果沒有,你需要source一些setup.*sh檔案。
環境設定檔案是為你產生的,但是可以來自不同的地方:
- 使用package管理器安裝的ROS package提供setup.*sh檔案;
- rosbuild workspace使用像rosws這樣的工具提供setup.*sh檔案;
- setup.*sh檔案在編譯和安裝catkin package時作為副產品建立。
注意:rosbuild和catkin是兩種組織和編譯ROS程式碼的方式,前者簡單易用,後者更加複雜但是提供更多靈活性尤其是對那些需要去整合外部程式碼或者想釋出自己軟體的人。
如果你在Ubuntu上使用apt工具安裝ROS,那麼你會在'/opt/ros/indigo/'目錄中有setup.*sh檔案,你可以這樣source它們:
$ source /opt/ros/indigo/setup.bash
你每次開啟新的shell都需要執行這個命令,如果你把source /opt/ros/indigo/setup.bash新增進.bashrc檔案就不必要每次開啟一個新的shell都執行這條命令才能使用ROS的命令了。
10.建立ROS工作環境
對於ROS Groovy和之後的版本可以參考以下方式建立catkin工作環境。在shell中執行:
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
可以看到在src資料夾中可以看到一個CMakeLists.txt的連結檔案,即使這個工作空間是空的(在src中沒有package),任然可以建立一個工作空間。
$ cd ~/catkin_ws/
$ catkin_make
catkin_make命令可以非常方便的建立一個catkin工作空間,在你的當前目錄中可以看到有build和devel兩個資料夾,在devel資料夾中可以看到許多個setup.*sh檔案。啟用這些檔案都會覆蓋你現在的環境變數,想了解更多,可以檢視文件catkin。在繼續下一步之前先啟動你的新的setup.*sh 檔案。
$ source devel/setup.bash
為了確認你的環境變數是否被setup指令碼覆蓋了,可以執行一下命令確認你的當前目錄是否在環境變數中:
$ echo $ROS_PACKAGE_PATH
輸出:
/home/zhuquan/catkin_ws/src:/opt/ros/indigo/share:
/opt/ros/indigo/stacks
至此,你的環境已經建立好了,可以繼續學習ROS檔案系統了!