'rosApplyTransfrom' gives error even on passing the correct arguments type

1 回表示 (過去 30 日間)
Dhruv Thakkar
Dhruv Thakkar 2022 年 6 月 1 日
回答済み: Cam Salzberger 2022 年 6 月 16 日
I am trying to tranfrom messages from one frame to another, from a rosbag, in the following fashion.
tranF = getTransform(bagfile,'targetFrame','world');
worldPose = readMessages(select(bagfile,'Topic','/vrpn_client_node/targetFrame/pose' ),'DataFormat','struct');
But upon doing so I get the following error. Can anyone point me in the right direction?
Error using rosApplyTransform
Expected tfmsg to be one of these types:
Instead its type was ros.msg.geometry_msgs.TransformStamped.
Error in rosApplyTransform (line 40)
validateattributes(tfmsg, {'struct'},{'scalar'},'rosApplyTransform','tfmsg');

回答 (1 件)

Cam Salzberger
Cam Salzberger 2022 年 6 月 16 日
Hello Dhruv,
The issue is that the output of "getTransform" is a message object, while the output of "readMessages" is a message struct, and "rosApplyTransform" expects both to be message structs.
Unfortunately, I'm not able to find a way to get a message struct out of "getTransform", which would be the idea situation. So the best workaround for now is probably to get an object out of "readMessages" as well (remove the DataFormat=struct name-value pair), and then use the "apply" function rather than "rosApplyTransform".


Help Center および File ExchangeSpecialized Messages についてさらに検索





Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by