How to publish image to ROS in Simulink
3 次查看(过去 30 天)
显示 更早的评论
I use the function writeImage() in matlab function to write a MATLAB image to the ROS image message,but when I run the simulink model, an error appears: Undefined function or variable 'writeImage'. How to solve this problem? How to publish image to ROS in Simulink?
0 个评论
回答(1 个)
JAI PRAKASH
2018-11-4
If your matlab image is 'RGB' matrix, you can use following matlab function block + Bus assignment block as shown in figure.
function [H, W, Enc, EncLength, IsBig, Step, Data, DataLength] = fcn(im)
[H, W, n] = size(im);
H =uint32(H); W =uint32(W);
im = permute(im,[2 1 3]);
Data1 = im(:);
Data2 = reshape(Data1,[H*W,n])';
Data = Data2(:);
Enc = zeros(1,128, 'uint8');
Enc(1:4) = uint8('rgb8'); % uint8('rgb8')
EncLength = uint32(4);
IsBig = uint8(0);
Step = uint32(W*n);
DataLength = uint32(H*W*n);
See the attached simulink readymade block also to convert MAT image to ros image message.
3 个评论
Syed Adil Ahmed
2020-10-21
For those interested you can fix the non matching size of the Data bus variable by changing array sizes in Simulink for ros. This option is under tools> ROS in simulink.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Specialized Messages 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!