1. 程式人生 > >機器人作業系統ROS教程(三) ROS新手教程

機器人作業系統ROS教程(三) ROS新手教程

前面我們介紹了ROS的特點和結構,接下來就要開始準備動手感受一下ROS的強大了。ROS官網的wiki上針對 新手的教程很詳細,最好把所有的新手教程都搞清楚,這是後面開發最基礎的東西。儘管如此,ROS對於新手 來說還是很難上手,這裡,我就來總結一下我當時學習的歷程,也為其他新手作為一個參考。

一、ROS 的安裝

ROS的安裝當然是我們開始動手的第一步了,這裡我們使用的作業系統是ubuntu,因為ROS在ubuntu上的支 持是最好的。

如果是新手,我建議使用”apt-get“的方法進行安裝,不走很簡單,按照wiki上說的, 大概半個小時就可以安裝完畢完全版的ROS:(現在最新版的ROS是groovy,但是我還是習慣使用fuerte)

http://ros.org/wiki/fuerte/Installation/Ubuntu

如果想挑戰原始碼編譯,當然也沒有問題:

http://ros.org/wiki/fuerte/Installation/Ubuntu/Source

安裝完畢之後執行一下“roscore ”,如果沒有問題,安裝就成功了!

注:groovy版本的安裝:

“apt-get”: http://www.ros.org/wiki/groovy/Installation/Ubuntu

原始碼編譯: http://www.ros.org/wiki/groovy/Installation/Source

二、ROS的新手教程

wiki上的新手教程還是很詳細的,對程式碼都有解釋,新手一定要把這些例子和程式碼搞明白:

http://www.ros.org/wiki/ROS/Tutorials

上面的教程都是英文的,如果感覺略有壓力(本人 就是),可以參考下面這兩個部落格中的部分翻譯:

http://blog.sina.com.cn/s/articlelist_1712413141_0_1.html

不過往後面的學習都是英文 的資料了,還是要努力適應看英文的文件。

ROS使用的程式語言主要是C++和python,所以也有針對這 兩種語言的功能包roscpp和rospy,這兩個包的教程與上面的教程基本相似,看完上面的教程也可以看看這兩 個包的教程:

http://www.ros.org/wiki/rospy_tutorials

http://www.ros.org/wiki/roscpp/Tutorials

努力學習完上面的這些教程,你至少應該明白ROS裡面的節點和訊息是幹什麼用的了吧,如果還沒理解, 那就再多看幾遍吧!

三、ROS中的常用功能

ROS中提供了很多強大的功能,我們學習完上面的基 本知識之後要繼續進行深入。

1、rviz

rviz是ROS中一款強大的3D視覺化工具,這個玩意在後面 可是要頻繁用到的,是必須要弄明白的,詳細的教程可以參考wiki:

http://www.ros.org/wiki/rviz

我們可以在裡面建立自己的機器人,並且讓機器人動起來。還可以建立地圖,顯示3D點雲等等,總之 ,想在ROS中顯示的東東都可以在這裡顯示出來。當然這些顯示都是通過訊息的訂閱來完成的,機器人通過ROS 釋出資料,rviz訂閱訊息接收資料,然後顯示,這些資料也是有一定的資料格式的,可以參考下面的連結:

http://www.ros.org/wiki/rviz/DisplayTypes

看到上面的機器人了吧,是不 是很酷,在rviz中,這樣的機器人模型是通過urdf檔案描述的,具體urdf檔案怎麼寫,參考wiki:

http://www.ros.org/wiki/urdf

2、tf

tf是ROS中的座標變換系統,在機器人的建模仿 真中經常用到。

ROS中主要有兩種座標系:

(1)固定座標系:用於表示世界的參考座標系;

(2)目標座標系:相對於攝像機視角的參考 座標系。

教程見:http://www.ros.org/wiki/tf

3、gazebo

這個工具是ROS中的物理仿 真環境,gazebo本身就是一款機器人的模擬軟體,基於ODE的物理引擎,可以模擬機器人以及環境中的很多物 理特性,這個軟體可以稍作了解,並不是後面開發所必須要的。

教程見: http://www.ros.org/wiki/simulator_gazebo/Tutorials

四、ROS常用機器人

1、 PR2

看ROS的應用時,最常見到的機 器人就是PR2。這個機器人是ROS的主要維護者(Willow Garage)針對ROS量身定做的機器人,有兩個執行 ubuntu和ROS的電腦,和兩個機器臂以及很多牛逼的感測器,功能是非常強大的,但是售價那是相當的昂貴, 國內很少見到,基本都是在國外的研究所裡。這款機器人的ROS包比較多,從模擬到導航,所以程式碼具有比較 高的參考價值,當然新手還是先看看其他機器人的程式碼再來挑戰PR2吧,程式碼比較龐雜。

wiki: http://www.ros.org/wiki/Robots/PR2

2、TurtleBot

這個機器人應該算是應用ROS小型移動機器人的典型代表了,資料、文件和程式碼比較多,主要在建立模型和 導航定位方面,程式碼比較容易理解,可以作為新手參考的最佳機器人了,上面rviz中顯示的那個機器人就是它 了。

wiki:http://www.ros.org/wiki/Robots/TurtleBot

3、Husky、Erratic

這 兩款機器人和TurtleBot機器人差不多,都是小型的輪式移動機器人,同樣可以作為新手學習的參考:

http://www.ros.org/wiki/Robots/Husky

http://www.ros.org/wiki/Robots/Erratic

這些教程和機器人基本都是我當時學習的時候研究和了解過的,總結在此也讓那些比較迷茫的初學者作為參考 ,可以儘快瞭解和掌握ROS。再次強調一下,wiki上的新手教程是一定要先熟悉的,後面的內容在後續學習過 程中可以一邊做一邊學習。