ROS中的關(guān)鍵組件

一摧扇、roslaunch

roslaunch是一個用于自動啟動一系列ROS節(jié)點的命令行工具振亮,從表面上看該命令和rosrun相似凤类。但是roslaunch操作launch文件而不是節(jié)點映挂,launch文件是描述一組節(jié)點以及它們話題重映射和參數(shù)的XML文件泽篮。根據(jù)規(guī)范,這些文件具有.launch后綴柑船。

每個<node>標簽包括了聲明ROS圖中節(jié)點的名字屬性帽撑,該節(jié)點所在的包名,以及節(jié)點的類型鞍时,也就是可執(zhí)行程序的文件名亏拉。

除此之外,roslaunch還有許多特性逆巍,例如通過ssh啟動網(wǎng)絡中其他計算機上程序的能力及塘,以及在節(jié)點崩潰后自動重啟節(jié)點的功能。roslaunch一個最重要的特性锐极,是在終端中按下Ctrl+c快捷鍵笙僚,可以結(jié)束roslaunch之中所有的節(jié)點。Ctrl+c快捷鍵在UNIX系統(tǒng)中常用于強制結(jié)束程序溪烤,roslaunch也遵循這一規(guī)范味咳,按下時,結(jié)束所有包含的節(jié)點檬嘀,并且結(jié)束本身槽驶。

一個簡單的roslaunch文件如下所示:

<launch>

? ? <node name="demo" pkg="demo_package"

? ? ? ? ? type="demo_pub" output="screen"/>

? ? <node name="demo" pkg="demo_package"

? ? ? ? ? type="demo_sub" output="screen"/>

</launch>

1.roslaunch標簽

launch標簽就像一個大括號,規(guī)定了一片區(qū)域鸳兽,所有的launch文件都由<launch>開頭掂铐,由</launch>結(jié)尾,所有的描述標簽都要寫在<launch></launch>之間揍异。

2.node標簽

node標簽是launch文件里最常見的標簽全陨,每個node標簽里包括了ROS圖中節(jié)點的名稱屬性name、該節(jié)點所在的包名pkg以及節(jié)點的類型type(其實就是可執(zhí)行文件的名稱衷掷,如果是用Python編寫的就填寫xxx.py辱姨,如果是cpp就寫編譯生成的可執(zhí)行文件名),在上面的例子中還出現(xiàn)了output這個東西戚嗅,這個屬性在調(diào)試階段很有用雨涛,output=“screen”表示了將終端輸出轉(zhuǎn)儲在當前的控制臺上枢舶,而不是在日志文件中。

3.重映射

remap標簽顧名思義重映射替久,ROS支持topic的重映射凉泄,remap標簽里包含一個original-name和一個new-name,及原名稱和新名稱蚯根。

如果拿到一個節(jié)點后众,這個節(jié)點訂閱了"chatter"topic,然而你自己寫的節(jié)點只能發(fā)布到"demo/chatter"topic颅拦,由于這兩個topic的消息類型是一致的蒂誉,你想讓這兩個節(jié)點進行通訊,那么可以在launch文件中這樣寫:

<remap from="chatter" to="demo/chatter">

(其余部分待研究)

二矩距、tf坐標系

對于一個機器人拗盒,機器人系統(tǒng)通常具有許多隨時間變化的3D坐標系怖竭,例如世界坐標系(world frame)锥债,基準坐標系(base frame),夾具坐標系(gripper frame)痊臭,頭部坐標系(head frame)等哮肚。tf包可以隨時記錄所有這些坐標系,并可以解決如下問題:

5秒前广匙,機器人頭部坐標系相對于世界(全局)坐標系的關(guān)系是什么樣的允趟?

機器人夾取的物體相對于機器人的中心坐標的位置是什么?

機器人中心坐標系相對于全局坐標系的位置在哪里鸦致?

(其余部分待研究)

三潮剪、rviz

RVIZ是一個強大的可視化工具,可以看到機器人的傳感器和內(nèi)部狀態(tài)分唾。

操作步驟:

1.啟動ROS master抗碰,打開master服務器。

roscore??

2.配置ROS啟用重放數(shù)據(jù)中的時間而非本機時間绽乔,影響整個系統(tǒng)所有時間API的輸出結(jié)果弧蝇。在默認情況下,ROS使用ubuntu系統(tǒng)的時間折砸,也就是墻上時鐘時間(wall clock)看疗。但我們重播一個記錄歷史文件時,里面記錄的是歷史時間睦授,所以我們需要告訴ROS從現(xiàn)在起開始啟用模擬時間两芳。

rosparam?set?use_sim_time?true??

3.下載ROS提供的激光數(shù)據(jù)采集記錄文件

wget?http://pr.willowgarage.com/data/gmapping/basic_localization_stage.bag??

4.啟動gmapping, 并監(jiān)聽 scan_base topic發(fā)來的消息。該topic是由模擬器發(fā)布的去枷。

rosrun?gmapping?slam_gmapping?scan:=base_scan??

5.啟動模擬器重放激光數(shù)據(jù)

6.啟動RViz,點擊 add 按鈕(左下方) ,在彈出的列表中選擇 map,點擊OK,這時開始展現(xiàn)一個空的地圖

rosbag?play?--clock?basic_localization_stage.bag??

7.最關(guān)鍵的一步怖辆,要告訴RViz? 生成map信息的topic是什么祷肯。我們前面講到過,gmapping輸出的topic是 map疗隶,如下圖配置佑笋,立即就可以看到地圖的動態(tài)建立了。

rosrun?rviz?rviz

8.隨著時間的推進斑鼻,慢慢的整個地圖就顯示出來了

(調(diào)試未成功)

四蒋纬、gazebo

而Gazebo則是三維平面的模擬器,可以自己在地圖上添加幾何體坚弱。?

1.先安裝turltebot蜀备,啟動Gazebo模擬器。

roslaunch turtlebot_gazebo turtlebot_world.launch

2.這樣就啟動成功了荒叶,第一次啟動可能要等個幾分鐘或十幾分鐘碾阁,因為要從網(wǎng)絡上獲取模型的更新,如果打開后發(fā)現(xiàn)窗口中什么都沒有些楣,則看看終端有沒沒有說是在獲取更新之類的信息脂凶。

sudo apt-get install ros-indigo-turtlebot-apps ros-indigo-turtlebot-rviz-launchers

3.接下來控制模擬機器人移動,通過鍵盤控制

roslaunch turtlebot_teleop keyboard_teleop.launch-screen

4.接著在開一個rviz愁茁,Gazebo相當于模擬現(xiàn)實世界蚕钦,而RViz獲得對周圍的事物的傳感器信息。接下來創(chuàng)建地圖鹅很。

roslaunch turtlebot_gazebo gmapping_demo.launch

(調(diào)試未成功)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嘶居,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子促煮,更是在濱河造成了極大的恐慌邮屁,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菠齿,死亡現(xiàn)場離奇詭異佑吝,居然都是意外死亡,警方通過查閱死者的電腦和手機泞当,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門迹蛤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人襟士,你說我怎么就攤上這事盗飒。” “怎么了陋桂?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵逆趣,是天一觀的道長。 經(jīng)常有香客問我嗜历,道長宣渗,這世上最難降的妖魔是什么抖所? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮痕囱,結(jié)果婚禮上田轧,老公的妹妹穿的比我還像新娘。我一直安慰自己鞍恢,他們只是感情好傻粘,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著帮掉,像睡著了一般弦悉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蟆炊,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天稽莉,我揣著相機與錄音,去河邊找鬼涩搓。 笑死污秆,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的缩膝。 我是一名探鬼主播混狠,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼岸霹,長吁一口氣:“原來是場噩夢啊……” “哼疾层!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贡避,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤痛黎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后刮吧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湖饱,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年杀捻,在試婚紗的時候發(fā)現(xiàn)自己被綠了井厌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡致讥,死狀恐怖仅仆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情垢袱,我是刑警寧澤墓拜,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站请契,受9級特大地震影響咳榜,放射性物質(zhì)發(fā)生泄漏夏醉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一涌韩、第九天 我趴在偏房一處隱蔽的房頂上張望畔柔。 院中可真熱鬧,春花似錦臣樱、人聲如沸释树。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奢啥。三九已至,卻和暖如春嘴拢,著一層夾襖步出監(jiān)牢的瞬間桩盲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工席吴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赌结,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓孝冒,卻偏偏與公主長得像柬姚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子庄涡,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容