ROS中使用rviz读取pcd点云文件
本质就是在工作空间下编译一个功能包实现功能。
创建功能包
打开之前创建好的工作空间的src目录下,创建功能包package,命名为pcd_to_rviz。
cd catkin_ws/src;
catkin_create_pkg pcd_to_rviz pcd_conversions pcl_ros roscpp sensor_msgs;
此时就会在catkin_ws/src下生成功能包文件夹pcd_to_rviz,在里面的src目录下新建一个pcd_to_rviz.cpp,将下面代码复制进去。
此外功能包文件夹下还包含cmakelists.txt和package.xml文件。
//pcd_to_rviz.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>
//which contains the required definitions to load and store point clouds to PCD and other file formats.
main (int argc, char **argv)
{
ros::init (argc, argv, "UandBdetect");
ros::NodeHandle nh;
ros::Publisher pcl_pub = nh.advertise<sensor_msgs::PointCloud2> ("pcl_output1", 1);
pcl::PointCloud<pcl::PointXYZ> cloud