《激光雷达3D激光扫描测距仪的低成本自制(制作过程,视频)》由会员分享,可在线阅读,更多相关《激光雷达3D激光扫描测距仪的低成本自制(制作过程,视频)(53页珍藏版)》请在金锄头文库上搜索。
1、激光雷达激光扫描测距仪的低成本自制相关的图片:扫描得到的房间一角扫描的我扫描仪实物本文结构1 简单介绍了激光雷达产品的现状2 激光三角测距原理3 线状激光进行截面测距原理激光扫描仪的制作考虑简介-激光扫描仪/雷达这里所说的激光扫描测距仪的实质就是激光雷达。如上面视频中展现的那样,扫描仪可以获取各转角情况下目标物体扫描截面到扫描仪的距离,由于这类数据在可视化后看起来像是由很多小点组成的云团,因此常被称之为:点云l在获得扫描的点云后,可以在计算机中重现扫描物体/场景的三维信息。这类设备往往用于如下几个方面:机器人定位导航目前机器人的算法中最理想的设备仍旧是激光雷达虽然目前可以使用,但他无法再室外使
2、用且精度相对较低)机器人通过激光扫描得到的所处环境的点云,从而可以进行诸如等定位算法。确定自身在环境当中的位置以及同时创建出所处环境的地图。这也是我制作他的主要目的之一。零部件和物体的模型重建地图测绘现状目前市面上单点的激光测距仪已经比较常见,并且价格也相对低廉。但是它只能测量目标上特定点的距离。当然,如果将这类测距仪安装在一个旋转平台上,旋转扫描一周,就变成了激光雷达()。相比激光测距仪,市面上激光雷达产品的价格就要高许多:图片激光雷达上图为这家公司生产的激光雷达产品,这类产品的售价都是上万元的水平。其昂贵的原因之一在于他们往往采用了高速的光学振镜进行大角度范围(180-2的7激0光)扫描,
3、并且测距使用了计算发射/反射激光束相位差的手段进行。当然他们的性能也是很强的,一般扫描的频率都在以上,精度也在几个毫米的级别。激光雷达使用单束点状激光进行扫描,因此只能采集一个截面的距离信息。如果要测量的数据,就需要使用如下2种方式进行扩充:采用线状激光器使用一个激光雷达扫描,同时在另一个轴进行旋转。从而扫描出信息。第一种方式是改变激光器的输出模式,由原先的一个点变成一条线型光。扫描仪通过测量这束线型光在待测目标物体上的反射从而一次性获得一个扫描截面的数据。这样做的好处是扫描速度可以很快,精度也比较高。但缺点是由于激光变成了一条线段,其亮度(强度)将随着距离大幅衰减,因此测距范围很有限。对于近
4、距离的测距扫描而言,这种方式还是很有效并且极具性价比的,本文介绍的激光雷达也使用这种方式,图:一字线红色激光器对于第二种方式,优点是可以很容易用激光雷达进行改造,相对第一种做法来说,他在相同的激光器输出功率下扫描距离更远。当然,由于需要控制额外自由度的转轴,其误差可能较大,同时扫描速度也略低。这类激光雷达产品目前在各类实验室、工业应用场景中出现的比较多,但对于个人爱好着或者家用设备中,他们的价格实在是太高了。当然,目前也有了一个替代方案,那就是,不过他的成像分辨率和测距精度相比激光雷达而言低了不少,同时无法在室外使用。低成本的方案造成激光雷达设备高成本的因素为7 使用测量激光相位差/传播时间差
5、测距8 高速振镜的高成本9 矫正算法和矫正人工成本对于个人而言,第三个因素可以排除,所谓知识就是力量这里就能体现了对于前个因素,如果要实现完全一样的精度和性能,那恐怕成本是无法降低的。但是,如果我们对精度、性能要求稍微降低,那么成本将可以大幅的下降。首先要明确的是投入的物料成本与能达成的性能之间并非线型比例的关系,当对性能要求下降到一定水平后,成本将大幅下降。对于第一个因素,可以使用本文将介绍的三角测距方式来进行。而对于扫锚用振镜,则可以使用普通的电机机构驱动激光器来替代。本文介绍的低成本激光扫描仪实现了如下的成本性能:成本:测量范围:最远测量精度:(测量距离与实际距离的误差)最远出最大误差,
6、近距离,误差水平在以内扫描范围:18度0扫描速度:比如以度角度增量扫描度,耗时秒对于精度而言,这个低成本方案足以超过,不过扫描速度比较慢,但是对于一般业余用途而言已经足够。不过,该扫描速度是很容易提升的,本文将在分析其制约因素后介绍提高扫描速度的方法。原理和算法这里先介绍测量目标上一个点所涉及的算法。扫描将采用类似的方式进行扩充。使用单点激光进行三角测距除了使用相位差和时间差进行测距外,另一种测距方式就是三角测距。这也是实现低成本激光测距的关键,因为这种方式不需要具备其他测距方式所要求的特殊硬件。并且,在一定距离范围内,三角测距也可以达到与测距媲美的测量精度和分辨率。图片(来源自3激):光三角
7、测距原理目前有不少爱好者1基2于激光三角测距制作了激光雷达或者测距仪,本制作也采用了这个方式。除了本文外,参考论文3也给出了较多的细节。(该论文的作者所在的公司正是将低成本激光雷达用于家用机器人的开发商,这里就不扯开了这里摘录了论文中的示意图,要进行激光三角测距,所需的设备很简单:点状激光器、摄像头。因此,能做到多少的成本大家现在应该比较清楚了。图中展现了测量对象距离激光器的距离的示意图。图中的部分是对摄像头的一种抽象表达针孔摄像机模型。标有的线段实际可以是一个固定摄像头和激光器的平面。摄像头成像平面与该固定平面平行,而激光器发出的射线与该平面夹角仅存在于图中的视图中。要测量距离,首先要求激光
8、射线射到了上,他的反射光在摄像头的感光平面上成像。对于不同远近的物体,当被测距激光照射后,摄像头上的成像光点的值将变化。这里涉及到如下几个参数激光器夹角激光器中心与摄像头中心点距离摄像头的焦距如果这些参数在测距设备安装后不再改变(固定)且数值已知,则物体距离激光器距离可由如下公式求得:其中,是测量中唯一需要获得的变量。它的含义是待测物体上激光光点在摄像头感光元件如上的成像到一侧边缘的距离。该距离可以通过在摄像头画面中查找并计算激光点中心位置的像素坐标来求得。对于示意图式(1求出了目标物体与摄像头-激光器平面的垂直距离(实际上对于大尺度测距,该值可以近似认为是实际距离)。这一步就是三角测距的所有
9、内容了,非常简单。不过,在实际操作中,上述公式仍旧需要扩充。首先时对于变量的求解,假设我们已经通过算法求出了画面中激光光点的像素坐标,要求出公式中需要的,首先需要将像素单位的坐标变换到实际的距离值。为了计算方便,在安装时,可以令摄像头画面的一个坐标轴与上图线段平行,这样做的好处是我们只需要通过光点像素坐标中的一个参量或者来求出实际投影距离。这里假设我们只用到了。那么,变量,可以由如下公式计算式由引入了两个参数,以及。其中是摄像头感光部件上单个像素感光单元的尺寸,是通过像素点计算的投影距离和实际投影距离的偏差量。这个偏差量是由如下2个因素引入的:变量的原点(示意图中与激光射线平息的虚线和成像平面
10、焦点)的位置未必在成像感光阵列的第一列(或排)上(实际上在第一排的概率非常低)通过摄像头主光轴的光线在画面中的像素坐标未必是画面中点。对于,可以通过摄像头感光元件手册来确定其数值。对于,要在安装上消除或者直接测量,在业余条件下几乎是不可能的,因此,需要通过后面介绍的矫正步骤求出。到这里,我们得出了通过激光点像素坐标来求出对应光点实际距离的公式:接下来的问题就是如何确定这些参数了。不过,实际操作中,还需要考虑性能指标问题:要达到某种精度要求,究竟需要怎样的摄像头,上述各类参数如何选择呢?决定单点激光测距性能的因素有公式可知,参数是一个离散量虽然有算法可以求出连续的后文将介绍。因此,得到的距离数值
11、也将会发生一定的跳变。该跳变的程度反映了测距的分辨率以及精度。如果将式改写为并按进行求导,可以得出:,或者写为:式的含义是,变量每发生一次跳变,通过我们三角测距公式求出的距离值跳变大小与当前实际待测距离的关系。可以看出,当待测距离边远后,从摄像机获得的像素点每移动一个单位距离,求出的距离值得跳变会大幅增大。也就是说:三角测距的精度和分辨率均随着距离增加而变差。因此,要决定我们希望实现的指标,只需要明确:希望测距的最大距离在最大距离下,分辨率(式(5的)数)值在论文3中给出了他的选取规则,这里直接给出一个结论,具体过程就不重复了:假设对于激光光点定位能做到个次像素单位,单位像素尺寸为。并要求在处
12、分辨率。则要求:在我们制作过程中,这个要求还是很容易做到的。另外目前的摄像头往往具有更小的单位像素尺寸(在同样大小的芯片上做出了更高的分辨率),因此实际的取值下限可以更低。而对于摄像头分辨率、激光器夹角,则决定了测距的范围(最近最远距离)。这里也同样不再重复了,可以参考。对于使用进行测距的摄像头,其分辨率即可做出比较好的效果,更高的分辨率更好(当然后文会提到缺点)。一般在左右。激光雷达的原理和性能制约因素在实现了单点激光测距后,进行激光扫描就非常容易:进行旋转。这里讨论的他的性能问题:扫描速度。对于采用三角测距的方式,从摄像头画面上识别出激光点到计算出实际距离对于目前的桌面计算机而言,几乎可以
13、认为不需要时间。那么,制约扫描速度的因素就在于摄像头的祯率了。对于目前市面常见的摄像头,其工作在分辨率的模式下最高帧率都在S那么,扫描速度就是e换言之就是每秒钟进行次的测距计算。对于一个18度0范围的激光雷达,如果按照每1度进行一次测距计算,最短需要6秒。如果要提高扫描速度,很自然的就是提高祯率。对于摄像头,有摄像头可以做到。但这也只能实现秒度扫描。需要更加高的速率,也就意味着更快的传输速度,对于而言,保证的分辨率,很难有所提升。在论文中,他们采用了高速摄像芯片的方式实现了的帧率。由于本制作不需要很高的扫描速度,因此我仍旧采用了的摄像头。激光扫描的原理由前文已经指出,这里采用了线状激光器一次对
14、一条线而非单点的目标物体进行扫描测距。将扫描器进行旋转,从而可以实现扫描。下图展示了他的工作画面和捕获到的摄像头画面:图:本制作早期使用的红色一字线激光器的工作画面图:采用红色一字线激光器捕捉到的画面对于线状激光器进行测距的问题,可以将它转化为前面单点激光测距的计算问题。对于上图中的激光线条,算法将按照轴依次计算出当前轴高度下,激光光斑的坐标值X并尝试通过先前的算法求处该点的距离。为了简化问题,我们先考虑对于一个与摄像头感光面平行的平面上激光光斑各点的距离问题:图:激光线条光斑在平行平面上各点的距离问题抽象如上图所示,远处平面为目标待测平面,上面有一条紫色的激光光斑。近处的平面是摄像头的感光成
15、像平面,经过了翻折后,他可以看作是目标平面到摄像头成像中心点组成的棱锥的一个截面。图中的点位于摄像头投影画面高度的中点,按照针孔摄像机的定义,该点在画面上的投影距离摄像头中心的距离应当为摄像头的焦距。因此,对于,可以直接带入式(4求)出实际距离。现在的问题是,对于其他高度上的点,如2是否可以通过式求得?匚9LUG19CCUf&LP92GLCGUfGl阳EQUf号U&L图:测距的原理答案自然是肯定的,不过这里涉及到了额外的参数。如上图所示,设的投影点到摄像头中心距离为,则到垂线距离可由如下公式得到而很容易知道,可以通过求出:其中的以及分别是点在成像元件上的实际高度,他们可由各自点像素坐标乘以像素高度求出。在求出了垂线距离后,需要转化成实际的距离,此时需要知道以及组成的夹角。该角度可以由立体几何知识通过激光器与的夹角求出。具体的求解公式可以参考本制作配套源代码的计算部分。在求出了平行平面上激光光斑