簡述:
ROS (Robot Operating System,機器人操作系統),提供一系列程序庫和工具以幫助軟件開發者創建機器人應用軟件。
它提供了硬件抽象、設備驅動、函數庫、可視化工具、消息傳遞和軟件包管理等諸多功能。
ROS遵循BSD開源許可協議。
ROS 是寄生在Linux 操作系統下的。
對ROS兼容性最好的當屬 Ubuntu 操作系統,最好是本機是Ubuntu。
每一個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) ... ... ... 本人的運行環境:
系統: Ubuntu 14.04.5 amd64(下載)
ROS: ROS Indigo Igloo
如果你安裝的是Ubuntu 16.04,只需要把下面所有出現 *-indigo-* 的地方換成 *-kinetic-*就好了。
1、 安裝ROS
請確保你的系統可以正常上網。
1 >軟件中心配置
① 首先打開軟件和更新對話框, 配置Ubuntu 的軟件源。
② 配置Ubuntu要求允許接受 restricted、 universe和 multiverse 的軟件源。
③ “UbuntuSoftware Center” → “Edit” → “Software& Updates”,打開“Software& Updates”對話框,
④ 配置成如下圖所示即可,一般情況下,這些配置都是默認的。
2 > 添加軟件源
① 打開一個控制檯(Ctrl + Alt + T),輸入如下指令:
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
有了正確的軟件源,操作系統便會根據命令自動安裝軟件
② 設置密鑰
$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
3 > 安裝ROS
① 首先確保系統軟件處於最新版
$ sudo apt-get update
② 安裝ROS
在ROS中有許多不同的函數庫和工具,建議使用完全安裝,也可以根據自己的要求分別安裝。
完全安裝時的工具包括:
ROS
rqt
可視化環境rviz(即3D可視化工具)
通用機器人庫robot-generic libraries
2D(如stage)和3D(如Gazebo)仿真環境2D/3D simulators
導航功能包集navigation and 2D/3D(移動、定位、地圖繪製、機械臂控制)
感知庫perception(如視覺、激光雷達、RGB-D攝像頭等)。
tf(座標變換系統)
完整版安裝命令(推薦):
$ sudo apt-get install ros-indigo-desktop-full
桌面版安裝命令:
$ sudo apt-get install ros-indigo-desktop
基礎版安裝命令:
$ sudo apt-get install ros-indigo-ros-base
安裝完成後,可以用下面的命令來查看可使用的包:
$ apt-cache search ros-indigo
至此,雖然是安裝完了,但是還不能用ROS,繼續......
2、初始化ROS
1 > 首先初始化rosdep
$ sudo rosdep init $ rosdep update
2 > 安裝rosinstall
rosinstall命令是一個非常重要的命令,使用這個命令可以輕鬆下載許多ROS軟件包
$ sudo apt-get install python-rosinstall
還可以安裝其他依賴項(可選項):
$ sudo apt-get install python-rosinstall-generator python-wstool build-essential
3 > 初始化環境變量
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc # 使環境變量設置立即生效 $ source ~/.bashrc
注意:.bashrc文件是在當前系統用戶的home目錄下。
4 > 提醒一下,ros中有很多第三方插件的安裝格式是
$ sudo apt-get install ros-indigo-...
5 >簡單測試ROS
① 確保正確配置了腳本環境
檢查是否有ROS_ROOT 和ROS_PACKAGE_PATH這些環境變量:export | grep ROS
root@ubuntu:~# export | grep ROS declare -x ROSLISP_PACKAGE_DIRECTORIES="" declare -x ROS_DISTRO="indigo" declare -x ROS_ETC_DIR="/opt/ros/indigo/etc/ros" declare -x ROS_MASTER_URI="http://localhost:11311" declare -x ROS_PACKAGE_PATH="/opt/ros/indigo/share:/opt/ros/indigo/stacks" declare -x ROS_ROOT="/opt/ros/indigo/share/ros"
如果沒有,就需要source 一些setup.*sh文件。
例如在Ubuntu上使用apt工具安裝ROS,可以使用:
$ source /opt/ros/indigo/setup.bash
注意:當你用像apt這樣的軟件包安裝管理器安裝ROS,那麼這些軟件包用戶是沒有權利的去編輯的。
當創建一個ROS package和處理一個ROS package時,你應該始終選擇一個你有權限工作的目錄作爲工作目錄。
② 測試ROS
$ roscore
看看顯示 startedcore service [/rosout] 了沒有?如果顯示了,那麼恭喜你,成功了,即完成了ROS的安裝和配置;如果沒有,重啓一下再試試,呵呵~
③ 運行ROS示例程序
分別打開3個終端,並分別輸入指令(每個終端輸入一條),建議在當前系統用戶的home目錄下運行這些指令:
$ roscore $ rosrun turtlesim turtlesim_node $ rosrun turtlesim turtle_teleop_key
如果在非當前系統用戶的home目錄下輸入指令後會顯示command not found,那請先輸入source指令:
$ source /opt/ros/indigo/setup.bash
選擇輸入turtle_eleop_key的終端,並使用方向鍵控制烏龜的移動。
6 > 瞭解環境設置文件
環境設置文件可以來自不同的地方:
使用package管理器安裝的ROS package提供setup.*sh文件;
rosbuild workspace使用像rosws這樣的工具提供setup.*sh文件;
setup.*sh文件在編譯和安裝catkin package時作爲副產品創建。
注意:rosbuild和catkin是兩種組織和編譯ROS代碼的方式,
前者簡單易用,後者更加複雜但是提供更多靈活性尤其是對那些需要去集成外部代碼或者想發佈自己軟件的人
3、創建ROS工作環境
1 > 對於ROS Groovy和之後的版本可以參考以下方式建立catkin工作環境。在shell中運行:
$ source /opt/ros/indigo/setup.bash $ mkdir -p ~/catkin_ws/src //連續創建兩個目錄 $ cd ~/catkin_ws/src //進入目錄 $ catkin_init_workspace //初始化工作空間創建CMakeLists.txt
2 > 可以看到在src文件夾中可以看到一個CMakeLists.txt的鏈接文件,即使這個工作空間是空的(在src中沒有package),仍然可以建立一個工作空間
$ cd ~/catkin_ws/ $ catkin_make
成功執行會出現:
-- Build files have been written to: /home/hebbe/catkin_ws/build #### #### Running command: "make -j1 -l1" in "/home/hebbe/catkin_ws/build" ####
3 > catkin_make命令可以非常方便的建立一個catkin工作空間。在你的當前目錄中可以看到有build和devel兩個文件夾,在devel文件夾中可以看到許多個setup.*sh文件。啓用這些文件都會覆蓋你現在的環境變量,想了解更多,可以查看文檔catkin。在繼續下一步之前先啓動你的新的setup.*sh文件
$ source devel/setup.bash
4 > 爲了確認你的環境變量是否被setup腳本覆蓋了,可以運行一下命令確認你的當前目錄是否在環境變量中
$ echo $ROS_PACKAGE_PATH
5 > 如果需要移除工作空間下的構建對象,執行以下命令:
cd ~/catkin_ws \rm -rf devel build install
之後可以重新構建數據包。
參考: