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