1. 课程导入
当机器人从“看见”走向“操作”,二维图像中的像素坐标已经不够用了。机械臂要抓取桌上的水杯,不仅要知道“杯子在图像里”,还要知道它在相机坐标系下的三维位置、朝向、尺寸,甚至杯柄相对于夹爪的旋转角度。这正是三维目标检测与姿态估计要解决的问题:前者回答“物体在哪里、有多大”,后者回答“物体朝哪个方向、以什么姿态存在”。
三维目标检测:在三维空间中定位目标,输出中心点坐标 (x, y, z)、尺寸 (l, w, h)、朝向角 (yaw/pitch/roll) 与类别置信度。
姿态估计:估计目标相对于参考坐标系的旋转与平移,通常用旋转矩阵 R、四元数 q 或 6D 姿态向量表示,是抓取、装配、对齐的前提。
姿态估计:估计目标相对于参考坐标系的旋转与平移,通常用旋转矩阵 R、四元数 q 或 6D 姿态向量表示,是抓取、装配、对齐的前提。
一、核心原理:从二维到三维的“升维”逻辑
三维感知的本质,是把二维观测与三维先验结合起来。常见技术路线可以归纳为三类:
- 基于点云的方法:以激光雷达或深度相机获取的点云为输入,直接在三维空间做体素化、柱状化或点级特征提取,代表思路如 PointNet 系列、VoxelNet、PointPillars。
- 基于 RGB-D 的方法:利用彩色图与深度图互补,先做二维检测再反投影到三维,或用深度补全提升几何精度,适合近距离操作场景。
- 基于单目/多目的方法:仅用图像,通过几何约束、关键点检测或神经网络回归三维参数,成本低但尺度模糊,常需已知物体模型或类别先验。
姿态估计则通常分为实例级与类别级:实例级针对已知 CAD 模型,估计 6D 位姿;类别级面对未见过的同类物体,估计归一化形状与姿态。二者在机器人抓取中的难度和适用边界差异明显。
二、方法流程:一条可复用的工程链路
无论采用哪种算法,机器人三维感知的工程流程大体一致,可以概括为“采集—标定—检测—姿态—评估—执行”六个环节。下面给出一个典型的参数配置片段,便于建立整体印象:
# 典型三维检测与姿态估计流程配置
sensor:
type: "realsense_d435"
depth_scale: 0.001 # 深度单位:毫米转米
color_resolution: [640, 480]
depth_resolution: [640, 480]
calibration:
camera_intrinsics: [fx, fy, cx, cy]
hand_eye_matrix: T_base_cam # 4x4 齐次变换矩阵
detection:
model: "pointpillars" # 或 votenet / pvrcnn
score_threshold: 0.35
nms_iou: 0.5
pose:
method: "6d_pose" # 实例级 6D 位姿
refine: true # 是否使用 ICP 精配准
max_iterations: 50
evaluation:
metric: ["ADD", "ADD-S", "mAP_3d"]
translation_error_mm: 10
rotation_error_deg: 5
其中,标定决定了三维坐标是否可信,检测决定了目标是否被找到,姿态决定了抓取是否稳定,评估决定了系统能否持续迭代。任何一环缺失,都会让机器人“看得见却抓不准”。
三、案例场景:从仓储分拣到精密装配
| 应用场景 | 核心需求 | 典型方法 | 关键指标 |
|---|---|---|---|
| 仓储箱体分拣 | 快速定位堆叠纸箱 | PointPillars + 3D NMS | mAP_3d、推理延迟 |
| 桌面物体抓取 | 估计杯子、工具的姿态 | RGB-D + 6D Pose | ADD、抓取成功率 |
| 工业零件装配 | 毫米级对齐与插入 | 点云配准 + ICP 精修 | 平移误差、旋转误差 |
| 移动机器人避障 | 识别行人、障碍物位置 | 激光雷达 3D 检测 | 召回率、虚警率 |
以桌面抓取为例:深度相机先获取场景点云,检测网络输出水杯的三维包围盒,姿态估计模块进一步给出杯身轴线方向,抓取规划器据此生成夹爪的接近方向与闭合宽度。若姿态角偏差超过 10°,夹爪可能打滑或碰撞,因此姿态精度往往比检测框精度更关键。
四、常见误区与复盘
误区一:把二维检测框直接当三维结果。二维框只提供像素范围,缺少深度与朝向,直接反投影会因深度噪声导致抓取点漂移。
误区二:忽视手眼标定误差。相机与机器人基座的外参若偏差 5 mm,末端抓取就可能偏移数厘米。
误区三:只关注 mAP,不看姿态误差。检测框很准但姿态翻转 180°,抓取依然失败。
误区四:训练集与真实场景分布不一致。仿真数据训练的模型在真实光照、遮挡下性能会明显下降。
误区二:忽视手眼标定误差。相机与机器人基座的外参若偏差 5 mm,末端抓取就可能偏移数厘米。
误区三:只关注 mAP,不看姿态误差。检测框很准但姿态翻转 180°,抓取依然失败。
误区四:训练集与真实场景分布不一致。仿真数据训练的模型在真实光照、遮挡下性能会明显下降。
建议在项目初期就建立“检测—姿态—抓取”的联合评估表:记录每个物体的三维 IoU、ADD 误差、抓取成功率和失败原因。复盘时优先定位是标定、检测还是姿态环节出了问题,而不是盲目更换模型。
五、本课程整体框架
围绕上述链路,课程将依次展开:三维感知基础与坐标系变换、点云与深度数据处理、三维目标检测主流网络、6D 姿态估计与类别级姿态、数据集与标注工具、训练与调优策略、评估指标与误差分析、机器人抓取集成、仿真到真实的迁移,以及典型项目实战。每一节都会给出可运行的代码片段、参数配置和排障思路,帮助你把算法真正落到机器人系统里。