前面我們介紹了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上的新手教程是一定要先熟悉的,後面的內容在後續學習過程中可以一邊做一邊學習。 *此文只代表個人觀點,僅作為參考
----------------------------------------------------------------
歡迎大家轉載我的文章。
轉載請註明:轉自古-月
http://blog.csdn.net/hcx25909
歡迎繼續關注我的部落格