2. 3D点云基础

3D点云是机器人视觉抓取系统中最为核心的底层数据形态。与传统的2D图像不同,点云直接记录了物体表面在三维空间中的离散采样坐标,为后续的位姿估计、碰撞检测和抓取规划提供了几何基础。本章将系统梳理点云的定义与数学表达、三大主流获取方式(激光雷达、深度相机、结构光)的工作原理与工程选型、以及点云数据的标准格式与存储策略。理解这些基础内容,是后续进行点云滤波、配准、分割和抓取位姿解算的前提。

3D点云获取与数据链路总览 激光雷达(LiDAR) • 原理:TOF / 三角测距 • 波长:905nm / 1550nm • 特点:远距离、高精度 • 输出:3D坐标 + 反射强度 • 典型:Velodyne、禾赛、Ouster 适用:室外大场景、AGV导航 深度相机(ToF / 双目) • 原理:ToF / 双目视差 • 波长:850nm / 940nm • 特点:中近距离、帧率高 • 输出:深度图 + RGB图 • 典型:Kinect、RealSense、Orbbec 适用:机器人抓取、SLAM、人脸识别 结构光(Structured Light) • 原理:编码光栅 + 三角测量 • 光源:红外激光 / LED投影 • 特点:高精度、抗环境光弱 • 输出:高密度点云 • 典型:iPhone FaceID、Ensenso 适用:精密测量、小物体抓取 点云数据格式与存储 • PCD / PLY / LAS / XYZ / BIN • 属性:X, Y, Z, Intensity, RGB, Normal, Time • 存储:ASCII / Binary / Binary_Compressed 下游处理链路 滤波去噪 → 配准拼接 → 分割聚类 → 特征提取 → 位姿估计 → 抓取规划

2.1 点云的定义与数学表达

点云(Point Cloud)是空间中一组离散的三维坐标点的集合,用于表示物体表面或场景的几何采样。每个点通常包含三维坐标信息,并可附加多种属性。在机器人抓取场景中,点云是连接传感器原始数据与高级感知算法的桥梁。

从数学角度看,一个点云可以表示为集合 \( P = \{p_1, p_2, ..., p_N\} \),其中每个点 \( p_i \) 是一个多维向量。最基本的点包含三维坐标 \( (x, y, z) \),通常定义在传感器坐标系或世界坐标系下。根据传感器类型和应用需求,每个点还可以携带以下属性:

  • 反射强度(Intensity):激光雷达返回的物体表面反射率,可用于区分不同材质。
  • 颜色信息(RGB):由深度相机或RGB相机融合得到,有助于语义分割和物体识别。
  • 法向量(Normal):该点所在局部表面的法线方向,对曲面重建和特征描述至关重要。
  • 时间戳(Timestamp):记录该点采集的时间,用于运动补偿和多帧融合。
  • 置信度/噪声方差:部分传感器会输出每个点的测量置信度,便于后续滤波。

点云的密度和分布取决于传感器类型和扫描方式。激光雷达通常产生稀疏但精度高的点云(每平方米几十到几百点),而结构光和深度相机可以产生密集点云(每平方米数万点)。在机器人抓取中,点云密度直接影响后续处理的实时性和精度。

核心要点:点云的本质是“三维空间的离散采样”,它不包含物体表面的拓扑连接关系。因此,从点云中提取几何特征(如边缘、平面、圆柱)需要额外的算法处理,这也是后续章节将要深入讨论的内容。

2.2 三大获取方式:原理、选型与对比

不同的应用场景对点云的精度、范围、帧率和成本有不同的要求。目前主流的3D点云获取方式有三种:激光雷达、深度相机(ToF/双目)和结构光。理解每种方式的物理原理和工程特性,是正确选型的第一步。

2.2.1 激光雷达(LiDAR)

激光雷达通过发射激光束并测量反射光的飞行时间(Time of Flight, ToF)或相位差来计算目标距离。其核心公式为 \( d = \frac{c \cdot t}{2} \),其中 \( c \) 为光速,\( t \) 为激光发射到接收的总时间。通过旋转扫描机构或固态电子扫描,激光雷达可以获取周围环境的三维坐标点。

激光雷达的主要优势在于:

  • 测量距离远:可达100米以上,适合室外大场景。
  • 精度高:测距精度通常在±2cm以内,部分高精度型号可达±5mm。
  • 抗环境光干扰强:使用窄带滤光片,对太阳光不敏感。

然而,激光雷达的缺点也很明显:点云稀疏(尤其是垂直方向分辨率低)、设备成本高(机械式雷达数万至数十万元)、无法获取颜色信息。在机器人抓取场景中,激光雷达通常用于AGV导航、大范围场景重建,而非近距离精密抓取。

2.2.2 深度相机(ToF / 双目)

深度相机是目前机器人抓取领域应用最广泛的传感器。它分为两大类:

ToF深度相机:通过测量红外光脉冲的飞行时间来计算距离。与激光雷达不同,ToF相机是面阵式成像,每个像素都能输出一个深度值,因此可以实时获取整幅深度图。典型产品包括Microsoft Kinect v2、Intel RealSense D435i、Orbbec Astra系列。ToF相机的优势在于帧率高(30-60fps)、体积小、成本适中(千元级),适合中近距离(0.3m-6m)的抓取场景。

双目立体视觉相机:通过两个水平放置的RGB相机模拟人眼视差,利用三角测量原理计算深度。其核心公式为 \( Z = \frac{f \cdot b}{d} \),其中 \( f \) 为焦距,\( b \) 为基线距离,\( d \) 为左右图像的视差。双目相机的优势是无需主动光源,在室外强光下也能工作,且成本较低。但缺点是:对纹理缺乏的物体(如白色墙面、光滑金属)匹配效果差,计算量大,深度精度受基线长度限制。

选型建议:对于典型的工业机器人抓取场景(工作距离0.5m-2m),推荐使用ToF深度相机或高分辨率双目相机。如果目标物体表面纹理丰富,双目相机性价比更高;如果物体表面光滑或反光,ToF相机更为可靠。

2.2.3 结构光(Structured Light)

结构光技术通过投影仪向物体表面投射编码的光栅图案(如正弦条纹、格雷码、散斑),然后由相机拍摄被物体表面调制后的变形图案,通过解调计算每个像素的深度。其原理基于三角测量,但使用主动编码光源来提高匹配精度。

结构光的优势在于:

  • 高精度:在近距离(0.1m-1m)内,深度精度可达0.1mm级别。
  • 高密度:每个像素都能输出深度,点云密度极高。
  • 对弱纹理物体友好:主动投射图案解决了双目匹配的纹理依赖问题。

结构光的局限性包括:测量距离短(通常不超过3m)、易受环境光干扰(尤其是阳光中的红外成分)、投影图案在强反光表面会产生高光失真。在精密装配、小零件抓取、3D建模等场景中,结构光相机(如Ensenso N35、Photoneo)是首选。

对比维度 激光雷达 ToF深度相机 双目相机 结构光
测量原理 激光飞行时间 红外光飞行时间 双目视差三角测量 编码光栅三角测量
工作距离 0.5m - 200m 0.3m - 6m 0.2m - 10m 0.1m - 3m
深度精度 ±2cm(典型) ±1cm(典型) ±1mm - ±5mm ±0.1mm - ±1mm
点云密度 稀疏(线扫) 中等(面阵) 中等(面阵) 高(面阵)
环境光敏感性 低 中(红外干扰) 高(依赖纹理) 高(红外干扰)
成本 高(数万+) 中(千元级) 低(百元级) 中高(数千-数万)
典型应用 AGV导航、室外SLAM 机器人抓取、人体交互 室外导航、AR 精密测量、小物体抓取

2.3 点云数据格式与存储

点云数据在存储和传输时需要遵循特定的文件格式,以平衡文件大小、读写速度和跨平台兼容性。不同的传感器厂商和算法库支持不同的格式,理解这些格式的差异对于工程实践至关重要。

2.3.1 主流点云文件格式

PCD(Point Cloud Data):由PCL(Point Cloud Library)库定义的原生格式,支持ASCII和二进制两种编码。PCD文件包含文件头(声明点云维度、点数、数据类型)和点数据两部分。其优势是与PCL库无缝集成,支持自定义字段(如法向量、强度、RGB)。

PLY(Polygon File Format):最初用于存储三维扫描仪的多边形数据,后来扩展支持点云。PLY格式灵活,支持顶点、面、边等多种元素,且可以包含颜色、法向量等属性。它是许多3D建模软件(如MeshLab、Blender)的标准格式。

LAS/LAZ:由美国摄影测量与遥感学会(ASPRS)定义,主要用于激光雷达点云数据的存储和交换。LAS格式是二进制格式,包含点坐标、强度、回波次数、分类等信息,LAZ是其压缩版本。LAS格式在测绘和地理信息领域是事实标准。

XYZ / TXT:最简单的文本格式,每行一个点,列依次为X、Y、Z(可扩展为XYZRGB、XYZI等)。这种格式通用性强,但文件体积大、读写效率低,适合小规模数据或跨平台交换。

BIN(二进制):许多传感器厂商(如Velodyne、Ouster)使用自定义的二进制格式存储原始点云,通常包含时间戳、激光ID、距离、反射率等原始信息。BIN格式读写速度快,但缺乏统一标准,需要厂商SDK解析。

2.3.2 存储策略与工程考量

在实际机器人抓取系统中,点云数据的存储需要考虑以下因素:

  • 实时性:在线处理时,点云通常以内存中的数据结构(如PCL的PointCloud<T>)存在,不落盘。只有需要离线分析或数据集构建时才写入文件。
  • 压缩率:对于大规模点云(如超过1000万点),建议使用二进制格式或压缩格式(如LAZ、PCD Binary_Compressed),可减少80%以上的存储空间。
  • 属性完整性:如果后续需要做语义分割或颜色融合,必须保留RGB或Intensity字段,不能只存XYZ。
  • 坐标系标注:在存储时,建议在文件头或配套的元数据中记录点云所在的坐标系(如相机坐标系、机器人基坐标系),避免后续使用时发生坐标混淆。
// PCD文件头示例(ASCII格式)
# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z rgb
SIZE 4 4 4 4
TYPE F F F F
COUNT 1 1 1 1
WIDTH 123456
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 123456
DATA ascii
0.123 0.456 0.789 4.2108e+06
...
常见误区:很多初学者在保存点云时只保存XYZ坐标,忽略了强度或颜色信息。这在后续进行基于颜色的分割或基于反射率的特征提取时会遇到困难。建议在数据采集阶段就保留完整的传感器原始属性。

2.4 实战场景:抓取场景中的传感器选型与数据采集

为了将上述理论应用于实际,我们以一个典型的“随机箱体抓取”场景为例,分析传感器选型和数据采集的完整流程。

场景背景与约束:某3C电子工厂需要机器人从周转箱中抓取不同尺寸的金属零部件(如螺丝、垫片、小型连接器)。工作距离为0.4m-0.8m,要求抓取节拍小于3秒/件,零件表面存在反光。环境为室内恒光,无阳光直射。

初始现象与目标:最初尝试使用双目相机(基线60mm),发现金属零件表面反光导致左右图像匹配失败,深度图出现大量空洞。目标是在不增加硬件成本的前提下,提高点云完整度和深度精度。

关键输入数据与参数:

  • 零件尺寸范围:5mm - 50mm
  • 反光率:金属表面反射率约60%-80%
  • 环境光照:800 lux(室内荧光灯)
  • 现有硬件:Intel RealSense D435i(双目+红外投射器)

分析判断过程:

  1. 双目相机在金属反光表面产生镜面反射,导致左右图像灰度差异过大,SAD/SSD匹配算法失效。
  2. D435i虽然带有红外投射器(主动立体),但投射的是随机散斑,对高反光表面的编码效果有限。
  3. 改用ToF相机(如D435i的ToF版本或Orbbec Astra Pro)可以避免纹理匹配问题,因为ToF直接测量飞行时间,不依赖表面纹理。
  4. 但ToF在金属表面会产生多路径反射(光线在零件间多次反射),导致深度值偏大或出现飞点。

实际操作步骤:

  1. 将传感器更换为Orbbec Astra Pro(ToF),并调整红外发射功率至中等水平。
  2. 在相机前方加装偏振片(偏振方向与发射光垂直),有效滤除金属表面的镜面反射分量。
  3. 设置深度滤波参数:将置信度阈值设为0.5,并开启时域平滑(连续5帧中值滤波)。
  4. 在抓取前增加一次“多帧融合”:连续采集10帧点云,通过ICP配准后融合,填补单帧空洞。

结果对比:

指标 双目相机(改进前) ToF + 偏振片(改进后)
点云完整度 62% 94%
深度均方根误差 4.2mm 1.8mm
抓取成功率 71% 96%
单次处理耗时 0.8s 1.2s(含多帧融合)

风险与代价:增加偏振片后,有效光强降低约50%,导致深度噪声略有增加。多帧融合增加了0.4s的处理时间,但仍在节拍要求内。如果节拍要求更严苛,可改用更高帧率的ToF相机(如60fps)来减少融合帧数。

复盘经验:

  • 传感器选型不能只看参数表,必须结合目标物体的材质和表面特性进行实测。
  • 偏振片是解决金属反光的低成本有效方案,但需要根据发射光波长选择匹配的偏振片。
  • 多帧融合是提升点云质量的通用手段,但会增加计算开销,需在实时性和质量之间权衡。

2.5 常见误区与总结复盘

在点云基础的学习和工程应用中,以下误区值得特别注意:

误区一:认为点云越密越好。高密度点云虽然包含更多细节,但会显著增加计算量和内存占用。在机器人抓取中,应根据抓取精度要求合理降采样。例如,对于直径10mm的螺丝,点云密度达到每平方毫米1-2个点即可满足位姿估计需求,过密反而会引入噪声。
误区二:忽略坐标系标定。点云本身只是坐标集合,如果没有明确的坐标系定义,后续的配准和手眼标定将无从谈起。每次采集点云时,必须记录传感器在世界坐标系或机器人基坐标系下的位姿。
误区三:混淆深度图与点云。深度图是2.5D数据(每个像素一个深度值),而点云是3D数据(每个点独立坐标)。从深度图生成点云需要相机内参和畸变系数,不能直接当作点云使用。

总结复盘:本章从点云的数学定义出发,详细介绍了激光雷达、深度相机和结构光三种获取方式的原理、优缺点和适用场景,并给出了点云数据格式与存储的工程指南。核心要点如下:

  • 点云是三维空间的离散采样,属性字段(强度、颜色、法向量)对后续算法至关重要。
  • 传感器选型应基于工作距离、物体材质、环境光照和成本预算综合判断,没有“万能传感器”。
  • PCD和PLY是算法开发中最常用的格式,LAS用于测绘领域,BIN用于传感器原始数据。
  • 存储点云时务必保留完整属性字段,并记录坐标系信息。
  • 实战中,金属反光、环境光干扰和多路径效应是点云质量的三大杀手,需要结合硬件(偏振片、滤光片)和软件(滤波、多帧融合)手段综合解决。

掌握这些基础后,下一阶段将进入点云预处理技术,包括去噪、降采样、法向量估计和背景分割,这些操作将直接决定后续抓取位姿估计的精度和稳定性。