機器人操作系統 ROS支持多種操作系統,但正式支持的只有Ubuntu,而對其它版本僅提供安裝方法。因此說明Ubuntu及與Ubuntu兼容的Linux Mint一般可以采用 apt-get的方式進行安裝,可以根據自己的Ubuntu的具體版本下載相應的ROS版本進行安裝。
1、配置軟件庫: Ubuntu repositories。
???? 在桌面點擊“Ubuntu Software”,選擇“software & update”,選中 “restricted,” “universe,” and “multiverse” ,如下圖所示。
通常也會設置“download from”,可以選擇一個國內的軟件源,如:http://mirrors.aliyun.com/ubuntu, 當然也可以設置為其他,或者讓系統自動選擇最好的。更改以后,選擇“reload”更新軟件。“reload”需要一定的時間,一定要耐性等待,如果中途手動停止,后面下載的時候回出現錯誤,導致安裝失敗。
2、設置軟件源:sources.list。
配置你的電腦使其能夠安裝來自 packages.ros.org的軟件包。目前最新版本的 ROS Kinetic 只支持Ubuntu 15.10和 Ubuntu 16.04 。
sudo sh -c 'echo"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main"> /etc/apt/sources.list.d/ros-latest.list'
3、設置 keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80--recv-key0xB01FA116
1、更新軟件
sudoapt-get update
2、ROS中有很多各種函數庫和工具,我們提供了四種默認安裝方式,你也可以單獨安裝某個特定軟件包。
?? 桌面完整版安裝:(推薦) 包含ROS、rqt、rviz、通用機器人函數庫、2D/3D仿真器、導航以及2D/3D感知功能。
sudo apt-getinstall ros-Kinetic-desktop-full
?? 桌面版安裝: 包含ROS、rqt、rviz以及通用機器人函數庫。
sudo apt-getinstall ros-Kinetic-desktop
?? 基礎版安裝: 包含ROS核心軟件包、構建工具以及通信相關的程序庫,無GUI工具。
sudo apt-getinstall ros-Kinetic-ros-base
?? 單個軟件包安裝: 你也可以安裝某個指定的ROS軟件包(使用軟件包名稱替換掉下面的PACKAGE):
sudo apt-getinstall ros-Kinetic-PACKAGE
例如:sudo apt-getinstall ros-Kinetic-slam-gmapping
因為ROS更新比較快,如果是想學習的話,最好安裝最新的版本,如果是要使用現成的機器人工具包的話,可以先查看一下你所選擇的機器人工具包支持哪一個版本的ROS,然后再安裝。
要查找可用軟件包,請運行:
apt-cachesearch ros-Kinetic
3、初始化 rosdep
在開始使用ROS之前你還需要初始化rosdep。rosdep可以方便在你需要編譯某些源碼的時候為其安裝一些系統依賴,同時也是某些ROS核心功能組件所必需用到的工具。
sudorosdep initrosdep update
4、環境配置
如果每次打開一個新的終端時ROS環境變量都能夠自動配置好(即添加到bash會話中),那將會方便很多:
echo"source /opt/ros/Kinetic/setup.bash">> ~/.bashrcsource~/.bashrc
5、安裝 rosinstall
rosinstall 是ROS中一個獨立分開的常用命令行工具,它可以方便讓你通過一條命令就可以給某個ROS軟件包下載很多源碼樹。要在ubuntu上安裝這個工具,請運行:
sudo apt-getinstall python-rosinstall
1、管理環境
在安裝ROS期間,你會看到提示說需要 source 多個setup.*sh文件中的某一個,或者甚至提示添加這條’source’命令到你的啟動腳本里面。這些操作是必須的,因為ROS是依賴于某種組合空間的概念,而這種概念就是通過配置腳本環境來實現的。這可以讓針對不同版本或者不同軟件包集的開發更加容易。
如果你在查找和使用ROS軟件包方面遇到了問題,請確保你已經正確配置了腳本環境。一個檢查的好方法是確保你已經設置了像ROS_ROOT和ROS_PACKAGE_PATH這樣的環境變量,可以通過以下命令查看:
$export| grep ROS
如果發現沒有配置,那這個時候你就需要’source’某些’setup.*sh’文件了。
如果你是通過ubuntu上的 apt 工具來安裝ROS的,那么你將會在’/opt/ros//’目錄中看到setup.*sh文件,然后你可以執行下面的source命令:
source /opt/ros//setup.bash
在每次打開終端時你都需要先運行上面這條命令后才能運行ros相關的命令,為了避免這一繁瑣過程,你可以事先在.bashrc文件(該文件是在當前系統用戶的home目錄下。)中添加這條命令,這樣當你每次登錄后系統已經幫你執行這些命令配置好環境。這樣做也可以方便你在同一臺計算機上安裝并隨時切換到不同版本的ROS(比如fuerte和groovy)。
2、創建ROS工作空間
catkin rosbuild
下面我們開始創建一個catkin 工作空間:
$ mkdir -p ~/catkin_ws/src$ cd ~/catkin_ws/src
即使這個工作空間是空的(在’src’目錄中沒有任何軟件包,只有一個CMakeLists.txt鏈接文件),你依然可以編譯它:
$ cd ~/catkin_ws/$ catkin_make
catkin_make命令在catkin
工作空間中是一個非常方便的工具。如果你查看一下當前目錄應該能看到’build’和’devel’這兩個文件夾。在’devel’文件夾里面你可以看到幾個setup.*sh文件。接下來首先source一下新生成的setup.*sh文件:
$sourcedevel/setup.bash
要想保證工作空間已配置正確需確保ROS_PACKAGE_PATH環境變量包含你的工作空間目錄,采用以下命令查看:
$ echo$ROS_PACKAGE_PATH/home//catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
到此工作環境已經搭建完成。
運行小烏龜
首先打開一個終端運行如下命令:
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
(這里要說明,因為我的電腦之前在配置啟動項的時候,并未成功,所以每一個終端窗口都要運行上述的兩天的命令,才可以運行)
運行終端下的?????? roscore? 命令啟動主節點服務器。
此時主節點服務器已經啟動,接下來可以運行節點
打開新的終端,同樣運行上述的兩條命令 之后 輸入 rosrun turtlesim turtlesim _ node
這樣子之后ROS的標志——小烏龜就顯示出來了。但是此時它還不能動,只能靜靜的呆在那里,接下來的一條命令,可以讓它動起來,打開一個新的終端窗口并執行以下命令。將顯示下面消息,并執行turtlesim功能包中的turtle_teleop_key。如果您按下該終端窗口上的方向鍵(←,→,↑,↓),您將看到烏龜按照圖3-6右側所示的方向鍵移動。您必須在終端窗口中輸入鍵盤。這看似只是一個簡單的仿真,但實體機器人也可以通過這種方式進行遠程控制。
運行rqt_graph功能包的rqt_graph
在新的終端窗口中執行rqt_graph命令,這將啟動rqt_graph功能包的rqt_graph節點。其結果是當前正在運行的節點(程序)的信息圖,如圖3-7所示。
rqt_graph節點以GUI形式顯示關于當前正在運行的節點的信息。圓圈表示節點,正方形表示話題。可以看到,箭頭從/teleop_turtle節點開始,通往/turtlesim。這表示兩個節點正在運行并且這兩個節點之間正在發生消息通信。并且/turtle1/cmd_vel是turtle1話題的子話題,是兩個節點之間的話題的名稱,意味著在teleop_turtle節點中通過鍵盤輸進來的速度命令通過話題將消息發送給turtlesim。換句話說,使用先前執行的兩個節點,將鍵盤命令傳送到機器人仿真器。
1、http://wiki.ros.org/cn/jade/Installation/Ubuntu
2、http://wiki.ros.org/cn/ROS/Tutorials/InstallingandConfiguringROSEnvironment