控制算法工程师面经

秋招差不多结束了,来写一下面经。本人虽然是PnC方向的,由于只有一段运动控制实习经历,所以一些大厂的决策规划都没有给面试机会(这告诉我们针对不同岗位的要写不同的简历),但是控制方向的面试基本都通关了。下面总结一下自动驾驶运动控制算法工程师面试常问的问题。

其实下面的问题都不难,但是给未来的同学的建议是:不要 all in 算法工程师,可以同时准备软开or其他方向。这个行业只会越来越卷。

1. 基础知识

车辆动力学

  • 主要考察建模,这几乎是必问的问题,因为大多数的项目都是基于模型的。运动学或动力学,Frente or Cartesian, 线性或非线性,reference是什么,cost怎么设计,error怎么定义的。质心侧偏角、航向误差之间的关系是什么。
  • 一些常见的扰动和补偿方法,比如:执行延迟、横风、侧倾、坡道。
  • 哪些信号是传感器能拿到的,哪些是不能拿到的。卡尔曼滤波相关问题。
  • 控制量的物理边界是多大。
  • 关于车辆更深层次的问题问得不多,可能是因为项目中没涉及到:比如其他轮胎模型的特点、如何处理道路附着的不确定性等等。

数值优化和最优控制

  • 能观能控、状态方程与传递函数转化方式、如何判断系统的稳定性、如何设计龙博格观测器。(这些不经常问)
  • 你知道lqr有几种求解方法吗?详细讲讲推导过程。
  • mpc的设计,stages多大,实时性如何,lqr和mpc的区别,理论层面看,mpc和lqr是不是一个东西。
  • 调参方法,weight的大致数量级关系。
  • 离散化方法,各自的特点。
  • ilqr的推导过程,开发过程中遇到的实际问题以及如何解决的。
  • 常用的正则化方法有哪些?
  • qp问题的构成,这些矩阵有什么要求?为什么。
  • 为什么常常将问题构造成qp的形式。
  • 无约束优化问题求解方法有哪些?讲讲梯度法、牛顿法、拟牛顿法、共轭牛顿法。讲讲线搜索方法有哪些。
  • 内点法是什么?
  • 介绍一下增广拉格朗日。
  • 罚函数的缺点是什么?罚函数因子对问题求解有什么影响。
  • 对偶问题是什么?弱对偶性和强对偶性是什么?Slater准则是什么?
  • 讲一下kkt条件是什么?

2. 项目经历与计算机基础

对于控制算法来说,最重要的是实车开发调试的经历。工作中用到的语言一般是python和C++,python(matlab等)都是快速验证算法的可行性,然后用C++开发。

项目经历

  • 实车的经历重点在于对细节的把握,包括控制器是什么,soc是什么,车速多大,各种误差多大,如何调参的,遇到了什么问题怎么解决的。
  • 举个例子,可接受的横向误差数量级:曲率变化比较小,小于 0.10 m,曲率变化大,小于 0.15 m。
  • 项目开发的语言/平台是什么?

计算机基础

  • 数据结构与算法:参考代码随想录和hot100足以。质量比数量重要,一般面试的题目都是做过的题目。
  • 计算机网络:问得很少,只有个别企业问一些简单的八股。
  • 操作系统:问得少,比计算机网络多一些,除了常见的八股,还有对ubuntu使用的提问。
  • C++:八股问得多,封装继承多态,stl,智能指针,移动语义,主要考察自动驾驶项目常用的语法知识。
#牛客创作赏金赛#
全部评论
点赞 回复 分享
发布于 11-20 01:07 上海
佬最后去哪了
点赞 回复 分享
发布于 11-20 16:56 北京

相关推荐

不愿透露姓名的神秘牛友
11-01 15:46
点赞 评论 收藏
分享
2 8 评论
分享
牛客网
牛客企业服务