ROS 机器人技术 - ROS 与 PCL 的点云类型转换

在图像和点云的融合节点中,做了一个点云格式的转换:

  • ROS 点云 sensor_msgs::PointCloud2 -> PCL 第一代点云 pcl::PointCloud<pcl::PointXYZ>

这里记录下常用的 ROS 和 PCL 之间的转换。

1. sensor_msgs::PCLPointCloud2 <=> pcl::PointCloud<pcl::PointXYZ>

把 ROS PointCloud2 转为 PCL 第一代 PointCloud,方便用 PCL 库处理:

void pcl::fromROSMsg(const sensor_msgs::PointCloud2 &, pcl::PointCloud<T> &);

比如:

// ROS 点云
sensor_msgs::PointCloud2::ConstPtr& cloud_msg;

// PCL 第一代点云
pcl::PointCloud<pcl::PointXYZ>::Ptr pcl_cloud_msg(new pcl::PointCloud<pcl::PointXYZ>);

// ROS 点云 -> PCL 第一代点云
pcl::fromROSMsg(*cloud_msg, *pcl_cloud_msg);

把 PCL 第一代 PointCloud 转为 ROS PointCloud2,用于发布 ROS 的点云主题:

void pcl::toROSMsg(const pcl::PointCloud<T> &, sensor_msgs::PointCloud2 &);

比如:

// PCL 第一代点云
pcl::PointCloud<pcl::PointXYZRGB>::Ptr out_cloud(new pcl::PointCloud<pcl::PointXYZRGB>);

// ROS 点云
sensor_msgs::PointCloud2 fusion_cloud;

// PCL 第一代点云 -> ROS 点云
pcl::toROSMsg(*out_cloud, fusion_cloud);

2. sensor_msgs::PCLPointCloud2 <=> pcl::PCLPointCloud2

所用的头文件:

#include <pcl_conversions/pcl_conversions.h>

把 ROS PointCloud2 转为 PCL 第二代 PointCloud2:

void pcl_conversions::toPCL(const sensor_msgs::PointCloud2 &, pcl::PCLPointCloud2 &)

比如:

// ROS 点云 -> 第二代 PCL 点云
// cloud_msg 和 pcl_cloud2 这里都定义为指针
pcl_conversions::toPCL(*cloud_msg, *pcl_cloud2);

把 PCL 第二代 PointCloud2 转为 ROS PointCloud2:

void pcl_conversions::moveFromPCL(const pcl::PCLPointCloud2 &, const sensor_msgs::PointCloud2 &);

比如:

pcl::PCLPointCloud2 pcl2_cloud_filtered;
sensor_msgs::PointCloud2 ros_cloud_filter;

// 第二代 PCL 点云 -> ROS 点云
pcl_conversions::fromPCL(pcl2_cloud_filtered, ros_cloud_filter);

参考链接:


登龙的技术博客
公众号「登龙」
10 声望
3 粉丝
0 条评论
推荐阅读
ROS 八叉树地图构建 - 给 octomap_server 增加半径滤波器!
为了在每帧点云中滤除噪声点,选择了半径滤波器,也用高斯滤波器测试过,但是没有半径效果好,这里记录下在 octomap_server 中增加半径滤波器的步骤,并在 launch 中配置滤波器参数。

登龙1阅读 1.5k

个推谈Web3.0:从概念、技术原理到发展趋势
今年“双11”,在各大电商平台、直播间,我们可以看到越来越多的虚拟主播和数字人涌现,不少国内外品牌还进驻NFT领域,推出数字藏品,力图为消费者开启Web3.0时代的元宇宙营销新体验。

个推1阅读 732评论 1

封面图
超详细的ChatGPT注册教程来了
最近一周,大家都在讨论ChatGPT,一些主流的技术社区更是将ChatGPT吹的神乎其技,那ChatGPT是什么呢?又能给我们带来哪些变化呢?。带着这些问题,我打算先注册并使用 ChatGPT,供想要体验 ChatGPT 的小伙伴们参考。

xiangzhihong阅读 1.2k评论 1

2023 年8个ChatGPT 的替代品
OpenAI 于 2022 年 11 月下旬推出的 ChatGPT 在网络世界引起了不小的轰动。它不仅引起了社交媒体用户的关注,也引起了各大媒体的关注。

deephub阅读 1.1k

曼孚技术分享:数据标注都在自动驾驶哪些场景落地?
纵观市场,自动驾驶车企已是车载斗量。据企查查数据显示,我国现存自动驾驶相关企业5682家。2022年上半年,我国新增自动驾驶相关企业201家。近10年来,我国自动驾驶相关企业注册量整体呈上升趋势。

曼孚科技阅读 782

封面图
这才是图扑数字孪生污水处理厂该有的样子
图扑软件依托自主研发的 HT for Web 产品,并结合视频融合、BIM、5G、物联网、云计算及大数据等先进技术,围绕水质达标、安全生产、高效节能等生产、运营和管理目标,搭建了集污水处理厂区建筑及生产设备、管线等...

hightopo阅读 734

封面图
2023年最值得关注的机器人趋势TOP10
新兴的机器人技术趋势和预测满足了对工业自动化、数字化和可持续性的需求。仓库中的材料处理由自动移动机器人(AMR)和自动引导车辆(AGV)实现自动化。相关机构对8949家全球初创企业和2023年机器人趋势规模的样...

一点人工一点智能阅读 680

10 声望
3 粉丝
宣传栏