一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

飞行时间到距离计算器的制作方法

2021-11-10 05:20:00 来源:中国专利 TAG:


1.本公开涉及飞行时间到距离的计算。


背景技术:

2.对于飞行时间(time

of

flight,tof)应用,发出同步光脉冲,并由高速光传感器同步测量来自目标的反射。该光脉冲的发送和接收之间的时间延迟被存储在多个时间区间(bin)(例如,计数器)中,以便创建时间直方图。通过识别具有最大数量的计数的区间并确定所识别的区间与什么时间延迟相关联,可以确定到对象的距离。


技术实现要素:

3.总的来说,在一些方面,本公开的主题体现在方法中,包括:向目标发射光脉冲;在光检测器处检测接收的光的存在;获得发射光脉冲和在光检测器处检测到光的存在之间的延迟时间;响应于获得延迟时间,(a)更新对已经获得的延迟时间的总数进行计数的总强度计数器,以及(b)更新多个不同延迟时间计数器中的延迟时间计数器,其中每个延迟时间计数器对获得的具有相应延迟时间值的延迟时间的总数进行计数;监视每个延迟时间计数器的阈值以确定是否超过阈值。
4.方法的实施方式可以包括一个或多个以下特征。例如,在一些实施方式中,该方法包括:基于监视确定第一延迟时间计数器超过阈值;以及基于与超过阈值的第一延迟时间计数器相关联的延迟时间值,计算到目标的距离。
5.在一些实施方式中,该方法包括:基于监视确定第一延迟时间计数器超过阈值;响应于确定第一延迟时间计数器超过阈值,识别第一延迟时间计数器的信噪比(signal

to

noise,snr)阈值;以及确定snr阈值是否超过基线强度值。该方法还可以包括:确定snr阈值超过基线强度值;以及中断对总强度计数器和对多个延迟时间计数器的更新。该方法可以包括:确定snr阈值没有超过基线强度值;以及确定阈值是否对应于第一延迟时间计数器的最大值。该方法可以包括:确定第一延迟时间计数器的阈值不是第一延迟时间计数器的最大值;以及选择不同的值作为新的阈值。该方法可以包括继续对总强度计数器和多个延迟时间计数器的更新,直到超过新的阈值。该方法可以包括:确定第一延迟时间计数器的阈值是第一延迟时间计数器的最大值;压缩多个延迟时间计数器的动态范围以获得新的阈值;以及继续对总强度计数器和多个延迟时间计数器的更新,直到超过新的阈值。
6.在一些实施方式中,该方法包括:确定最大时间段已经过去,而多个延迟时间计数器中的任何一个都没有超过阈值;确定每个延迟时间计数器的当前值和阈值之间的差;以及至少对于具有最小差的延迟时间计数器,计算到目标的距离。该方法可以包括在计算到目标的距离之前:识别阈值的最小所需信噪比(snr)值;以及确定最小所需snr值超过基线强度值。
7.总的来说,在一些方面,本公开的主题由包括以下步骤的方法涵盖:向目标发射光脉冲;在光检测器处检测接收的光的存在;获得发射光脉冲和在光检测器处检测到光的存
在之间的延迟时间;响应于获得延迟时间,(a)更新对已经获得的延迟时间的总数进行计数的总强度计数器,以及(b)更新多个不同延迟时间计数器中的延迟时间计数器,其中每个延迟时间计数器对获得的具有相应延迟时间值的延迟时间的总数进行计数;确定最大时间段已经过去;响应于确定最大时间段已经过去,确定每个延迟时间计数器的当前值和阈值之间的差;以及至少对于具有最小差的延迟时间计数器,计算到目标的距离。
8.方法的实施方式可以包括,例如,在计算到目标的距离之前:识别阈值的最小所需信噪比(snr)值;以及确定最小所需snr值超过基线强度值。
9.总的来说,在一些方面,本公开的主题由飞行时间监视电路涵盖,该飞行时间监视电路包括:延迟时间计算器,其被配置为获得光脉冲发射时间和光脉冲检测时间,并且将延迟时间计算为光脉冲发射时间和光脉冲检测时间之间的差;总计数器,其耦合到延迟时间计算器,并且被配置为对已经由延迟时间计算器计算的延迟时间的总数进行计数;多个延迟时间计数器,其耦合到延迟时间计算器,其中每个延迟时间计数器对已经由延迟时间计算器计算的具有相应延迟时间值的延迟时间的总数进行计数;以及阈值检查电路,其耦合到多个延迟时间计数器,其中阈值检查电路被配置为监视每个延迟时间计数器的阈值,以确定多个延迟时间计数器中的任何一个是否超过阈值。
10.监视电路的实施方式可以包括一个或多个以下特征。例如,在一些实施方式中,如权利要求13所述的飞行时间监视电路包括:包括信噪比(snr)查找表的存储器,其耦合到阈值检查电路。存储器还可以进一步包括强度阈值查找表。
11.这里公开的技术和设备的实施方式可以具有多个优点。例如,在一些实施方式中,这里公开的技术和设备不需要高处理功率来找到具有最高值的延迟时间计数器。通过减少所需处理功率的量,热功耗也继而减少,从而允许开发更高分辨率的直接飞行时间相机。
12.记录和生成飞行时间值的直方图可能会消耗大量功率。在一些实施方式中,如果达到用于检测延迟时间的峰值计数的预定信噪比(snr),则当前公开的技术和设备可以用于停止积分(integration),从而导致处理功率的减少。
13.在一些实施方式中,电路处理的减少允许使用更少的处理密集的电路。在一些情况下,这种电路甚至可以在与光发射器和检测器元件相同的芯片上实现,从而减小系统尺寸,并且在一些情况下,允许减小芯片(例如,晶粒(die))尺寸。在一些实施方式中,这里公开的技术和设备允许实现更高的帧速率。
14.一个或多个实施例的细节在附图和以下描述中阐述。从描述、附图和权利要求中,其他特征和优点将变得显而易见。
附图说明
15.图1是示出示例性飞行时间监视电路的第一部分的示意图。
16.图2是示出示例性tof监视电路的第二部分的示意图。
17.图3是表示由不同延迟时间计数器记录的延迟时间计数的直方图的图。
18.图4是示例性溢出位检查电路的电路示意图。
19.图5是详细说明基于tof信息计算到对象的距离的一般示例性过程的流程图。
20.图6a

6b是详细说明基于tof信息计算到对象的距离的一般示例性过程的流程图。
21.图7是示出动态范围压缩的示例的图。
具体实施方式
22.飞行时间(tof)相机试图通过测量相机提供的人造光信号的往返时间来解析检测器和对象之间的距离。示例性tof相机可以包括许多像素,例如大约60个像素的级别或更多。对于每个像素,光信号的发射和其在从对象反射之后的检测之间的延迟时间被基于该延迟时间的特定值而记录并存储在多个区间(例如,32个区间)之一中,从而创建不同延迟时间的直方图。根据信噪比,对于特定延迟时间值具有最高计数数量的区间可以对应于光信号从相机到对象并返回相机的往返所需的实际时间。其他区间也可以记录计数,其可能是由于环境光或其他不相关的源。为了确定哪个区间具有最大数量的计数、并因此可以表示飞行时间,可以配置电路来比较不同区间的值。取决于特定的电路结构,该过程可能消耗大量的功率和大量的时间。
23.本公开涉及用于提供简化评估过程的技术和设备,该简化评估过程确定哪个区间具有最大数量的延迟时间计数,并且在某些情况下,其允许实现处理时间和功率的减少。具体而言,本文公开的用于确定哪个区间具有最大数量的延迟时间计数的技术包括为每个区间提供延迟时间计数器,其中延迟时间计数器对存储到与该计数器相关联的区间的延迟时间的数量进行计数,并且监视每个延迟时间计数器的阈值以确定是否已经达到阈值。如果对于计数器已经达到阈值,则与该延迟时间计数器相关联的延迟时间被选择作为光信号完成其往返所需的可能时间以进行进一步评估。通过查看阈值而不是通过将每个计数器的值相互比较,在一些实施方式中,有可能显著减少确定特定飞行时间所需的处理功率和时间的量。此外,如果超过阈值,但是没有达到期望的信噪比(snr),则当前公开的技术和设备可以用于压缩延迟时间计数器的动态范围,使得阈值可以增加并且可以达到期望的信噪比。此外,在一些情况下,当前公开的技术和设备可以用于在尽管尚未达到阈值但达到期望的snr时停止监视电路的积分时间,以便
24.图1是示出示例性tof监视电路100的第一部分的示意图。tof监视电路100包括光源102和光检测器104。光源102可以包括例如垂直腔表面发射激光器或发光二极管以及其他类型的光源。光检测器104可以包括例如光电二极管(例如单光子雪崩二极管或钉扎光电二极管)以及其他类型的检测器。光源例如以其中脉冲非常短的光脉冲的形式来发射光。发射的光照射对象并可以被对象反射回检测器104。检测器104记录从对象反射的光的测量。例如,在一些实施方式中,检测器104可以记录单个光子。然而,在一些情况下,检测器104还记录由于噪声(例如散粒噪声)而错误出现的光的“存在”。在任一情况下,tof监视电路100的延迟时间计算器106基于光源102发射光脉冲的时间和光检测器104检测到反射的光脉冲(或噪声)的时间来计算延迟时间。尽管光源102、光检测器104和延迟时间计算器106在这里被示为tof监视电路100的一部分,但是这些元件中的任何一个或全部都可以与tof监视电路100分开形成。
25.根据延迟时间计算器106获得的值,多个不同的延迟时间计数器110(i)

110(n)中的一个可以递增计数。例如,如果延迟时间计算器106计算17ns的延迟时间,则与15ns和20ns之间的延迟时间相关联的延迟时间计数器可以递增。可替换地,如果延迟时间计算器106计算12ns的延迟时间,则与10ns和15ns之间的延迟时间相关联的延迟时间计数器可以递增。延迟时间计数器的总数确定tof监视电路的可用分辨率。延迟时间计数器的总数n可以包括例如16个计数器、24个计数器、32个计数器、40个计数器、50个计数器以及其他数量
的计数器。
26.tof监视电路100还包括总计数器108。总计数器108对tof监视电路100记录的延迟时间的总数进行计数。也就是说,总计数器108将延迟时间计数器110记录的延迟时间的数量计数为单个总和。例如,如果第一延迟时间计数器110(i)记录两个脉冲,第二延迟时间计数器110(ii)记录两个脉冲,第三延迟时间计数器110(iii)记录十个脉冲,那么由总计数器108记录的计数的总数是十四。
27.tof监视电路100还包括阈值检测电路112。阈值检测电路112被配置为监视/评估延迟时间计数器110中的任何一个是否已经达到阈值。通过监视延迟时间计数器110中的任何一个是否已经达到阈值,而不是将每个延迟时间计数器100的值相互比较以查看在设定的时间段之后哪个最大,阈值检测电路112在某些实施方式中可以减少所需的处理时间和消耗的功率。例如,图1描绘了以这种方式配置的阈值监视电路112的一个这样的示例。具体而言,图1的阈值监视电路112包括多个溢出位检查电路112(i)至112(n)。每个溢出位检查电路112耦合到不同的相应延迟时间计数器110。更具体地,每个溢出位检查电路112监视每个相应延迟时间计数器110中单个位的值的值。被监视的位可以被称为“溢出”位,当改变状态时,该位表示已经达到阈值。例如,每个延迟时间计数器110的溢出位可以被预定义为该计数器的最高有效位。此外,如果最高有效位的状态从0变为1,这可以表示已经达到阈值,这又意味着该特定计数器已经记录了预定义数量的延迟时间计数。耦合到其中达到阈值的延迟时间计数器的特定溢出位检查电路112然后可以为由tof监视电路100执行的过程的剩余部分设置识别该特定延迟时间计数器的标志。然而,溢出位的位置不限于计数器的最高有效位,并且可以是每个延迟时间计数器内的任何位。在某些实施方式中,溢出位的位置在每个延迟时间计数器中是相同的。此外,当位状态从0变为1时,溢出或阈值条件不一定必须发生,而是可以在位状态从1变为0时发生。图1的示例中溢出位检查电路112的总数n与延迟时间计数器110的总数相同。
28.图2是示出示例性tof监视电路100的第二部分的示意图。如图2所示,总计数器108和阈值检测电路112(如本文所解释的,可以由多个溢出位检查电路形成)都耦合到tof计算电路200。tof计算电路200可以包括例如数字状态机或微处理器,当被编程时,其被配置为执行这里公开的操作。tof计算电路200可以接收由总计数器108记录的时间延迟的总计数。tof计算电路200还可以接收由阈值检测电路112的每个单独的时间延迟计数器记录的总计数。tof计算电路200被配置为使用接收到的时间延迟计数和延迟时间计数的总数来计算到对象的距离并确定目标对象是否在范围内。另外,tof计算电路200可以被配置为评估记录的计数是否达到期望的阈值snr水平,评估是否已经达到光检测积分时间,以及修改阈值检测电路112的阈值。
29.tof计算电路200包括存储器202。存储器202可以存储表示snr查找表204和强度阈值查找表206的数据以及其他数据。snr查找表204可以存储例如根据相应阈值索引的snr值的第一阵列。例如,第一阵列中的每个snr值可以表示当达到延迟时间计数器的某个阈值时期望的预定义目标snr值。在一些实施方式中,在第一阵列中识别的阈值可以由对应于延迟时间计数器的所选溢出位的位位置(bit position)来表示,使得第一阵列中的阈值是所选溢出位的函数。可替换地,或者附加地,根据累积延迟时间计数来索引第一阵列中的snr值。例如,第一阵列中的每个snr值可以表示当已经记录了某个阈值数量的延迟时间计数时期
望的预定义目标snr值,使得snr值是所有延迟时间计数器、单个延迟时间计数器或少于所有延迟时间计数器的多个延迟时间计数器上的延迟时间计数数量的函数。
30.强度阈值查找表206可以存储例如强度阈值的第二阵列。第二阵列中的强度阈值可以根据相应的阈值进行索引。例如,强度阈值可以将总时间延迟计数器108的预定义目标强度表示为特定所选阈值的函数。在一些实施方式中,在第一阵列中识别的阈值可以是对应于延迟时间计数器的所选溢出位的位位置的函数。可替换地,或者另外,根据光检测过程的时间步长(time step)来索引第二阵列中的强度阈值。也就是说,在一些实施方式中,本文公开的光检测过程包括在其处累积光开始被积分的定义的起始点。积分过程可以根据以预定义时间步长递增的时钟来计时。然后,第二阵列的目标强度值可以被定义为特定时间步长的函数。可替换地,或者另外,目标强度值可以被定义为积分过程的总时间的函数。也就是说,强度值可以可替换地或附加地根据已经过去的累积积分时间量来索引。在一些实施方式中,存储器202还可以存储由总计数器108和溢出位检查计数器112记录的计数。
31.tof计算电路200还包括snr和强度评估电路208。snr和强度评估电路208可以被配置为从记录的延迟时间计数中导出snr值,并确定导出的snr值是否满足从snr查找表204中确定的指定最小snr。根据是否达到最小snr,以及在某些情况下是否满足其他条件,tof计算电路200还可以被配置为执行一个或多个附加操作。例如,在一些实施方式中,tof计算电路200可以被配置为压缩延迟时间计数的直方图。例如,这种压缩可以通过从最大计数值中减去预定义值来实现。在一些实施方式中,tof计算电路200可以被配置为如果达到最小snr则停止积分。在一些实施方式中,tof计算电路200可以被配置为如果达到最小snr则确定达到阈值水平所需的计数数量。
32.tof计算电路200还包括tof计算器210。tof计算器210可以被配置为确定到对象的距离。例如,tof计算器210可以被配置为接收与最大数量的计数相关联的延迟时间值,并使用该延迟时间值来计算到对象的距离。
33.图3是示出由不同延迟时间计数器(例如图1所示的延迟时间计数器110)记录的延迟时间计数的直方图的图。具体地,直方图表示由不同延迟时间计数器110记录的延迟时间值的分布。纵轴表示计数数量,横轴(标有“区间#”)表示不同的延迟时间值。因此,例如,在图3所示的直方图中,区间的总数是32,这意味着存在可以被电路100识别32个不同的延迟时间值(包括值的范围)。在图3的示例中,计数的总数很少超过20。通常,这些计数可能是由于噪声(例如散粒噪声),而不是发射脉冲和检测脉冲之间的延迟时间的真实指示。相比之下,位于直方图中位置19的区间显示了大量计数(例如,大于60),表明记录了大量具有与区间19相关联的值的延迟时间。如这里所解释的,tof监视电路100可以被配置为评估每个区间以确定是否已经达到阈值,如果确定已经达到阈值,则在确定到对象的距离之前评估是否已经满足一个或多个其他条件。
34.如这里所解释的,tof监视电路100包括阈值检测电路112,其被配置为监视/评估延迟时间计数器110中的任何一个是否已经达到阈值。阈值检测电路112可以被配置为包括多个溢出位检查电路112,每个溢出位检查电路112监视相应延迟时间计数器110中的“溢出”位的值的值。图4是示例性溢出位检查电路112的电路示意图。具体而言,图4描绘了用于n=32个延迟时间计数器中的每一个的相应溢出位检查电路112(n),为了清楚起见,省略了电路112(n=iii)至112(n=xxx)。以溢出位检查电路112(i)为例,电路112(i)包括多个n沟
道cmos晶体管402。电路112(i)中每个晶体管402的源极连接到相应延迟时间计数器110(例如,图1所示的延迟时间计数器110(i))的不同位。例如,晶体管402(a)的源极可以连接到位于延迟时间计数器110(i)的位位置编号6的位。类似地,晶体管402(b)的源极可以连接到位于延迟时间计数器110(i)的位位置编号7的位,而晶体管402(f)的源极可以连接到位于延迟时间计数器110(i)的位位置编号11的位。为了清楚起见,省略了连接到位位置8

10的晶体管。同样,也如图4所示,电路112(ii)中每个晶体管402的源极连接到相应延迟时间计数器110(例如,图1所示的延迟时间计数器110(ii)的不同位。类似的配置适用于每个电路112,即每个电路112内的晶体管的源极分别连接到相应延迟时间计数器110的不同位位置。
35.为了确定阈值检测电路112监视延迟时间计数器110的哪个位,选择位线404耦合到每个晶体管402的栅极。因此,如果选择位线404被设置为高,则该选择位将导通选择位线404所耦合的晶体管402,从而允许相应延迟时间计数器110的位位置被读出到漏极线406上。例如,如果选择位线404(a)被设置为高,而其他选择位线被设置为低,则不同阈值检测电路112中的每个晶体管402(a)将被导通,以将相应延迟时间计数器110中的位位置6的输出值读取到漏极线406。另一方面,如果选择位线404(f)被设置为高,并且其他选择位线被设置为低,则不同阈值检测电路112中的每个晶体管402(f)将被导通,以将相应延迟时间计数器110中的位位置11的输出值读取到漏极线406。
36.如果电路112的漏极线406上的值改变(例如,从“1”变到“0”或从“0”变到“1”),则这可以用作与该电路112或区间相关联的延迟时间计数器110已经达到阈值的指示符。因此,与已经达到阈值的计数器110相关联的值可以表示真实飞行时间。例如,参考图3,如果溢出位被设置在计数器的位位置6,则当延迟时间计数器记录特定延迟时间值的26=64个计数时,达到阈值。
37.然而,在一些实施方式中,计数数量与检测到的平均噪声的信噪比可能不够高,不足以确信特定延迟时间值对应于真实飞行时间值。例如,参考图3,噪声基底可以表示为从总和计数器108获得的总延迟时间计数器除以不同延迟时间计数器/区间的总数。如果噪声基底太高,那么snr可能太低,尽管对于特定延迟时间计数器来说达到了阈值。在这种情况下,tof监视电路100可以增加阈值,以允许计数继续进行并实现更大的snr。可替换地,或者另外,如这里所解释的,tof监视电路100可以压缩直方图,以允许获得更大数量的计数和实现更大的snr。
38.可替换地,在一些实施方式中,在用于评估延迟时间计数中的任何一个是否达到阈值的预定义时间窗口中没有达到阈值。在这种情况下,tof监视电路100可以停止积分并确定每个延迟时间计数器的snr。如果snr足够,tof监视电路100然后可以基于在时间积分停止时具有最大数量的延迟时间计数的延迟时间计数器来计算到对象的距离。可替换地,如果snr不足,tof监视电路100可以增加阈值和/或压缩直方图,以允许获得更大数量的计数和实现更大的snr。
39.关于tof监视电路的过程步骤的附加细节在下面阐述。例如,图5是详细说明用于基于tof信息计算到对象的距离的一般示例性过程500的流程图。过程50可以由tof监视电路(例如tof监视电路100)执行。在第一步骤(502)中,光检测器(例如,光检测器104)记录光脉冲,延迟时间值的测量根据该光脉冲被计算(例如,通过延迟时间计算器106)。然后,与计算的值相关联的区间被递增,其中该区间还被监视其是否达到计数的阈值数量。例如,与延
迟时间值相关联的延迟时间计数器110可以递增并且被阈值检测电路112关于预选溢出位是否被设置进行监视。同时,在步骤(504),使用例如总计数器108递增总脉冲计数的总和。
40.如果延迟时间计数的数量达到阈值(例如,阈值检测电路112检测到预选溢出位处的改变),则计算snr值(506)。例如,可以向tof计算电路200通知溢出检查位电路112之一通过溢出位改变状态而被触发。然后,tof计算电路200可以使用从触发溢出的延迟时间计数器110接收的信息以及从总计数器108计数的延迟时间值的总和。利用该信息,tof计算电路200可以计算snr。例如,tof计算电路200可以获得snr,作为触发溢出的延迟时间计数器110中计数的延迟时间值的总数与计数的延迟时间值的平均数的比率。计数的延迟时间值的平均数可以表示为由总计数器108计数的延迟时间值的总数除以延迟时间值可以被划分成的区间的总数。
41.在计算snr之后,tof计算电路200可以将计算的snr与最小snr进行比较。最小snr可以例如从snr查找表204中获得。如这里所解释的,存储在查找表204中的最小snr值可以根据阈值和/或总延迟时间值计数来索引。因此,从查找表204取得的特定最小snr可以基于例如作为被监视的特定阈值的函数和/或作为总延迟时间计数的函数来选择。以这种方式,当测量结果较少导致分析的可信度可能较低时,可以应用更严格的最小snr值进行比较。例如,如果阈值是第一数量的数据点(例如,特定延迟时间值的60个计数),则从查找表204中取得第一最小snr值。然而,如果阈值是小于第一数量的第二数量的数据点(例如,40个数据点),则可以从查找表204中取得第二不同的最小snr值(例如,更高的最小snr)。
42.利用从查找表204中取得的最小snr,执行与计算的snr的比较。例如,该比较可以由snr和强度评估电路208来执行。如果计算的snr大于最小snr,则tof监视电路100可以停止积分并计算到对象的距离(步骤520)。否则,如果计算的snr小于最小snr,则tof计算电路200可以执行两个不同步骤之一来改善计算的snr值。作为第一选项,tof计算电路200可以增加阈值(508)。例如,tof计算电路200可以改变被溢出位检查电路112作为溢出位进行监视的每个延迟时间计数器110的所选位位置。在具体示例中,tof计算电路200可以将溢出位递增为延迟时间计数器的下一最高有效位。通过递增溢出位,该电路允许记录更多数量的延迟时间计数,从而潜在地增加了计算的snr。
43.如果延迟时间计数器110的最高有效位已经被选择作为溢出位,则tof计算电路200可以压缩计数动态范围(510)。例如,tof计算电路200可以从每个延迟时间计数器110的最大计数范围中减去固定的量。例如,如果记录的最大计数数是2000,则可以从该最大计数中减去1024的固定量,从而为要记录的额外计数提供进一步的范围。过程500然后可以在步骤502再次继续,以计算和记录延迟时间值。
44.如这里所解释的,积分过程可以与定义的时间窗口相关联,在该时间窗口期间发生积分。可替换地或附加地,延迟时间值计数的记录可以与预定义的时间步长相关联,一旦该时间步长过去,该时间步长就触发tof监视电路100修改积分过程。
45.例如,在一些实施方式中,可以为在其期间计算和计数延迟时间值的时间段预定义时间步长或时间窗口。如果达到该预定义时间步长或时间窗口,则tof监视电路100可以计算到对象的距离,即使还没有达到阈值。例如,在一些情况下,如图5所示,如果已经达到预定义的时间步长或时间窗口,则tof监视电路100可以检查是否已经达到针对预定义时间的预期信号强度(512)。在具体示例中,snr和强度评估电路208可以从强度阈值查找表206
获得最小强度阈值。最小强度阈值可以对应于例如由tof监视电路100记录的延迟时间值计数的最小数量。如这里所解释的,最小强度阈值可以作为积分时间(例如,预定义的时间步长或时间窗口)的函数来索引,其中较短的积分时间需要较高的最小强度阈值,较长的积分时间需要较低的值。可替换地,或者另外,最小强度值可以是通过溢出位设置的阈值的函数,其中当位位置不那么高(less significant)时需要较高的最小强度值,而当位位置更高(more significant)时需要较低的最小强度值。
46.在一些实施方式中,使用从查找表208和总延迟时间计数器108获得的信息,snr和强度评估电路208可以评估计数的延迟时间值的总数(如从总计数器108获得的)是否超过最小强度值。如果没有超过最小值,则tof监视电路100可以在502继续延迟时间值记录过程,直到例如达到下一时间步长。
47.如果超过最小值,snr和强度评估电路208然后可以计算实际snr值,并将该实际snr值与从查找表204获得的最小所需snr值进行比较。然而,由于还没有达到延迟时间计数阈值,所以tof监视电路100可以引发阈值被触发。例如,在一些实施方式中,tof监视电路11可以强制区间(例如,延迟时间计数器110)递增(514),即,不记录由实际光脉冲引起的延迟时间值,直到达到区间之一的阈值。
48.一旦对于延迟时间计数器110之一来说达到阈值,snr和强度评估电路208然后评估(516)该特定计数器的snr,如本文先前所解释的。例如,snr和强度评估电路208根据预定义阈值和/或延迟时间值计数的总数从查找表204获得最小snr。
49.如果计算的snr没有超过从查找表204获得的最小snr,则tof监视电路100可以确定没有目标在范围内(518)。如果计算的snr确实超过来自查找表204的最小snr,则tof监视电路100可以计算(200)到对象的距离。在一些实施方式中,tof监视电路100还评估(519)与达到阈值的区间相邻的区间,以提高距离计算精度。例如,除了基于与达到阈值计数的区间相关联的延迟时间值来计算距离之外,tof监视电路100还可以基于与达到阈值的区间最近的下一个或多个区间相关联的(多个)延迟时间值来计算(多个)距离。在一些实施方式中,tof监视电路100可以基于与达到阈值的区间最近的两个、三个、四个、五个或六个区间相关联的延迟时间值来计算距离。
50.图6a

6b是详细说明基于tof信息计算到对象的距离的更具体的示例性过程600的流程图。过程600可以由tof监视电路(例如tof监视电路100)执行。在第一步骤(602)中,并且在积分开始之前,定义积分时间窗口,清除延迟时间值直方图,并且设置阈值延迟时间值计数。定义积分窗口可以包括例如设置最大积分时间以及时间步长。最大积分时间可以定义为时间步长的倍数。清除延迟时间值直方图可以包括例如将延迟时间计数器110重置为零。设置阈值延迟时间值计数可以包括,例如,选择每个延迟时间计数器110的特定位位置以用作溢出检测位。例如,初始阈值可以被设置为16个延迟时间值计数,这将对应于每个延迟时间计数器110的位位置4。在初始化tof监视电路之后,开始积分(604)。
51.在步骤(606),直方图区间(例如,延迟时间计数器110)和强度计数器(例如,总延迟时间值计数器108)累积延迟时间值计数。在步骤(608),确定是否发生了溢出。例如,确定延迟时间计数器110中的任何一个的溢出位是否已经切换状态。如果没有发生溢出,过程600进行到步骤(610),在步骤(610)中确定是否已经达到预定义的时间步长。如果没有达到预定义的时间步长,则积分过程在步骤(606)继续。如果已经发生溢出,tof监视电路将总延
迟时间计数器锁存在其当前值(612)。在这种情况下,积分可能仍然在后台运行。然后从snr查找表(例如,表204)获得最小snr目标值(614)。所选的最小snr目标值可以具有作为阈值(例如,溢出位)和/或迄今为止记录的延迟时间值计数的总数的函数的值。
52.在获得最小snr目标值之后,将目标snr与实际snr进行比较(616)。实际snr可以计算为阈值与所有区间上的平均区间计数之比。如果达到snr阈值,则停止积分(618),并且过程600进行到步骤b(见图6b),在步骤b中计算到对象的距离。如果没有达到目标snr,则检查(620)阈值是否是可由延迟时间计数器记录的最大值。例如,tof监视电路可以检查溢出位是否被设置为每个延迟时间计数器的最高有效位。
53.如果阈值不是可由延迟时间计数器记录的最大值,则可以增加阈值(622)。增加阈值可以包括例如将溢出位移动到下一最高有效位。例如,溢出位可以从每个延迟时间计数器的位位置4改变到每个延迟时间计数器的位位置5。如果阈值是最大值,例如溢出位被设置为延迟时间计数器110的最高有效位,则动态范围可以被压缩。例如,在一些实施方式中,在下一个窗口开始之前,从所有延迟时间计数器中减去值(624)。然后执行第二检查以确定(626)延迟时间计数器的最高有效位处是否仍存在溢出。如果仍存在溢出,则tof监视电路100报告由于动态范围误差导致的无效帧。如果没有溢出,则积分过程返回到步骤606,在步骤606中其继续进行,直到溢出事件发生或到达下一时间步长。
54.如果达到了下一时间步长,但是还没有达到阈值(例如,溢出位尚未改变状态),则tof监视电路锁存并读取(628)总计数器108的当前值。tof监视电路还可以从查找表(例如,查找表206)中查找(630)强度阈值。从查找表获得的特定强度阈值可以是积分过程的预定义时间步长和窗口的函数。然后确定(632)是否已经达到最大时间步长。如果已经达到最大时间步长,则过程600进行到步骤a(见图6b)。如果没有达到最大时间步长,则执行强度计数器阈值与实际强度(例如,总计数器108的值)的比较(634)。如果实际强度值小于阈值,则过程600返回到步骤(606),在步骤(606)继续积分。如果实际强度值大于阈值,则过程进行到步骤a。
55.参考图6b,并在a处继续,如果确定实际强度值大于从查找表获得的阈值强度,则停止积分(636)。读取强度计数器(例如,总计数器108)(638)。然后执行所有延迟时间计数器110的全局递增(640),直到达到阈值(例如,溢出位改变状态)。达到阈值所需的递增数可以保存到存储器中。一旦达到阈值,就从查找表(例如,表204)获得最小snr值(642)。可以将从查找表获得的snr值与强度(例如,总计数器值)进行比较(644)。如果snr阈值小于强度计数器值,则过程600确定在直方图中没有找到目标(646)。如果snr阈值大于强度值,则过程进行到对象距离的计算。例如,过程600可以包括读取(648)与达到阈值的区间相邻的区间的延迟时间计数器值。使用来自相邻区间和达到阈值的区间的信息,tof监视电路然后可以计算(650)到对象的距离,之后过程600结束。
56.图7是示出根据本公开的动态范围压缩的示例的图。如图所示,纵轴表示直方图命中数。例如,这可以表示由延迟时间计数器110之一记录的延迟时间值的数量。横轴表示命中总数,即由tof监视电路记录的延迟时间值的总数。因此,该图可以提供作为特定延迟时间计数器的命中数变化和延迟时间计数的总数的函数的tof监视电路的信噪比的表示。当延迟时间计数器达到其可记录的最大值时,可以压缩计数器的动态范围,以便继续计数。压缩动态范围的示例实施方式是从延迟时间计数器中减去某个固定常数。例如,如图7所示,
一旦延迟时间计数器达到其最大值,就可以减去值1024,从而允许计数器随着由tof监视电路记录的命中总数的继续而继续计数。
57.本说明书中描述的主题以及动作和操作的实施例可以在包括本说明书中公开的结构及其结构等同物的数字电子电路、有形体现的计算机软件或固件、计算机硬件中、或者在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,例如编码在计算机程序载体上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。载体可以是有形的非暂时性计算机存储介质。
58.计算机存储介质可以是机器可读存储器设备、机器可读存储基板、随机或串行存取存储器设备或者它们中的一个或多个的组合,或者是以上的一部分。
59.计算机存储介质不是传播信号。
60.术语“数据处理装置”包括用于处理数据的各种装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。数据处理装置可以包括专用逻辑电路,例如,现场可编程门阵列(fpga)、专用集成电路(asic)或图形处理单元(gpu)。除了硬件之外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
61.计算机程序也可以被称为或描述为程序、软件、软件应用、应用、模块、软件模块、引擎、脚本或代码,可以用任何形式的编程语言(包括编译或解释语言)或者声明性或过程性语言编写;并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、引擎、子例程或适合在计算环境中运行的其他单元,该环境可以包括在一个或多个位置通过数据通信网络互连的一个或多个计算机。
62.计算机程序可以、但不是必须对应于文件系统中的文件。计算机程序可以存储在保有其他程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本,在专用于所讨论的程序的单个文件中,或者在多个协同文件(例如存储一个或多个模块、子程序或代码部分的文件)中。
63.在一些情况下,本说明书中描述的过程和逻辑流程可以由一个或多个计算机来执行,该一个或多个计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行操作。这些过程和逻辑流程也可以由专用逻辑电路来执行,例如,fpga、asic或gpu,或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
64.适于执行计算机程序的计算机可以基于通用或专用微处理器或这两者,或者任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是用于运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路来补充,或者包含在专用逻辑电路中。
65.通常,计算机还将包括大容量存储设备或可操作地耦合到一个或多个大容量存储设备,以从其接收数据或向其传输数据。大容量存储设备可以是例如磁盘、磁光盘或光盘或固态驱动器。然而,计算机不需要有这样的设备。此外,计算机可以嵌入到另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备,例如通用串行总线(usb)闪存驱动器,仅举几例。
66.本说明书结合系统、装置和计算机程序组件使用术语“配置为”。对于一台或多台计算机的系统来说,被配置为执行特定的操作或动作意味着该系统已经在其上安装了软件、固件、硬件或它们的组合,该软件、固件、硬件或它们的组合在操作中导致该系统执行该操作或动作。对于一个或多个计算机程序来说,被配置为执行特定操作或动作意味着该一个或多个程序包括指令,当由数据处理装置执行时,该指令使得该装置执行该操作或动作。对于专用逻辑电路来说,被配置为执行特定操作或动作意味着该电路具有执行该操作或动作的电子逻辑。
67.已经描述了许多实施例。然而,应当理解,在不脱离本发明的精神和范围的情况下,可以进行各种修改。因此,其他实施例在以下权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献