DIY基于摄像头的激光测距仪
0 引 言
当前有很多现成的测距组件包括超声波、红外线、甚至是激光测距仪。这些设备运行得很好,但是对于机器人来说,重量是一个主要考虑因素。一个可行的办法是增加现有组件的功能,并安装在机身上。能利用U S B 连接的摄像头(或mini 无线摄像头)执行视觉任务,例如避障或沿某种线条运动等。当然,如采用两个摄像头,能提供立体的机器视觉,这样能增强避障性能,因为双镜头提供了视觉深度。但缺点是需要增加另外一个摄像头的重量。这篇文章就是讨论如何利用一个激光笔和一个摄像头来提供一个单镜头机器视觉和测距的。在低成本情况下,提供一个更轻便、更灵活的测距方式。
1 工作原理
图1 显示了如何将激光点投射到目标物上,并在摄像头上显示。摄像头和激光点的距离是可以通过计算而得出的。公式很简单,因此这个技术在需要很快运行的机器视觉应用上是适合的。
原理如下:一束激光被投射到目标物上,并在摄像头上被显示。激光束被认为是理想的平行于摄像头的中心光轴。激光点由摄像头的其余部分所捕获。一个简单的计算就是寻找最亮点。如果设激光点就是这个场景的最亮点(似乎在室内我的激光发射器确实是最亮的),那么这个点的位置在图帧中的位置是确定的。然后我们只需要计算这个点在沿着y 轴的距离,就能计算出目标物离摄像头的距离,激光点距离中心越近,离目标物越远。
如同公式所示距离D 是可以被计算出来的。为了计算这个等式,我们需要知道激光器和摄像头之间的距离h ,这是个常数,还有角度,角度可以计算。
其中:
Pfc 为从焦平面到中心的像素数量;
rpc 为单个像素的弧度;
ro 为弧度补偿(弥补对齐错误)。
代入上式,我们得到:这样,从图像中就能将焦平面到激光点像素数计算出来。那其他的常数怎么办呢?我们需要执行一个校准来得到这些数据。为了校准这个系统,我们需要收集一系列测量的数据,每次测得的目标物的距离和这个激光点离中心点的像素数。数据如下:
使用下面的公式,我们能够利用激光器和摄像头之间的距离h 和真实距离计算出真实的角度:
现在我们有了公式中的每个数值,我们可以利用一个关系式来计算点离中点的像素数。从我的校正数据中,我计算出:
2 软件设计
程序用V B 设计,关键程序如下:
3 实验结果
使用下表是列举了根据上面ro 和rpc 值计算出的距离值,实际距离值和误差
相关文章
- 2024-01-06不确定度评定实例分析 电子皮带秤测量不确定度的评定
- 2023-12-26刚架结构内力图绘制方法研究
- 2022-01-17ControlLogix系统在大型顺序(散粮筒仓)控制系统改造中的应用
- 2023-09-13自由活塞式斯特林制冷机压缩活塞间隙密封泄漏的数值模拟
- 2024-01-21IEEE1588最佳主时钟算法的分析与实现
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。