激光雷达(LDS)技术原理解释及实现过程

一、激光雷达(LDS)简介
1.激光雷达应用举例: 现在自主移动机器人领域非常火爆,无人车、无人飞机、水下机器人、仓储机器人、扫地机等应用层出不穷。激光雷达传感器是地面移动机器人的标配,一些空中机器人也必须使用激光雷达。
2.国内市面上激光雷达举例: 乐行天下(Inmotion)的激光雷达IMLidar,官方网址是 http://robot.imscv.com/ 。其性能稳定可靠,国内前列。具体数据见下图。


图1.1 产品图

图1.2 雷达参数
二、测距模组原理分析及设计
1.三角测距原理
三角测距测量模型如下图。


图2.1 三角测距模型
从测距模型,根据相似三角形原理,我们可知,

其中,q为实测距离,s为激光头与镜头的距离,f为镜头的焦距,x与s对应;x该变量假设了角 度β是一个常量。
角度β和q的关系如下,

对函数(1) 求导,可得,
2.测距模块设计
测距模块的设计需要考虑多种因素。
我们测距模块设计的评价函数(标准)是:系统分辨率、测距的最小值和最大值。
评价函数对应的关键可控变量有:镜头焦距(图2.1中的f)、测距模块机械尺寸(图2.1中的s)、激光头中轴线与镜头中轴线夹角(图2.1中角度β的余角);除了关键变量外,还有比如镜头视场角、透光率、光圈,感光芯片的尺寸、分辨率等等。
先介绍一个概念,系统分辨率:一个像素的平移,对应的实测距离变化量。
由公式(3)可知, 当dx为一个像素大小时,dq就是系统分辨率,即系统分辨率 r = -k*q*q/(fs)。
下图中,绿色的线代表系统分辨率,蓝色的线代表最小测量距离,即盲区。

图2.2 系统分辨率与测距函数
图中的曲线对应的感光芯片的参数是:752个像素,每个像素6微米。
我们期望最小测距不大于20cm,那么f*s就得不大于900;系统分辨率在6m处不大于30cm,那么 f*s就得大于700;因此我们选择了 f*s = 800。考虑到镜头焦距的标准情况,以及激光雷达尺寸不能太大,我们选择f = 16mm,s = 50mm。
至于夹角β,取决于感光芯片的尺寸和分辨率,即


图2.3 IMLidar测距模块
三、测距模组工程实现
1.模组校准
测距模组的主要误差来源是系统分辨率和校准误差。
校准的目的是把实际模组尽可能匹配理想模型。见图2.3,激光头的指向角度、镜头的指向角度、镜头畸变都是需要调整的关键部分。其中,激光头和镜头可由机械装置调节达到理想位置。对于镜头的畸变,我们分两步处理:a、定位激光点的成像像素到亚像素级别。b、对于不同的实测距离,我们进行相应的距离补偿,适配曲线 1/x (详见公式(1))。

图3.1 校准曲线

图3.2 校准误差与测量距离的函数
从图3.2可知,测量距离越远,误差就越大。
以上讲到的校准方法是基于一个基本前提:热应力和机械振动都比较小。
实际实现过程中,热应力和机械振动都不可忽视。我们设计的时候需要选择刚性比较好、热应力影响小的材料。
2.测距算法
我们知道,光斑的能量分布可近似为一个高斯模型。因此,为了减小误差,我们选择灰度质心法来估算光斑成像点的像素位置。

以下是使用了该算法的测距效果:STD

图3.3 REVO测距效果

3.环境光干扰

我们使用了650nm的红激光做实验。选择激光的时候需要考虑:
a、对人眼的危害情况。b、测距信噪比。c、对环境光的抗干扰能力。
我们对IMLidar做了实测。IMLidar的激光安全等级是class-I。激光的功率越大,测距的信噪比就越高(有上限)。直视太阳光,IMLidar失效;但在非直视太阳光的室外、普通室内的环境下,环境光对测距效果没影响。
对于环境光的影响,我们通常采用两种方式处理,一是时间滤波,二是窄带滤波。

图3.4 激光功率
上图体现了激光脉宽与最大允许光强的关系。选择参数是一个博弈的结果,需要多方面权衡利弊。
4. 硬件逻辑
激光雷达的工作流程是:
a、发射激光,同时感光芯片曝光。
b、读取像素数据。
c、计算出像素的中心(质心)位置。
d、把c中的计算结果(像素位置)换算成距离信息。

硬件的逻辑详见下图:

图3.5 LDS硬件逻辑
5.测距性能
REVO测距性能情况如下:10%反射率和90%反射率的条件下的测距效果。


图3.6 REVO测距性能
针对IMLidar,我们测试发现它稳定工作后,误差可保持在测量距离的1%以内。

四、激光雷达扫描工程实现
1. 雷达旋转扫描
我们定义雷达测距的参考点为雷达的旋转中心。


图4.1 雷达旋转
由图4.1,我们可知:

也就是说,雷达旋转起来后,测距的参考点与原来不转的测距模组的参考点不同。因此,我们需要对测距数据做一个公式(6)的换算处理。 2. 角度与测距同步
激光雷达传感器对外提供的数据是距离和角度信息,也就是一个极坐标信息。
角度获取与测距需要同步,才能反映环境信息。
3. 寿命问题
以前的低成本激光雷达都采用滑环的方式给旋转体供电和通信。滑环的寿命比较短,只有大概 1000个小时,因此导致整个雷达的寿命受到影响。IMLidar采用无线供电方式,因此寿命会比较长。具 体数据难以实测。
4. 实测表现
下面是REVO的实测结果。IMLidar的性能实测更好。

图4.2 雷达实测
五、总结
文章主要参考了ICRA上的一篇论文“A Low-Cost Laser Distance Sensor”。
IMLidar的核心设计思想估计也是如此。从原理模型设计到消费级产品,这个过程非常艰难,但相信也很有意思。
作者:李少海。联系方式:QQ395217658。




前言: 说起来,该3D激光扫描测距仪(3D激光雷达)就核心设计原理来而言,应该在激光键盘(https://www.cirmall.com/circuit/2978/detail?3)设计项目之后。现在给大伙讲讲3D扫描测距仪的相关原理和制作细节。请耐心读完,方可吸收其中的精华。 在开始介绍原理前,先给出一些扫描得到的3D模型以及演示视频,给大家一个直观的认识 扫描得到的房间一角: 扫描的我 扫描仪实物 激光三角测距原理这里统一列出他们的参数: 摄像头:VGA画质的USB摄像头,30fps (市面普遍可以购买的型号)。非广角 激光器:50mW 红外一字线激光 808nm 滤光片:10mm直径红外低通滤光片 舵机:HS-322hd 43g标准舵机 本文结构简单介绍了激光雷达产品的现状 : 线状激光进行截面测距原理 3D激光扫描仪的制作考虑 参考文献 简介-激光扫描仪/雷达: 这里所说的激光扫描测距仪的实质就是3D激光雷达。如上面视频中展现的那样,扫描仪可以获取各转角情况下目标物体扫描截面到扫描仪的距离,由于这类数据在可视化后看起来像是由很多小点组成的云团,因此常被称之为:点云(Point Clould)。在获得扫描的点云后,可以在计算机中重现扫描物体/场景的三维信息。 这类设备往往用于如下几个方面: 机器人定位导航 目前机器人的SLAM算法中最理想的设备仍旧是激光雷达(虽然目前可以使用kinect,但他无法再室外使用且精度相对较低)。机器人通过激光扫描得到的所处环境的2D/3D点云,从而可以进行诸如SLAM等定位算法。确定自身在环境当中的位置以及同时创建出所处环境的地图。这也是我制作他的主要目 的之一。 零部件和物体的3D模型重建 地图测绘 现状: 目前市面上单点的激光测距仪已经比较常见,并且价格也相对低廉。但是它只能测量目标上特定点的距离。当然,如果将这类测距仪安装在一个旋转平台上,旋转扫描一周,就变成了2D激光雷达 (LIDAR)。相比激光测距仪,市面上激光雷达产品的价格就要高许多: Hokuyo 2D激光雷达截图: 上图为Hokuyo这家公司生产的2D激光雷达产品,这类产品的售价都是上万元的水平。其昂贵的原因之一在于他们往往采用了高速的光学振镜进行大角度范围(180-270)的激光扫描,并且测距使用了计算发射/反射激光束相位差的手段进行。当然他们的性能也是很强的,一般扫描的频率都在10Hz以上,精度也在几个毫米的级别。 2D激光雷达使用单束点状激光进行扫描,因此只能采集一个截面的距离信息。如果要测量3D的数据 ,就需要使用如下2种方式进行扩充: 采用线状激光器 使用一个2D激光雷达扫描,同时在另一个轴进行旋转。从而扫描出3D信息。 说明: 第一种方式是改变激光器的输出模式,由原先的一个点变成一条线型光。扫描仪通过测量这束线型光在待测目标物体上的反射从而一次性获得一个扫描截面的数据。这样做的好处是扫描速度可以很快 ,精度也比较高。但缺点是由于激光变成了一条线段,其亮度(强度)将随着距离大幅衰减,因此测距范围很有限。对于近距离(<10m)的测距扫描而言,这种方式还是很有效并且极具性价比的,本文介绍的激光雷达也使用这种方式, 对于第二种方式,优点是可以很容易用2D激光雷达进行改造,相对第一种做法来说,他在相同的激光器输出功率下扫描距离更远。当然,由于需要控制额外自由度的转轴,其误差可能较大,同时扫描速度也略低。 这类激光雷达产品目前在各类实验室、工业应用场景中出现的比较多,但对于个人爱好着或者家用 设备中,他们的价格实在是太高了。当然,目前也有了一个替代方案,那就是kinect,不过他的成像 分辨率和测距精度相比激光雷达而言低了不少,同时无法在室外使用。 低成本的方案 造成激光雷达设备高成本的因素为 使用测量激光相位差/传播时间差测距 高速振镜的高成本 矫正算法和矫正人工成本 对于个人DIY而言,第三个因素可以排除,所谓知识就是力量这里就能体现了:-) 对于前2个因素,如果要实现完全一样的精度和性能,那恐怕成本是无法降低的。但是,如果我们对精度、性能要求稍 微降低,那么成本将可以大幅的下降。 首先要明确的是投入的物料成本与能达成的性能之间并非线型比例的关系,当对性能要求下降到一 定水平后,成本将大幅下降。对于第一个因素,可以使用本文将介绍的三角测距方式来进行。而对于 扫锚用振镜,则可以使用普通的电机机构驱动激光器来替代。 本文介绍的低成本3D激光扫描仪实现了如下的成本/性能: 成本:~¥150 测量范围:最远6m 测量精度:(测量距离与实际距离的误差)最远6m出最大80mm误差,近距离(<1m),误差水平在 5mm以内 扫描范围:180度 扫描速度:30 samples/sec (比如以1度角度增量扫描180度,耗时6秒) 对于精
### 如何配置 AD LDS 系统 Active Directory Lightweight Directory Services (AD LDS) 是一种轻量级的目录服务,允许应用程序存储和检索数据。以下是关于 AD LDS 安装、管理工具使用以及实例创建的相关信息。 #### 1. 安装 AD LDS 在安装过程中,需要指定一个唯一的实例名称来标识该 AD LDS 实例。这一步骤是在“实例名”页面完成的,在此页面中,默认实例名为 `instance1`[^3]。可以根据实际需求修改这个名称,或者保留默认设置并继续安装流程。 #### 2. 使用 ADSchemaAnalyzer 进行架构迁移 为了简化从 Active Directory Domain Services (AD DS) 到 AD LDS 的架构迁移过程,可以利用 ADSchemaAnalyzer 工具。通过这一工具,可以从现有的 AD DS 架构快速复制所需的内容,并将其导入到新的 AD LDS 实例中[^2]。具体来说,管理员可以选择特定的架构元素进行标记,随后将这些选定的元素导出至目标 AD LDS 基础设施之中。 #### 3. 启动与初始化设备(扩展) 虽然上述内容主要涉及 AD LDS 的安装与管理,但如果涉及到更底层的操作系统层面,则可能还需要了解 boot ROM 程序的工作机制。例如,在某些嵌入式环境中,启动阶段可能会加载 Initial Load Region 中的数据结构如 IVT 和 DCD 来完成硬件初始化[^4]。不过这部分通常不适用于典型的 AD LDS 场景。 #### 示例代码片段:MATLAB 下 NLOPT 库集成演示 尽管本主题聚焦于 AD LDS 而非 MATLAB 编程环境下的优化算法库调用,但这里仍给出一段有关如何在 MATLAB 中配置第三方 C/C++ 动态链接库的例子作为补充说明: ```matlab % 此脚本展示如何为 Matlab 设置外部函数接口 cd('C:\Program Files (x86)\nlopt\lib\matlab'); mex -v nlopt_optimize.c ../libnlopt.dll; addpath(genpath(pwd)); ``` 以上命令序列展示了如何编译来自 NLopt 开源项目的 MEX 文件以便能在 MatLab 平台上无缝调用其核心功能[^5]。注意这里的上下文切换到了完全不同的技术领域——数值计算而非企业级身份验证服务! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值