自制低成本3D激光扫描测距仪(3D激光雷达)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
来自CSK的低成本3D scanner。Very Impressive!
在开始介绍原理前,先给出一些扫描得到的3D模型以及演示视频,给大家一个直观的认识。视频链接
相关的图片:
扫描得到的房间一角(点击查看原始尺寸)
扫描的我(点击查看原始尺寸)
扫描仪实物
本文结构
1. 简单介绍了激光雷达产品的现状
2. 激光三角测距原理
3. 线状激光进行截面测距原理
4. 3D激光扫描仪的制作考虑
5. 参考文献
简介-激光扫描仪/雷达
这里所说的激光扫描测距仪的实质就是3D激光雷达。如上面视频中展现的那样,扫描仪可以获取各转角情况下目标物体扫描截面到扫描仪的距离,由于这类数据在可视化后看起来像是由很多小点组成的云团,因此常被称之为:点云(Point Clould)。
在获得扫描的点云后,可以在计算机中重现扫描物体/场景的三维信息。
这类设备往往用于如下几个方面:
1) 机器人定位导航
目前机器人的SLAM算法中最理想的设备仍旧是激光雷达(虽然目前可以使用kinect,但他无法再室外使用且精度相对较低)。机器人通过激光扫描得到的所处环境的2D/3D点云,从而可以进行诸如SLAM 等定位算法。确定自身在环境当中的位置以及同时创建出所处环境的地图。这也是我制作他的主要目的之一。
2) 零部件和物体的3D模型重建
3) 地图测绘
现状
目前市面上单点的激光测距仪已经比较常见,并且价格也相对低廉。但是它只能测量目标上特定点的距离。当然,如果将这类测距仪安装在一个旋转平台上,旋转扫描一周,就变成了2D激光雷达(LIDAR)。相比激光测距仪,市面上激光雷达产品的价格就要高许多:
图片: Hokuyo 2D激光雷达
上图为Hokuyo这家公司生产的2D激光雷达产品,这类产品的售价都是上万元的水平。其昂贵的原因之一在于他们往往采用了高速的光学振镜进行大角度范围(180-270)的激光扫描,并且测距使用了计算发射/反射激光束相位差的手段进行。当然他们的性能也是很强的,一般扫描的频率都在10Hz以上,精度也在几个毫米的级别。
2D激光雷达使用单束点状激光进行扫描,因此只能采集一个截面的距离信息。如果要测量3D的数据,就需要使用如下2种方式进行扩充:
1. 采用线状激光器
2. 使用一个2D激光雷达扫描,同时在另一个轴进行旋转。从而扫描出3D信息。
第一种方式是改变激光器的输出模式,由原先的一个点变成一条线型光。扫描仪通过测量这束线型光在待测目标物体上的反射从而一次性获得一个扫描截面的数据。这样做的好处是扫描速度可以很快,精度也比较高。但缺点是由于激光变成了一条线段,其亮度(强度)将随着距离大幅衰减,因此测距范围很有限。对于近距离(<10m)的测距扫描而言,这种方式还是很有效并且极具性价比的,本文介绍的激光雷达也使用这种方式,
图:一字线红色激光器
对于第二种方式,优点是可以很容易用2D激光雷达进行改造,相对第一种做法来说,他在相同的激光器输出功率下扫描距离更远。当然,由于需要控制额外自由度的转轴,其误差可能较大,同时扫描速度也略低。
这类激光雷达产品目前在各类实验室、工业应用场景中出现的比较多,但对于个人爱好着或者家用设备中,他们的价格实在是太高了。当然,目前也有了一个替代方案,那就是kinect,不过他的成像分辨率和测距精度相比激光雷达而言低了不少,同时无法在室外使用。
低成本的方案
造成激光雷达设备高成本的因素为
1. 使用测量激光相位差/传播时间差测距
2. 高速振镜的高成本
3. 矫正算法和矫正人工成本
对于个人DIY而言,第三个因素可以排除,所谓知识就是力量这里就能体现了:-) 对于前2个因素,如果要实现完全一样的精度和性能,那恐怕成本是无法降低的。但是,如果我们对精度、性能要求稍微降低,那么成本将可以大幅的下降。
首先要明确的是投入的物料成本与能达成的性能之间并非线型比例的关系,当对性能要求下降到一定水平后,成本将大幅下降。对于第一个因素,可以使用本文将介绍的三角测距方式来进行。而对于扫锚用振镜,则可以使用普通的电机机构驱动激光器来替代。
本文介绍的低成本3D激光扫描仪实现了如下的成本/性能:
成本:~¥150
测量范围:最远6m
测量精度:(测量距离与实际距离的误差)最远6m出最大80mm误差,近距离(<1m),误差水平在5mm以内
扫描范围:180度
扫描速度:30 samples/sec (比如以1度角度增量扫描180度,耗时6秒)
对于精度而言,这个低成本方案足以超过kinect,不过扫描速度比较慢,但是对于一般业余用途而言已经足够。不过,该扫描速度是很容易提升的,本文将在分析其制约因素后介绍提高扫描速度的方法。
原理和算法
这里先介绍测量目标上一个点所涉及的算法。3D扫描将采用类似的方式进行扩充。
使用单点激光进行三角测距
除了使用相位差和时间差进行TOF测距外,另一种测距方式就是三角测距。这也是实现低成本激光测距的关键,因为这种方式不需要具备其他测距方式所要求的特殊硬件。并且,在一定距离范围内,三角测距也可以达到与TOF测距媲美的测量精度和分辨率。
图片(来源自[3]): 激光三角测距原理
目前有不少爱好者[1][2]基于激光三角测距制作了激光雷达或者测距仪,本制作也采用了这个方式。除了本文外,参考论文[3]也给出了较多的细节。(该论文的作者所在的公司正是将低成本激光雷达用于家用机器人XV-11的开发商,这里就不扯开了:-)
这里摘录了论文中的示意图,要进行激光三角测距,所需的设备很简单:点状激光器、摄像头。因此,能做到多少的成本大家现在应该比较清楚了。
图中展现了测量对象Object距离激光器的距离d的示意图。图中的Imager部分是对摄像头的一种抽象表达(针孔摄像机模型)。标有s的线段实际可以是一个固定摄像头和激光器的