我目前方向是预测 决策 规划(更小研究方向探索中),控制是同门在做。
我希望我能坚持更新到我毕业 立个flag!
同时希望有大佬提出相关建议让我们学习人少走弯路!
最开始先整理了一些需要学习的工具和相关理论。从某些大厂实习招聘需要,找了一些要求(虽然某些大佬说这不是好方法,但是也可以参考一下)
一.学习目标:
1.至少熟悉下列领域之一:path/motion planning, control, optimization,probability theory(路径/运动规划,控制,优化,概率论)
2.至少熟悉下列算法之一:A*, Dijkstra, 卡尔曼滤波及其变体, 动态规划, Quadratic Programming, PID, MPC
二.学习内容:(学习内容根据预测/决策规划/控制工程师岗需要总结和结合其他相关资料)
编程:C++//python(吐槽一下C加加有种爬坑感,py用来进阶giao深度学习框架挺爽)
理论:常见的决策算法,如决策状态机、决策树、马尔可夫决策过程,POMDP等;如果往深里学习,还需要学习深度学习,学习深度学习框架等。常见的路径规划算法,例如A*、D*、RRT等;如果往深里学习,学习轨迹预测算法,如MDP、POMDP、Came Theory等;学习深度学习和强化学习技术,例如RNN、LSTM、Deep Q-Learning等
工具:ROS开发环境、Linux(C++)、汽车仿真软件(CarSim、CarMaker等)
无人技能树拓展(参考百度和吉大车辆系知友冰锐--大佬有篇无人驾驶技能树知文slam等学友可以去看一下)
三.总体认知
“大脑系统”(信息融合、预测、决策、规划)预测模块:对动态障碍物进行预测,评估障碍物未来可能的动作;决策系统:针对动静态障碍物信息、道路结构及自动驾驶车辆的信息做出自动驾驶车下一步该如何做,比如换道、停车、加速、减速、避让等动作;规划系统:规划出具体的运动轨迹,在实际工作中决策规划模块往往联合工作,没有明显区分。
典型的决策规划模块可以分为三个层次全局路径规划(Route Planning)在接收到一个给定的行驶目的地之后,结合地图信息,生成一条全局的路径,作为为后续具体路径规划的参考;行为决策层(Behavioral Layer)在接收到全局路径后,结合从感知模块得到的环境信息(包括其他车辆与行人,障碍物,以及道路上的交通规则信息),作出具体的行为决策(例如选择变道超车还是跟随);运动规划层(Motion Planning)根据具体的行为决策,规划生成一条满足特定约束条件(例如车辆本身的动力学约束、避免碰撞、乘客舒适性等)的轨迹,该轨迹作为控制模块的输入决定车辆最终行驶。
当前的自动驾驶技术中,有一种尝试是“端到端”技术,也就是完全模拟我们的大脑,试图直接将传感器获得的环境信息输入深度神经网络,直接输出对车辆的控制信号。这类方法存在一个最大的问题就是深度神经网络缺乏可解释性。当遇到未知的场景时,我们无法保障网络输出结果的安全性。因此,当前绝大部分自动驾驶企业还是采用分层和解耦的思路,来解决自动驾驶决策的问题。目前常见三种方法,端到端、分层、解耦。(最近考虑行为决策和运动规划的关系如何去选择和构建,这个问题困惑了我好久,翻阅了不少文献。然后对于预测有两种区分,一是把其作为感知部分后的延伸,二是把其作为决策规划的一个单独模块。)
三种常见的机器大脑发展模式
假期整理了一些网上资料,总结了一下目前决策路规的逻辑导图。我目前看见两种分类 (一种分类细节一些 决策路规大致分为三层 全局路规 行为决策 运动规划;第二种分类 决策规控大致分为预测 决策 横向规划 纵向规划 控制)我目前站第一种,和我的方向贴合一点 其实都是大致不差 有细小区别。
下图是根据一些知友和网上资料总结的一些算法和研究逻辑的思维导图
然后针对路规拓展了一下 暂时还没对决策拓展,下面这图来自up主(ally)总结的部分路规算法,这里安利一下他的视频,还有三维路径规划的有想法的可以去看看。(路规总结及改进方向这里就不贴出来了,有需要可以私聊我)。
说明:本文已获作者转载许可,部分idea参考知友,侵删
阅读原文,关注作者知乎
推荐阅读
分享不易,恳请点个【👍】和【在看】呗~