高精地图
- 当它在路上行驶的时候,必须要有高精地图
- 高精地图 VS 导航地图
- 所谓的导航地图就是我们平时使用的百度地图、谷歌地图等,在导航地图上,它会告诉你怎么从A点到B点,然后有几条路,预计需要用多长时间等信息。
- 而高精地图相对于导航地图来说,最大的特点就是高精度,它是需要做到车道线级别的。也就是说,高精地图不光要知道你在哪条路上,还需要知道你在这个路的哪条车道线上,因为只有这样才能准确地告诉无人驾驶车应该在哪个车道行驶,接下来应该怎么拐。
- 为什么要有高精地图?
- 第一,高精地图能够给无人车很多预判的空间。当无人车通过高精地图知道前方的路况和交通标识信息后,能够提前做行驶规划,保证了行车的平稳性和经济性。
- 第二,高精地图能够帮助无人车减少计算量。当无人车需要通过路口时,它需要提前感知前方信号灯的状态,这时高精地图就可以帮助它定位到信号灯所在的特定区域,从而有效降低了全范围扫描识别的计算量。
- 第三,高精地图将道路及周围的所有静态障碍物进行收集,减少无人车对静态障碍物的算法处理。
- 高精地图是无人驾驶中不可或缺的部分,他对整个无人驾驶系统起全局支持作用。在高精地图帮助下,自动驾驶车更容易判断自身位置、可行驶区域、目标类型、行驶方向、前车相对位置、感知红绿灯状态、应行驶车道,同时能够获得超视距的感知能力,探知前方坡度、曲率、横坡。高精地图能够为自动驾驶系统提供感知、定位、决策、路径规划、控制的全链路辅助,提高系统鲁棒性。
定位技术。
无人车有了高精地图之后,还需要知道它在地图的什么位置,这里就需要使用定位技术。
定位功能是通过汽车采集到的激光雷达、毫米波雷达、摄像头等数据与高精地图进行对照,判断出汽车当前所处的位置,为下一步决策规划提供依据。
包括如下技术:
- 全球定位系统(GPS):通过绕地卫星确定定位
- GPS定位原理实际上就是一个相对定位。
- 每个卫星会不停地发电磁波,当收到电磁波信号之后,根据收到信号的时间与光速算出和卫星之间的距离。有了与四个卫星的距离之后,就可以解一个方程算出所在位置。但由于电离层、反射作用等因素的干扰,GPS定位是有误差的,它的精度只能达到米级。对于无人车来说,米级的定位精度是不安全的,为了解决无人车定位问题,还需要其他技术。
- 惯性测量装置(IMU):通过速度、加速度、和其他一些因素判断车辆的运动和位置。
- GPS定位还有一个问题,它是跳动的。GPS定位是每时每刻根据当前的时间去算的,容易出现计算结果不准的情况。
- 为了抹平GPS的跳变,需要用到IMU(惯性导航),一般来说GPS和IMU是一块用的,GPS不停的去给IMU一个方向去校准,然后IMU再给GPS一个方向。‘
- Apollo 中GPS/IMU主要是用于自定位
- 这东西其实普遍存在于你的手机里,不然为啥有的人天天拿着手机晃就能晃到你的微信步数排行榜第一名,还不是因为这个IMU就是根据加速度来计算运动速度和方向的。它里面包含了3个加速度计和3个陀螺仪,专门用来测量平移量和旋转量。
- 几何定位:
- 无人车在接收不到GPS信号的情况下,需要用到另一个技术——几何定位。
- 几何定位的原理和GPS原理差不多,就是在道路上选几个feature,根据这些feature计算无人车所在的位置。几何定位的精度很高,可以精确地算出无人车所在的位置。所以,目前比较流行的定位技术就是GPS、IMU和几何定位等一系列技术的融合。
- RTL技术:
- 为了提高GPS的定位精度,大家又在GPS的基础上发明了RTK技术。手机GPS定位中,手机就是一个移动站,它会经常变动位置。这里所说的RTK,是一个静止站,它同样也收到卫星的信号。无人车与RTK相隔不太远的情况下,对二者之间的干扰信号用差分抹平,就可以认为无人车和RTK收到的信号是一样的。
- RTK的应用能让GPS的定位精度达到10厘米,但是RTK技术的应用有个限制,它要求基站与车的距离要在16公里以内。
感知&&传感器融合:
无人车想在道路上安全行驶,也必须具备属于它自己的各类传感器去感知外界环境。目前,无人车主要的传感器有摄像头(Camera)、雷达(Radar)和激光雷达(Lidar)。
-
摄像头:
- 对于无人车来说,观察信号灯以及一些交通标识都需要对颜色识别,相机的功能主要是做红绿灯识别
- 摄像头恰能解决这个问题,它的主要优点是能够辨别颜色,但是它没有对距离的判断的能力。因此,实现无人车对外界的感知还需要其他传感器的配合。
-
雷达:
- 雷达是无人车比较重要的传感器之一,它是利用电磁波探测目标的电子设备。
- 雷达发射电磁波对目标进行照射并接收其回波,由此获得目标至电磁波发射点的距离、距离变化率(径向速度)、方位、高度等信息。雷达的应用场景是全天候的,由于电磁波可以饶过一些东西,所以它的准确性并不太高。
- 雷达还有一个特点,它对于速度判断非常准,而对于静态物体的误报比较多。
-
激光雷达:主要用来感知车辆周围环境。
- 激光雷达,准确的称呼应该是光学雷达,LIDAR是“light detection and ranging”的缩写。以
- 激光雷达是目前无人车发展的一个比较核心的技术,它由一组脉冲激光器组成。我们都知道激光最优秀的特性就是直。激光雷达就是利用激光的这个特性测量发送和接受到的脉冲信号的时间间隔来计算物体的距离,从而感知周围环境,雷达可以360度扫描车辆周围,最终能够生成一幅点云地图
- 激光雷达的最大优点就是对距离的判断非常精准,但它也有个很大的缺点,就是对环境的要求非常高,比如在雾霾天气里激光雷达的精准度就会降低很多。
- 激光雷达是一个非常新的技术,在发展无人车之前,它并没有大规模的商业应用场景,因此它的价格非常昂贵。
- 在百度内部使用了Velodyne 64线激光雷达和国产禾赛的Pandora。Apollo 3.0时,开放了更多的激光雷达型号,例如16线速腾聚创(Robosense)、16线镭神科技等等。
-
毫米波雷达主要用来做远距离的跟车、障碍物的检测等。
-
超声波雷达主要用来做五米范围之内的障碍物的检测;
无人车收到各种传感器获取的信息之后,还需要做传感器融合。所谓传感器融合,就是要把每个传感器看到的东西全部都叠加在一起。当所有传感器看到的信息综合在一起,无人车才能够更加全面具体地感知外界环境。
轨迹规划
- 什么是轨迹规划:
- 当车辆在路上行驶时,通过传感器获取了周围的信息,接下来就需要知道如何反应。
- 对于周围的车辆或其他障碍物,无人车是需要避让还是需要停下来,或者需要超越等等,这些都属于约束条件。无人车需要在所有的约束条件中,规划出一条可以走的路线。
- 无人车的轨迹规划:
- 一是要满足所有的约束条件。
- 二是要保证车辆运动的平滑。
- 所谓平滑,是要保证车子的速度不能跳变。在此基础上,车子的加速度也需要是平滑的。
- 最终目的是,在人类可感知的范围,车子行驶是顺畅的,没有不平滑不顺的情况。
控制
- 所谓线控(by wire)就是这个车是能被电脑控制的。车的方向盘和轮子之间是有电机连接的,方向盘传动到电机上,然后电机去控制车轮,这样电脑就可以通过控制电机的方式来控制这个车轮
- 无人驾驶车一定是线控车,而不是一个仅有齿轮组成的集合体。
- 汽车想要实现自动驾驶那必然不能再依赖人去操控方向盘,用脚去踩刹车,作为一辆成熟的车,它应该学会自己开自己。而这样的硬件在以往的汽车上显然是没有的,因此就必须开发一种新型的硬件平台来适应自动驾驶业务,这就是线控底盘。
- 线控底盘采用电子器件发出控制信号,来完成对方向盘、脚踏板、油门等的控制。
- 有了一个车底盘,那如何连接起这些硬件,让控制器的信号准确迅速地传送到位呢?这时候就需要汽车里最常用的一种总线——CAN总线。由博世公司发明的CAN总线,历久弥新,一直无可替代。它就相当于是一根主线,然后分别引出去多条分支,有一个控制器就引出去一个。哪个节点想要传输信号了,就往主线上发送报文。由于CAN总线是汽车内部的局域网,没有和外界联网,因此汽车一般不必担心车辆被黑客操控出现“速度与激情”中的场景。
- 当然,随着汽车智能网联化的不断提升,汽车内部很多功能都必须联网了。不过厂商自然考虑到了安全问题,否则你说一辆车开得好好的被人控制了,那是一件多么恐怖的事情,简直比特斯拉刹不住车还刺激。因此,汽车内部会将这两类网络分开,一类是供你娱乐应用,例如听听音乐、刷刷视频这些安全性相对较小的,走的是互联网;而涉及到整车底层控制,例如车辆转向、加减速、紧急制动等等依旧是用传统但可靠的CAN总线。
- 为实现对无人车的控制,我们需要知道踩刹车和减速的关系、踩油门和加速的关系等,当无人车拿到一些控制学参数后,就可以实现电脑对无人车的控制。
云端
-
为了保证安全,当它在路上行驶的时候,必须是跟云端有连接的。
-
想要保证无人车是非常安全的,我们必须做到让每一辆无人车成为“有经验的司机”。所谓有经验,就是见过很多路况并且知道如何处理这些路况。
-
无人驾驶车并不需要实时跟云端汇报接下来会如何处理,而是要告诉云端它的位置以及行驶规划。百度在云端后台有个巨大的仿真空间,每一辆无人车可以将自己遇到的复杂路况上传到云端,因此网上就有了一个非常大的数据库。
-
当无人驾驶的算法有更新时,就可以在云端的仿真场景中跑一下,检验是否能够应对云端的这些路况。这个步骤,就是为了确保每个无人车都称得上是“有经验的司机”。