消息結(jié)構(gòu)獲取
ROS消息是對(duì)象,消息數(shù)據(jù)存儲(chǔ)在屬性中。MATLAB具有方便的方法來(lái)查找和探索消息的內(nèi)容。
如果訂閱了/pose主題,則可以接收和檢查發(fā)送的消息。
posesub = rossubscriber("/pose","DataFormat","struct")
posesub =
Subscriber with properties:
TopicName: ‘/pose’
LatestMessage: []
MessageType: ‘geometry_msgs/Twist’
BufferSize: 1
NewMessageFcn: []
DataFormat: ‘struct’
使用receive從訂閱者獲取數(shù)據(jù)。一旦接收到新消息,函數(shù)將返回該消息并將其存儲(chǔ)在posedata變量中(第二個(gè)參數(shù)是以秒為單位的超時(shí))。
posedata = receive(posesub,10)
posedata = struct with fields:
MessageType: ‘geometry_msgs/Twist’
Linear: [1x1 struct]
Angular: [1x1 struct]
該消息的類(lèi)型為geometry_msgs/Twist。消息中還有另外兩個(gè)字段:Linear和Angular。
您可以通過(guò)直接訪問(wèn)這些消息字段來(lái)查看它們的值:
posedata.Linear
ans = struct with fields:
MessageType: ‘geometry_msgs/Vector3’
X: 0.0457
Y: -0.0015
Z: 0.0300
posedata.Angular
ans = struct with fields:
MessageType: ‘geometry_msgs/Vector3’
X: -0.0358
Y: -0.0078
Z: 0.0416
這些消息字段的每個(gè)值實(shí)際上都是一條消息。它們的消息類(lèi)型是geometry_msgs/Vector3。
geometry_msgs/Twist是由兩條
geometry_msgs/Vector3消息組成的復(fù)合消息。
xpos = posedata.Linear.X
xpos = 0.0457
如果希望快速總結(jié)消息中包含的所有數(shù)據(jù),請(qǐng)調(diào)用rosShowDetails函數(shù)。rosShowDetails適用于任何類(lèi)型的消息,并遞歸地顯示所有消息數(shù)據(jù)字段。
rosShowDetails(posedata)
ans =
‘
MessageType : geometry_msgs/Twist
Linear
MessageType : geometry_msgs/Vector3
X : 0.04571669482429456
Y : -0.001462435127715878
Z : 0.03002804688888001
Angular
MessageType : geometry_msgs/Vector3
X : -0.03581136613727846
Y : -0.007823871737372501
Z : 0.04157355251890671’
rosShowDetails在調(diào)試期間和希望快速查看消息內(nèi)容時(shí)提供幫助。
-
matlab
+關(guān)注
關(guān)注
189文章
3001瀏覽量
234190 -
變量
+關(guān)注
關(guān)注
0文章
614瀏覽量
28967 -
ROS
+關(guān)注
關(guān)注
1文章
288瀏覽量
17759
發(fā)布評(píng)論請(qǐng)先 登錄
離散點(diǎn)采樣方法的MATLAB實(shí)現(xiàn)
Matlab使用方法和程序設(shè)計(jì)

matlab2009安裝方法及問(wèn)題過(guò)程
采用MATLAB的DSP調(diào)試方法

評(píng)論