ROS初學(xué)之小烏龜

小烏龜turtlesim節(jié)點

啟動節(jié)點

首先打開一個終端窗口,輸入以下命令啟動ROS節(jié)點管理器:

roscore

結(jié)果為:

然后再打開一個終端(不要關(guān)閉當(dāng)前窗口)终蒂,運行以下命令:

rosrun turtlesim turtlesim_node

執(zhí)行輸出類似:

然后會彈出turtlesim的界面如圖:

然后將這幾個終端最小化,記得不要關(guān)閉這兩個終端肄方。

turtlesim節(jié)點

新打開一個終端旷坦,輸入如下命令找出所有的活動節(jié)點:

rosnode list

輸出如下:

這里可以看到我們已經(jīng)成功啟動了 /turtlesim 節(jié)點。

如果需要查看turtlesim節(jié)點發(fā)布的話題敛助、訂閱話題和服務(wù)等內(nèi)容,可以輸入:

rosnode info /turtlesim

結(jié)果如圖:

在publications下面可以看到屋确,/turtlesim 發(fā)布了兩個話題: /turtle1/color_sensor 和 /turtle1/pose, 分別控制了烏龜界面的北京顏色和烏龜在界面上的位置坐標纳击,它們的消息類型分別是 [turtlesim/Color] 和 [turtlesim/Pose] 。

在Subscriptions下面可以看到 /turtlesim 訂閱了一個未知類型的話題 turtle1/cmd_vel

turtlesim 話題與消息

輸入如下命令來查看 /turtlesim 的話題:

rostopic list

輸出結(jié)果為:

查看話題的消息類型

輸入 rostopic type 命令查看話題類型攻臀,例如:

rostopic type /turtle1/color_sensor

輸出結(jié)果為:

turtlesim/Color 為 /turtle1/color_sensor這一話題的消息類型 (ROS消息類型命名格式:[package name]/[message type]

查看消息類型的具體內(nèi)容

剛剛看到話題 /turtle1/color_sensor 的消息類型為 turtlesim/Color 焕数, 可以通過 rosmsg shw命令來查看它的具體內(nèi)容:

rosmsg show turtlesim/Color

輸出結(jié)果為:

也就是說這里使用 unit8 來表示背景的RGB顏色。

查看話題的值

比如說想要查看背景的RGB顏色刨啸,或者小烏龜?shù)奈恢帽づ猓梢杂?rostopic echo 命令,例如:

rostopic echo /turtle1/color_sensor

終端會持續(xù)輸出如圖:

直到按下 Ctrl+C才會停止设联。

改變背景顏色

獲取參數(shù)列表

通過rosparam list 命令獲取 /turtlesim 節(jié)點的參數(shù)列表:

rosparam list

輸出為:

獲取參數(shù)值

通過 rosparam get / 命令獲得參數(shù)服務(wù)器上所有參數(shù)的數(shù)值:

rosparam get /?

輸出結(jié)果為:

注意這里的RGB數(shù)值和之前用 rostopic echo [topic name] 得到的數(shù)值相同善已。

修改顏色

通過 rosparam set 可以修改顏色:

rosparam set turtlesim/background_b 0rosparam set turtlesim/background_g 0rosparam set turtlesim/background_r 255rosservice call /clear

可以看到背景變成了紅色:

控制烏龜運動

紅色的背景感覺有點刺眼,這里我關(guān)閉了之前的 turtlesim節(jié)點并結(jié)束了roscore 節(jié)點管理器离例。這里重新啟動一下:

在終端一中運行:

roscore

在第二個終端中運行:

rosrun turtlesim turtlesim_node

得到:

(每次還都是不一樣的小烏龜)

通過發(fā)布話題控制烏龜運動

之前提到 /turtlesim 節(jié)點訂閱了一個位置類型的話題 turtle1/cmd_vel换团,這里先用 rostopic type來確定一下這個話題的消息類型,在一個新的終端窗口中運行如下命令:

rostopic type /turtle1/cmd_vel

得到:

運行如下命令確定該消息的數(shù)據(jù)格式:

rosmsg show geometry_msgs/Twist

得到輸出:

可以看到我們可以規(guī)定的是烏龜?shù)木€速度和角速度宫蛆,這里要注意在二維空間中艘包,允許的運動是沿 x 方向的直線運動或者是沿 z (垂直于電腦屏幕)的旋轉(zhuǎn)運動。比如說:規(guī)定線速度為 2m/s, 角速度為 1.8 rads/s耀盗,那么命令如下:

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

需要一個穩(wěn)定的頻率為1Hz的指令流才能保持移動狀態(tài)辑甜。我們可以使用rostopic pub -r命令來發(fā)布源源不斷的命令,1 代表 1Hz 的 速度指令發(fā)布頻率袍冷×状祝可以看到命令發(fā)布之后小烏龜開始做圓周運動:

通過 Ctrl+C停止圓周運動

通過鍵盤控制烏龜運動

在上面控制烏龜做圓周運動的終端重,輸入以下命令:

rosrun turtlesim turtle_teleop_key

命令執(zhí)行后顯示:

然后就可以通過鍵盤的方向鍵來控制烏龜運動胡诗,方向鍵上下控制前后移動邓线,左右控制移動方向:(注意這里需要活躍界面為這個終端窗口淌友,而不是小烏龜?shù)娘@示界面,如果鼠標電機小烏龜?shù)娘@示界面 turtlesim 窗口骇陈,然后再用鍵盤控制震庭,將不可用。)


結(jié)束后可以按q退出鍵盤控制你雌。

通過服務(wù)控制烏龜?shù)囊苿?/p>

首先通過 /turtle1/Pose 話題來獲得烏龜?shù)奈恢眯畔ⅲ?/p>

執(zhí)行:

rostopic type /turtle1/pose

得到輸出為:

然后執(zhí)行:

rosmsg show turtlesim/Pose

輸出:

然后可以通過以下命令得到烏龜?shù)奈恢米鴺似髁⒎轿唤嵌龋╰heta)和速度參數(shù):

rostopic echo /turtle1/Pose

輸出為:?


這里需要注意這個小烏龜?shù)脑c在 TurtleSim 窗口的左下角。

然后我們就可以實用 rosservice 來移動烏龜婿崭,格式為: rosservice call <service name><service arguments>

比如服務(wù) /turtle1/teleport_absolute 可以控制絕對位置的移動拨拓,這一服務(wù)的 service arguments 包含 x,y 坐標和方位角氓栈。例如將烏龜移動到絕對坐標 [1, 1] 渣磷,方位角為0,那么運行以下命令:

rosservice call /turtle1/teleport_absolute 1 1 0

執(zhí)行結(jié)果如圖:

可以看到烏龜移動到了絕對坐標 [1, 1] 的位置授瘦,并且頭朝向是方位角為0的位置醋界。

服務(wù) /turtle1/teleport_relative 可以控制相對位置的移動,這一服務(wù)的 service arguments 包含移動距離和角度提完。例如將烏龜從絕對坐標 [1, 1] 移動到絕對坐標 [2, 1] 形纺,那么相對位置移動了1,角度為 0 徒欣。運行以下命令:

rosservice call /turtle1/teleport_relative 1 0

運行結(jié)果如下圖:


可以看到完成了相對位置的移動逐样。大家也可以自己改變這兩個服務(wù)的角度或者位移量(坐標值)來看看不同的數(shù)值對小烏龜位置的影響。

參考

原文鏈接:https://blog.csdn.net/liangforcold/article/details/126398244

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帚称,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子秽澳,更是在濱河造成了極大的恐慌闯睹,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件担神,死亡現(xiàn)場離奇詭異楼吃,居然都是意外死亡,警方通過查閱死者的電腦和手機妄讯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門孩锡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人亥贸,你說我怎么就攤上這事躬窜。” “怎么了炕置?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵荣挨,是天一觀的道長男韧。 經(jīng)常有香客問我,道長默垄,這世上最難降的妖魔是什么此虑? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮口锭,結(jié)果婚禮上朦前,老公的妹妹穿的比我還像新娘。我一直安慰自己鹃操,他們只是感情好韭寸,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著组民,像睡著了一般棒仍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上臭胜,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天莫其,我揣著相機與錄音,去河邊找鬼耸三。 笑死乱陡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仪壮。 我是一名探鬼主播憨颠,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼积锅!你這毒婦竟也來了爽彤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤缚陷,失蹤者是張志新(化名)和其女友劉穎适篙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體箫爷,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡嚷节,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了虎锚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硫痰。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窜护,靈堂內(nèi)的尸體忽然破棺而出效斑,到底是詐尸還是另有隱情,我是刑警寧澤柱徙,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布鳍悠,位于F島的核電站税娜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏藏研。R本人自食惡果不足惜敬矩,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蠢挡。 院中可真熱鬧弧岳,春花似錦、人聲如沸业踏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勤家。三九已至腹尖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伐脖,已是汗流浹背热幔。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讼庇,地道東北人绎巨。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像蠕啄,于是被迫代替她去往敵國和親场勤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

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