0. 前言
本文将对激光雷达在自动驾驶领域的应用做一个整体的介绍, 所以每一部分不会特别深, 但是争取囊括激光雷达的所有"知识点".
1. 硬件及工作原理
首先对激光雷达工作原理, 可以根据下图某厂商的激光雷达性能参数分别介绍一下:
1.1 测距原理
常见的测距原理有如下几种:
1.三角法测距;
2.tof(time of flight) 飞行时间测量法;
3.FMCW(Frequency Modulated Continuous Wave) 调频连续波, 这是毫米波雷达的主要测距方法, 所以除了测距还可以测速;
4.AMCW(Amplitude Modulated Continuous Wave)调幅连续波;
由于测距较远, 目前自动驾驶领域的激光雷达基本都采用 tof 的方法, 几个月前了解到目前有厂家在研究FMCW测距方法的激光雷达, tof 具体的测距原理很简单:
1.2 扫描原理
常见的扫描原理有以下几种:
1.传统机械扫描,下图是一个2d激光雷达,也就是线数为1;
2. OPA(Optical Phased Array) 光学相控阵; 光学相控阵技术的原理是利用光源相干技术实现光线角度偏转,从而达到扫描测距的目的;
3. MEMS(Micro-Electro-Mechanical System) 微机电系统, 半固态激光雷达, 由于内部有可旋转的MEMS微振镜,依然没有摆脱机械结构;
4. FLASH 泛光面阵式, 纯固态激光雷达, 工作原理类似于摄像头, 只不过摄像头是被动接受光信息, 而FLASH是主动发射面激光并接受反射激光;
由于机械式激光雷达的损耗严重, 很难长时间使用, 故将会是激光雷达发展历史的过度产物, FLASH由于测距距离很近也很难应用到自动驾驶领域, OPA对加工工艺要求很高, 故笔者认为未来短期内是MEMS将会迎来较大发展.
1.3 其他参数
线数: 对于机械激光雷达来说, 一般多少线就需要多少个激光器;
反射率: 激光雷达返回值除了三维点坐标 (x, y, z)之外, 还有反射率, 反射率和距离, 入射角度, 物体表面反射率相关, 不同厂家对于反射率的计算也不一样, 有的范围在[0, 1], 有的范围在[0, 255];
探测距离: 一般要求都是200m, 以达到最远刹车距离的要求;
回波模式: 单回波和多回波,为什么会产生多回波呢, 激光雷达发出的激光点是有一定面积的, 有时可能会出现1个激光点发出后, 打在2个物体上(如同一束激光打在两片树叶上), 此时可以选择是接受最后一次回波的值还是反射强度最强的回波的值.
扫描频率和水平角视场角&角分辨率: 10Hz就代表每秒扫描10次(转10圈), 水平视场角也就是水平FOV, 机械旋转式常为360°, 因为每100ms(10Hz)转360度, 水平角分辨率为0.2°的话, 转一圈就产生360/0.2=1800个点, 如果每50ms(20Hz) 转一圈的话, 就转一圈就产生360/0.4=900个点, 所以通常自动驾驶领域为了点更密集, 常采取10Hz.
垂直角视场角&角分辨率: 垂直视场角常常不是和水平线对称的, 而是略微朝下倾斜的,这也是为了扫描到更多的障碍物, 充分利用点云, 可以看到某家的自动驾驶激光雷达部署的时候还故意向下倾斜来弥补近处的盲区.
保护等级: IP6K7 6和7分别代表防尘雾等级,越高越好;
波长: 常见的激光雷达波长为 905nm, 1550nm两种, 1550nm 距离可见光波段更远, 所以对人眼更安全, 理论上可以通过增加功率提高测距距离, 同时波长更长穿透度更好,更有利于在雨雾天气使用, 但由于成本较高, 还未成为主流.
2. 在自动驾驶领域的应用
2.1 物体检测(object detection)
物体检测在深度学习没有快速发展之前常用聚类的方式(参考 https://zhuanlan.zhihu.com/p/79044872), 但是很难做动静态分离, 随着深度学习技术的发展, 点云物体识别也更多的使用深度学习 , 这里可以参考[https://zhuanlan.zhihu.com/p/111435045, 更有甚者在室内机器人领域还有人做基于点云的实例分割(instance segmentation);
2.2 SLAM(simultaneous localization and mapping)
SLAM和物体检测是激光雷达在自动驾驶领域最重要的两个应用, 而SLAM的主要作用就是建图和定位, 目前来看自动驾驶很难脱离高精地图工作, 建图过程又有很多的点云拼接, 动态补偿等等工作, 是建spare/dense还是多层次的图也值得考虑, 定位过程又包括特征匹配等工作; SLAM 主要也分为视觉SLAM 和激光SLAM, 有时建图的过程同时包含了视觉和点云的特征, 下图是地图服务公司DeepMap的一个demo:
2.3 多传感器标定(calibration)
传感器标定的意义主要是让车体本身知道障碍物的位置在哪里, 因为激光雷达识别出来的物体是在激光雷达坐标系下的位置, 所以需要标定的外参来得到障碍物在车体坐标系下的位置, 以便规划模块做出决策;
传感器标定又分为在线和离线, 常见的标定屋就是离线标定, 因为车在行驶过程中常常出现颠簸导致车体和传感器之间的位置发生变化, 所以每行驶一段时间最好做一次在线标定, 下图是常见的标定屋;
在线标定也可以分为传统算法和基于深度学习的方法(参考,[基于深度学习的多传感器标定]https://zhuanlan.zhihu.com/p/73073753);
2.4 可通行空间检测
freespace 也就是可通行空间, 这是规划模块一个比较重要的输入,下图绿色区域就是典型的可通行空间;
2.5 仿真(simulator)
我们都知道深度学习是数据驱动(data driven)和模型驱动的, 所以有大量的数据对DL来说是非常必要的, 但是很多公司受限于没有大量实车去采集, 仿真就显得很有必要(商机啊!!!),
目前感觉还没有很好的激光雷达仿真器, 因为入射角度, 距离, 天气, 材质,湿度等等因素都会影响到点云的反射率, 很多仿真器采用的是基于真实数据去构造.
3. 总结
除了自动驾驶领域, 激光雷达在家居机器人,智能手机(Iphone12), 测绘等等领域都有广泛应用;
其实自动驾驶里的应用每一个部分都可以深耕, 尤其是SLAM应该是激光雷达的大坑…, 跳进去的话还是很酸爽的;
未来激光雷达能否在自动驾驶车上量产还是各方的博弈, 笔者还是比较乐观的;
国内的激光雷达的质量逐步提高这点也让我很欣慰
参考资料
https://zhuanlan.zhihu.com/p/134059056
https://link.zhihu.com/?target=https%3A//www.sohu.com/a/233592199_100144710
https://zhuanlan.zhihu.com/p/139350599