自动驾驶中的传感器系统

2021年11月21日汽车技术评论588阅读模式
「Pony Tech」是小马智行Pony.ai推出的深度技术科普专栏,由专业的工程师总结归纳出自动驾驶领域的技术实践及研究成果。本文主题为自动驾驶中的传感器系统,主要内容包括:
  • 自动驾驶分级

  • 自动驾驶对传感器需求

  • Pony Alpha自动驾驶传感器系统

  • 激光雷达

  • 相机

  • 毫米波雷达

  • 全球卫星定位及惯性测量传感器

  • 传感器系统的时间同步

  • 传感器系统的集成度设计

  • 传感器的选型与评估
自动驾驶中的传感器系统
简单概括一下,自动驾驶需要解决以下主要问题:
我在哪?
定位的问题。比较传统的是使用全球导航卫星系统/GNSS定位,或者我们再结合惯导系统再进行综合定位,甚至再加上激光雷达与高精地图的匹配定位。
我要去哪?
不管是自动驾驶出租车(RoboTaxi)还是卡车,很重要的一点便是从A点到B点,最直观的问题便是:我们需要地图数据;然后我们需要做出合理的线路规划。
前方红灯还是绿灯?交通标志?
基本的交通标志的信息可以预置在地图信息里面,但是像动态的红绿灯的识别,或者一些特定的交通标志的识别,就涉及到使用摄像头。
周围道路情况,有没有车辆,行人或是障碍物?
对于这个问题,第一我们要做到对物体的识别和分类,这就涉及到我们需要使用多种传感器来进行处理,比如激光雷达、毫米波雷达以及摄像头。第二我们还需要做一些预测的判断,比如当我左转时对向车道会不会有车过来,会不会发生碰撞,这就需要系统能准确检测旁边物体的距离、速度和加速度等。
如何安全,快速并且舒适的抵达目的地?
这涉及到车辆在运行动态中的规划与控制,针对这一问题,我们可以利用惯性测量单元(IMU)解决。

1

自动驾驶分级
自动驾驶中的传感器系统
自动驾驶的分级定义:
从0级到5级,最重要的变化其实是从需要人类完全驾驶这辆车过渡到人类完全不需要驾驶这辆车。每一级的增加其实就是一个跳变,我们逐渐地解放手和脚,甚至眼睛也不需要在盯着路面。
从操作方式来讲,包括对周边的观察还有是否需要人类介入,从0级到5级,就是一个逐渐释放人类同时作用域不断扩大的过程。如果大家从这个方向出发就可以很好理解自动驾驶的分级定义。
2
自动驾驶对传感器需求
自动驾驶中的传感器系统
自动驾驶需要哪些传感器:
到自动驾驶发展到上图中4-5阶段的时候,人的大脑被完全解放,在驾驶的过程中,人不需要再时刻地准备接管车辆。
尽管上图右边对传感器的描述不是那么准确,但它比较能体现随着自动驾驶级别增高,对于传感器的依赖其实越来越多,在实质及形式上需要更多的高质量、不同类型的传感器来辅助,同时在高级别的自动驾驶系统中传感器的数量也变得越来越多。
多传感器融合的感知系统可以形成互补,有效应对现实世界中的光照、天气、路况各种复杂条件,以及在安全方面形成冗余设计。
自动驾驶中的传感器系统
上图是我整理的关于激光雷达、可见光相机、毫米波雷达以及超声波传感器,各个因素方面强弱的对比。
总体来看,没有一个传感器是非常强、可以被我们完全依赖的,每个传感器在当前这个阶段都有其弱项。那么我们就需要其他传感器来补足弱项。

3

PonyAlpha自动驾驶传感器系统
自动驾驶中的传感器系统
首先,我们有三个激光雷达(LiDAR),一个位于车顶,360度兼顾整车,其余两个短距离激光雷达位于车身两侧,负责转弯保护以及盲区检测。
我们有四个雷达(Radar),侧向的是辅助探测两边的路况然后进行转弯保护。另外前后的两个也是可以覆盖比较长的距离。
其次我们在车一周有四个广角的摄像头,可以360度覆盖视野。在前视区域我们还另外安装了一个中距相机和一个远距相机,分别覆盖不同的距离上的检测和识别。
我们的特点包括:
Sensor fusion:我们的整个传感器系统的数据是做到时间同步的,以便进行融合识别算法。另外这种传感器组合,形成了一个冗余的设计,可以提供更可靠的数据,帮助实现更安全的检测和车辆控制。
360°, 200m sensor coverage:我们有更大的相机覆盖范围,来做到红绿灯辨识和障碍物检测与分类。另外我们还有长距雷达来适应高速、各种天气和路况上车辆行驶的需求以及车辆盲区的覆盖。
自动驾驶中的传感器系统
这是Pony.ai目前使用的一些自动驾驶车辆,包括像林肯MKZ, 广汽Aion LX, 现代Kona以及雷克萨斯Rx450h。由此可见我们的传感器系统设计是具有普适性的,几乎所有车型都可以使用PonyAlpha传感器系统。

4

 激光雷达LiDAR
自动驾驶中的传感器系统
激光雷达利用激光进行探测,它使用的是红外光。使用红外光优势在于,进行扫描探测时不会对人的视觉产生干扰;其次由于红外光探测技术在通信等方面已经得到广泛应用,技术相对成熟成本也比较低。再者红外光在大气中的传播比较稳定,不太会受到干扰,而且从太阳的频谱分布来讲,1550nm波段的红外光相对能量要小一些,对红外系统的影响会小一些。
激光雷达的原理是:通过一个发射器,打一束光在物体上然后反射回来。通过时间差,结合光速来进行距离探测。通常在实践中会运用一些特殊手段来克服由于光速太快导致的对时钟的高负荷依赖。上图中是一个单线的激光雷达示意图,它通过不断地扫描视野里的物体,并根据光折射回来的时间,折算成距离并绘制出扫描后的图像。
自动驾驶中的传感器系统
机械式激光雷达:使用高精度的光学系统,以及旋转结构来创造360度的水平视场角。两边有两个旋转机构,一方面主要实现在水平视场角上拥有360度视线,其次利用tilting mirror的转动来实现垂直方向的扫描。
旋转式激光雷达是自动驾驶比较早期使用的,因为使用比较好的激光发射器件,所以通常具有高信噪比的特点,但是因为旋转结构的特点,通常封装较大,质量较重。旋转机构的可靠性比较差,产品的一致性也会比较差。
现役的LiDAR通常都是混合式的,即在垂直方向上是多通道的设计,但是在360度水平方向上还是使用这种旋转的扫描机构。
自动驾驶中的传感器系统
固态LiDAR:
我认为固态LiDAR将是未来的发展趋势,虽然尚未广泛应用此类产品但是从工业发展的角度来说,固态LiDAR一方面有利于降低成本,另一方面有利于提高其稳定性。
它主要包括三种(如上图):
MEMS LiDAR实际上是使用MEMS技术控制扫描镜,来做到一定角度上的扫描功能。
Flash LiDAR比较像是手机上的ToF(Time-of-Flight) Camera,使用面阵光传感器的光学成像来取代旋转扫描结构。Flash LiDAR比较突出的问题一方面在于其信噪比不是太好,远逊色于机械式、混合式LiDAR,所以其主要运用会集中在短距离。
Optical phased array (OPA)。
自动驾驶中的传感器系统
随着技术的进步,LiDAR将朝四个方向发展:
第一,成本降低:随着越来越多的研究者的加入和新技术的演进,LiDAR的成本必然降低。
第二,性能提升将体现在视场角和分辨率、信噪比、雨雪天气的抗干扰、相互间防互扰、和可靠性五个方面。
第三,固态LiDAR的应用将是自动驾驶公司外来发展的重要方面。
第四,LiDAR将满足高级别自动驾驶的功能安全。
5
相机
自动驾驶中的传感器系统
我们再来讨论下自动驾驶中的相机
相机的结构原理其实非常简单,每一个相机的像素都是一个感光二极管,接受光子之后形成电荷,并将电荷存储在电荷井里面,然后通过采样电路再将其采样转化为数字信号。
为实现颜色的探测,目前通常做法是增加color filter,上图中增加的是张红色滤光片,目的是只让红色波段的光透进来。每个像素都有一个微透镜,微透镜是为了让在一个像素上更好地去聚敛光源然后吸收更多的光子形成电荷,而提高设备感光度。
自动驾驶中的传感器系统
上图是我们比较常见的汽车上使用的相机模组的解剖。除了最外侧的铝壳以及密封圈和镜头之外,其实中间就是比较简单的几层板的设计,通常包括传感器的sensor板,图像处理器的小板,还包括一个串行器的板。为什么需要串行器,是因为通常相机传感器或ISP的图像数据输出总线是MIPI CSI标准,其特点是高速穿行,但是传输总线距离较短,否则无法保证信号的完整性。
所以在车辆上,我们需要将其转换成例如GMSL等适合在车上长距离传输的高速总线标准进行传输,所以相机模组内部通常会通过串行板进行总线的转换。
另外同轴电缆既可以用来为模组提供电源,也可以传输图像数据。
自动驾驶中的传感器系统
相机的图像处理流程大致是这样的:
从相机感受到电荷之后,转化成每个像素的数字信号,它的输出我们可以叫做一个bayer pattern,当bayer pattern进入到ISP之后,经过一系列的图像处理才会变成可以正常预览或者拍照形成的图像。
图像处理中有一些比较关键的步骤,比如我们会做白平衡,因为人眼的视觉会对所看见的颜色做一定的纠正,比如看在黄光照射的范围里,我们看到的黄光打亮白纸不再是白纸。所以很重要的是白平衡的矫正,白平衡的矫正之后会做demosaic,将每个像素的全部颜色通道全部还原回来。
然后每个Sensor的特性或者因为一些原因导致的偏色,需要通过颜色校正的矩阵乘法来做更正。
再之后需要转到ycbcr域去做例如针对亮度通道或颜色通道的降噪或者补偿。
总体来说,这是一个非常简单的流程,实际上在车载应用中的流程非常复杂,涉及到更多的如HDR多帧曝光,合成,tone mapping等算法。
自动驾驶中的传感器系统
上图展示了车载系统的基本组成:黄色的箭头代表数据的传输,蓝色的箭头代表控制信号的传输。
从最前端来说,镜头、相机传感器通过图像信号处理器走到串形器,再通过车内长距离的传输再走到解串器,解串器进来之后再到接收器。接收器会还原图像数据,并做必要的后处理,如颜色格式转换,downsampling,JPEG encoding等,最终图像数据会送给CPU和GPU去做感知算法。
自动驾驶中的传感器系统
对于相机的HDR(高动态范围),首先我们需要了解什么是动态范围,动态范围是相机能感受到的最强的光照条件和最差的光照条件的比例关系。
最强条件比如在某个lux level的光照下pixel电荷已经饱和了,输出达到了最大值,那这些就是最强条件。最弱条件就是比如有效信号和噪声无法区分,这些就组成了动态范围。但是一般相机的动态范围无法达到人眼的动态范围。所以会有一些技术来帮助相机来实现很强的动态范围。传感器的技术上例如增加pixel电荷容纳能力,从而提升拍摄最强光照的能力,还有例如多帧曝光技术,分为三种:
连续多帧不同曝光,比如对不同的第一帧,第二帧,第三帧利用不同的长曝光,中曝光,闪曝来捕捉不同光照条件下的图像数据,最后将其综合。过曝的区域使用短的曝光的图像补充,低照度的区域用长曝光的区域补充,但该技术因为不同的曝光需要一定的时间间隔,不利于拍摄高速或者动态变化的图像。
同一帧分时分行交错不同曝光,在逐行曝光的过程中,利用时间差来把同一行进行不同时的长短交错曝光,对比连续多帧不同曝光,两者效果类似,但是好处在于可以降低迟延造成后期合成图像的问题,缺点在于价格较为昂贵,涉及到数据的缓冲等。
同一帧不同区域的不同曝光,这是一种传感器的不同设计,在空间区域上实现不同曝光,通过差值算法得出不同曝光的完整frame。
除了HDR sensor,HDR image processing也需要用相应的能力来支持HDR,例如:
Multi-Exposure Combining: 拿到数据之后使用合成方法合成;
High Bit-Depth Processing: 支持高带宽,比如12比特或20比特的图像数据处理;
Tone Mapping to Low Big-Depth: 通过非线性的压缩算法将高bit数据压缩到低bit数据,并保留相应的图像细节。
自动驾驶中的传感器系统
开发遇到的另一个挑战是闪烁抑制,Led Flickering。
现实世界中的很多光源存在人眼察觉不到的闪烁,例如100hz的频闪。在白天光照充足的时候,相机曝光的时间通常很短(比如1ms)。如果相机的曝光时间和LED灯亮的周期重合,我们可以拍到灯亮的状态,但是如果错过去了就只能拍到灯暗的状态。这会导致交通灯识别上出现问题。
在夜间这反而不会构成问题因为曝光的时间会很长,大概率可以捕捉到灯亮的周期。通常解决这样的问题需要依靠传感器特定的技术,比如split pixel。也就是相机除了大像素还配备一个小像素,小像素做长曝光,最后图像实现合成来抓到灯亮的图像。
另外还有一些技术,比如在中长短曝光中,长曝光的图像中大概率抓到灯亮的图像,在条件适合的时候,可以通过一定的算法加入合成来判定。如果还是不行,在后期还要通过一些特定的方法(比如控制曝光的周期)来采取灯亮的时间,再结合一定的算法实现。
自动驾驶中的传感器系统
相机系统的挑战和发展,总体来讲大家在自动驾驶这个行业都会遇到的一些问题需要解决,比如需要更大的分辨率来应对更远和更小物体的识别,如何提升动态范围等。
6
毫米波雷达
自动驾驶中的传感器系统
雷达技术更早运用于军事领域,利用无线电信号来对物体的位置和速度做检测。随着自动驾驶的兴起,雷达在自动驾驶系统中应用的越来越多。
雷达分为短距,中距和长距。长距雷达覆盖距离可以达到三百多米。同相机比,雨雪天气、环境、和光照条件对雷达的限制很小。
自动驾驶中的传感器系统
上图展示了雷达的基本原理。
如果是为了检测单一物体,发送调试好的信号,信号会在一定时间后返回,通过解析信号可以检测物体。如果物体与我们相对位置没有变化,发出和返回的信号会没有变化,通过计算可以得出是固定频率的信号。
如果是检测多个物体,且都有回波的话,通过傅里叶变化我们可以解算出多个静态物体。如果是和我们有相对运动的物体,它的回波信号会发生变化,通过解析信号可以测量运动的速度,雷达是一种可以直接测量到速度和位置的方式。
自动驾驶中的传感器系统
雷达的特性包括:
  • 无机械运动部件,可靠性高,相对成本低;

  • 具有较好的距离分辨率,但是水平角分辨率较差;

  • 可以提供距离,速度和方位角的信息,但是无高度信息;

  • 受天气条件影响小,不受光照天气影响,长距离探测可达250米;

  • 相较于光学传感器(相机和激光雷达),Radar可穿透某些物体(比如前后保险杠)
7
全球卫星定位及惯性测量传感器
自动驾驶中的传感器系统
简单介绍GNSS&IMU定位系统
高级别的自动驾驶需要高精度的定位,在这种情况下,我们没有办法依靠人去计划,所以通常我们需要准确知道自己的位置来匹配地图,来判断车辆位置。GNSS&IMU融合方案目前是比较流行的自动驾驶系统定位方案,因为GNSS的数据刷新有一定的周期(比如10毫秒),但是IMU的采样率非常的高,所以当我们在城市里遇到一些问题导致GMSS定位不好的问题时,我们可以用IMU一定程度上维持定位的情况。IMU(加速度计和陀螺仪)可以提供车辆动态信息,车辆的位置,在一定情况下计算相对位置的变化。
另一点单纯使用GNSS定位时,位置精度并不好,所以才采用使用定位参考站的技术来实现更高精度的位置计算。
另外在定位中很重要的是通过感知定位,以及高精地图的静态物体匹配。
综合起以上一些定位手段,这个定位系统才会比较可靠。
8
传感器系统的时间同步
自动驾驶中的传感器系统
传感器的时间同步,简单举例通过雷达和相机的信息。
雷达信息主要是点云,不同的颜色表示不同的位置信息。
相机只有平面数据,单一的基于相机数据或是激光雷达的点云数据去做识别都是有局限的,两者的结合可以得到一个更可靠的结果。为了能够让点云匹配到图像信息,需要保证二者的数据的时间同步性,来将两者数据融合识别的效果。
自动驾驶中的传感器系统
上图所示,传感器的时间同步,从GNSS定位信息开始能够提供一个比较准确的时间信息。到navigation box中后,我们会对它的信息进行解析,提供PPS信号,提供每秒的时钟,再加上GPRMS的定位和时间信息,给到雷达和central computing。
雷达在做扫描的时候,它会将扫描的信息和时间戳提供给central computing,之后central computing 会将信息传输给PSPU,PSPU会根据触发角和时间戳信息来触发相机的曝光。
相机曝光后,PSPU会将时间添加进每一帧的数据上,central computing 还会通过PTP将时间信息传送给雷达。
这样雷达和相机的时间就可以对的上。这样就可以做到传感器系统的所有数据的时间戳信息是一致的。
9
传感器系统的集成度设计
自动驾驶中的传感器系统
我们在不断提升传感器系统的集成度,因为低集成度会导致连线众多、维护麻烦、可靠性不好、美观度差、难以规模化等问题。
我们努力的方向是:
一,Sensor Tower: 我们会去从结构、走线上更好的去将车顶的sensor集成到一起;
二,Nbox: 我们会集成4G,Switch, LiDARs和GNSS/IMU,我们会把这些所有的子模块的供电,数据,集成起来 ,走线也会少很多;
三,PSPU: 集成所有相机的供电,控制,时间同步以及图像数据的接受和后处理;
四,PDU: 统一的给computing 和sensor系统提供统一的电源。
更多的设备还在开发中。
10
传感器的选型与评估
自动驾驶中的传感器系统
目前,我们的想法是重点从需求出发(例如定位),会去跟我们的定位组进行沟通。相机和雷达,需要跟我们的生产组沟通来确定我们到底需要什么样的传感器。
数据的分析和验证,纸面上的数据并不是很好的数据,我们会通过自己的静态测试和动态测试来完善。例如在某些情况下传感器表现的更好,某些情况下不好。
我们并不急于规模化的部署,会逐步的基于静态测试和动态测试的结果来进行小批量的测试。因为可能有其他的问题是我们在实验室内没法发现的。
传感器的选型评估和保护既是一个工程问题也是一个商务问题。一个适用的传感器同样需要解决供应和价格的问题。之后再达到量产或者规模化的部署。
总的来说,我们的流程是:
需求分析 -> Spec分析 -> 静态测试(标准环境下主客观测试) -> 动态测试(实际道路主客观测试)-> 环境/可靠性测试 -> 小批量装车测试 -> 逐步达到大规模部署
自动驾驶中的传感器系统
我们还有很多可以做的事情,也有很多想做的事情。例如5G,V2V, V2X等通过通信问题手段来解决一些现在无法解决的问题。
这可能是未来的方向,同时我们还拥有很多新的雷达,成像雷达,固态雷达,或者基于红外的相机。
还有通过一些新的结构的考虑来解决一些盲区问题,这些都是一些新的尝试。
另外还有更高集成度的sensor系统以及功能安全问题,这些我们都是在考虑以及未来会尝试解决的。

END

作者:韩彬北京邮电大学工学硕士,目前在Pony.ai负责自动驾驶传感器系统软件研发和集成工作。曾就职于Mediatek和Intel,负责Camera和ISP(Image Signal Processor)的软硬件研发工作,参与了多款手机,平板以及Google glass V2的Camera系统的研发工作。

weinxin
扫码关注公众号
关注公众号领精彩彩蛋!

发表评论