随手笔记——雷达点云话题转PCL,处理数据后再转为雷达点云话题常用方式
- 说明
- 主要函数
说明
将接收到的雷达点云话题转换为pcl点云格式,处理点云后,再次转换为点云话题并发布
主要函数
void laserCloudHandler(const sensor_msgs::PointCloud2ConstPtr &laserCloudMsg)
{
......
pcl::PointCloud<pcl::PointXYZ> laserCloud; // 输入点云,pcl点云格式
pcl::fromROSMsg(*laserCloudMsg, laserCloud); // 将传入的ros消息格式转为pcl库里的点云格式
int cloudSize = laserCloud.points.size();
......
// 将pcl点云信息转换成ros消息并发布 时间都为laserCloudMsg->header.stamp
sensor_msgs::PointCloud2 laserCloudOutMsg;
pcl::toROSMsg(*laserCloud, laserCloudOutMsg);
laserCloudOutMsg.header.stamp = laserCloudMsg->header.stamp;
laserCloudOutMsg.header.frame_id = "/camera_init";
pubLaserCloud.publish(laserCloudOutMsg); // 去除掉一些无效点之后的原始点云数据
}