“请用谨慎、批判、怀疑的态度去研究自动驾驶的相关资料、文献”
前言
本人已经投身自动驾驶行业,在某国内头部OEM,做过一年的视觉,目前正在研究规划控制,查过不少的资料、论文,但总觉得自己还未真正入门,有幸了解到B站Up主:忠厚老实的老王,讲解的自动驾驶控制算法,所以本系列的知识基本都基于他的视频进行学习总结,也当做自己的一个学习笔记。
前期准备
工具:Google、Github(需要自备VPN、梯子)
软件:Matlab(当时安装的2018a,我安装的2020b),Carsim(2016),ROS,Linux
书:《无人驾驶车辆模型预测控制》-龚建伟(第二版),第一版有很多错误,不建议看。
《车辆动力学及控制》<——>《Vehicle Dynamics and Control》-R.R,百度Apollo的算法和逻辑便来源于此书,书中也会有一些错误。
这两本书都希望带着批判的眼光进行观看,自动驾驶作为每天都在不断更新进化的一项技术,有可能昨天的知识今天就有错误,所以保持思考也很重要,在学习过程中也慢慢有自己的判断能力。
绪论
自动驾驶模块
自动驾驶技术分为:感知——决策——规划——控制。
其中上层的感知、决策是最难的两部分,控制作为底层也比较难,但控制理论经过多年发展已经相当成熟,有PID、LQR、MPC,但控制算法难点并不在于理论,而在于调试,实车的调试过程会很复杂,毕竟理论≠实际,需要考虑不同的车型、路况等。
其中感知细分有几个主流方向:
1、基于纯视觉,代表就是特斯拉,成本低但受限于光照、天气等;
2、基于激光雷达,缺点就是成本高,不过激光雷达的成本经过发展变得越来越低;
3、融合感知+高精地图,高精地图需要有测绘资质,目前业内只有几家拥有测绘资质,而且测绘地图费时费力,难以保证地图的实时性,且涉及国家安全;
目前业内都在发展“轻地图,重感知”的方向,采用SD map+融合感知,高精度地图逐渐被忽视。
芯片
芯片的计算速度是另一大难点,其实自动驾驶芯片的算力不需要超级计算机那样的计算速度,只需要和台式机差不多,但车载芯片的工作环境十分恶劣,比如高温、震动、冲击等情况,芯片的可靠性相对于算力更为重要,如何保证芯片在实际工况中不故障也是需要研究的方向。
接下来我们就正式进入控制算法的学习。
借用Up主的一句话:“要自信,要勇敢,勇于探索”