04-传感器与感知-深度传感器
作者:姚博文 · 2026-09-15
深度传感器(Depth Sensors:结构光 / iToF / dToF / 3D 激光)
定位:讲透四类 3D 感知原理(结构光 / iToF / dToF / 3D 激光)、深度图质量、深度→点云变换与 ROS2 集成,完成小车的近距 3D 感知选型 | 适用:智能小车/移动机器人开发
1\. 概述
1.1 这篇解决什么问题
单色/彩色相机(见同目录 `相机与标定.md`)告诉你"场景长什么样",但不告诉你"离你多远";单点测距传感器(超声、单点 ToF,见 `测距传感器.md`)太稀疏,只有几个点。**深度相机(Depth Camera)**在视场内**逐像素**输出距离——深度图(Depth Map),逐像素反投影即可得到稠密的 3D 点云(Point Cloud)。
对智能小车,深度传感器主要用在:
1. **近距离避障**:深度图 → 点云 → 2D 激光(`point_cloud_to_laserscan`)→ Nav2 costmap;
2. **人体检测**:深度阈值分割,或用 Kinect 系 SDK 现成的骨骼/人体跟踪;
3. **室内定位辅助**:深度点云可喂给点云/视觉惯性定位(进阶);
4. **操作抓取**(仅带机械臂的机器人):深度点云 + 物体位姿估计。
1.2 在自主导航链路中的位置
深度相机负责 **近距(0.2–10 m)** 的 3D 感知环节;远距(几十米)交给 2D/3D 激光雷达——两者怎么选见第 3 节。
1.3 四大原理速览(细节见第 2 节)
| 原理 | 代表产品 | 核心思想 | 典型有效距离 | 抗环境光 |
| --- | --- | --- | --- | --- |
| 结构光 Structure Light | Kinect v1/v2, Azure Kinect | 投射图案,看图案变形,三角测量 | 0.5–8 m | 一般(强红外光干扰) |
| iToF(间接飞行时间) | 早期 ToF 相机、部分 ADAS 相机 | 调连续调制红外光的相位差 | 0.5–10 m | 一般(阳光 940 nm 干扰) |
| dToF(直接飞行时间) | RealSense D435/D455/D405, Apple LiDAR | 直接测量单脉冲光飞行时间 | 0.2–10 m(室内) | 好(时间门控采样) |
| 3D 激光 LiDAR | Livox Mid-360, 禾赛 Pandar40 | 多线/固态 dToF,机械或电扫描 | 5–100 m+ | 好(主动强光源) |
💡 选型先回答 3 个问题:① 量程要多少(1 m 还是 30 m)?② 什么环境(室内/室外/强光)?③ 车端有多少算力做后处理?深度相机与 3D 激光**不互换**:前者"近距 + 稠密 + 便宜",后者"远距 + 室外 + 360°",但贵一个数量级。
2\. 基本原理
2.1 结构光(Structured Light)
**原理**:投影器(Projector)向场景投射已知图案;图案被场景 3D 结构"变形";红外相机拍下降形后的图案;对比变形量即可恢复每点的 3D 坐标。核心是**三角测量(Triangulation)**。
某个图案点标称投影在像平面 $u_0$,实际拍在 $u$,则深度:
$$
Z = \frac{f \cdot b}{u - u_0}
$$
其中 $f$ 为相机焦距(像素单位),$b$ 为投影器与相机间距(基线)。注意偏移量 $(u-u_0)$ 越小 $Z$ 越大——**远距精度完全依赖亚像素级的偏移估计**,这是结构光的固有极限(也是 Kine