激光测距及位移装置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
激光测距及位移装置
摘要:本文利用三角法测距原理,设计了一个位移测量装置。该装置由激光头、OV7670摄像头、STM32主控三部分实现,成本低,体积小。根据激光光斑在摄像头拍摄图像中的位置,该装置可以测量1m的位移量,最大误差为0.5cm。位移测量装置被放置在一个履带小车上,履带小车由导轨引导而做直线运动。利用激光测距结果作为反馈,可以通过PID控制履带小车在1m范围内任意运动,响应时间小于15s,可以用遥控器指定小车运动的起始点。
关键字:三角法测距;位移装置;无线遥控;PID
一、系统方案
系统原理框图见图 1。两个stm32之间通过串口进行双工通信。其中主机负责直流电机的控制和提供人机交换接口。从机负责通过摄像头采集图像,并运行图像识别算法,通过光斑在图像中的位置计算出实际距离,将处理结果发送到主机,从机还负责将采集到的图像实时显示到彩色液晶上。
图 1系统框架
1.移动装置制作方案
方案一:采用差速轮胎驱动的小车。如果通过软件控制,使两个后轮转动的速度一样那么,小车就会沿直线运动。该方案装置体积小,便于搬运,但是软件控制算法偏复杂,需要不断进行调节使两个轮子的转速始终一样。
方案二:采用履带小车并用导轨引导。这种控制方案下,小车始终沿导轨做直线运动,但是装置会比较大,不便于搬运。而且需要仔细测量保证导轨本身是水平的。
从降低系统复杂性的角度下,我们选择了方案二。
2.主控方案选择
方案一:使用一片STM32作为主控同时完成电机的控制、人机交互的接口和图像处理。这样做系统的硬件比较简单,由于只有一个CPU,整个系统会显得非常紧凑。但是软件上处理难度非常大,图像处理用时较长,电机控制又需要一个较小的控制周期,而且还需要处理一些人机交互,可能照成反应较慢的现象。
方案二:使用一片STM32作为从机进行图像处理将结果通过串口发送给主机,主机负责进行电机控制和人机交互处理。这样以来虽然硬件系统复杂了一些,但是软件的编程难度将大大降低。
经过反复考虑我们选择了方案二。
二、 理论分析与计算
1. 三角测距法分析
三角法测距光路图见下图 2,其中三角形ACB 和三角形CED 是相似的,所以有
fs
q x
=
公式(1) 其中基线s 是摄像头透镜中心到激光器的距离,q 是障碍物到基线s 的垂直距离,β是激光光线与基线间的角度,x 是光斑到图像传感器上端的距离。
头
图 2 三角法激光测距光路图
需要仔细调节角度β和基线长度s ,q 最小时激光光斑落在图像传感器的一端,q 在最远时能够满足题目中对分辨率的要求,无限远时光斑会落到另一端。在该题目中我们使用的传感器型号是OV7670,其分辨率为640*480,像素大小为3.6*3.6um ,所以x 最大为2.304mm 。假设最小值为200mm 则,由公式(1)可知fs 小于460.82mm 。距离q 关于x 的灵敏度满下式
2dx fs
dq q
=- 公式(2) 可见随着q 的增大,x 上的变化越小,分辨率也越差,假设通过质心算法能够检测到图像传感器上0.5个像素的变化。那么要在最大距离为1000mm 时满足题目中5mm 的分辨率则
2
0.5dx fs q dq
>
⨯⨯ 公式(3)
将33.6105dx mm dq mm -⨯=,1000q mm =代入上式,得到fs 大于3602mm 。结合之前的fs 小于460.82mm ,我们取fs 为400mm 。由于摄像头的焦距为16mm ,则s 为25mm 。最后可以计算出,
max 16arctan(
)arctan()85.880.50.5 2.304
f mm
x β===⨯⨯ 公式(4)
2. 激光光斑在图像中的定位
先从图像传感器读取数据,计算RGB 三个分量的值。由于激光光斑R 分量较高,G 、B 分量较低,而其他色光中R 、G 、B
所占分量与激光差别较大。
2R σ=后设置一个阈值(大约750),大于该阈值的像素点保留R 分量,而小于该阈值的像素点R 分量赋为0,将各个像素点R 分量记录下来。最后利用质心法求中心坐标。可以利用下面这个简单的公式计算光斑在y 方向上的质心
_
22
R ()R
()y y y y =∑∑ 公式(5)
公式中R()y 表示坐标y 处的像素的R 分量,式中为对所有像素点求和。这样 就可以实现小数个像素的识别。 3. 闭环控制方法
闭环控制模型如下图 3所示。由于测量采用了图像识别的算法,消耗了大量时间,导致系统频带较低,因此只采用了周期为100ms 的位置环。位置环控制器只采用了PI 算法,P 可以很好的提高系统的响应时间,而I 参数则可以减小系统的稳态误差。考虑到误差的变化,设定了分段PI ,当误差较小时,采用了较小的PI 参数,当误差较大是,采用较大的PI 参数。这样既能保证快速的响应,又避免了因参数过大引起的振荡。
图 3 闭环控制算法
4.误差分析
如果距离较远,激光光斑在传感器上的成像只占几个像素,这时利用质心法计算出的坐标位置就会存在较大偏差,距离较近时,光斑所占像素个数多,计算更加准确。在上述分析中都假设了光斑成像刚好成像在图像传感器上,这类似于小孔成像。实际上由于镜头是由凸透镜组成的,成像位置应在1倍焦距和2倍焦距之间,而图像传感器的位置是相对于镜头是固定的,这样就带来了额外的误差。
三、电路与程序设计
1.电机驱动电路设计
电机驱动电路由一片L6205和相关外围电路构成,具体电路如图 4。
图 4 电机驱动电路
2.机械设计
为保证小车始终沿直线运动,小车上被固定有一个方形的滑槽,另外一条方形的导轨(略小于滑槽)从小车上的滑槽穿过,这样小车就只能沿导轨运动。导轨的两端被座子固定在一定高度。摄像头安装在一个支架上,支架的另一端固定在小车上,支架朝障碍物方向前倾一个角度。激光头则被固定在摄像头的正下方。整个系统被放置在一块较大的长木板上,小车沿导轨在这块长木板上运动。
3.程序结构与设计
整个程序由3部分组成,位移测量部分、位移控制部分和其它部分。位移测量由STM32从机完成,并将测量结果不断发送到主机。主机根据收到的测量结果利用PID算法进行位移控制。另外主机还需要接收遥控器设置的目标位置。