今年秋招PnC岗位该如何准备?面向量产的规划控制一百问!

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

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

今天自动驾驶之心为大家分享自动驾驶规划控制一百问的内容!全是面试精华,内容均出自『自动驾驶之心知识星球』,欢迎加入学习交流。

自动驾驶课程学习与技术交流群事宜,也欢迎添加小助理微信AIDriver004做进一步咨询

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

注:本文节选自自动驾驶之心知识星球一百问系列,文末扫码领取!

0d52beb9912b7b4251348fae372614fe.png

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

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

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

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

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

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

二、规划算法基础知识

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 问题背景:

72fbe379fcdbb2ec2bcd0bb81a2e8c18.png
  • 可以并行生成很多条解耦轨迹,最后选一条最优的。比如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   这里in order of increasing译为【升序】 connected component译为【连通域】 是不是更好 如果是这样的话 短边应该是更优先的

A18

36cb417111529f531f6001354429ddf3.png

说的对,你的这个翻译更合理些。但这里按短边优先的顺序遍历我觉得没有特别的意义,因为最终都是要把符合规则的边加入到图中的。

Q19  PNC中如何考虑动态障碍物?

A19 思路是把动态障碍物当作静态来处理,但要做一些估计来选择"关键"时刻的障碍物,保证自车行为不会过度保守,后面课程中会细讲。

Q20  qp中引入松弛因子有什么作用呐?都可以解决什么问题呐?

A20  加松弛因子主要作用是把一个约束变成软约束,比如说在规划问题中一般会有多条描述可同行区域的boundary,有的boundary是严格不能违背的,而有些boundary我们认为是可以违反的,但希望尽可能不要去违反,那么就可以在这些软约束上加入松弛因子,然后把这些松弛因子放到cost function中惩罚,通过权重约束来调节约束的软硬程度。

Q21  实际用格栅地图的时候  格栅的尺寸怎么设计能和车的参数配合比较好?

A21

93aaf5b57149a20ecd48b82eefdbe2a9.png

Q22  老師請問下決策規劃業界有在嘗試用mcts做嗎?

A22  学术界比较多,工业届的话tesla在泊车场景是用mcts做搜索(tesla2021 aiday)。搜索的结果一般都不是全局最优,它只负责找到粗颗粒度上的最优解就行(比如决策),高阶量上的最优是需要优化来做的。

Q23  全局优化

A23  全局优化应该就是组和优化的思路,先通过某些方式找到全局最优解附近,然后再找局部最优,只不过可能把这个步骤放在了优化器内实现。

Q24  第二章讲的dijkstra和动态规划之间有什么区别或者联系呐?感觉都是取到当前节点cost最小值的父节点

A24  好问题,dijkstra本质上是贪心策略,每次去选cost最小的节点弹出,并且把他作为当前这条路径的一个点。DP是基于bellman equation,对于每一步DP都会计算当前节点的最优cost,但不代表这个节点最后一定在最短path中。(知乎讨论如下)

dfedc685a263e7cf1ea36109e8509512.png

『自动驾驶之心知识星球』欢迎加入交流!

9290464e8dcf502d7cd1734d84ae1b4f.png 一百问全系列欢迎加入星球获取!

9b3e79948c7562b57397a35299385228.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值