厂商情况基于2018.06的了解,仅供参考。
本文主要基于https://blog.csdn.net/xiaohu50/article/details/78723539,在其基础上增加了自己查找的资料
简介:汽车CAN协议hacking
更加详细的可以参考kvasler的官网https://www.kvaser.com/about-can/
CAN接口分析硬件厂商
- kvasler
- 广州致远电子zlg
章节作者:百度工程师陈光,原文地址:https://zhuanlan.zhihu.com/p/33067923
为了能让无人车能像人一样,遇到障碍物或红灯就减速,直到停止;遇到绿灯或前方无障碍物的情况,进行加速等操作。这就需要车载传感器去周围的环境进行感知。
摄像机根据镜头和布置方式的不同主要有以下四种:单目摄像机、双目摄像机、三目摄像机和环视摄像机。
单目摄像机模组只包含一个摄像机和一个镜头。
由于很多图像算法的研究都是基于单目摄像机开发的,因此相对于其他类别的摄像机,单目摄像机的算法成熟度更高。
但是单目有着两个先天的缺陷。
一是它的视野完全取决于镜头。焦距短的镜头,视野广,但缺失远处的信息。反之亦然。因此单目摄像机一般选用适中焦距的镜头。
二是单目测距的精度较低。摄像机的成像图是透视图,即越远的物体成像越小。近处的物体,需要用几百甚至上千个像素点描述;而处于远处的同一物体,可能只需要几个像素点即可描述出来。这种特性会导致,越远的地方,一个像素点代表的距离越大,因此对单目来说物体越远,测距的精度越低。
由于单目测距存在缺陷,双目摄像机应运而生。相近的两个摄像机拍摄物体时,会得到同一物体在摄像机的成像平面的像素偏移量。有了像素偏移量、相机焦距和两个摄像机的实际距离这些信息,根据数学换算即可得到物体的距离。原理图下图。
根据双目测距原理应用在图像上每一个像素点时,即可得到图像的深度信息,如下图。
深度信息的加入,不仅能便于障碍物的分类,更能提高高精度地图定位匹配的精度。
虽然双目能得到较高精度的测距结果和提供图像分割的能力,但是它与单目一样,镜头的视野完全依赖于镜头。而且双目测距原理对两个镜头的安装位置和距离要求较多,这就会给相机的标定带来麻烦。
由于单目和双目都存在某些缺陷,因此广泛应用于无人驾驶的摄像机方案为三目摄像机。三目摄像机其实就是三个不同焦距单目摄像机的组合。下图为特斯拉 AutoPilot 2.0安装在挡风玻璃下方的三目摄像机。
根据焦距不同,每个摄像机所感知的范围也不尽相同。
如下图,可以看出三个摄像头的感知范围由远及近,分别为前视窄视野摄像头(最远感知250米)、前视主视野摄像头(最远感知150米)及前视宽视野摄像头(最远感知60米)。
对摄像机来说,感知的范围要么损失视野,要么损失距离。三目摄像机能较好地弥补感知范围的问题。因此在业界被广泛应用。
那么测距精度的问题怎么办?
正是由于三目摄像机每个相机的视野不同,因此近处的测距交给宽视野摄像头,中距离的测距交给主视野摄像头,更远的测距交给窄视野摄像头。这样一来每个摄像机都能发挥其最大优势。
三目的缺点是需要同时标定三个摄像机,因而工作量更大。其次软件部分需要关联三个摄像机的数据,对算法要求也很高。
之前提到的三款摄像机它们所用的镜头都是非鱼眼的,环视摄像机的镜头是鱼眼镜头,而且安装位置是朝向地面的。某些高配车型上会有“360°全景显示”功能,所用到的就是环视摄像机。
安装于车辆前方、车辆左右后视镜下和车辆后方的四个鱼眼镜头采集图像,采集到的图像与下图类似。鱼眼摄像机为了获取足够大的视野,代价是图像的畸变严重。
通过标定值,进行图像的投影变换,可将图像还原成俯视图的样子。之后对四个方向的图像进行拼接,再在四幅图像的中间放上一张车的俯视图,即可实现从车顶往下看的效果。如下图。
环视摄像机的感知范围并不大,主要用于车身5~10米内的障碍物检测、自主泊车时的库位线识别等。
摄像机在无人车上的应用,主要有两大类功能。主要是感知能力,其次是定位能力。
在无人驾驶领域,摄像机的主要功能是实现各种环境信息的感知。接下来我会以Mobileye为例介绍摄像机能够实现的功能。Mobileye是国际上公认的做视觉最牛的公司之一。
可以看出摄像机可以提供的感知能力有:
①车道线(lane)
图中的深绿色线。车道线是摄像机能够感知的最基本的信息,拥有车道线检测功能即可实现高速公路的车道保持功能。
②障碍物(Obstacle)
图中使用矩形框框中的物体。图中仅有汽车、行人和自行车等物体。其实障碍物的种类可以更丰富,比如摩托车、卡车,甚至动物都是可以检测到的。有了障碍物信息,无人车即可完成车道内的跟车行驶。
③交通标志牌和地面标志(Traffic Sign and Road Sign)
图中使用绿色或红色矩形框框出的物体。这些感知信息更多的是作为道路特征与高精度地图做匹配后,辅助定位。当然也可以基于这些感知结果进行地图的更新。
④可通行空间(FreeSpace)
图中使用透明绿的覆盖的区域。该区域表示无人车可以正常行使的区域。可通行空间可以让车辆不再局限于车道内行驶,实现更多跨车道的超车功能等,把车开的更像老司机。
⑤交通信号灯(Traffic Light)
图中使用绿框框出来的物体。交通信号灯状态的感知能力对于城区行驶的无人驾驶汽车十分重要,这也是为什么百度Apollo 2.0实现“简单路况自动驾驶”所必须开放的功能。
相信大家都对视觉SLAM技术都有所耳闻,根据提前建好的地图和实时的感知结果做匹配,获取当前无人车的位置。视觉SLAM需要解决的最大问题在于地图的容量过大,稍微大一点的区域,就对硬盘的容量要求很高。如何制作出足够轻量化的地图,成为SLAM技术商业化的关键。
Mobileye在已实现的道路经验管理(Road Experience Management,REM)功能,能够实现复杂路况的全局定位能力。
章节作者:百度工程师陈光,原文地址:https://zhuanlan.zhihu.com/p/33792450
激光雷达一般安装在无人车的四周和顶部,用于解决摄像机的测距不准确的问题,根据各个公司方案的不同,激光雷达数量和位置也各不相同。比如通用用于研究Level 4级别自动驾驶技术的Bolts,就在车顶上顶了好多激光雷达。
如下图所示,激光雷达的发射器发射出一束激光,激光光束遇到物体后,经过漫反射,返回至激光接收器,雷达模块根据发送和接收信号的时间间隔乘以光速,再除以2,即可计算出发射器与物体的距离。
激光雷达根据安装位置的不同,分类两大类。一类安装在无人车的四周,另一类安装在无人车的车顶。
安装在无人车四周的激光雷达,其激光线束一般小于8,常见的有单线激光雷达和四线激光雷达。
安装在无人车车顶的激光雷达,其激光线束一般不小于16,常见的有16/32/64线激光雷达。
单线激光雷达是目前成本最低的激光雷达。成本低,意味着量产的可能性大。
前两天朋友圈刷屏的“北京首个自动驾驶测试场启用”新闻中出现的福田自动驾驶汽车就使用了4个单线激光雷达,分别布置于无人车的前后左右,用于车身周围障碍物的检测,如下图。
单线激光雷达的原理可以通过下图理解。
单束激光发射器在激光雷达内部进行匀速的旋转,每旋转一个小角度即发射一次激光,轮巡一定的角度后,就生成了一帧完整的数据。因此,单线激光雷达的数据可以看做是同一高度的一排点阵。
单线激光雷达的数据缺少一个维度,只能描述线状信息,无法描述面。如上图,可以知道激光雷达的面前有一块纸板,并且知道这块纸板相对激光雷达的距离,但是这块纸板的高度信息无从得知。
如上图所示,四线激光雷达基本都像这样。
全新的奥迪A8为了实现Level 3级别的自动驾驶,也在汽车的进气格栅下布置的四线激光雷达ScaLa。
有了之前单线激光雷达的原理介绍,四线激光雷达的工作原理就很容易理解了。
如下图所示,不同的颜色代表不同的激光发射器。
四线激光雷达将四个激光发射器进行轮询,一个轮询周期后,得到一帧的激光点云数据。四条点云数据可以组成面状信息,这样就能够获取障碍物的高度信息。
根据单帧的点云坐标可得到障碍物的距离信息。
根据多帧的点云的坐标,对距离信息做微分处理,可得到障碍物的速度信息。
实际应用时,在购买激光雷达的产品后,其供应商也会提供配套的软件开发套件(SDK,Software Development Kit),这些软件开发套件能很方便地让使用者得到精准的点云数据,而且为了方便自动驾驶的开发,甚至会直接输出已经处理好的障碍物结果。
如下图绿的的矩形框即为障碍物相对于自车的位置,矩形框的前端有个小三角,表示障碍物的运动方向。
16/32/64线的激光雷达的感知范围为360°,为了最大化地发挥他们的优势,常被安装在无人车的顶部。
三款激光雷达的技术参数和成本如下图。
360°的激光数据可视化后,就是大家经常在各种宣传图上看到的效果,如下图。
图中的每一个圆圈都是一个激光束产生的数据,激光雷达的线束越多,对物体的检测效果越好。比如64线的激光雷达产生的数据,将会更容易检测到路边的马路牙子。
16/32/64线的激光雷达只能提供原始的点云信号,没有对应的SDK直接输出障碍物结果。因此各大自动驾驶公司都在点云数据基础上,自行研究算法完成无人车的感知工作。
激光雷达的点云数据结构比较简单。以N线激光雷达为例来讲解点云的数据结构。
在实际的无人驾驶系统中,每一帧的数据都会有时间戳,根据时间戳进行后续和时间有关的计算(如距离信息的微分等)。因此N线激光雷达的点云数据结构如下图。
每一线点云的数据结构又是由点云的数量和每一个点云的数据结构组成。由于激光雷达的数据采集频率和单线的点云数量都是可以设置的,因此1线点云数据中需要包含点云数量这个信息。
最底层的是单个点云的数据结构。点的表达既可以使用theta/r的极坐标表示,也可以使用x/y/z的3维坐标表示。
每个点云除了坐标外,还有一个很重要的元素,那就是激光的反射强度。激光在不同材料上的反射强度是不一样的。以3维坐标的表示方法为例,单个点云的数据结构如下图。X/Y/Z方向的偏移量是以激光雷达的安装位置作为原点。
激光雷达点云数据的一般处理方式是:数据预处理(坐标转换,去噪声等),聚类(根据点云距离或反射强度),提取聚类后的特征,根据特征进行分类等后处理工作。
以百度Apollo 2.0目前已开放的功能为例,看看激光雷达能完成哪些工作。
利用高精度地图限定感兴趣区域(ROI,Region of Interest)后,基于全卷积深度神经网络学习点云特征并预测障碍物的相关属性,得到前景障碍物检测与分割。
利用高精度地图限定ROI后,可以对ROI内部(比如可行驶道路和交叉口)的点云的高度及连续性信息进行判断点云处是否可通行。
利用多线激光雷达的点云信息与地图采集车载组合惯导的信息,进行高精地图制作。自动驾驶汽车利用激光点云信息与高精度地图匹配,以此实现高精度定位。
根据激光雷达的感知数据与障碍物所在车道的拓扑关系(道路连接关系)进行障碍物的轨迹预测,以此作为无人车规划(避障、换道、超车等)的判断依据。
前文我们专注于LiDAR对无人驾驶系统的帮助,但是在实际应用中,LiDAR也面临着许多挑战,包括技术、计算性能以及价格挑战。要想把无人车系统产品化,我们必须解决这些问题。
LiDAR的精度也会受到天气的影响。空气中悬浮物会对光速产生影响。大雾及雨天都会影响LiDAR的精度,如下图所示。
外部环境对LiDAR测量的影响
雨量对LiDAR测量影响的量化
上图测试中使用了A和B两个来自不同制造厂的LiDAR,可以看到随着实验雨量的增大,两种LiDAR的最远探测距离都线性下降。雨中或雾中的传播特性最近几年随着激光技术的广泛应用越来越受到学术界的重视。研究表明:雨和雾都是由小水滴构成的,雨滴的半径直接和其在空中的分布密度直接决定了激光在传播的过程中与之相撞的概率。相撞概率越高,激光的传播速度受影响越大。
从下表可以看到,即使是16线的LiDAR每秒钟要处理的点也达到了30万。要保证无人车定位算法和障碍物检测算法的实时性,如此大量的数据处理是面临的一大挑战。例如,之前所说的LiDAR给出的原始数据只是反射物体的距离信息,需要对所有产生的点进行几何变换,将其转化为位置坐标,这其中至少涉及4次浮点运算和3次三角函数运算,而且点云在后期的处理中还有大量坐标系转换等更复杂的运算,这些都对计算资源 (CPU、GPU、FPGA) 提出了很大的需求。
型号 | Channel 数量 | 每秒产生点数 |
Velodyne HDL-64E | 64 Channels | 2,200,000 |
Velodyne HDL-32E | 32 Channels | 700,000 |
Velodyne VLP-16 | 16 Channels | 300,000 |
LiDAR的造价也是要考虑的重要因素之一。上面提到的Velodyne VLP-16 LiDAR官网报价为税前7999美元,而Velodyne HDL-64E LiDAR预售价在10万美元以上。这样的成本要加在本来就没有很高利润的汽车价格中,无疑会大大阻碍无人车的商业化。
章节作者:百度工程师陈光,原文地址:https://zhuanlan.zhihu.com/p/34675392
激光雷达的普及所遇到的最大挑战是:成本过高。单独一个雷达的价格可能就超过了普通小汽车的价格,因此现阶段还没有大规模量产的可能性。
为了推进自动驾驶技术的发展,同时要解决摄像机测距、测速不够精确的问题。工程师们选择了性价比更高的毫米波雷达作为测距和测速的传感器。毫米波雷达不仅拥有成本适中的有点,而且能够完美处理激光雷达所处理不了的沙尘天气。
下图为百度Apollo 2.0中所使用的毫米波雷达——Continental的ARS-408,它被安装在汽车保险杠的正中间,面向汽车的前进方向。
小型毫米波雷达的基本原理是做成窄波束,每个波束3度5度这样,然后根据每个波束的返回结果来形成点云(在一个波束中的物体不易判断)
频率在10GHz~200GHz的电磁波,由于其波长在毫米量级,因此处于该频率范围的电磁波也被工程师们称为毫米波。
应用在自动驾驶领域的毫米波雷达主要有3个频段,分别是24GHz,77GHz和79GHz。不同频段的毫米波雷达有着不同的性能和成本。
以Audi A8的传感器布局为例,讲解不同频段毫米波雷达的功能。
如上图所示被标注了橙色框的Corner radar和Rear radar,就是频段在24GHz左右的雷达。
处在该频段上的雷达的检测距离有限,因此常用于检测近处的障碍物(车辆)。图中的这4个角雷达,能够实现的ADAS功能有盲点检测、变道辅助等;在自动驾驶系统中常用于感知车辆近处的障碍物,为换道决策提供感知信息。
如上图所示,被标注为绿色框的Long-range radar,即为频段在77GHz左右的雷达。性能良好的77GHz雷达的最大检测距离可以达到160米以上,因此常被安装在前保险杠上,正对汽车的行驶方向。如下图右下角的棕色区域,为特斯拉AutoPilot 2.0中所配备的长距离毫米波雷达,及其感知范围。
长距离雷达能够用于实现紧急制动、高速公路跟车等ADAS功能;同时也能满足自动驾驶领域,对障碍物距离、速度和角度的测量需求。
该频段的传感器能够实现的功能和77GHz一样,也是用于长距离的测量。
根据公式:光速 = 波长 * 频率,频率更高的毫米波雷达,其波长越短。波长越短,意味着分辨率越高;而分辨率越高,意味着在距离、速度、角度上的测量精度更高。因此79GHz的毫米波雷达必然是未来的发展趋势。
毫米波雷达相比于激光有更强的穿透性,能够轻松地穿透保险杠上的塑料,因此常被安装在汽车的保险杠内。这也是为什么很多具备ACC(自适应巡航)的车上明明有毫米波雷达,却很难从外观上发现它们的原因。
由于毫米波的测距和测速原理都是基于多普勒效应,因此与激光的笛卡尔(XYZ)坐标系不同,毫米波雷达的原始数据是基于(距离+角度)极坐标系。当然,两种坐标系可以根据三角函数相互转换。
如下图所示,安装有毫米波雷达的自车前方有迎面驶来的蓝色小车和同向行驶的绿色小车。
毫米波雷达发射的电磁会穿透汽车的前后保险杠,但是无法穿透汽车底盘的金属,因此在遇到金属这类毫米波雷达无法穿透的物体时,电磁波就会返回。
以德尔福的前向毫米波雷达ESR为例,该雷达每帧最多能够返回64个目标的数据,每个目标的数据组成如下:
目前国际上主流的毫米波雷达供应商有四家,分别是Autoliv(奥托立夫)、Bosch(博世)、Continental(大陆)、Delphi(德尔福),业界简称ABCD。各家的毫米波雷达的产品提供的功能大同小异,大部分功能都是通过障碍物的回波能量、距离、角度信息推算而来的。
很明显...看到这样(乱且不稳定)的数据,工程师也表示很绝望。数据的不稳定性对后续的软件算法提出了较高的要求。
由于毫米波雷达发出的电磁波对金属极为敏感,在实际测试过程中会发现近处路面上突然出现的钉子、远距离外的金属广告牌都会被认为是障碍物。一旦车辆高速行驶,被这些突然跳出的障碍物干扰时,会导致刹车不断,导致汽车的舒适性下降。
毫米波雷达的数据只能提供距离和角度信息,不能像激光雷达那样提供高度信息。没有高度信息的障碍物点会给技术开发带来很多挑战。
章节作者:百度工程师陈光,原文地址:https://zhuanlan.zhihu.com/p/35177313
在倒车入库,慢慢挪动车子的过程中,在驾驶室内能听到”滴滴滴“的声音,这些声音就是根据超声波雷达的检测距离给司机的反馈信息。
车载的超声波雷达一般安装在汽车的保险杠上方,隐藏在保险杠的某个位置。在车上外观如下图黄色箭头处的圆点所示。
超声波雷达未安装时的模样如下:
常见的超声波雷达有两种。第一种是安装在汽车前后保险杠上的,也就是用于测量汽车前后障碍物的倒车雷达,这种雷达业内称为UPA;第二种是安装在汽车侧面的,用于测量侧方障碍物距离的超声波雷达,业内称为APA。
UPA和APA的探测范围和探测区域都太相同,如下图所示。图中的汽车配备了前后向共8个UPA,左右侧共4个APA。
UPA超声波雷达的探测距离一般在15~250cm之间,主要用于测量汽车前后方的障碍物。
如图所示,为单个UPA的探测范围示意图。
APA超声波雷达的探测距离一般在30~500cm之间。APA的探测范围更远,因此相比于UPA成本更高,功率也更大。
如图为单个APA的探测范围示意图。
APA的探测距离优势让它不仅能够检测左右侧的障碍物,而且还能根据超声波雷达返回的数据判断停车库位是否存在。
虽然UPA和APA无论在探测距离还是探测形状上区别很大,但是它们依然可以用同样的数学模型描述,描述一个超声波雷达的状态需要如下四个参数,其数学模型的示意图如下。
参数1:α
α是超声波雷达的探测角,一般UPA的探测角为120°左右,APA的探测角比UPA小,大概为80°。
参数2:β
β是超声波雷达检测宽度范围的影响因素之一,该角度一般较小。UPA的β角为20°左右,APA的β角比较特殊,为0°。
参数3:R
R也是超声波雷达检测宽度范围的影响因素之一,UPA和APA的R值差别不大,都在0.6m左右。
参数4:D
D是超声波雷达的最大量程。UPA的最大量程为2米~2.5米,APA的最大量程至少是5米,目前已有超过7m的APA雷达在业内使用。
特性一:温度敏感
超声波雷达的测距原理和之前介绍的激光雷达、毫米波雷达类似,距离=传播速度*传播时间/2。不同的是激光雷达和毫米波雷达的波速都为光速,而超声波雷达的波速跟温度有关。近似关系如下:
C = C0 + 0.607 ∗ T,C0为零度时的声波速度332m/s,T为温度(单位:℃)。
例如,温度在0℃时,超声波的传播速度为332m/s;温度在30℃时,超声波的传播速度为350m/s。相同相对位置的障碍物,在不同温度的情况下,测量的距离不同。
对传感器精度要求极高的自动驾驶系统来说,要么选择将超声波雷达的测距进行保守计算;要么将温度信息引入自动驾驶系统,提升测量精度。
特性二:无法精确描述障碍物位置
超声波雷达在工作时会返回一个探测距离的值,如图所示。处于A处和处于B处的障碍物都会返回相同的探测距离d。所以在仅知道探测距离d的情况下,通过单个雷达的信息是无法确定障碍物是在A处还是在B处的。
本文标题提到超声波雷达是被严重低估的传感器,因为它除了检测障碍物外,还可以做很多事。
应用1:泊车库位检测
自动泊车功能需要经历两个阶段:1.识别库位;2.倒车入库
识别库位功能就是依赖安装在车辆侧方的APA,如下场景。
汽车缓缓驶过库位时,汽车右前方的APA传感器返回的探测距离与时间的关系大致如下图:
将t1时刻到t2时刻的车速做积分即可得到库位的近似长度,如果近似认为汽车为匀速行驶,直接用车速乘以(t2-t1)即可。当检测的长度超过车辆泊入所需的最短长度时则认为当前空间有车位。
同样后侧向的APA也会生成类似信号曲线,用以做库位的二次验证。
有了库位检测功能,进而开发自主泊车功能就不是难事了。
应用2:高速横向辅助
特斯拉Model S在AutoPilot 1.0时代就实现了高速公路的巡航功能,为了增加高速巡航功能的安全性和舒适性,特斯拉将用于泊车的APA超声波雷达,也用在了高速巡航上。
先看一段Model S应用APA的视频,视频左下角的图像是一个朝汽车后向的摄像机,右侧的图像是朝向行驶方向的视角。
视频出处:https://www.youtube.com/watch?v=5F_mOOz3dV4
在视频中可以看出,当左侧驶过的汽车理自车较近时,Model S在确保右侧有足够空间的情况下,自主地向右微调,降低与左侧车辆的碰撞风险。
不同传感器汇总: