本文转载自 PCL、ROS等各种类型的点云之间的转换 https://zhuanlan.zhihu.com/p/55958811
如有侵权,请联系删除
pcl::PointCloud< pcl::PointXYZ > pcl的点云
pcl::PCLPointCloud2 pcl的第二种点云
sensor_msgs::PointCloud2 ROS中的点云
sensor_msgs::PointCloud ROS中的点云
1. sensor_msgs::PCLPointCloud2 <=> pcl::PCLPointCloud2
void pcl_conversions::toPCL(const sensor_msgs::PointCloud2 &, pcl::PCLPointCloud2 &)
void pcl_conversions::moveFromPCL(const pcl::PCLPointCloud2 &, const sensor_msgs::PointCloud2 &);
2. pcl::PCLPointCloud2 <=> pcl::PointCloudpcl::PointXYZ
void pcl::fromPCLPointCloud2(const pcl::PCLPointCloud2 &, pcl::PointCloud<pointT> &);
void pcl::toPCLPointCloud2(const pcl::PointCloud<pointT> &, pcl::PCLPointCloud2 &);
3. sensor_msgs::PCLPointCloud2 <=> pcl::PointCloudpcl::PointXYZ
void pcl::fromROSMsg(const sensor_msgs::PointCloud2 &, pcl::PointCloud<T> &);
void pcl::toROSMsg(const pcl::PointCloud<T> &, sensor_msgs::PointCloud2 &);
这2个函数实际上都是inline函数,调用的就是1. 2.的方法。
4. sensor_msgs::PointCloud2 <=> sensor_msgs::PointCloud
static bool sensor_msgs::convertPointCloudToPointCloud2(const sensor_msgs::PointCloud & input,sensor_msgs::PointCloud2 & output);
static bool sensor_msgs::convertPointCloud2ToPointCloud(const sensor_msgs::PointCloud2 & input,sensor_msgs::PointCloud & output);
#include <sensor_msgs/point_cloud_conversion.h>