你可能对“自动驾驶”一词并不陌生了,但是否知道无人车是怎样在没有司机的情况下到达目的地的?
今天,Udacity的员工David Silver在外媒Medium上发文,科普了Udacity自动驾驶技术中的四个子系统。这份介绍轻快简明,条理清晰,是篇不错的自动驾驶入门读物。量子位编译整理,与大家分享。
在我工作的Udacity有一辆无人车,我们叫她Carla。
整体来说,Carla上主要有四个子系统,分别为传感(Sensor)系统,感知(Perception)系统,决策(Planning)系统和控制(Control)系统。接下来我将为大家一一讲解Udacity的无人车是如何通过这些技术工作的。
△ 每个系统中都包含很多小环节
Carla的传感器系统中含有从环境中收集数据的物理硬件。
例如,Carla挡风玻璃的顶部安装了一些相机,用户能根据需要调整相机的数量。通常情况下,1到3个相机会排成一排。
△ 挡风玻璃上的相机
Calar自带一个嵌入至保险杠的前置雷达,此外,车顶上还安装了一个360度激光雷达,是收集环境数据的主力。
△ 激光雷达传感器(左)和采集到的点云数据(右)
有时Carla也会用到其他传感器,比如GPS、IMU和超声波雷达等。从这些传感器中收集到的数据汇将交由感知器处理。
Carla的感知子系统负责将原始的传感器数据转换成有意义的环境信息。根据功能不同,我们可将感知系统的组件分为两个区块:检测模块与定位模块,两者各司其职。
检测模块需要从传感器的环境信息中检测车辆外部的物体,包括信号灯的检测与分类、物体检测与追踪和自由空间探测。
△ 车辆、行人、信号灯、指示牌……不同类别的物体被不同颜色的检测框圈起
定位模块告诉我们车辆的具体位置,这是一项听起来容易但做起来难的事。Carla自带的全球定位系统(GPS)帮助准确定位,但GPS的精度只能精确到1至2米,对无人车来说,这种精度远远达不到上路的要求。一辆自认为在车道中心行驶的车,如果加上这一两米的误差,可能会撞到行人或路崖。
所以,仅用GPS定位还不够。Carla结合了高精地图、激光雷达传感器和复杂的数学算法,将误差缩减到10厘米内。激光雷达先扫描外部环境,将看到的与高精地图做对比,最后找到精确的定位。
△ Carla将自己定位在一张高精地图上
之后,感知系统将其结果输出至决策系统上。
Carla的决策系统简明易懂,决策装置构建了一系列路径点,Carla只需沿路追寻这些点即可。值得注意的是,每个路径点都有指定位置,并且与目标速度相关联。当Carla经过路径点时,将与位置与速度相匹配。
同时,决策系统还负责根据感知器提供的数据预测其他车辆的运动轨迹,不断重新规划调整路径点的位置。
举个例子,如果决策系统预测Carla前面的车辆会减速,则决策系统会让Carla也走得慢点。之后,决策系统会根据轨迹生成组件创建新的减速路径点。
对策系统对信号灯和交通标志等信息的处理也是用这种方法计算的。
一旦决策系统已经生成了新路径点路径,那这些路径会被传送至最后一个子系统,即控制系统。
控制系统通过加速或刹车的方式驱动车辆行进,并且掌握第一手的车辆运行数据。这其中有些纯电子数据,有些则是物理数据。例如,当你坐在Carla里时,你会发现它自身也带方向盘。
控制系统将路径点作为输入信息,在决策系统的帮助下控制车辆速度。之后,控制系统将路径点和速度等信息传递给控制器。为了实现预定轨迹,控制器需要规划方向盘、加速、刹车等部件的动作。
控制系统可用很多算法将路径点映射成方向盘和油门的相关指令,这些不同的算法被称为控制器。Carla用的是简单的比例-积分-微分控制器(PID控制器),当然还有其他复杂的控制器可供选择。
我们将上面的四个系统的功能总结一下,可以梳理出Udacity自动驾驶汽车的工作流程。
首先,传感系统从Carla的相机、雷达和激光雷达中收集环境数据交于感知系统,感知系统利用这些数据在环境中检测物体并定位。之后,决策系统利用环境数据创建Carla的行进轨道。控制器通过方向盘、油门和刹车等保证车辆在预定轨道上行驶。
Carla进行了很多测试,她已经可以从山景城跑到旧金山了。Udacity的学生也可以在课程结束时把设计的代码加载到Carla上,看看在测试轨道上的驾驶情况如何。
我们为Carla自豪。