面向量产的规划控制一百问!

编辑 | 自动驾驶之心

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近15个方向学习路线

>>点击进入→自动驾驶之心规划控制技术交流群

本文只做学术分享,如有侵权,联系删文

一、课程导论

Q1:端到端自动驾驶能否成为未来主流,或者说端到端方法有什么优点,期望解决什么问题?

答:目前业界广泛采用的是模块化框架,将复杂的自动驾驶任务分解成单独的子模块:定位、感知、预测规划和控制。这种方法的优点是每个子模块都可以单独调优,且具有自己的评价指标,可以很好地进行评估。同时,这种方法具有很好的可解释性,每个子模块都可以单独进行可视化,在面对失败情况时,可以快速debug。但是,这种方法也有许多缺点,我认为可以总结为如下3点:

  1. 模块的结果是逐层传递的,每个模块的输出都是下一个模块的输入。这会造成误差的累积,最后产生不可靠的结果。(如感知模块对前方障碍物漏检或虚检,会造成预测模块给出错误的预测结果进而导致规划模块的结果不可靠)

  2. 每个模块都需要单独进行调优,每个模块的优化目标缺少对下游模块需求的考虑,造成一种“各自为战”的局面,模块单拎出来性能不错,但整个系统最终的结果却不尽人意。(如感知模块追求的是对周围环境的准确感知,但下游规划模块关注的更多是目标区域的场景信息,你感知只要把前方一段距离内的场景充分感知就OK了,其余的并不是很重要)

  3. 模块之间存在数据的浪费和重复计算,造成计算资源的浪费。(如感知有时需要融合多帧信息,获得更加准确的结果。而预测也需要融合多帧结果,造成了重复计算,浪费了计算资源)

端到端方法(E2E),顾名思义,就是从感知信息输入直接到控制指令输出。这种方法能够有效地解决上述问题。由于没有模块之间的传递,因此不会造成误差的累积。同时,由于不需要对每个模块单独调优,而是直接对整个模型调优,这样就解决了“各自为战”的局面,从而得到更好的结果。最后,由于统一使用一个模型,因此也不会造成数据的浪费和重复计算,从而节省了计算资源。

本文内容均出自《规划控制理论&实战课程》,目前已经超过250名学员,欢迎加入学习!

二、规划算法基础知识

Q1  现在企业里的控制都是用什么做呢?

A1  国内外那几家做的比较好的公司不少都是用iLQR来做轨迹优化,控制的话可能更多还是二自由度动力学模型+求解线性化后的QP问题。

Q2  避障相关算法论文推荐!

A2 如果只是躲避静态障碍物,方案比较多,课程中会讲的apollo中的路径规划方案就可以用。如果是动态障碍物,工程上好做的方案是path-speed解耦,应对你们学校的项目肯定是够用了。另外,我记得autoware里好像是lattice planner?如果是时空lattice的话也可以应对简单的动态场景。

Q3  如果不预测的话,在城市工况下,假设有行人横穿,而且走走停停,这种case的避障 势力场能够避障吗?

A3  势力场实现避障肯定是可以的,但如果没预测,是把动态障碍物当作静态障碍物处理吗?这种做法在一些场景下会出问题,比如说无人车在人后面跟着,两者速度相同,如果把人当静态障碍物处理,车就会去绕行他,但人也在向前走,所以算法会一直尝试绕行但一直绕不过去。如果考虑预测,用距离场的方式难点就在于你要构建xyt纬度的势场,这个复杂度是O (KMN),可以用一些并行的操作来加速,但可能效果也不是特别好。一般基于势场的方法用在二维下挺好用,三维的话还有待商榷。

Q4  如何提升项目经验?

A4  宁老师的建议是学完课之后可以看看apollo的代码,作为入门还是挺好的,可以写在简历上,然后再提升一下代码能力。

Q5  如何从EM planner 中找idea?

A5  EM planner在课程第三章宁老师会讲到,可以当作一个框架来学习,它里面一些子模块的算法是有些缺点的,有可以改进的点。EM planner这个框架跟CMU12年的一篇论文极其相似“A Real-Time Motion Planner withTrajectory Optimization for AutonomousVehicles”,CMU JM Dolan的实验室出了比较多planning领域的知名工作,可以去找找看,早期waymo和uber的无人车基本都是他们那批人在搞。

Q6  PNC公司面试基本要求?

A6

  • 实习的话面试要求相对低一些,有点pnc相关的项目经验写简历上,基本就有面试机会了,面试也主要是聊聊项目,看看你对自己项目了解多深,是不是自己亲自做的,也可能会考一道比较简单的算法题,看看编程能力,有些公司实习甚至都不用写代码。

  • apollo就看看论文,看点博客然后直接啃代码就行,apollo planning 的软件架构稍微有点复杂,但核心算法就在那几个task里,看不懂整体都没事,把核心的task看透,面试就有的吹了。这些课程中会讲到。

  • 有些公司找实习生很草率的,不那么一线的公司非常有可能不考算法题或者贼简单的来一道意思一下。有的公司面试是每一轮都有题(百度,滴滴,华为,...),也有的公司是第一轮纯项目,第二轮纯代码(图森第二轮会直接给你来2 3道题难度递增)。

  • 如果你的论文很对口,会当作一个项目来问你,如果和自动驾驶规控没那么相关的可能都不会问。论文不是必须项,至少现在看来是这样。有一些没论文,但工程项目、代码能力很强,也可以拿到很好的offer。

Q7  C++ & ROS 或者 Matlab & Simulink如何选择?

A7  如果是验证planning算法,其实自己搭环境都可以验,在ros中写个节点,随机生成点障碍物pub出来,另一个节点sub一下,然后做算法。如果想做车辆动力学级别的仿真,还是matlab+simulink那一套。在ros生态中没有能把车辆轮胎动力学这个级别的仿真做的比较好的。Ros+carla验planning可以的,这个相对比较成熟,github上能找到很多demo。自动驾驶公司和造车新势力基本都是要求C++,一些传统主机厂会要matlab+simulink技术栈的。

Q8  时空联合规划用的多吗?时空联合规划分别在笛卡尔坐标系和Frenet坐标系的优劣?

A8

  • 不多,对校招生不会强行要求掌握这个,时空联合只是理论上更优,但在工程上挑战是比较大的,不一定做的就比解耦方案好。

  • 时空联合只是理论上更优,但在工程上挑战是比较大的,不一定做的就比解耦方案好。时空联合优化最大的挑战是非凸性,像ilqr这种方法找出来的最优解都是局部最优,在非凸性很强的时候有可能解的质量一般。所以时空联合需要在决策部分给出质量很高的初解,然后ilqr继续这个初解去在局部做平滑。

  • 既然已经非线性非凸的优化了,一般就直接在笛卡尔坐标系下做了,可以更精确地考虑运动学模型。

Q9  path-speed的解耦方式的论文推荐!

A9  百度的EM planner就是;“A Real-Time Motion Planner withTrajectory Optimization for AutonomousVehicles”这篇也是,比EM planner更早的。

Q10  知名实验室,高质量Paper分享!

A10  CMU实验室;“Spatio-temporal Motion Planning for Autonomous Vehicles with Trapezoidal Prism Corridors and Bezier Curves ”;“lmproved trajectory planning for on-road self_driving vehicles via combined graph search,optimization & topology analysis”(时空联合规划)。

Q11  面对特殊情况,时空解耦方法如何解决?

A11

  • 可以并行生成很多条解耦轨迹,最后选一条最优的。比如path生成两条:一条lane keep一条lane change,针对每一条path纵向也做出多种决策。(在哪个区间分叉可以根据预测给出的多模态结果估计。如何处理他车预测意图的多模态这个问题属于planning里相对比较高阶的问题了,现在业内也还没有统一的做法。但这种同时规划很多条轨迹最后选一条的做法,我觉得还是比较合理,因为在决策阶段可能看不清特别细颗粒度的指标,有了规划结果后能看的更清楚一些。区间分叉是和contingency planning对应的,是在不同分支满足不同约束。并行生成多条轨迹不需要分叉,直接使用相同的起始状态,对不同模态的预测轨迹单独生成一套。这是两类方法。)

  • 在上述场景中,如果用contingency planning+解耦的方式,可以横纵向分别分叉,横向分叉描述要不要汇入右侧车道,纵向分叉用来控制汇入时机。

Q12 博弈论用于规控的论文?

A12 “Efficient Iterative Linear-Quadratic Approximations for Nonlinear Multi-Player General-Sum Differential Games”;“Game Theoretic Modeling of Vehicle Interactions at Unsignalized Intersections”。关键词:Game Theory,Autonomous Driving。

Q13  有什么算法能在考虑运动学模型的情况下 保证轨迹覆盖一片区域么?

A13  “R.Bormann, F. Jordan, J.Hampp, M.HageleIndoor Coverage Path Planning: Survey,mplementation,Analysis.In Proceedings ofthe IEEE International Conference on Roboticsand Automation (ICRA),2018”,该论文主要介绍了全覆盖路径规划Q (CCPP:Complete Coverage Path Planning) 算法。

Q14  用piecewise jerk做速度规划有什么优缺点吗?

A14  缺点是他是先把t纬度固定了,去优化s及其导数,但速度优化本质上是s t同时优化的,因为优化出了速度,加速度这些量之后反过来也会影响到达每个s的t。apollo中speed planning的dp部分就把t纬度固定了,算是一种近似。Speed Planning in Dynamic Environments over a Fixed Path for Autonomous Vehicles,这篇文章有对速度规划中的非线性部分做系统的讲解

Q15 目前PNC比较火的方向!

A15  Contingency planning;图森提到的level-k做博弈交互。

Q16  请问后续讲解其他算法的时候会有实际代码的例子嘛?没用过python,有c++版本的吗?

A16  目前在课程中不会花大篇幅讲解代码,关于实践环节的流程是每个小节结束后会给大家一个代码框架,让大家来补充算法部分,然后最后会给一个基于上述框架的可以运行的参考答案;目前是没有的,你学过c++再学python很简单的,而且python用来验证算法会很方便,以后对科研和工作是有帮助的。

Q17  在格栅图做路径搜索 怎么考虑运动学约束呢?(在格栅图做覆盖式路径搜索 怎么考虑运动学约束

A17  可以找扫地机器人方向的论文看看。不过对于覆盖式搜索的结果应该只是一条全局路径吧,需要保证运动学可行吗?一般都会实时生成一条质量更高的局部路径下发给控制。一般扫地机底盘都是差速模型,他们可能也不考虑全局路径是不是运动学可行的,反正差速底盘可以原地旋转。

Q18  请问老师  现在变道研究中,有哪些相关的热点问题啊?

A18  变道是横向决策中比较核心的问题,难点主要在于变道时机的选择,以及触发变道后,如果目标车道的社会车没有配合你,自车是要放弃变道还是强行变道,这实际也是个博弈的过程。产业届目前大部分还是基于规则或者基于cost来做变道决策,学术界比较多的是基于IL、RL、POMDP、GameTheory这些来做。

Q19  老师紧急避让AES的决策目前有比较成熟的方案吗?

Q19  ADAS相关的我不是特别清楚,但我觉得整体方案应该类似吧,只是AES只需考虑更短时域内可能的碰撞并做躲避,我刚刚找了篇论文“Emergency collision avoidance by steering in critical situations”简单看了下,也是用MPC这种方法来做。

三、详解决策规划框架

Q1  如果开始的路径规划先把动态障碍物考虑成静态障碍物 那么我感觉路径的规划是不是应该更保守 因为很容易blocking而对动态的障碍物也产生stop的决策

A1  不是简单的把动态障碍物当作静态障碍物,而是估计出动态障碍物的关键snapshot来躲避。任何动态障碍物都会考虑,只要给定一条speed profile来做投影,在任何场景下都能获得社会车预测轨迹与参考线的时空交集,就获得了横向需要躲避的snapshots,也就有了boundary。

Q2  对于采样得到的轨迹,多帧之间的索引不一致可能会导致控制那边的方向大幅变化从而导致舒适性下降,这个问题在工程上有没有比较有效的解决办法?

A2  能缓解但没法根本解决,因为搜索/采样毕竟是在离散空间上做的,帧间就会有不一致的现象,建议后端再加一层优化。缓解帧间跳动的方式比如说预留一段上一帧的结果在当前帧轨迹里,可以至少保证近处的轨迹不会出现猛烈抖动;以及将上一帧的最优轨迹作为吸引cost加入当前帧cost function中等等。

Q3  园区中的决策规划

A3  园区里有挑战的场景感觉就是在人群中行驶,行为太保守的话自车可能就卡住不动了,太激进又会有风险。Intention-Aware Online POMDP Planning for Autonomous Driving in a Crowd这是几年前的一篇文章,就是解决这种场景。

Q4  想问下老师,结构化道路的决策规划,有什么容易发论文的研究方向嘛?

A4  这个话题太大了,推荐两个方向吧,一个是不确定下的规划尤其是对社会车意图的不确定性如何系统地建模,另一个就是用learning-based的方法替换掉一些小模块,比如做个换道意图决策等等,如果你算力富裕直接搞端到端应该也好发论文。

Q5  老师,对于时空联合而言,企业里目前在探索的是什么问题呢,我看的做法一般是先搜索一条粗轨迹,我认为就是决策的过程,然后后面开辟走廊做轨迹优化,这种做法感觉就是慢,而且感觉很依赖于预测,企业里是怎么考虑的呢?

A5  这种做法已经很快了,不决策直接优化在复杂场景可能几秒钟优化出一条轨迹。

Q6  我想问一下轨迹跟踪的话,动力学参数影响大嘛,比如我的汽车质量不准,那么对我跟踪影响精度大吗?

A6   高速场景下运动学模型会不太准,动力学主要是考虑了轮胎的变形。低速下差别不大,甚至运动学模型更准一点。

Q7  宁老师 好 最近看apollo的代码 发现path生成时 感觉是 在每个convex feasible region中都找到最优的 然后在其中选一条最优的  好像没有DP过程

A7  对,新版的好像确实是没有dp了,因为dp算起来太慢了。

Q8  老师 速度方面想实现点刹的效果 比如说过路口的时候 有什么建议么? 总是就平滑处理了感觉不是很好

A8  我觉得可以体现在vs/vt的约束上,体感上的点刹也一定是平滑的,否则车辆执行不出来,只不过持续的时间很短。想通过优化的效果给出点刹的效果你可以加一些约束,比如在一小段时间内施加一个速度上限约束,那优化的结果大概率就是点刹的曲线。

Q9  在笛卡尔坐标系下做完路径规划后应该怎么去做速度规划,和frent坐标系下有什么不同?

A9  不管是在笛卡尔坐标系还是frenet坐标系做路径规划,后面速度规划的流程都是相同的,先把障碍物信息投影到path上后,速度规划就是在st空间做了,所以跟笛卡尔和frenet无关。

Q10  在路径规划和速度规划中算代价值的时候,那几个cost的系数w1 w2  w3选取有什么经验吗?

A10   不同cost的权重主要就是手调,一点经验就是尽量把各项cost维持在相同的数量级。

课程咨询

扫码一起学习课程!

092990b34ea1619e13f80ac9f972df8e.png

扫码添加助理咨询课程!

(微信:AIDriver004)

c9b265df0d74b79216b5c87c42d6490a.jpeg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值