激光雷达:测距原理

激光雷达:测距原理介绍了三角测距雷达及飞行时间雷达的测距原理

大家好,又见面了,我是你们的朋友全栈君。

激光雷达传感器

常见的激光雷达主要有三角测距和TOF两大类型。

1.三角测距

测量原理

在这里插入图片描述
如图所示,为三角测距激光雷达的原理图。首先激光发射器(Laser)发射激光,打到物体(Object)表面时,将反射至CMOS相机处,经过相机焦点与图像交于 X 1 X_1 X1​。

经过相机焦点O做激光的平行线交相机成像于 X 2 X_2 X2​处, X 1 X 2 X_1X_2 X1​X2​间距离为 x x x,相机焦距为 f f f。

易得 △ O A B ∼ △ X 1 X 2 O \vartriangle OAB \sim \vartriangle {X_1}{X_2}O △OAB∼△X1​X2​O,则可以得到测量值d的表达式:
L x = d f d = f L x \frac{L}{x}=\frac{d}{f}\\ d=f\frac{L}{x} xL​=fd​d=fxL​
式中, f f f为CMOS相机焦距大小; L L L为激光发射器与CMOS相机间距;参量 x x x可由三角函数得到:
x = f tan ⁡ α + f tan ⁡ β x = f sin ⁡ ( α + β ) sin ⁡ α sin ⁡ β x=\frac{f}{\tan\alpha}+\frac{f}{\tan\beta}\\ x=f\frac{\sin(\alpha+\beta)}{\sin\alpha\sin\beta} x=tanαf​+tanβf​x=fsinαsinβsin(α+β)​
其中, α \alpha α为激光发射器发射角度,角度 β \beta β可由相机内参矩阵计算得到。将x带入测量值表达式,进行化简:
d = L sin ⁡ α sin ⁡ β sin ⁡ ( α + β ) d=L\frac{\sin\alpha\sin\beta}{\sin(\alpha+\beta)} d=Lsin(α+β)sinαsinβ​
三角测距法参量表如下:

参量 含义
α \alpha α 激光发射角,标定后固定
β \beta β 相机接收角,
L L L 激光发射器与相机间距离,标定后固定
f f f 相机焦距,固定值
d d d 激光测距值
x x x 中间变量,图像上 X 1 X 2 X_1X_2 X1​X2​间距离

测量特点

采用三角测距原理制成的激光雷达传感器具有以下特点:

  • 成本低、价格便宜
  • 中近距离精度较高
  • 远距离精度较差
  • 易受干扰,一般用于室内定位

当测量物体较远,即 d d d值较大时,所引起的 x x x变化较小,精度较差。

2.飞行时间TOF

测量原理

在这里插入图片描述
飞行时间(Time of flight)利用光速进行测距,若激光发射器在 t 0 t_0 t0​时刻发射一束激光,打到物体上并反射,在 t 1 t_1 t1​时刻激光接收器接收到,则测量距离可用如下表达式计算:
D = C ( t 1 − t 0 ) 2 D=C\frac{(t_1-t_0)}{2} D=C2(t1​−t0​)​
式中, C C C表示光速 3 × 1 0 9 m / s 3\times10^9m/s 3×109m/s。

由于光速过快,对计时器精度要求高,测量精度1m对应时间精度ns;测量精度cm则对应时间精度ps。

故而,在实际应用中通常采用测量型号相位代替直接测量时间,如下图所示。

在这里插入图片描述

则时间可用相位差进行计算:
Δ t = Δ φ 2 π f m D = C Δ t 2 = C Δ φ 4 π f m \Delta t=\frac{\Delta\varphi}{2\pi f_m}\\ D=C\frac{\Delta t}{2}=C\frac{\Delta\varphi}{4\pi f_m} Δt=2πfm​Δφ​D=C2Δt​=C4πfm​Δφ​

时间测距的参量表如下:

参量 含义
t 0 t_0 t0​ 激光发射时间
t 1 t_1 t1​ 激光接收时间
C C C 光速 3 × 1 0 9 m / s 3\times10^9m/s 3×109m/s
Δ φ \Delta\varphi Δφ 激光收发波形相位差
D D D 激光测距值
f m f_m fm​ 一个周期的频率

测量特点

采用飞行时间原理制成的激光雷达传感器特点如下:

  • 价格昂贵
  • 中远距离精度高、近距离较差
  • 测距范围广
  • 抗干扰能力强,可用于室外定位

当测量物体较近,即 D D D值较小时,由于对计时器精度较高,故而测量精度一般。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140866.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2004(馬拉)微軟科技教育大會嘅卡拉囌

    2004(馬拉)微軟科技教育大會嘅卡拉囌

  • hdu 3631 Shortest Path(Floyd)[通俗易懂]

    hdu 3631 Shortest Path(Floyd)

    2022年2月1日
  • executescalar mysql_ExecuteScalar

    executescalar mysql_ExecuteScalar这两个答案和一点点思考使我想到了一个接近答案的东西。首先再澄清一下:该应用程序是用C#(2.0+)编写的,并使用ADO.NET与SQLServer2005进行通信。镜像设置是托管主体和镜像的两个W2k3服务器以及托管作为监视器的快速实例的第三个服务器。这样做的好处是,故障转移对于使用数据库的应用程序几乎是透明的,它将对某些连接引发错误,但从根本上讲一切都会很好地进行。是的,我们得到了奇怪的误报…

    2022年6月30日
  • 数组的下标越界与内存溢出有关吗_数据量过大数组报下标越界

    数组的下标越界与内存溢出有关吗_数据量过大数组报下标越界很相似的两个概念,一不小心就会混淆首先,对两个名词做一个大概的解释:下标越界在引用数组元素时,使用的下标超过了该数组下标的应有范围,但应注意的是:C/C++不对数组做边界检查。可以重写数组的每一端,并写入一些其他变量的数组或者甚至是写入程序的代码。不检查下标是否越界可以有效提高程序运行的效率,因为如果你检查,那么编译器必须在生成的目标代码中加入额外的代码用于程序运行时检测下标是否越界,这

    2022年10月19日
  • MySQL把字符串转化为数字的三种方式[通俗易懂]

    MySQL把字符串转化为数字的三种方式[通俗易懂]问题出现当我用navicat查询时,在varchar字段上where查询使用的是int类型的0【忘记打引号了…】,结果查出一堆其他的字符串,很奇怪。首先,我想到的是类似于betweenand,我以为也是比较的首字母,不过后面我发现并不是的。百度搜素之后发现是在这查询的时候MySQL把字符串转化为数字,并且有几种方式:1.方法一:字段值+0MySql会根据上下文自动转换类型,这里会将被本来是字符类型的字段值以数值型返回,如果字段存放的值为数值字符,则会转换为数值型返回,如果字段存

    2022年5月30日
  • TCP拥塞控制算法的演进

    TCP拥塞控制算法的演进TCP拥塞控制算法的演进TCP协议仅定义框架,也就是发送端和接收端需要遵循的“规则”。TCP协议的实现经过多年的改进,有了多个不同的版本。比较重要的有Tahoe、Reno、NewReno、SACK、Vegas等,有些已经成为了影响广泛的RFC文档,有些则成为了Unix/Linux操作系统的标准选项。以下简要介绍各个实现版本的主要区别和联系。1 早期的TCP实现最早的

    2022年6月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号