Reading sensor_msgs/PointCloud2 data and visualizing the points
13 views (last 30 days)
Show older comments
Dear all,
I am connecting Matlab ros with Classical ROS. In command I run the roscore and copy same URL in
> rosinit('http://IMAG-MARVIN:11311/')
Now I can list all the topics by
> rostopic('list')
that gives the output
/clock
/img_node/nearir_image
/img_node/range_image
/img_node/reflec_image
/img_node/signal_image
/os_cloud_node/imu
/os_cloud_node/points
/os_node/imu_packets
/os_node/lidar_packets
/rosout
/rosout_agg
/tf_static
Now I want to visualize /os_cloud_node/points which are of type
/img_node/nearir_image 229 sensor_msgs/Image 'std_msgs/Header Header↵ uint32 Seq↵ Time Stamp↵ char FrameId↵uint32 Height↵uint32 Width↵char Encoding↵uint8 IsBigendian↵uint32 Step↵uint8[] Data↵'
/img_node/range_image 229 sensor_msgs/Image 'std_msgs/Header Header↵ uint32 Seq↵ Time Stamp↵ char FrameId↵uint32 Height↵uint32 Width↵char Encoding↵uint8 IsBigendian↵uint32 Step↵uint8[] Data↵'
/img_node/reflec_image 229 sensor_msgs/Image 'std_msgs/Header Header↵ uint32 Seq↵ Time Stamp↵ char FrameId↵uint32 Height↵uint32 Width↵char Encoding↵uint8 IsBigendian↵uint32 Step↵uint8[] Data↵'
/img_node/signal_image 229 sensor_msgs/Image 'std_msgs/Header Header↵ uint32 Seq↵ Time Stamp↵ char FrameId↵uint32 Height↵uint32 Width↵char Encoding↵uint8 IsBigendian↵uint32 Step↵uint8[] Data↵'
/os_cloud_node/imu 2288 sensor_msgs/Imu 'std_msgs/Header Header↵ uint32 Seq↵ Time Stamp↵ char FrameId↵geometry_msgs/Quaternion Orientation↵ double X↵ double Y↵ double Z↵ double W↵double[9] OrientationCovariance↵geometry_msgs/Vector3 AngularVelocity↵ double X↵ double Y↵ double Z↵double[9] AngularVelocityCovariance↵geometry_msgs/Vector3 LinearAcceleration↵ double X↵ double Y↵ double Z↵double[9] LinearAccelerationCovariance↵'
/os_cloud_node/points 229 sensor_msgs/PointCloud2 'std_msgs/Header Header↵ uint32 Seq↵ Time Stamp↵ char FrameId↵uint32 Height↵uint32 Width↵sensor_msgs/PointField[] Fields↵ uint8 INT8↵ uint8 UINT8↵ uint8 INT16↵ uint8 UINT16↵ uint8 INT32↵ uint8 UINT32↵ uint8 FLOAT32↵ uint8 FLOAT64↵ char Name↵ uint32 Offset↵ uint8 Datatype↵ uint32 Count↵logical IsBigendian↵uint32 PointStep↵uint32 RowStep↵uint8[] Data↵logical IsDense↵'
/os_node/imu_packets 2289 ouster_ros/PacketMsg 'uint8[] Buf↵'
/os_node/lidar_packets 18310 ouster_ros/PacketMsg 'uint8[] Buf↵'
/rosout 12 rosgraph_msgs/Log 'int8 DEBUG↵int8 INFO↵int8 WARN↵int8 ERROR↵int8 FATAL↵std_msgs/Header Header↵ uint32 Seq↵ Time Stamp↵ char FrameId↵int8 Level↵char Name↵char Msg↵char File↵char Function↵uint32 Line↵char[] Topics↵'
/tf_static 1 tf2_msgs/TFMessage 'geometry_msgs/TransformStamped[] Transforms↵ std_msgs/Header Header↵ uint32 Seq↵ Time Stamp↵ char FrameId↵ char ChildFrameId↵ geometry_msgs/Transform Transform↵ geometry_msgs/Vector3 Translation↵ double X↵ double Y↵ double Z↵ geometry_msgs/Quaternion Rotation↵ double X↵ double Y↵ double Z↵ double W↵'
I can't figure it out. Please Help
0 Comments
Answers (1)
Cam Salzberger
on 22 Dec 2021
Hello Junaid,
If you create a subscriber for the topic of interest, you can get the messages on that topic either in the subscriber's callback (NewMessageFcn) that you supply, or by checking the LatestMessage property of the subscriber. Then you can use rosPlot on the message to display them. See this example for a walkthrough on the specialized message handling.
-Cam
0 Comments
Communities
More Answers in the Power Electronics Control
See Also
Categories
Find more on Specialized Messages in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!