ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
You're looking for a point cloud2 iterator:
#include <sensor_msgs/msg/point_cloud2.hpp>
#include <sensor_msgs/point_cloud2_iterator.hpp>
void PointCloud2Callback(const sensor_msgs::msg::PointCloud2::SharedPtr msg)
{
const size_t number_of_points = msg->height * msg->width;
sensor_msgs::PointCloud2Iterator<float> iter_x(*msg, "x");
sensor_msgs::PointCloud2Iterator<float> iter_y(*msg, "y");
for (size_t i = 0; i < number_of_points; ++i, ++iter_x, ++iter_y)
{
double x = *iter_x;
double y = *iter_y;
}
}