How to access Intensity from ROS PointCloud2 message?

22 views (last 30 days)
I am able to access xyz using readxyz function from ROS PointCloud2 message. How can I access Intensity and ring values?
  1 Comment
Pasindu Ranasinghe
Pasindu Ranasinghe on 23 Jan 2024
% Visualize point cloud data for PointCloud2 messages
Point_to_display=34;
Data_Range=1:200;
bSel = select(bag,'Topic','/livox/lidar');
msgStructs = readMessages(bSel,Data_Range,'DataFormat','struct');
intensities=msgStructs{Point_to_display}
%intensities=msgStructs{Point_to_display}.readFile('intensity')
pc2msg=msgStructs{Point_to_display};
intensities=rosReadField(pc2msg,'intensity');
pcobj = pointCloud(rosReadXYZ(msgStructs{Point_to_display}),"Intensity",intensities);
viewer = pcviewer(pcobj);

Sign in to comment.

Answers (1)

Will Nitsch
Will Nitsch on 1 May 2017
With PointCloud2 objects you should be able to get the intensity values using 'readRGB': https://www.mathworks.com/help/robotics/ref/readrgb.html
Here is the documentation on 'PointCloud2' objects: https://www.mathworks.com/help/robotics/ref/pointcloud2-object.html
I wasn't able to find any mention of a 'ring' parameter in that documentation, perhaps it is described differently? Explore the different object properties of that object class.

Categories

Find more on Publishers and Subscribers in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!