ROS學習筆記 十一 ROS試用練習 二

2021-08-17 03:16:25 字數 3305 閱讀 9668

六、如何使用主題與節點互動

要進行互動並獲得主題的資訊,可以使用rostopic工具

在terminal裡輸入

rostopic
你將獲得如下輸出:

commands:

rostopic bw display bandwidth used by topic

rostopic delay display delay

of topic from timestamp in header

rostopic echo print messages to screen

rostopic find find topics by type

rostopic hz display publishing rate of topic

rostopic info print information about active topic

rostopic list

list active topics

rostopic pub publish data to topic

rostopic type print topic or field type

type rostopic -h for more detailed usage, e.g. 'rostopic echo -h'

現在我們在啟動鍵盤控制「小烏龜」來運動

rosrun turtlesim turtle_teleop_key
這時候你使用rosnode list命令,你將會看到有三個節點在執行:

/rosout

/teleop_turtle

/turtlesim

其中/teleop_turtle節點是鍵盤控制小烏龜運動的節點

我們來看看/teleop_turtle節點的詳細資訊

rosnode

info /teleop_turtle

你將看到如下輸出資訊:

* transport: tcpros我們可以看到teleop_turtle節點發布乙個主題:/turtle1/cmd_vel [geometry_msgs/twist]

同樣,我們再去看看turtlesim節點的詳細資訊

rosnode

info /turtlesim

在輸出資訊中,你將會看到有這麼一行:

subscriptions

: * /turtle1/cmd_vel [geometry_msgs/twist]

表示teleop_turtle節點把訊息發布到/turtle1/cmd_vel [geometry_msgs/twist]主題,而turtlesim節點訂閱了該主題,從而我們可以通過鍵盤來控制「小烏龜」的運動。

rostopic list
/rosout

/rosout_agg

/turtle1/cmd_vel

/turtle1/color_sensor

/turtle1/pose

通過echo可以檢視節點發出的資訊:

rostopic echo /turtle1/cmd_vel
此時切換到鍵盤控制「小烏龜」移動得terminal下,按下控制鍵

你將會看到類似如下的輸出資訊:

linear: 

x: 2.0

y: 0.0

z: 0.0

angular:

x: 0.0

y: 0.0

z: 0.0

通過rostopic type 可以檢視主題傳送的訊息型別:

rostopic type /turtle1/cmd_vel

你將獲得如下輸出資訊:

geometry_msgs/twist
如果你想檢視訊息字段,可以使用如下命令:

rosmsg show geometry_msgs/twist
你將獲得如下輸出資訊:

geometry_msgs/vector3 linear

float64 x

float64 y

float64 z

geometry_msgs/vector3 angular

float64 x

float64 y

float64 z

現在我們已經了解了什麼是ros的訊息,接下來我們開始結合訊息來使用rostopic。

rostopic pub可以把資料發布到當前某個正在廣播的話題上。

用法:rostopic

pub[topic]

[msg_type]

[args]

rostopic pub -1 /turtle1/cmd_vel geometry_msgs/twist -- '[2.0, 0.0, 0.0]'

'[0.0, 0.0, 1.8]'

至於這句話什麼意思,詳見

未完待續!

2023年3月16日

於杭州

hangzhou

ROS學習筆記 十 ROS試用練習 一

在此說明 之前使用的ros是indigo,前兩天電腦 炸 了,所以換了kinetic.一 ros檔案系統導覽 1.1如果你想找到turtlesim包的路徑,可以使用下列命令 rospack find turtlesim你將獲得如下輸出資訊 opt ros kinetic share turtlesi...

ros學習筆記 ros的服務

服務 services 是節點之間通訊的另一種方式。服務允許節點傳送請求 request 並獲得乙個響應 response rosservice 可以很輕鬆的使用 ros 客戶端 伺服器框架提供的服務。rosservice 提供了很多可以在 topic 上使用的命令,如下所示 使用方法 rosser...

ROS學習筆記 零 ROS安裝

詳細步驟 官方安裝ros說明 安裝流程 1.配置ubuntu倉庫,確保 restricted,universe,and multiverse.勾選 2.安裝源 sudo sh c etc lsb release echo deb lsb release cs main etc apt sources...