这份 JD 来自小马智行(Pony.ai),岗位是自动驾驶运动规划(Motion Planning)。 在自动驾驶圈内,小马智行的技术门槛是公认的“天花板”级别之一。30-40K * 16薪的待遇也侧面印证了他们对人才的要求:既要能写出高性能的代码,又要能解决复杂的数学建模问题。 以下是对该岗位核心能力及详细知识点的深度拆解: 一、 核心能力概括 顶尖的工程能力: 核心是 C++。在自动驾驶这种高实时性系统中,Python 只是辅助,C++ 是用来保命和保性能的。 极强的数学建模功底: 规划本质上是在受限空间内求最优解,涉及大量的数值优化和几何运算。 算法逻辑思维: 能够将复杂的交通规则和道路环境转化为计算机能理解的约束条件(Constraint)和代价函数(Cost Function)。 全栈开发思维: 提及了仿真平台和大数据处理,说明你不仅要懂算法,还要懂如何构建支撑算法迭代的工具链。 二、 详细知识点清单 1. 编程语言与工程实践 (C++) 这是你的基本功。JD 明确要求高性能,这意味着你不仅要会写,还要写得精。 现代 C++ (C++11/14/17): 熟练使用智能指针(Smart Pointers)、Lambda 表达式、右值引用与移动语义。 内存管理: 深刻理解堆栈分配、内存池、避免频繁申请内存导致的系统碎片。 多线程与并发: 线程同步机制(Mutex, Atomic, Condition Variable)、无锁编程基础。 STL 源码级理解: 知道 std::vector 的扩容机制,std::unordered_map 的底层实现。 构建工具: 熟悉 Bazel(自动驾驶大厂标配)或 CMake。 2. 运动规划算法 (Core Domain) 这是该岗位的“灵魂”。 路径规划 (Path Planning): 全局搜索:$A^$、$Dijkstra$、Hybrid $A^$。 采样算法:RRT、RRT*、Lattice Planner。 轨迹规划 (Trajectory Planning): 多项式曲线(Quintic Polynomials)、贝塞尔曲线(Bezier)、B样条曲线(B-Spline)。 时空解耦规划: 把 $SL$ 轴(沿路)和 $ST$ 轴(时间)分开处理。 决策状态机: 有限状态机 (FSM)、行为树 (Behavior Tree)、或基于 MDP 的决策模型。 3. 数值优化与计算几何 (The “Bonus” Points) JD 特别提到了这两个加分项,但在实际面试中,这通常是必考项。 ...

157 words