Message中的隊(duì)列
在ROS中有一些復(fù)雜的消息中可以包含其他的消息,并形成消息數(shù)組。
例如在exampleHelperROSCreateSampleNetwork例子中,變量tf包含一個(gè)消息,這個(gè)消息的主要作用是坐標(biāo)轉(zhuǎn)換的tf/tfMessage類型。通過(guò)輸入tf我們可以看到
tf
tf = struct with fields:
MessageType: ‘tf/tfMessage’
Transforms: [1x53 struct]
tf有兩個(gè)字段:MessageType包含一個(gè)標(biāo)準(zhǔn)數(shù)據(jù)數(shù)組,而Transforms包含一個(gè)對(duì)象數(shù)組。
在Transforms中存儲(chǔ)了53條消息,它們都具有相同的結(jié)構(gòu)。在Transforms中展開(kāi)tf以查看結(jié)構(gòu):
tf.Transforms
ans=1×53 struct array with fields:
MessageType
Header
ChildFrameId
Transform
Transforms中的每個(gè)對(duì)象都有四個(gè)屬性。
您可以展開(kāi)以查看Transforms的Transform字段。下面的命令會(huì)返回53個(gè)單獨(dú)的輸出,因?yàn)槊總€(gè)對(duì)象都被求值并返回其Transform字段的值
% tformFields = tf.Transforms.Transform
cellTransforms = {tf.Transforms.Transform}
這將把所有53個(gè)對(duì)象條目放在一個(gè)單元格數(shù)組中,這樣就可以通過(guò)訪問(wèn)標(biāo)準(zhǔn)的MATLAB向量的方式來(lái)訪問(wèn)數(shù)組元素:
tf.Transforms(5)
ans = struct with fields:
MessageType: ‘geometry_msgs/TransformStamped’
Header: [1x1 struct]
ChildFrameId: ‘/imu_link’
Transform: [1x1 struct]
訪問(wèn)53個(gè)變換列表中第五個(gè)變換的信息:
tf.Transforms(5).Transform.Translation
ans = struct with fields:
MessageType: ‘geometry_msgs/Vector3’
X: 0.0599
Y: 0
Z: -0.0141
-
matlab
+關(guān)注
關(guān)注
182文章
2960瀏覽量
230044 -
數(shù)組
+關(guān)注
關(guān)注
1文章
412瀏覽量
25883 -
ROS
+關(guān)注
關(guān)注
1文章
276瀏覽量
16942
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論