real time pointcloud streaming in simulink on ubuntu
12 views (last 30 days)
Abirami Jambulingam Segar on 7 Feb 2022
I have an intenrealsense camera and i am working on ubuntu 18.04. I want to stream live feeds of point cloud in simulink via ros(i was able to stream color feed) I realized point clouds cant just be treated as pixels. Also there are some functions 'pcfromkinect' that say it helps in streaming pointclouds live but on windows. Please guide me through. I want to publish pointclouds as ros messages in simulink.
Cam Salzberger on 7 Feb 2022
If you are broadcasting the point cloud data over the ROS network already, then you can simply create a rossubscriber and a pcplayer, set up something like this:
player = pcplayer(<map limits>);
pcSub = rossubscriber(<point cloud topic>, "sensor_msgs/PointCloud2", ...
"DataFormat", "struct", ...
"NewMessageFcn", @(~, msg) processLidarMsg(msg, player)
function processLidarMsg(msg, player)
xyz = rosReadXYZ(msg);
rgb = rosReadRGB(msg);
view(player, xyz, rgb)
This code makes several assumptions about the type of the point cloud message and the structure of its fields (as well as your release of MATLAB). But it can serve as a starting point for your code.
If you are working with velodyne_msgs/VelodyneScan instead of sensor_msgs/PointCloud2, check out this documentation.