原文作者:aircraft
原文链接:https://www.cnblogs.com/DOMLX/p/11555100.html
前言:最近公司项目用到halcon的3d模板匹配,三维重建,相机标定,所以最近都在研究这些,现在分享一下对激光三角测量示例的个人理解。
1.Reconstruct_Connection_Rod_Calib.hdev
先看一下这个halcon示例做了些什么:
通过一道激光照射过一个零件,留下了一个个片截图,后面用于测量其深度信息。
而示例就是用光片模型的重建,对所有的connection_rod系列图片进行处理,重建出原模型的图像:
也可以看片光x,y,z的信息:
最后我们可以调用halcon的算子visualize_object_model_3d (WindowHandle, ObjectModel3DID, CameraParam1, PoseIn, 'color', 'blue', 'Reconstructed Connection Rod', '', Instructions, PoseOut) 将3d零件模型重建
模型可以通过鼠标随意移动,就跟我上篇博客 opengl导入3d模型并且显示一样OpenGl读取导入3D模型并且添加鼠标移动旋转显示
2.激光三角测量
激光三角测距法作为低成本的激光雷达设计方案,可获得高精度、高性价比的应用效果,并成为室内服务机器人导航的首选方案,本文将对激光雷达核心组件进行介绍并重点阐述基于激光三角测距法的激光雷达原理。
激光雷达四大核心组件
激光雷达主要由激光器、接收器、信号处理单元和旋转机构这四大核心组件构成。
激光器:激光器是激光雷达中的激光发射机构。在工作过程中,它会以脉冲的方式点亮。以思岚科技的RPLIDAR A3系列雷达为例,每秒钟,它会点亮和熄灭16000次。
接收器:激光器发射的激光照射到障碍物以后,通过障碍物的反射,反射光线会经由镜头组汇聚到接收器上。
信号处理单元:信号处理单元负责控制激光器的发射,以及接收器收到的信号的处理。根据这些信息计算出目标物体的距离信息。
旋转机构:以上3个组件构成了测量的核心部件。旋转机构负责将上述核心部件以稳定的转速旋转起来,从而实现对所在平面的扫描,并产生实时的平面图信息。
激光三角测距法原理
目前激光雷达的测量原理主要有脉冲法、相干法和三角法3种,脉冲法和相干光法对激光雷达的硬件要求高,但测量精度比激光三角法要高得多,故多用于军事领域。而激光三角测距法因其成本低,精度满足大部分商用及民用要求,故得到了广泛关注。
激光三角测距法主要是通过一束激光以一定的入射角度照射被测目标,激光在目标表面发生反射和散射,在另一角度利用透镜对反射激光汇聚成像,光斑成像在CCD(Charge-coupled Device,感光耦合组件)位置传感器上。当被测物体沿激光方向发生移动时,位置传感器上的光斑将产生移动,其位移大小对应被测物体的移动距离,因此可通过算法设计,由光斑位移距离计算出被测物体与基线的距离值。由于入射光和反射光构成一个三角形,对光斑位移的计算运用了几何三角定理,故该测量法被称为激光三角测距法。
按入射光束与被测物体表面法线的角度关系,激光三角测距法可分为斜射式和直射式两种。
1、直射式激光三角测距法
如图1所示,当激光光束垂直入射被测物体表面,即入射光线与被测物体表面法线共线时,为直射式激光三角法。
2、斜射式激光三角测距法
当光路系统中,激光入射光束与被测物体表面法线夹角小于90°时,该入射方式即为斜射式。如图2所示的光路图为激光三角法斜射式光路图。
由激光器发射的激光与物体表面法线成一定角度入射到被测物体表面,反(散)射光经B处的透镜汇聚成像,最后被光敏单元采集。
由图2可知入射光AO与基线AB的夹角为α,AB为激光器中心与CCD中心的距离,BF为透镜的焦距f,D为被测物体距离基线无穷远处时反射光线在光敏单元上成像的极限位置。DE为光斑在光敏单元上偏离极限位置的位移,记为x。当系统的光路确定后,α、AB与f均为已知参数。由光路图中的几何关系可知△ABO∽△DEB,则有边长关系:
则易知
在确定系统的光路时,可将CCD位置传感器的一个轴与基线AB平行(假设为y轴),则由通过算法得到的激光光点像素坐标为(Px,Py)可得到x的值为:
其中CellSize是光敏单元上单个像素的尺寸,DeviationValue是通过像素点计算的投影距离和实际投影距离x的偏差量。当被测物体与基线AB产生相对位移时,x改变为x,由以上条件可得被测物体运动距离y为:
单点激光测距原理
单点激光测距原理图如下图2-6所示,
激光头Laser与摄像头在同一水平线(称为基准线)上,其距