23個我常用的ROS基本指令

忘了從什麼時候開始,大家標題都喜歡加上數字吸睛,像是什麼”10個路上把妹的必勝開場白”5個你從來不知道為什麼被主管討厭的原因”25個你從來沒聽過的英文單字云云,再加上一些聳動的字眼,或者試著吸引別人目光的句子,諸如看到最後一行我也哭了倒數第二句我笑了”100億人看完後蛋蛋都掉了什麼的,真是鬼話連篇。不過也許資訊農場也感覺到這樣驚悚的寫法已經讓人看膩了,所以逐漸沒再下這樣的標題。這就讓我想起安東尼·德·聖艾修伯里(Antoine Marie Jean-Baptiste Roger de Saint-Exupéry)在<<小王子>>第四章寫道:

大人喜歡數字。
你跟他們說你交了個新朋友,他們從不會問些基本的問題。他們從不對你說:『他的聲音如何?他最喜歡什麼遊戲?他收不收集蝴蝶?』

反而他們會問:『他幾歲?有幾個兄弟?體重多少?他父親賺多少錢?』他們只有靠這些數字才能對他有幾分瞭解。

你若跟大人說:『我看見一棟玫瑰色磚塊築成的房子,窗口有天竺葵,屋頂有白鴒。』

他們根本不能對房子產生任何概念。你必須跟他們說:『我看見一棟很昂貴的屋子。』

他們才嘆道:『噢,好漂亮的房子啊!』

同樣地,你原可以對他們說:『小王子很迷人,會笑,而且正在找一隻羊,這是他存在的明證。任何人想要一隻綿羊,就証明他的存在。』

告訴他們有什麼用呢?他們會聳聳肩,把你當做小孩子。可是你若告訴他們:『他來自B-612號小遊星』,他們就會深信不疑,不會問東問西。

他們就是這樣。

-摘自<<小王子>>第四章


尤其在資訊爆炸的二十一世紀,大家刷臉書分享文可是以秒鐘計算,誰也沒耐心駐足看一篇不感興趣的文章太久,越煽情越刺激越譁眾取寵的標題就越能吸引更多點閱率,不知道這種現象好不好。總之,廢話說太多了,言歸正傳,我也同流合汙地下了一個類似的標題,試圖統整幾個常用的指令,讓初學者能趕緊上手,對
ROS的操作能更加瞭解。


指令


功用


source ~/<your_ws>/devel/setup.bash

ROS Master node 連結到指定的工作空間,但是也需要確定這個工作空間創建的環境是在所需的ROS版本。


source /opt/ros/<your_distro>/setup.bash

在創建工作空間之前需要移動到某個
ROS
版本時,所使用的指令,請確定這行先打了,才繼續創建工作空間。


catkin_init_workspace

創建工作空間時需要使用的指令。它的用法如下:

$ mkdir –p ~/<your_ws>/src

$ cd ~/<your_ws>/src

$ catkin_init_workspace

echo
$ROS_PACKAGE_PATH

呼叫工作空間和連結到的ROS函式庫路徑。從這邊可以看得出連結到的ROS 版本是不是正確的。


rospack find <pkg>

在整個ROS架構下搜尋特定包裹,如果找到,會顯示包裹路徑。若無,則顯示找不到的訊息。


catkin_make (–pkg <package 1> <package 2>…<package n>)

相當於 CMake中的 make指令,用於編譯整個工作空間的所有程式。若要個別程式包編譯的話,可以用引數 –pkg <package 1> <package 2> … <package n>


roscd <locationname (/subdir)>

roscd =
ros + cd
在任何位置上輸入這行指令和包裹路徑,會直接跳到該 ROS
路徑上

cd

Linux 的基本指令。跳到某一路徑上


rosls

rosls = ros + ls
列出ROS架構下某一路徑下的所有資料檔

ls

Linux的基本指令。列出某一路徑下的所有資料檔

pwd

顯示使用者目前所在路徑


catkin_create_pkg <pkg name> <depend1> <depend2> <depend3>

創造新包裹。後面的 dependencies 說明這個包裹需要哪些函示庫的支援,基本上會包括 roscpp, rospy, std_msgs 等,讓包裹支援基本字串輸入輸出、C++Python語言。


roscore

雖然可以想像成 ROS 初始化必要的主節點,不過實際上是一群以ROS為基底的系統需要先行啟動的節點和程式。當輸入

roslaunch

指令時,roscore會自動被啟動,但是如果是用
rosrun

單一啟動一個節點時,就要先啟動 roscore,再啟動節點。


rosnode

必須配合以下引數


list

列出所有正在執行中的節點


info

指定特定節點,並列出該節點的所有屬性


kill

結束執行某特定節點


ping

偵測某一節點是否正在執行


rosrun

執行某節點,記得後面加上節點名稱


roslaunch

執行某一 launch 檔,在後面可以再加上其他輸入,詳情請看這篇


rostopic

必須配合下引數,常用的有以下:


list

列出所有現在有實際公布的訊息主題


echo

回傳某一主題的內容,記得後面加上該主題名稱


hz

回傳某一主題更新的頻率,以每秒幾次計算


info

列出某一主題的屬性

rqt

執行圖形介面化的ROS系統分析程式,有點像是ROS界的示波器。詳情請看這裡

Advertisements

2 thoughts on “23個我常用的ROS基本指令

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s