自动驾驶算法/规划决策控制算法面经汇总、学习路线、面经心得

1、秋招情况

1、基本情况

本人985硕,自动驾驶从业者,曾面试过大部分自动驾驶公司、一部分机器人公司以及一些主机厂,方向主要是规划算法、规控算法、规划决策算法等方向。算法的面试难度每年都在不断提高,网友调侃从诸神黄昏到黑夜,可见算法面试有一定难度。

首先要了解自动驾驶算法主要包括感知、预测、规划和控制模块。我主要集中在规划和控制部分,一般机械方向、计算机方向和控制科学与工程方向、机器人方向以及一些其他方向转自动驾驶的研究生或优秀本科生会投递这个岗位。常见的自动驾驶公司如下(来源网络,仅供参考):
在这里插入图片描述
可以选取自己感兴趣的赛道,提前关注公司招聘情况。

2、备战秋招

秋招提前批一般7月就陆续开始、在此之前要完成简历制作、和简历上项目比赛等内容的准备和大量刷题。基本包括:基础知识、计算机能力、比赛项目、实习论文这四个主要方面。

1、学习路线

1、代码能力

(1)基础知识
主要学习c++,对脚本语言如python也要了解一些。
c++:基本语法、三大特性:封装继承多态、泛型编程、stl、内存管理以及c++11新标准等。
推荐: b站上侯捷老师的课程。此外我还看了黑马程序员(时间充裕入门可以看、很基础)
推荐书籍: c++ Primer/STL源码解析/Effective c++/深度解析c++对象模型等。

数据结构算法:如堆、栈、链表、队列、树、图、时间空间复杂度计算,排序算法(快排、归并)、KMP算法等。其次要学会分析代码的时间复杂度和空间复杂度。
推荐书籍: 大话数据结构

设计模式:单例模式(手写单例代码、如何保证只有一个对象等)、工厂模式、模板等。
推荐推荐: 李建忠老师的设计模式课

数学基础:可以看一些概率论、计算机几何、非线性优化的书籍,夯实基础。

(2)高频面经题
面试前一个月重点复习高频的面试题,代码随想录以及一些网站都有整理。
一般虚函数、智能指针、指针和引用的区别和c++11标准是经常考察的。我也整理了一些资料,需要可以私聊。

关于算法的面经题集中在项目中涉及的算法原理、改进思路

(3)刷题路线
必刷:代码随想录
力扣hoot100、剑指offer
之后可以针对不足进行专题训练,如路径问题、dfs算法、二叉树等。

自动驾驶公司面试喜欢考察dfs\bfs、二叉树最大、最小路径问题以及一些岛屿和图的题目,可重点准备。

每次刷题要先思考,写出来。没思路、看答案,尽量理解不同题解,最后在白板写出,记住解题思路和核心步骤。

最后及时复习,一般都要二刷或者三刷。考前重点复习经典题型、薄弱环节、限时作答。

注意:很多面试笔试都是ACM模式,非力扣得核心代码模式,考前要学会自己写输入输出,以及一些需要建立链表、二叉树等。
ACM处理输入输出大全。

此外注意:自动驾驶算法应用中常常涉及一些处理几何的问题,一些自动驾驶公司面试也会重点考察几何题。遇到过:判断直线相交、点和三角形关系、三点求曲率、折线等分…。后期有时间会专门整理相关算法和代码。

2、算法学习

规划算法:
基于搜索、采样、优化和曲线拟合的路径规划算法,推荐我整理的一些路径规划算法博文,重点准备基于优化的规划算法(Em planerLattice planer、时空联合的优化算法等),在写写代码。
推荐:深蓝学院移动机器人课程,深入讲解了规划算法。

控制算法:
具备基础的控制理论基础(可控、可观)、主要是一些横纵向控制算法。经典的包括PID算法、LQR算法、MPC算法。还有一些轨迹预测的算法stanly也推荐看看。
推荐: B站Apollo课程、Apollo开源代码。

预测算法:
可以看看常用的预测网络densetnt、vetornet、lanegcn等。还有一些传统的预测方法。

决策算法
有限状态机、决策树、数据驱动和一些策略学习的方法(强化学习DQN等)

传统的预测规划控制算法实践推荐看Apollo项目,自己运行尝试实现不同城市交通场景的自动驾驶仿真(交通灯检测、行人过马路、超车、停车、无保护左转等场景),这部分我们也在做专栏学习,包括环境搭建、算法原理和代码解析,适合缺乏实习经验的同学或者增添简历项目的同学学习。Apollo项目是来自产业界的,推荐学习。

2、提高优势

1、大厂实习

关注一些大厂官网,一般研二寒假就要准备,实习面试更注重基础,因此重点提高基础,实习的几率还是很大的。最好问下是否可以转正。这样秋招可以先人一步。

如果大厂比较困难,一些独角兽车厂也是不错的选择。在实习时争取有产出,在面试会有很大的优势。

2、高水平论文

在研一发篇会议或者争取发篇自动驾驶相关的sci,会有很多加分。
一般9、10月开题确定好,利用好研二,争取发篇sci。
即便在投,有审稿意见不错的话,也是很有优势的。

面试更注重你论文的创新思路,解决什么样的技术,是否上实车或者距离落地还有哪些不足等

值得注意的是,面试前最好阅读一些自动驾驶的前沿论文,了解前沿技术的趋势。

3、比赛项目

项目经历:
这部分主要是实验室参加的一些自然基金的纵向项目和企业的一些横向项目。
如果实验室项目相对较少,可以实践一些开源项目,想一些改进的点融合进去,允许的情况下,可以把改进代码开源也是能力的证明。

面试时按照STAR法则讲解:背景是什么?我们的任务?做了哪些工作?获得什么样的结果?

面试官对项目感兴趣,也会主要问项目做了什么事?用了哪些方法?用这种方法的优势?有什么改进?延申问一些问题。经常会问到自动驾驶在特定场景下,算法设计的思路?

比赛:
kaggle、天池和飞桨上面经常发布一些比赛,大家可以关注。

此外一些人工智能大赛、百度Apollo举办的比赛也是不错的比赛,此外国家智能网联车经常发布一些自动驾驶的比赛。

总之,关注学校或者官网发布的一些比赛,参加比赛还是能很好地提高自己的算法代码能力,也可以丰富简历。

计算机类:
参加ACM等编程大赛
在一些开源平台开源项目代码,写在简历上都是代码能力的证明。

3、面经总结

c++面经
在网上整理的面经链接,已进行汇总。
自动驾驶相关算法学习专栏、代码学习整理

4、自动驾驶预测规划决策控制算法付费咨询

985硕士,多年自动驾驶经验
自动驾驶技术答疑解惑
求职方向建议,简历修改、项目准备
私信+点赞+关注,提前预约时间

欢迎交流讨论,整理不易,点个赞订阅我们的专栏是对我最大的鼓励。

内容包括:《自动驾驶预测规划控制决策算法学习规划、求职建议、资料分享》

部分内容来源网络整理,侵权联系删~

  • 40
    点赞
  • 273
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
开发自动驾驶工具链需要使用多种工具来支持不同的阶段和任务。以下是一些常见的工具: 1. 数据采集和标注工具:用于采集和标注车辆周围环境的传感器数据,例如摄像头、激光雷达等。常见的数据采集工具包括Apollo、CARLA、KITTI等。 2. 数据预处理工具:对采集到的原始数据进行预处理,包括数据校准、去噪、配准等。常见的预处理工具包括ROS(Robot Operating System)、PCL(Point Cloud Library)等。 3. 模型训练工具:用于训练自动驾驶系统所需的模型,如感知模型、决策模型等。常见的训练工具包括TensorFlow、PyTorch、Caffe等深度学习框架。 4. 模型评估工具:用于评估训练好的模型在仿真环境或实际道路上的性能和安全性。常见的评估工具包括Apollo、CARLA、LGSVL等。 5. 系统集成工具:用于将不同模块和组件进行集成,构建完整的自动驾驶系统。常见的集成工具包括ROS、Apollo等。 6. 软件部署工具:将集成好的自动驾驶系统部署到实际车辆上,并进行实地测试和验证。常见的部署工具包括ROS、Apollo等。 7. 数据可视化工具:用于可视化和分析采集到的传感器数据和模型输出结果,以便进行调试和验证。常见的可视化工具包括RViz、MATLAB等。 8. 仿真环境工具:用于在虚拟环境中模拟真实道路场景,进行自动驾驶算法的测试和验证。常见的仿真环境工具包括CARLA、Gazebo等。 9. 硬件开发工具:用于开发和调试自动驾驶系统所需的硬件设备,如传感器接口、控制单元等。常见的硬件开发工具包括Arduino、Raspberry Pi等。 需要根据具体的需求和技术架构选择适合的工具来搭建自动驾驶工具链。此外,还可能需要其他辅助工具和库来支持开发过程中的其他任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执着且专注

予人玫瑰,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值