1. ToF技术全景概览:从原理到应用,一张图看懂ToF测距的三种主流方案
各位工程师朋友,咱们直接进入正题。
ToF,全称Time of Flight,翻译过来就是“飞行时间”。说白了,就是通过测量光从发射到反射回来所用的时间,来算出目标距离。这个原理听起来简单,但真正落地到产品里,坑可不少。我最早接触ToF是在2016年做扫地机避障项目,那时候市面上方案还不多,踩过的雷现在想起来都心疼。
今天这一章,咱们先把ToF的三种主流方案理清楚。你只有知道它们各自是什么、能干什么、不能干什么,后面调优的时候才不会走弯路。
1.1 一张图看懂三种方案
先别急着看文字,我习惯用一张图把核心逻辑串起来。下面这张SVG图,是我自己总结的,把iToF、dToF、扫描式ToF的测距原理、优缺点、典型场景都画进去了。
这张图我建议你保存下来。每次做方案选型的时候,拿出来看一眼,基本不会选错。
1.2 iToF:连续波调制的“相位差”玩法
iToF,全称是indirect Time of Flight,间接飞行时间。它不直接测量光飞行的时间,而是通过发射连续调制的光波,测量发射光和反射光之间的相位差,再换算成距离。
你想想看,这就像你扔出去一个球,不数它飞了多久,而是看它回来时和出发时的“节奏”差了多少。这个思路很巧妙,但有个天然缺陷——相位差有周期性,超过一个周期就模糊了。所以iToF的测距范围受调制频率限制。
核心公式:
距离 d = (c × Δφ) / (4π × f_mod)
其中c是光速,Δφ是相位差,f_mod是调制频率。
我在项目中遇到过最头疼的问题,就是iToF的多径干扰。举个例子,你对着一个墙角测距,光在墙角和地面之间来回反射,最后传感器收到的是多个路径叠加的信号。这时候算出来的距离,既不是墙角也不是地面,而是一个“四不像”的值。嗯,这个坑后面我们会专门讲怎么填。
我的经验:iToF在0.3米到5米范围内表现最好。超过8米,信噪比下降很快。如果你要做手机人脸识别或者手势控制,iToF是性价比之王。
1.3 dToF:直接计时的“硬核”方案
dToF,direct Time of Flight,直接飞行时间。它比iToF更“暴力”——直接发射一个短脉冲,然后用高精度计时器测量光往返的时间。时间乘以光速再除以2,距离就出来了。
说白了,这就是个“秒表”思路。但难点在于,光速太快了——1纳秒光能跑30厘米。你要测1厘米的精度,计时精度就得达到皮秒级。这可不是普通单片机能干的事,得用专门的SPAD(单光子雪崩二极管)和TDC(时间数字转换器)。
| 参数 | iToF | dToF |
|---|---|---|
| 测距原理 | 相位差 | 直接计时 |
| 典型测距范围 | 0.1~10m | 0.1~100m+ |
| 精度(近距离) | ±1~3cm | ±1~5cm |
| 抗环境光能力 | 弱 | 强 |
| 多径干扰 | 严重 | 较好 |
| 典型芯片 | TI OPT系列 | ST VL53L系列 |
| 成本 | 低 | 中高 |
我曾经在一个自动驾驶项目中用过dToF激光雷达。当时遇到的问题是,在强阳光下,SPAD的噪声急剧增加,导致误触发。后来我们加了光学滤波片和算法上的噪声门限自适应,才算搞定。这个经验后面会详细讲。
注意:dToF虽然测距远,但它的分辨率通常不如iToF。因为SPAD阵列的像素尺寸大,很难做到高分辨率。如果你需要同时兼顾远距离和高分辨率,那就得考虑融合方案了。
1.4 扫描式ToF:逐点扫描的“工匠”方案
扫描式ToF,说白了就是用一个单点或者线阵的ToF传感器,配合机械或者MEMS振镜,逐点扫描整个视场。它不追求一次拍一张深度图,而是像打印机一样,一行一行、一点一点地把距离数据“扫”出来。
这种方案的好处很明显——精度极高。因为每个点都是独立测量的,没有像素间的串扰。而且视场角可以做得很大,甚至360度。但代价就是帧率低,而且有机械运动部件,可靠性和体积都是问题。
我记得有一次做工业检测项目,客户要求测量一个大型铸件的三维轮廓,精度要求0.1毫米。iToF和dToF都达不到,最后我们用了线扫描式ToF,配合高精度编码器,才勉强过关。那段时间天天调算法,头发都掉了不少。
三种方案选型速查:
- 选iToF:预算有限、近距离(<5m)、需要高帧率(>30fps)、对多径不敏感的场景。比如手机、平板、智能家居。
- 选dToF:需要远距离(>10m)、强光环境、多径干扰严重的场景。比如车载激光雷达、无人机避障。
- 选扫描式:需要超高精度、大视场角、不介意帧率低的场景。比如工业测量、文物3D扫描。
1.5 避坑指南:我踩过的三个大坑
做ToF这么多年,有些坑是绕不过去的。我分享三个最典型的,你遇到了至少知道往哪个方向排查。
坑一:环境光饱和
我第一次用iToF做户外测试,大晴天,传感器直接“瞎”了——输出全是噪声。后来才知道,环境光中的红外成分会饱和像素单元。解决方案是加窄带滤光片,或者用算法做背景光抑制。
坑二:多径干扰导致“鬼影”
这个在iToF里尤其常见。你对着一个玻璃茶几测距,传感器会收到茶几表面和地面两个反射信号,结果算出来的距离在两者之间飘。我后来用多频率调制+解卷积算法,才把这个问题压下去。
坑三:温度漂移
dToF的TDC对温度很敏感。有一次我们在实验室调得好好的,拿到现场(40度高温)就偏了2厘米。后来加了温度补偿查表,才算稳定。这个细节很多新手会忽略。
我的建议:不管选哪种方案,第一版硬件回来之后,先做三个测试——强光测试、多径测试、高低温测试。这三个过了,后面算法调优才有基础。
1.6 本章小结
这一章咱们把ToF的三种主流方案过了一遍。iToF靠相位差,适合近距离高帧率;dToF直接计时,适合远距离强光;扫描式逐点测量,精度最高但帧率低。没有完美的方案,只有最适合你应用场景的方案。
下一章,我会带你深入iToF的算法细节,包括调制频率怎么选、相位解包裹怎么做、多径干扰怎么抑制。这些都是实战中绕不开的硬骨头。
公众号:蓝海资料掘金营,微信deep3321