MATLAB coder error while using 'rospublisher'
5 次查看(过去 30 天)
显示 更早的评论
I'm facing the error while using MATLAB coder. The error shows 'Value cannot be displayed because the output of 'coder.ceval' does not have a known type. To display the output, first assign the result to a variable of known type.' , and the error was due to
pub = rospublisher("/path", "geometry_msgs/Point", "DataFormat", "struct");
And below is part of my code:
r = rosrate(10);
pub = rospublisher("/path", "geometry_msgs/Point", "DataFormat", "struct");
% ...
while true
% Create a new ROS message
msg = rosmessage(pub);
msg.Data = struct_target_path;
% Publish the message
send(pub, msg);
waitfor(r);
end
What I want to do is to publish a structure message(struct_target_path) with the topic named "/path".
I have already tried various methods, but all of them didn't work.
Thank you for anyone who can help me to fix it.
0 个评论
回答(1 个)
Karthik Reddy Vennapureddy
2023-7-31
Hi JhenMin,
The message struct you are creating in while loop using rosmessage API, is of message type "geometry_msgs/Point". This type has no such field 'Data'. Instead it has fields X, Y and Z. So, it is not allowed to do the following:
msg.Data = struct_target_path;
Instead the below syntax is allowed
msg.X = 10;
Thanks,
Karthik Reddy
5 个评论
Karthik Reddy Vennapureddy
2023-7-31
Hi JhenMin,
Are you able to directly run the above script without any issues in MATLAB, but facing issues only using MATLAB Coder when generating the code?
Thanks,
Karthik Reddy
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Custom Message Support 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!