线扫激光算法原理

线扫激光算法原理

激光器发出的激光束经准直聚焦后垂直入射到物体表面上,表面的散射光由接收透镜成像于探测器的阵列上。光敏面于接收透镜的光轴垂直。如图:

当被测物体表面移动x,反应到光敏面上像点位移为x’。a为接收透镜到物体的距离(物距),b为接收后主面到成像面中心的距离(一般取焦距f),θ为激光束光轴与接收透镜之间的夹角。D为激光光束轴到透镜中心的距离。接收透镜的焦距为f,其余的参数如下图:

在△ABC中,由正弦定理的:

将上式整理得:

在直角三角形△CDE (∠CDE=90°)中,

将其带入到上式,得:

上式为远离透镜的公式,靠近基准面的公式刚好相反:

参数计算和选取

通过上面的算法推导,我们可以看出在整个公式中,我们需要得到的参数有两个,a(接收透镜到物体的距离(物距))和θ(激光束光轴与接收透镜之间的夹角)。

2.1

参数的计算

(1)参数计算的原理

因为公式中有两个未知的参数a和θ,那么想要求得这两个未知参数,我们可以通过得到两组已知的(x,x’)来列出两个二元一次方程组来求解。

假设两组已知的参数为(X1,X1’)(X2,X2’),通过推导过程的公式如下(以靠近透镜为例):

通过计算得出:

将求出的θ带去上式可以得出a.

(2)参数计算结果

在计算参数的样本选取中,为了尽可能的提高精度,我们在靠近基准面的样本中选取的计算组合分别为(1mm,2mm),(1mm,3mm),(1mm,4mm),(1mm,5mm),(1mm,6mm),(1mm,7mm),(1mm,8mm),(1mm,9mm),(1mm,10mm),总共9组数据。那么我们在一次采样中可以得出9   组数据。

2.2

参数的选取

在整个的实验过程中,后期计算参数a和θ时,我们总共采样了五次数据,每次数据得到的9组参数,通过45组数据来计算整个样本的位移。观察误差值得大小,我们总共选取了三组参数,综合比对发现当比值a/(f*sinθ)为31.5~31.7且a>200时,计算出的误差偏小且在测量的范围内保持一定趋势。(这为我们后面的非线性拟合的误差补偿提供了基础)

相机的标定

3.1

单目相机标定的目的

获取摄像机的内外参数矩阵,同时也会获得每一幅标定图像的选择和平移矩阵,内参数矩阵和畸变向量可以对之后相机拍摄的图像进行矫正,得到畸变相对很小的图像。

3.2

相机标定的输入和输出

相机标定的输入为22*22单位长度为1mm/格的棋盘格图像。总共12张。

相机标定的输出为:内参数矩阵(fx,fy,Cx,   Cy)和畸变向量(k1,k2,p1,p2,p3)

ps(注意,这里有两个不同的焦距fx,fy。因为单个像素点在低价成像仪上是矩形而不是正方形。实际上焦距fx=f*Sx.    f为实际的物理焦距长度,Sx为x方向的像元尺寸。同理fy=f*Sy)

3.3

用到的工具

硬件:巴士勒相机,摄像头(f=25mm)、棋盘格标定板

软件:VS OPENCV

3.4

标定的结果

样本采集

样本采集我们有两种方式,第一种方式为用标准块来采集。第二种方式是通过千分尺来采集。我们采用第二种方式进行采集样本。采集的过程为以整个图像的中心为起点(作为基准面),每隔0.1mm取一次图像,取到图像的边界。通过上述取样本,我们得出位移的取值范围为-30.0mm到 30.0mm。

计算结果

通过上述的参数计算,相机标定以及样本采集之后,我们开始计算结果,在选曲的三组参数,来计算结果得到的误差,在附件1中。

误差补偿

在得出误差之后,我们发现误差的变化是具有趋势的。随着位移的增大误差是逐渐增大的。从计算结果偏小逐步到计算结果偏大。在这里我们取得误差补偿算法为基于最小二乘法的非线性拟合。拟合的方程如下:

Y=a0 a1x a2x^2 a3x^3

方程中x代表的是像素位移,Y代表的是误差。通过拟合之后的误差方程和整个算法进行融合及拟合后的求取误差为

位移=原算法-误差方程

最后通过误差补偿的结果得到的误差,在附件2中。

实验中遇到的问题

(1)算法上的改进

第一:在位移算法上遇到的问题刚开始在推算的过程中,忽略了一个多项式导致后面在计算的过程中误差偏大,后面采用了三角函数的算法,整个精度的提升很明显。

第二:在参数计算的算法推导过程中,出现了一个错误靠近基准面和远离基准面的算法是不一样的。这里出现了一个推导错误。后来重新推导之后改正了过来。

第三:在参数的选取上,刚开始的理解是在参数计算之后参数如果越接近实际的a和θ,计算出来的结果越真实。后来经过试验发现这样的选取准则是不正确的。而且不同组的样本计算出的a和θ是不一样的。最后通过分析得出,虽然计算出的a和θ是不一样的,但是a/(f*sinθ)的比值几乎是一致的。后面选取参数是选择误差小的。

第四:后面在观察误差的时候发现在0.1mm的位移时,同一组参数不同样本的计算结果都是一样偏大的。在实际的测量过程中我们观测到0.1mm的位移,通常对应的是0.6左右个像素。通过观察程序发现了把像素float型转换成int型导致这个误差结果。后面改过来之后,误差明显变小了。

(2)结构上的改变

在中期的试验中,我们改进镜头和相机的结构,来改善景深,但是后来我们通过试验发现原有的结构景深也是足够用的,所以后面的试验还是按照原来的结构来。

(3)线激光的中心点提取原则

在整个计算过程中,每次计算位移的结果,我们要提取每行的线激光的中心坐标,刚开始计算的算法为边缘二分法,取中点坐标。这种算法偏差较大。在后面通过阅读文献,采用了灰度质心算法。在后面的计算中,都是采用这个算法。在0.01mm的位移下,发现这个算法是有效的,检测到像素的位移在0.07个像素左右。

总结

通过以上的一系列实验,我们可以达到的误差精度是0.01mm左右,现在取得的样本在±10mm的范围内。但是整个容许的测量范围是±30mm。接下来可以实验的内容:

第一:可以以0.01mm为频率采样(这样在补偿后结果更精确)。

第二:样本计算扩大到整个测量范围。

第三:采用千分尺采样时,人为读书的误差是无法避免的,后期测量的时候需进行改进。

文章来源:

https://blog.csdn.net/wangjie36/article/details/104809465

(0)

相关推荐

  • 盾构竖向姿态的组合预测模型研究

    在地铁隧道建设中,盾构法因其机械化程度高.对地面交通影响较小等优点得以广泛应用.盾构姿态控制是盾构法施工的关键控制点之一,一旦盾构机的中心轴线偏离设计轴线,就会造成姿态偏差,进而影响隧道掘进质量.这种 ...

  • 精神病学研究中如何进行中小型数据的深度学习

    现在的精神病学必须更好地了解精神疾病基础的.常见的和独特的病理生理机制,以便提供更有效的,更针对个人的治疗方案.为此,使用常规统计方法对"小"实验样本的分析似乎在很大程度上未能捕捉 ...

  • 损失函数漫谈

    作者: 张黄斌 出处:https://mp.weixin.qq.com/s?__biz=MTEwNTM0ODI0MQ==&mid=2653455932&idx=1&sn=3ff ...

  • 图漾双目摄像机FM810-GI 不定距离点云精度测评报告

    ★ 目录 ★ 01 测试背景 02 测试条件 03 数据采集 04 数据分析 05 测试结果 06 写在最后 测试背景 01 本次参与测评的主要目的,是试探在工程环境中应用双目摄像机代替激光扫描仪获取 ...

  • 从传感器到算法原理,机器人、视觉避障都在这里了

    避障是指移动机器人在行走过程中,通过传感器感知到在其规划路线上存在静态或动态障碍物时,按照 一定的算法实时更新路径,绕过障碍物,最后达到目标点. 不管是要进行导航规划还是避障,感知周边环境信息是第一步 ...

  • 日内交易移动平均线交易系统核心逻辑原理

    很多伙伴们一直苦恼期权日内怎么做趋势交易,日内交易的核心逻辑和交易系统是什么?为什么我会亏钱,日内交易情绪化左右越亏越频繁交易,以至于心态崩溃,焦虑甚至自己扇自己嘴巴等等. 今天跟大家聊聊交易系统的核 ...

  • 自动驾驶技术的算法原理、技术大图,以及未来发展

    导读:车在给人们生活带来便利的同时,也导致了交通拥堵.环境污染.交通事故等诸多问题.交通事故不仅带来巨大的经济损失,对生命健康的危害更加严重.实现安全.智能化的自动驾驶技术成为了人们的愿望.阿里巴巴布 ...

  • Quanergy 8线3D激光雷达布局国内AGV机器人市场

    作者|新战略机器人全媒体 熙文 随着科技的进步工业移动机器人AGV的导航技术也在不断的发展和更新,从磁导到激光导航,每一种跨越都是基于基层技术的不断完善.在AGV机器人业内,特别是在高端应用市场,激光 ...

  • 论文|Sentence2Vec & GloVe 算法原理、推导与实​现

    Sentence2vec Sentence2vec 是2017年发表于ICLR(国际学习展示回忆)的一篇论文,其全称为:A Simple but tough-to-beat baseline for ...

  • 深入理解 CAS 算法原理

    深入理解 CAS 算法原理

  • HMAC算法原理

    HMAC算法是一种基于密钥的报文完整性的验证方法 ,其安全性是建立在Hash加密算法基础上的.它要求通信双方共享密钥.约定算法.对报文进行Hash运算,形成固定长度的认证码.通信双方通过认证码的校验来 ...

  • GIS算法原理与开发-实体数据结构多边形面积计算

    多边形面积的计算也比较简单,以实体数据结构为例. 该多边形有5个顶点围成,其中三个点构成多边形的上半部分,两个点构成多边形的下半部分.如果计算上边界以下部分的面积,并且减去下边界以下部分的面积,就可以 ...