安裝ROS
配置Ubuntu的軟件源
配置Ubuntu要求允許接受restricted、universe和multiverse的軟件源,可以根據(jù)下面的鏈接配置:
https://help.ubuntu.com/community/Repositories/Ubuntu
配置成如下圖所示即可,一般情況下,這些配置都是默認(rèn)的。

添加軟件源到sources.list
設(shè)置軟件源的代碼如下:
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
一旦添加了正確的軟件源,操作系統(tǒng)就知道去哪里下載程序,并根據(jù)命令自動(dòng)安裝軟件。
設(shè)置密鑰
$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
安裝
首先確認(rèn)你的Debian的軟件包索引是最新的。Debian計(jì)劃是一個(gè)致力于創(chuàng)建一個(gè)自由操作系統(tǒng)的合作組織。我們所創(chuàng)建的這個(gè)操作系統(tǒng)名為 Debian。Debian系統(tǒng)目前采用Linux內(nèi)核或者FreeBSD內(nèi)核。
$ sudo apt-get update
在ROS中有許多不同的函數(shù)庫(kù)和工具,建議是完全安裝,也可以根據(jù)自己的要求分別安裝。完全安裝時(shí)的工具包括ROS、rqt、可視化環(huán)境rviz、通用機(jī)器人庫(kù)robot-generic libraries、2D(如stage)和3D(如Gazebo)仿真環(huán)境2D/3D simulators、導(dǎo)航功能包集navigation and 2D/3D(移動(dòng)、定位、地圖繪制、機(jī)械臂控制)、感知庫(kù)perception(如視覺(jué)、激光雷達(dá)、RGB-D攝像頭等)。
$ sudo apt-get install ros-indigo-desktop-full
初始化rosdep
rosdep不僅能夠使你更方便的安裝一些系統(tǒng)依賴程序包,而且ROS的一些主要部件的運(yùn)行也需要rosdep。
$ sudo rosdep init
$ rosdep update
安裝rosinstall
rosinstall命令是一個(gè)使用的非常頻繁的命令,使用這個(gè)命令可以輕松的下載許多ROS軟件包。
$ sudo apt-get install python-rosinstall
設(shè)置環(huán)境
添加ROS的環(huán)境變量,這樣,當(dāng)你打開(kāi)你新的shell時(shí),你的bash會(huì)話中會(huì)自動(dòng)添加環(huán)境變量。
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
# 使環(huán)境變量設(shè)置立即生效
$ source ~/.bashrc
配置你的ROS環(huán)境
注意:當(dāng)你用像apt這樣的軟件包安裝管理器安裝ROS,那么這些軟件包用戶是沒(méi)有權(quán)利的去編輯的,當(dāng)創(chuàng)建一個(gè)ROS package和處理一個(gè)ROS package時(shí),你應(yīng)該始終選擇一個(gè)你有權(quán)限工作的目錄作為工作目錄。
管理你的環(huán)境
在安裝ROS的時(shí)候,你會(huì)看到提示:source(命令)幾個(gè)setup.*sh文件,或者甚至添加sourcing到你的shell啟動(dòng)腳本中。這是必須的,因?yàn)镽OS依賴于結(jié)合使用shell環(huán)境的概念上。這使得開(kāi)發(fā)依賴不同版本的ROS或者不同系列的package更加容易。
如果你在尋找或者使用你的ROS package上有問(wèn)題,請(qǐng)確定的你的ROS環(huán)境變量設(shè)置好了,檢查是否有ROS_ROOT和ROS_PACKAGE_PATH這些環(huán)境變量。
$ export | grep ROS
如果沒(méi)有,你需要source一些setup.*sh文件。
環(huán)境設(shè)置文件是為你產(chǎn)生的,但是可以來(lái)自不同的地方:
- 使用package管理器安裝的ROS package提供setup.*sh文件;
- rosbuild workspace使用像rosws這樣的工具提供setup.*sh文件;
- setup.*sh文件在編譯和安裝catkin package時(shí)作為副產(chǎn)品創(chuàng)建。
注意:rosbuild和catkin是兩種組織和編譯ROS代碼的方式,前者簡(jiǎn)單易用,后者更加復(fù)雜但是提供更多靈活性尤其是對(duì)那些需要去集成外部代碼或者想發(fā)布自己軟件的人。
如果你在Ubuntu上使用apt工具安裝ROS,那么你會(huì)在'/opt/ros/indigo/'目錄中有setup.*sh文件,你可以這樣source它們:
$ source /opt/ros/indigo/setup.bash
你每次打開(kāi)新的shell都需要運(yùn)行這個(gè)命令,如果你把source /opt/ros/indigo/setup.bash添加進(jìn).bashrc文件就不必要每次打開(kāi)一個(gè)新的shell都運(yùn)行這條命令才能使用ROS的命令了。
創(chuàng)建ROS工作環(huán)境
對(duì)于ROS Groovy和之后的版本可以參考以下方式建立catkin工作環(huán)境。在shell中運(yùn)行:
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
可以看到在src文件夾中可以看到一個(gè)CMakeLists.txt的鏈接文件,即使這個(gè)工作空間是空的(在src中沒(méi)有package),任然可以建立一個(gè)工作空間。
$ cd ~/catkin_ws/
$ catkin_make
catkin_make命令可以非常方便的建立一個(gè)catkin工作空間,在你的當(dāng)前目錄中可以看到有build和devel兩個(gè)文件夾,在devel文件夾中可以看到許多個(gè)setup.*sh文件。啟用這些文件都會(huì)覆蓋你現(xiàn)在的環(huán)境變量,想了解更多,可以查看文檔catkin。在繼續(xù)下一步之前先啟動(dòng)你的新的setup.*sh 文件。
$ source devel/setup.bash
為了確認(rèn)你的環(huán)境變量是否被setup腳本覆蓋了,可以運(yùn)行一下命令確認(rèn)你的當(dāng)前目錄是否在環(huán)境變量中:
$ echo $ROS_PACKAGE_PATH
輸出:
/home/youruser/catkin_ws/src:/opt/ros/indigo/share:
/opt/ros/indigo/stacks
至此,你的環(huán)境已經(jīng)建立好了,可以繼續(xù)學(xué)習(xí)ROS文件系統(tǒng)了!