Continuous-Wave TOF (CW-TOF)法通过测量发射波与接收波的相位差来计算距离。假设相位差为phi, 调制频率为fm, 则距离值计算为:
d = c 2 f m ∗ ( ϕ 2 π + k ) d=\frac{c}{2f_{m}}*(\frac{\phi}{2\pi}+k) d=2fmc∗(2πϕ+k)
式中,c为光速,约为3*108m/s, k为正整数,代表整数周期的个数。如果仅仅使用一种调制频率进行距离测量,无法确认真实距离落在第几个距离周期,即无法确认k值,这种现象称为TOF测距的距离模糊现象,通常一次测量中默认k=0。
在调制频率为fm时,整个周期的距离称之为当前调制频率下的模糊距离( Unambiguous Range):
U R = c 2 f m UR=\frac{c}{2f_{m}} UR=2fmc
解决TOF距离模糊的一种方法为双频测量,即对着同一个物体使用两种不同的频率进行测量,通过两次测量结果确定出真实距离。
假设频率为 f A f_A fA时的测量相位为 ϕ A \phi_A ϕA, 频率为 f B f_B fB时的测量相位为 ϕ B \phi_B ϕB, 那么 f A f_A fA时的最大测量距离 d u A = c 2 f A d_{uA}=\frac{c}{2f_A} duA=2fAc, f B f_B fB时的最大测量距离 d u B = c 2 f B d_{uB}=\frac{c}{2f_B} duB=2fBc。
将 f A : f B f_A:f_B fA:fB转化为两个互为质数的整数对的比值 M A : M B M_A:M_B MA:MB。
另外假设 ϕ A \phi_A ϕA对应的模糊次数为 n A n_A nA, ϕ B \phi_B ϕB对应的模糊次数为 n B n_B nB,则 n A n_A nA的范围为0~MA-1, n B n_B nB的范围为0~MB-1。
另外将相位转换到[0, 1)的范围内,有: P A = ϕ A 2 π P_A = \frac{\phi_A}{2\pi} PA=2πϕA, P B = ϕ B 2 π P_B = \frac{\phi_B}{2\pi} PB=2πϕB。
真实距离 d d d可计算为:
d = d u A ( n A + P A ) = d u B ( n B + P B ) d=d_{uA}(n_A+P_A) = d_{uB}(n_B+P_B) d=duA(nA+PA)=duB(nB+PB)
只有知道了 n A n_A nA或者 n B n_B nB的值才可以得到 d d d。
当 n A n_A nA与 n B n_B nB的值正确时, ∣ d u A ( n A + P A ) − d u B ( n B + P B ) ∣ |d_{uA}(n_A+P_A) - d_{uB}(n_B+P_B)| ∣duA(nA+PA)−duB(nB+PB)∣的值最小,又 d u A ∝ 1 f A ∝ 1 M A d_{uA}\propto\frac{1}{f_A}\propto\frac{1}{M_A} duA∝fA1∝MA1, d u B ∝ 1 f B ∝ 1 M B d_{uB}\propto\frac{1}{f_B}\propto\frac{1}{M_B} duB∝fB1∝MB1,因此可以将 n A n_A nA与 n B n_B nB的求解转化为下式的最小值:
y ( n A , n B ) = ∣ M B ∗ ( n A + P A ) − M A ∗ ( n B + P B ) ∣ y(n_A, n_B)=|M_B*(n_A + P_A) - M_A*(n_B + P_B)| y(nA,nB)=∣MB∗(nA+PA)−MA∗(nB+PB)∣
最终 d d d计算为:
d = c 2 ∗ [ w ∗ ( n A + P A ) f A + ( 1 − w ) ∗ ( n B + P B ) f B ] d=\frac{c}{2}*[\frac{w*(n_A+P_A)}{f_A}+\frac{(1-w)*(n_B+P_B)}{f_B}] d=2c∗[fAw∗(nA+PA)+fB(1−w)∗(nB+PB)]
下面以一个实例对上面所述方法进行验证。假设测量结果有:
f A = 40 M h z f_A=40Mhz fA=40Mhz时, d u A = c 2 f A = 3.75 m d_{uA}=\frac{c}{2f_A}=3.75m duA=2fAc=3.75m,测得的距离为1.5m;
f B = 30 M h z f_B=30Mhz fB=30Mhz时, d u B = c 2 f B = 5.00 m d_{uB}=\frac{c}{2f_B}=5.00m duB=2fBc=5.00m,测得的距离为4.0m;
此时有:
P A = d A ∗ 2 f A c = 1.5 ∗ 2 ∗ 40 ∗ 1 0 6 3 ∗ 1 0 8 = 0.4 P_A=\frac{d_A*2f_A}{c} = \frac{1.5*2*40*10^6}{3*10^8}=0.4 PA=cdA∗2fA=3∗1081.5∗2∗40∗106=0.4
P B = d B ∗ 2 f B c = 4.0 ∗ 2 ∗ 30 ∗ 1 0 6 3 ∗ 1 0 8 = 0.8 P_B=\frac{d_B*2f_B}{c} = \frac{4.0*2*30*10^6}{3*10^8}=0.8 PB=cdB∗2fB=3∗1084.0∗2∗30∗106=0.8
设 M A = 4 , M B = 3 M_A=4, M_B=3 MA=4,MB=3, 则 ( n A , n B ) = ∣ M B ∗ ( n A + P A ) − M A ∗ ( n B + P B ) ∣ = ∣ 3 ∗ ( n A + 0.4 ) − 4 ∗ ( n B + 0.8 ) ∣ = ∣ 3 ∗ n A − 4 ∗ n B − 2 ∣ (n_A, n_B) = |M_B*(n_A+P_A) - M_A*(n_B+P_B)|=|3*(n_A+0.4) - 4*(n_B+0.8)| = |3*n_A - 4*n_B - 2| (nA,nB)=∣MB∗(nA+PA)−MA∗(nB+PB)∣=∣3∗(nA+0.4)−4∗(nB+0.8)∣=∣3∗nA−4∗nB−2∣
又 n A ∈ [ 0 , 3 ] n_A\in[0,3] nA∈[0,3], n B ∈ [ 0 , 4 ] n_B\in[0, 4] nB∈[0,4] , 可算得当 n A = 2 n_A = 2 nA=2, n B = 1 n_B = 1 nB=1时, y ( n A , n B ) y(n_A, n_B) y(nA,nB)的值最小。
此时, d u A ( n A + P A ) = 3.75 ∗ ( 2 + 0.4 ) = 9 m d_{uA} (n_A+P_A) = 3.75 * (2+0.4) = 9m duA(nA+PA)=3.75∗(2+0.4)=9m, d u B ( n B + P B ) = 5.0 ∗ ( 1 + 0.8 ) = 9 m d_{uB} (n_B+P_B) = 5.0 * (1+0.8) = 9m duB(nB+PB)=5.0∗(1+0.8)=9m,最终得到的真实距离 d = 9 m d=9m d=9m。
另一种更直接的方法可以使用三步计算出真实距离。
第一步,利用一种称之为modified Chinese remainder theorem 的方法估算 n B n_B nB:
e = P A ∗ M B − P B ∗ M A e=P_A*M_B-P_B*M_A e=PA∗MB−PB∗MA
n B = m o d [ k 0 ∗ r o u n d ( e ) , M B ] n_B=mod[k0*round(e), M_B] nB=mod[k0∗round(e),MB]
其中,k0满足 m o d ( k 0 ∗ M A , M B ) = 1 mod(k0*M_A, M_B)=1 mod(k0∗MA,MB)=1的最小整数。
第二步,生成一个临时变量X:
X = w ∗ M B ∗ ( n A + P A ) + ( 1 − w ) ∗ M A ∗ ( n B + P B ) X=w*M_B*(n_A+P_A)+(1-w)*M_A*(n_B+P_B) X=w∗MB∗(nA+PA)+(1−w)∗MA∗(nB+PB)
= M A ∗ n B + M A ∗ P B + w ∗ ( e − r o u n d ( e ) ) =M_A*n_B + M_A * P_B + w*(e - round(e)) =MA∗nB+MA∗PB+w∗(e−round(e))
本质上X是上文中 d d d的最终计算公式的另一种表达形式。
第三步,计算出真实距离d:
d = d E ∗ X M A ∗ M B = c 2 ∗ g c d ( f A , f B ) ∗ X M A ∗ M B d=d_E*\frac{X}{M_A*M_B} = \frac{c}{2*gcd(f_A, f_B)}*\frac{X}{M_A*M_B} d=dE∗MA∗MBX=2∗gcd(fA,fB)c∗MA∗MBX
继续前例来说明:
step1:
e = 0.4 ∗ 3 − 0.8 ∗ 4 = 1.2 − 3.2 = − 2 e=0.4*3-0.8*4 = 1.2-3.2=-2 e=0.4∗3−0.8∗4=1.2−3.2=−2
m o d ( k 0 ∗ 4 , 3 ) = 1 mod(k0*4, 3)=1 mod(k0∗4,3)=1, 从而 k 0 = 1 k0=1 k0=1
n B = m o d ( − 2 , 3 ) = 1 n_B = mod(-2, 3) = 1 nB=mod(−2,3)=1
step2:
X = M A ∗ n B + M A ∗ P B + w ∗ ( e − r o u n d ( e ) ) = 4 ∗ 1 + 4 ∗ 0.8 + 0 = 7.2 X=M_A*n_B + M_A * P_B + w*(e - round(e)) = 4*1+4*0.8+0=7.2 X=MA∗nB+MA∗PB+w∗(e−round(e))=4∗1+4∗0.8+0=7.2
step3:
d E = c 2 g c d ( f A , f B ) = 3 ∗ 1 0 8 2 ∗ 10 ∗ 1 0 6 = 15 d_E=\frac{c}{2gcd(f_A, f_B)}=\frac{3*10^8}{2*10*10^6}=15 dE=2gcd(fA,fB)c=2∗10∗1063∗108=15
d = d E ∗ X M A ∗ M B = 15 ∗ 7.2 4 ∗ 3 = 9 m d=d_E*\frac{X}{M_A*M_B}=15*\frac{7.2}{4*3}=9m d=dE∗MA∗MBX=15∗4∗37.2=9m
参考资料:
[1]A. P. P. Jongenelen, D. G. Bailey, A. D. Payne, A. A. Dorrington, and D. A. Carnegie, “Analysis of errors in ToF range imaging with dual-frequency modulation,” Instrumentation and Measurement, IEEE Transactions on 60.5 (2011): 1861-1868.