ROS_PCL学习(2)
前言
本文主要关于读取点云数据文件。
一、创建新的工程
在上一节的/chapter10_tutorials/src下继续创建新的cpp文件,
pcl_read.cpp文件内容如下:
#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::Publisher pcl_pub = nh.advertise<sensor_msgs::PointCloud2> ("pcl_output", 1);
pcl::PointCloud<pcl::PointXYZ> cloud;
sensor_msgs::PointCloud2 output;
pcl::io::loadPCDFile ("1.pcd",cloud);//改成自己的pcd文件名
pcl::toROSMsg(cloud,output);
output.header.frame_id = "odom";
//Convert the cloud to ROS message
pcl::toROSMsg(cloud, output);
output.header.frame_id = "odom";
ros::Rate loop_rate(1);
while (ros::ok())
{
pcl_pub.publish(output);
ros::spinOnce();
loop_rate.sleep();
}
return 0;
}
二、程序运行
1.启动ros
roscore
2.读入数据
此步要在pcd的文件目录下完成
rosrun chapter10_tutorials pcl_read
3.启动rviz
配置和上一节基本差不多,调好后就能看到效果了。
总结
下一节尝试创建一个PCD文件。