rplidar 三角测距激光雷达原理

rplidar 三角测距激光雷达原理买了一个rplidarA2,做工不错,挺漂亮的,更重要的是可以软件启动停止,噪声很小,而且反射检测灵敏度比较高(可以扫描到毛玻璃, 有些差的激光雷达检测不到毛玻璃上的反射)。使用之后感觉很不错。马上就有其他部门的同事过来看热闹,问这问那。于是本人热心讲解了一番。不过感觉他们还是那么萌萌的表情。在此,简单分享一下rplidarA2这种激光雷达的原理和重点技术。rplidarA2

大家好,又见面了,我是你们的朋友全栈君。

买了一个rplidar A2, 做工不错,挺漂亮的,更重要的是可以软件启动停止,噪声很小,而且反射检测灵敏度比较高(可以扫描到毛玻璃, 有些差的激光雷达检测不到毛玻璃上的反射)。

使用之后感觉很不错。马上就有其他部门的同事过来看热闹,问这问那。于是本人热心讲解了一番。不过感觉他们还是那么萌萌的表情。

在此,简单分享一下rplidar A2这种激光雷达的原理和重点技术。

rplidar A2 是一种三角测距原理激光雷达,原理和TOF激光雷达不同。 TOF激光雷达是根据测量光的飞行时间来计算距离的。而三角测距激光雷达是通过摄像头的光斑成像位置来解三角形的。

于是,先画个草图介绍一下原理

rplidar 三角测距激光雷达原理

如上图所示, 01是激光发射器, 射出去的激光由红色虚线表示, A,B,C是三个反射点。02是摄像头光心轴, 绿色三角形代表用来捕捉反射光斑的相机模型。这张图画的是经典小孔模型。 A,B,C的成像点分别是A‘,B’,C‘. 由于激光发射器和相机安装的相对位置是已知的, 也就是说相机的光心轴和激光(线)的角度已知(本图画的是90度), 线段0102长度已知, 角0102A也已知(通过成像点在像平面的位置可以知道), 于是问题变成了一个“角边角问题”, 上过初中的同学都应该知道, 已知“角边角”, 三角形有唯一解, 于是01A的长度是可以算出来的。 同理, B,C 两点距离01的距离也是可解的。

原理是不是很简单~

细心的同学会发现,如果这样安装,相机成像只有一半的, 太浪费了嘛。

于是,调整相机安装方式,这样大部分地区都可以成像了吧!

rplidar 三角测距激光雷达原理

这些相机模型都还是小孔模型,有没有更好的方法利用相机的sensor来采样呢

聪明的同学又会想到如何将整个量程均匀分布在相机sensor上, 于是可以换透镜,于是有了下面这个图, 圆形区域代表透镜,(我画的是常见的圆形表示, 但实际上这个透镜应该有点凹,效果才会理想)。由于rplidar是2维的,所以成像sensor做成长条状就够了。

rplidar 三角测距激光雷达原理

以上相机采样都是同步瞬间完成的。

好了, rplidar激光雷达的三角测距原理讲完了。接下来的,会有同学说, 我知道距离了, 可是这个雷达一直在转我怎么精确知道它的角度呢。

还好当年上学比较专心,稍微想想不用拆都知道使用编码盘啦。 光电编码盘 可以直接获取旋转角度。比如给它装个8位编码盘,那么就可以有512个刻度(通常叫光栅编码盘,一般都有上千个编码。例如激光雷达UXM-30LX-EW 用的就是1440的编码盘)。每次电机旋转,触发光电编码器编码变化,就触发激光采集一次(这样省功耗)。调好时间延迟,就可以精确知道每个角度的距离。

这个激光雷达还有一个需要注意的地方, 它的数据采集是在旋转机构上做的, 那么需要把数据传回底座,必须采用无线/光通讯的方式回传(光编码也算是一种吧)。 而且要控制供电,用有刷肯定不好。需要像无刷电机那样给转子供电。所以但凡做了激光雷达的公司都会宣传掌握了关键光磁融合技术等等之类的。其实跟无刷电机大同小异啦。 

从上面的原理分析,我们可以得知,类似rplidar这种激光雷达量程是很难做到很远的。通常有效都是5,6m。此外,它也很容易被干扰, 如果使用同频率的光源让相机sensor成像上有多个光斑,或者过曝,或者多个雷达相互干扰,那么就无法得到真实数据了。所以几乎所有的三角测距激光雷达都不能在太阳光直射下工作。 而TOF激光雷达通常是加了编码的,可以在很大的噪声背景下获取真实信号,所以可以在太阳光直射下使用, 也可以相互抗干扰。 

如果需要多机协同工作,而且每个机器安装高度相近的话, 类似rplidar A2这种激光雷达会相互干扰(干扰概率多大呢?这跟它们的FOV有关系啦,FOV越大说明量程可以做大,但也意味多个雷达工作时容易受到干扰)。如果非要避免干扰的话,必须使用通讯方式,让某一个雷达停下了,分时使用,感觉这样太笨了吧,建议干脆安装位置故意错开。来来来,看看FOV究竟又多大,见图:

rplidar 三角测距激光雷达原理

rplidar 三角测距激光雷达原理

rplidar 三角测距激光雷达原理

最后两张图反映了两个信息:

1》镜头里面添加了滤光片,所以可见光都被反射回来了,所以像镜子一样(圆圈里的图像是我的华为手机摄像头,双摄头)。但指定波长的红外光可以穿过。

2》视角(FOV)就这么大,大家好好感受一下吧!想象一下里面有一个横着的长条sensor,再回忆一下三角测距原理,是不是感觉很简单了呢!

Good Luck~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140869.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ICSharpCode.SharpZipLib.dll 使用方法[通俗易懂]

    ICSharpCode.SharpZipLib.dll 使用方法[通俗易懂]ICSharpCode.SharpZipLib.dll使用方法https://blog.csdn.net/luhn12345/article/details/48090887ICSharpCod

    2022年7月1日
    24
  • 自己的中文名用英文_如何根据姓名首字母排序

    自己的中文名用英文_如何根据姓名首字母排序一个功能需求,做一个类似联系人列表的功能,点击名称获取对应的id,样式简陋,只是一个模板,原来是uniapp项目,根据需要改成了vue,需要的自行设计css流程获取数据提取首个字的拼音的首个字母排序并分组直接上代码吧<template> <div> <divv-for=”(item,index)inindexList”> <div><b>{{item.title}}</b></div> .

    2022年10月10日
    3
  • sublime3激活码-激活码分享

    (sublime3激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~ML…

    2022年3月21日
    42
  • 数据结构 – 链表和数组的区别[通俗易懂]

    数据结构 – 链表和数组的区别[通俗易懂]文章目录数据结构-链表和数组的区别1、在内存上2、时间复杂度3、链表的结构4、各自的优缺点5、为什么使用较常用的是单头链表数据结构-链表和数组的区别1、在内存上数组是连续内存,因为是静态分配,所以不可扩容链表是非连续内存,动态分配,也没有顺序,它通过链表中的next指针保存逻辑顺序2、时间复杂度查找时间复杂度1、数组使用下标定位,1次就可以找到,O(1)2、链表需要循环去找,最大需要N次,O(N)插入删除时间复杂度1、数组插入删除需要移动其它元素,复杂度

    2025年7月9日
    2
  • UI标签库专题十三:JEECG智能开发平台 ckfinder(ckfinder插件标签)

    UI标签库专题十三:JEECG智能开发平台 ckfinder(ckfinder插件标签)

    2021年12月3日
    45
  • 如何理解红黑树_位置与方向的初步了解

    如何理解红黑树_位置与方向的初步了解教你透彻了解红黑树 作者:July、saturnman  2010年12月29日本文参考:Google、算法导论、STL源码剖析、计算机程序设计艺术。推荐阅读:Left-LeaningRed-BlackTrees,DagstuhlWorkshoponDataStructures,Wadern,Germany,February,2008.直接下载:http://www.cs

    2022年8月18日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号