一、ROS读取点云信息
首先需要准备点云信息,可以是相机实时生成的点云,也可以是自己准备好的点云文件。在本文章中,我们使用自己准备好的PCD文件:
pcl::io::loadPCDFile("/home/usr/tottle .pcd",*cloud);
二、进行展示
#include<ros/ros.h>
#include<pcl/point_cloud.h>
#include<pcl_conversions/pcl_conversions.h>
#include<sensor_msgs/PointCloud2.h>
#include<pcl/io/pcd_io.h>
int main(int argc,char **argv){
ros::init(argc,argv,"pcl_read");
ros::NodeHandle nh;
//设定ROS发布的话题
ros::Publisher pcl_pub=nh.advertise<sensor_msgs::PointCloud2> ("pcl_ori",1);
//创建读取的点云名称
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
//创建ROS下的点云形式
sensor_msgs::PointCloud2 output;
//加载自己的点云文件
pcl::io::loadPCDFile("/home/lyf/xiyiye .pcd",*cloud);//修改自己pcd文件所在路径
//将点云转化为ROS形式的信息
pcl::toROSMsg(*cloud,output);
//规定参考的坐标系
output.header.frame_id="base_link";
ros::Rate loop_rate(1);
while (ros::ok())
{
//发布信息
pcl_pub.publish(output);
ros::spinOnce();
loop_rate.sleep();
}
return 0;
}