无人驾驶的操作流程,没有大家想的那么复杂。大家完全可以根据自己开车的实践,推断出自动驾驶应该包括那些内容。传统意义上,很多论文或者教材都喜欢把自动驾驶分成感知、预测、规划和控制四个部分,但是我个人喜欢再添加两个部分,即导航和停车,这样会构成一个更完整的整体。
1、导航
当车辆开始启动的时候,我们会输入起始地址和目的地址。有了这两个地址,软件就可以帮助我们规划合理的行驶路线。目前导航这一块已经很成熟了,百度导航和高德导航也做的很好。
2、感知
所谓感知,就是车辆需要定位自身的位置,同时它还需要了解周围的环境。为了做到这些,一般自动驾驶车辆需要安装1-n个激光雷达、1-2个长距离毫米波雷达,4个左右短距离毫米波雷达,8-12个摄像头雷达,8-12个超声波雷达,gps+imu定位系统,同时还要安装高清地图。有了这些传感器和软件,车辆才能进行数据分析、信息融合,获取周围的环境信息。
3、预测
有了环境数据之后,车辆还要进一步分析和判断周围车辆、行人、物体在未来一段时间内的行驶轨迹。这种判断是十分复杂的,但它决定了我们车辆在未来一段时间内要采用什么样的方式行驶。
4、路径规划
如果说导航规划的是大路径,那么这里的规划就是局部小路径,通常也就几十米,且实时更新。有了感知和预测的信息,车辆可以灵活规划自己未来的行驶轨迹。是超车,还是刹车,是并线,还是继续向前行走,是准备转弯,还是掉头,如何不和其他车辆发生冲突,不碰撞行人,这个时候路径规划要考虑的东西就很多了。当然,除了技术之外,行人的舒适度也是路径规划必须考虑的一个重要指标。
5、控制
有了规划给出的局部路径,这个时候就需要利用特定的控制算法对车辆进行控制,使得车辆行驶轨迹和我们设计的轨迹拟合在一起。这中间或许存在误差,但是误差必须尽量小。一方面,车辆要对速度进行纵向控制,目前PID用的较多,但是体验较差;另一方面,车辆要对方向进行横向控制,目前LQR用的较多。车辆控制的时候必须平顺舒缓,否则会给乘客带来很不好的用户体验。为什么一般来说,自动驾驶和电动汽车搭配较好,答案就是电动汽车可以在开机一刹那全功率输出,而燃油车有复杂的发动机模型、变速器模型,完全非线性的动力控制对于新能源汽车制造公司来说,控制难度较大。
6、自动泊车
车辆行驶到目的地之后,如何自动泊车也是很重要的一个问题。只不过,目前大多数泊车还是半自动泊车,真正做到全场景自动泊车的还不多,这或许也是未来发展的一个方向吧。
7、学习资料
目前关于自动驾驶资料这块,我觉得apollo出品的视频资料还是非常不错的,建议大家可以好好学习一下,http://apollo.auto/devcenter/devcenter_cn.html 。自动驾驶本身的流程其实是很清晰的,关键是如何把自动驾驶做的稳定、高效、安全、覆盖所有的corner case、成本可控,并且使得人们相信自动驾驶的安全性远超过人类驾驶,这就非常困难了。目前,很多公司在系统设计、测试、验证方面都做了一些探索,后续可以好好聊一聊,平凡的程序员。