ToF原理记录

2024-06-13 14:20
文章标签 记录 原理 tof

本文主要是介绍ToF原理记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • 1. ToF是什么?
    • 2. ToF深度测量原理
      • 2.1 脉冲调制法
      • 2.2 连续波调制法

1. ToF是什么?

飞行时间(Time-of-Flight,ToF)基本原理是通过连续发射光脉冲(一般为不可见光)到目标物体上,然后接收从物体反射回来的光脉冲,通过探测光脉冲往返的飞行时间来计算被测物体的距离。其根据调制方法的不同,一般可分为两种:脉冲调制(Pulsed Modulation)和连续波调制(Continuous Wave Modulation)。

2. ToF深度测量原理

2.1 脉冲调制法

在这里插入图片描述

图1.脉冲调制法测距原理图

脉冲调制法一般采用方波脉冲,是通过计时器直接计算脉冲发射和接收的时间差,进而求得距离。这种测量方法简单,响应较快,但是对物理器件性能要求很高,对时间测量精度要求也较高。

在这里插入图片描述

在脉冲调制方案中,一般采用方波调制的照射光源,在数字电路中较容易实现。光探测器的每一个像素都是由一个将入射光转换为电流感光单元组成,连接2个由调解模块控制的开关(图3中的G0和G1)可以把电流导入不同的可以储存电荷的电容(图3中的C1和C2)里根据图2和图3可知,在测距过程中,当激光器发射光脉冲的同时,高频开关调到G1、光敏元件连接C1电容、产生相位A的脉冲窗口,C1电容开始接收电荷,一个光脉冲发射完毕,开关调到G0、光敏元件连接C2电容、产生另一个延迟相位B的脉冲窗口,C2电容开始接收电荷。根据电容C1和C2中各自存储的电荷量就可计算得到目标物体和ToF的距离。记光的速度为 c c c t p t_p tp为光脉冲的持续时间, Q 1 Q_1 Q1表示C1电容收集的电荷量, Q 2 Q_2 Q2表示C2电容收集的电荷量, t d t_d td表示光脉冲从发射、反射到被接收的飞行时间,则距离 d d d的计算如下:
t d = t p × Q 2 Q 1 + Q 2 t_d = t_p\times\frac{Q_2}{Q_1+Q_2} td=tp×Q1+Q2Q2

d = c × t d 2 d = \frac{c\times{t_d}}{2} d=2c×td

在实际场景中由于单个光脉冲的持续时间非常短,所以单帧测量时间内上面所述的发射、接收过程会重复几千次,直到达到曝光时间,将不同电容接收的电荷量进行积分,然后用上面公式的方法计算出脉冲飞行时间,从而得到目标距离

  • 最小可测量距离 d m i n d_{min} dmin:物体距离很近,光脉冲从发射到被反射接收的过程很快,在较早的采样周期内电容C1就收集了所有的电荷,而在延迟的采样周期内电容C2没有收集电荷,即 E 2 = 0 E_2=0 E2=0,代入公式会得到 d m i n = 0 d_{min}=0 dmin=0
  • 最大可测量距离 d m a x d_{max} dmax:物体距离远,较早的采样周期内光脉冲还没发射到接收器处,即电容C2收集了所有电荷,电容C1中根本没有收集到电荷。然后根据公式可得 d m a x = 0.5 × c × t p d_{max}=0.5\times{c}\times{t_p} dmax=0.5×c×tp,因此最大可测量距离是由光脉冲宽度决定的。例如, t p = 50 n s t_p=50ns tp=50ns,代入上式可得到 d m a x = 0.5 × ( 3 × 1 0 8 m / s ) × ( 5 × 1 0 − 8 s ) = 7.5 m d_{max}=0.5\times(3\times10^8m/s)\times(5\times10^{-8}s)=7.5m dmax=0.5×(3×108m/s)×(5×108s)=7.5m

🔔 相位模糊现象

下图中Case 1为正常情况下的脉冲ToF测距场景,但当测量距离较远,光脉冲飞行一个来回的时间超过了两次连续发射脉冲的间隔,传感器在发射第二个光脉冲后才接收到第一个光脉冲的反射波,就会把该反射波错认为是第二个光脉冲的近距离反射波,这时就会出现相位模糊现象,如Case 2。相位模糊现象会限制ToF的有效探测距离。在测量远距离物体时,可以适当降低测量频率、增加两次测量之间的距离、减少测量次数。但是,减少测量次数会同时降低测量精度,相当于是用精度换取有效探测距离。

在这里插入图片描述

这种方法对物理器件性能要求很高,控制开关的时钟精度要求非常高,要产生高精度、高重复性的高频脉冲,照射单元和ToF传感器均需要高速信号的控制,才能实现高精度的深度测量。

2.2 连续波调制法

在连续波调制法中,一般采用连续正弦波调制,通过光源不断发射调制过的红外激光,光束经被测物体表面反射后,有一部分光线按原路径返回并被探测器接收,由于发射、接收信号之间存在相位差,因此可以通过相位差检测技术间接地计算光的飞行时间差。

在这里插入图片描述

图4.连续波调制法测距原理图

与脉冲波调制不同的是,连续波调制法每次测量获取多个样本,每个样本之间相位差为90°,共采4个样本,分别是C1-C4,大部分的ToF都是使用这种方法,即4相法,这样在数字运算中比较容易实现。

在这里插入图片描述

假设发射的信号 s ( t ) s(t) s(t)的振幅是 A e A_e Ae,正弦波调制的频率是 f f f,经过 Δ t \Delta{t} Δt时间延迟之后收到的正弦信号为 r ( t ) r(t) r(t),光信号能量衰减后的振幅为 A r A_r Ar,由环境光、系统内部偏移引起的偏移为 B r B_r Br。连续波深度传感器发送的正弦波信号可以表示为:
s ( t ) = A e ( 1 + s i n ( 2 π f t ) ) s(t)=A_e(1+sin(2\pi{ft})) s(t)=Ae(1+sin(2πft))
信号 s ( t ) s(t) s(t)遇到目标物体会发生反射,有一部分光线沿原路径返回并被传感器所接收,会有一个相位延迟 Δ φ \Delta{\varphi} Δφ,因此反射后的信号可表示为:
r ( t ) = A r ( 1 + s i n ( 2 π f t − Δ φ ) ) + B r r(t)=A_r(1+sin(2\pi{ft}-\Delta{\varphi}))+B_r r(t)=Ar(1+sin(2πftΔφ))+Br
4次采样(C1-C4)时间间隔T/4,即采样时间分别为0,1/4T,1/2T,3/4T。所以4次采样所接收的信号可以表示为:
r i = r ( t ) = A r s i n ( 2 π f t − Δ φ ⏟ i π 2 − Δ φ ) + ( A r + B r ) , i = 0 , 1 , 2 , 3 r_i=r(t)=A_rsin(\underbrace{2\pi{ft}-\Delta{\varphi}}_{\frac{i\pi}{2}-\Delta{\varphi}})+(A_r+B_r),i=0,1,2,3 ri=r(t)=Arsin(2Δφ 2πftΔφ)+(Ar+Br),i=0,1,2,3
从而可以得到下列方程式:
{ r 2 − r 0 = A r s i n ( π − Δ φ ) − A r s i n ( − Δ φ ) = 2 A r s i n Δ φ r 1 − r 3 = A r s i n ( π 2 − Δ φ ) − A r s i n ( 3 π 2 − Δ φ ) = 2 A r c o s Δ φ \begin{cases} r_2-r_0=A_rsin(\pi-\Delta{\varphi})-A_rsin(-\Delta{\varphi})=2A_rsin\Delta{\varphi} \\ r_1-r_3=A_rsin(\frac{\pi}{2}-\Delta{\varphi})-A_rsin(\frac{3\pi}{2}-\Delta{\varphi})=2A_rcos\Delta{\varphi} \end{cases} {r2r0=Arsin(πΔφ)Arsin(Δφ)=2ArsinΔφr1r3=Arsin(2πΔφ)Arsin(23πΔφ)=2ArcosΔφ
从而计算出 Δ φ \Delta{\varphi} Δφ的值:
Δ φ = a r c t a n ( r 2 − r 0 r 1 − r 3 ) = a r c t a n ( Q 2 − Q 1 Q 3 − Q 4 ) \Delta{\varphi}=arctan\left(\frac{r_2-r_0}{r_1-r_3}\right)=arctan\left(\frac{Q_2-Q_1}{Q_3-Q_4}\right) Δφ=arctan(r1r3r2r0)=arctan(Q3Q4Q2Q1)
可以看出,电荷量 Q 3 − Q 4 Q_3-Q_4 Q3Q4 Q 2 − Q 1 Q_2-Q_1 Q2Q1可以抵消由测量器件或者环境光而引起的固定偏差,这二者的比值则可以消除距离测量中增益常量的影响,比如系统中的放大或衰减、或者反射的强度。由此也能计算得到测量距离:
d = c × Δ t 2 = c × Δ φ 4 π f d=\frac{c\times\Delta{t}}{2}=\frac{c\times{\Delta{\varphi}}}{4\pi{f}} d=2c×Δt=4πfc×Δφ
信号衰减后的振幅 A r A_r Ar和信号强度偏移 B r B_r Br可得:
{ A r = ( Q 3 − Q 4 ) 2 + ( Q 2 − Q 1 ) 2 2 B r = Q 1 + Q 2 + Q 3 + Q 4 4 − A r \begin{cases} A_r=\frac{\sqrt{(Q_3-Q_4)^2+(Q_2-Q_1)^2}}{2} \\ B_r=\frac{Q_1+Q_2+Q_3+Q_4}{4}-A_r \end{cases} {Ar=2(Q3Q4)2+(Q2Q1)2 Br=4Q1+Q2+Q3+Q4Ar

反射波振幅 A r A_r Ar与偏移 B r B_r Br会影响到深度测量精度,深度值方差可由下式进行估计:
σ = c 4 2 π f × A r + B r c d × A r \sigma=\frac{c}{4\sqrt{2}\pi{f}}\times{\frac{\sqrt{A_r+B_r}}{c_d\times{A_r}}} σ=42 πfc×cd×ArAr+Br
调制常量为 c d c_d cd,其表示ToF传感器分离和收集光电信号的好坏程度。由该方差公式可知,大幅度 A r A_r Ar、高调制频率 f f f和高的调制对比度(即低的 B r B_r Br,调制对比度指调制信号的最大振幅和最小振幅之间的比率, B r B_r Br可以影响调制对比度,环境光会增加背景噪声,从而降低调制对比度;系统内部偏移也会导致信号的失真,降低调制对比度,因此ToF系统需要适当的信号处理和校准来抵消这些影响)可以增加测量精度。此外,在高频的情况下,由于芯片硅半导体的特性,会导致调制对比度衰减。连续波调制的测量是基于相位的,每 2 π 2\pi 2π重复一次,距离会产生锯齿(相位模糊现象),而产生锯齿的距离被称为模糊距离,可用下面公式表示:
d a m b = c 2 f d_{amb}=\frac{c}{2f} damb=2fc
所以最大的有效观测距离就是 d a m b d_{amb} damb,若需要增加有效观测距离,和脉冲调制法一样的,需要减小调制的频率,同样这样会导致测量精度下降。但是,连续波ToF可以利用双频解决相位模糊现象,利用两个不同频率的测量数据去求解相位模糊度,从而恢复正确深度值。借助双频测量可以同时实现高精度测量和高有效探测距离

相对于脉冲波调制方案,连续波调制法要求更低而测量精度更高,因而大多数采用连续波调制法。


以上资料来自ToF与立体视觉技术相结合的三维重建方法研究_知网

这篇关于ToF原理记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1057551

相关文章

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手