天天看點

機器人作業系統ros ———一個月的學習曆程

一. ros學習思路

ros的學習基本上可以從一下這條路走下去:

urdf->tf->gazebo->roscontroll->moveit,淡然,在學習ros的的urdf和tf當中,肯定還會用到rviz。rviz可以穿插在最前面兩個當中學習,其實你學完了前兩個,rviz既然而然也就略知一二了,如果覺得還有必要繼續深入學習rviz的話,可以再加以學習。

學習資料:1.ros維基

2.ros小課堂(優酷網)

3.ros交流區(ros機器人俱樂部)

4.電子書(ROS機器人程式設計)

首推的當然是官網了,就是ros維基,從安裝ros作業系統開始教。但是維基裡面有些文章并不提供翻譯,英語不是很好的剛開始看會有些吃力,但是看幾天以後,你也就大概能看懂講的啥了,說來說去就那麼幾個專業名詞。

其次,就是ros小課堂,視訊也是根據ros維基來做的,講的用的是中文,如果覺得自己可以讀懂維基,我覺得跟着維基來學更快,如果覺得不得行的話,那就跟着小課堂來學,跟着主講人的思路走,效果也是一樣的。
           

再者,就是一些其他的東西了,說實話QQ群和書目前還沒有怎麼用上,特别QQ群感覺沒啥用,有什麼問題問了得不到解決,最多的就是賣學習資料的。

二. ros作業系統

首先,ros是一個作業系統,是一個化平台子產品化軟體通訊機制。
ros用節點表示一個應用程式,不同node之間通過事先定義好的消息( Topic)服,務(service),動作(action)來實作連接配接。
           

ros常用功能

1.rviz:3D可視化工具

2.tf:坐标轉換系統

3.gazebo:實體仿真環境

1.ROS檔案系統

功能包集(stack):将某些共呢個的功能包組織在一起

軟體包(package):ROS應用程式代碼的組織單元

package.xml:清單檔案

Cmakelist.txt:編譯配置檔案,使用cmake進行程式編譯的時候,會根據Cmakelist.txt這個檔案進行一步步的處理,然後生成makefile檔案,系統再根據這個檔案進行程式的編譯。

2.建立和編譯ROS軟體包

建立工作空間,其實就是建立一個檔案夾

編譯catkin_make,會生成build和devel目錄

進入src目錄,建立軟體包

修改環境變量

編寫測試代碼

編譯軟體包:主要修改一下Cmakelist.txt

運作:rosrun ……

注意點:第一點:如果編寫測試代碼的時候用到了建立軟體包時候未加入的的軟體包,那麼在修改Cmakelist.txt的時候必須要在find中加上包的名字,否則在catkin_make的時候會提示你找不到任何未加入包所包含的函數。

第二點:ros作業系統有點類似于一個主機,N個叢集的性質。是以在運作任何東西之前,必須先把他老爹叫出來,運作roscore.

三.建構ROS機器人可視化模型urdf

1.urdf(unified Robot Description Format):統一機器人描述格式

機器人作業系統ros ———一個月的學習曆程

對于這一部分的描述,部落格和維基中都給出了很多的解釋,很多的例子,在這裡就不贅述了,分享一個部落格,上面有有關于urdf的一些東西。

(http://www.360doc.com/content/16/0812/18/7821691_582768083.shtml)

2.joint的連結方式

固定連接配接:fixed joint

彈簧連接配接:spring joint

角色關節連接配接character joint

可配置連接配接:configurable joint 萬能的

revolute:旋轉關節

continuous:旋轉關節,無位置限制

prismatic:滑動關節

fixed:虛拟(固定)關節,關機不可運動

可用用如下指令檢車.urdf穩健是否有文法錯誤:

check_urdf xxx.urdf

tag:用于描述子產品的視覺效果

tag:用于描述子產品的形狀和大小

tag:用于描述子產品的位置

四:ROS轉換tf功能

《ros小課堂》

tf_echo:列印出位置

view_frames:生成pdf文檔

rqt_tf_tree:動态可視化看關系

确定一個物體的位置可以用歐拉角,四元素,矩陣轉換等。

分享一個博文:

三種方法介紹

五。moveit學習

廢話不多說,有wiki中文翻譯版,上連結

MoveIt!入門教程-簡介

未完待續。。。。。。。。。

繼續閱讀