ROS2用RVIZ2显示点云
RVIZ2支持的格式如下图
毫米波雷达和激光雷达的数据可以考虑用点云显示,也即PointCloud和PointCloud2,这里采用PointCloud。
首先查看PointCloud的消息格式,
http://docs.ros.org/en/api/sensor_msgs/html/msg/PointCloud.html
在vscode中新建工程,创建一个发布者和其定时回调函数,topic为“multi_points”
// 创建一个发布者和其定时回调函数
pub_point_data = this->create_publisher<sensor_msgs::msg::PointCloud>("multi_points", 10);
point_timer = this->create_wall_timer(1000ms, std::bind(&MinimalPublisher::pub_point_callback, this));
使用标准的PointCloud,然后给各个参数赋值,特别注意给指针赋值时,需要按照如下模板:
// 数组的标准写入方法
geometry_msgs::msg::Point32 p;
p.x = para_data;
p.y = para_data;
p.z = 0.0f;
point_data.points.push_back(p);
然后编译运行,打开rviz2添加”/multi_points”的topic,即可看到点云的显示。