地平线面试
一面
这是一场关于自动驾驶路径规划与算法实现的面试会议。会议主要讨论了参考线生成、动态避障和车道选择的优化方法,以及编程题目的解答过程。参会者还交流了行业技术现状和个人职业发展考量。
参考线生成与优化方法
参考线生成采用贝塞尔曲线初解,后通过OS KP求解器进行平滑处理,构建QP问题时考虑位置cost和一阶、二阶、三阶导数,部分关键点加入heading和曲率约束。
优化模型在感知切换前后保持一致,仅输入和约束条件不同。
导航、路沿与动态避让的权衡
无其他信息时优先选择最直路径;直行路口不主动换道,导航指令(如左右转)仅在无车时影响车道选择(如左转选左一车道)。
动态避障通过横向轨迹规划实现绕行,下一帧参考线选择会结合上一帧绕行轨迹的cost,但当前方案为横纵向解耦,存在局限性。
正在开发时空联合规划模块,基于横向轨迹采样与纵向推演,但尚未量产,仅部分功能用于MLC。
路口处理与地图匹配
左右转时根据导航提前选择车道(如左转选左一),低速下通过动态调整目标点(如对向停止线修正)提高准确性,但存在超调问题。
U型弯场景暂不支持,因视觉感知受限。
编程题解答
第一题(水果成篮):通过滑动窗口维护包含最多两种水果类型的连续子序列,使用map记录类型数量。
第二题(封闭岛屿数目):DFS/BFS遍历矩阵,排除边界相连的陆地,统计封闭岛屿数量。
职业发展与公司对比
认为经纬恒润技术发展滞后,缺乏进步空间;地平线端到端技术较成熟,轻舟智航仍以规则为主、模型为辅。
恒润工作节奏弹性,节点期加班至12点,非节点期早10晚8。
二面
会议讨论了算法工程师岗位面试相关内容,涵盖候选人工作经验、技术方案、场景应对及代码测试等方面,具体如下:
- 候选人工作经验:
- 毕业与入职信息:2024年从学校毕业,入职恒润担任CNOA项目算法工程师。
- 主要负责工作:负责横向规划中的算法开发,核心是参考线生成模块。
- 参考线生成方案:
- 平行车道场景:粗解由左右道线拟合中心线得到,经SQP求解器和QP平滑得到b样条静态轨迹。
- 过路口场景:粗解采用三段式拼接,历史段取上一帧参考线远端点链,中间用贝塞尔曲线补齐,远端用HA地图车道信息。
- HA地图应用:非路口仅提供道路等级和车道数量,路口处提供详细车道中心线和边界坐标,但精度不如高精地图。
- 感知信息调整:利用路缘和对向停止线信息对HA地图车道信息进行精细调整。
- 不同场景应对方案:
- 道路分叉场景:建图生成中心线,选路根据导航信息和拓扑形状,粗解生成考虑自车车速和远方车道点,确保平滑舒适。
- 多出口车道场景:根据导航link信息和感知车道数匹配选道,复杂情况成功率约50%,待优化。
- 不规则路口场景:横向绕行有限,主要靠纵向刹车避让动态车辆,预测轨迹投影到ST图辅助决策。
- 换道场景:参考线提供相邻车道候选,换道意图根据地图导航和当前车道索引发出,规划换道轨迹考虑平滑性。
- 当前方案存在问题及改进计划:
- 存在问题:预测模型不可靠,导致纵向不舒适;横纵向解耦,缺乏与其他车的交互和博弈。
- 改进计划:采用多模态预测轨迹,开发时空联合规划方案。
- 面试代码测试:
- 题目要求:用数值方法开正数根号。
- 测试过程:候选人采用牛顿法迭代,期间代码出现问题,经修正后通过测试。
- 岗位工作内容及疑问交流:
- 岗位工作内容:围绕端到端模型,在不同场景下进行数据处理、增强、设计loss和评价性能,后处理和决策规划较薄。
- 候选人疑问:询问岗位主要工作、L2端到端方案能否解决特殊情况、工作时间段、节假日加班和驻场开发情况。
三面
一、面试开场
(一)面试官介绍
- 面试情况:此次为第三面,属于技术面最后一面
- 工作领域:从事运动规划算法、主动安全相关工作,近半年多参与模型相关工作(含数据增广、帧值重建、扰动、数据合成等),团队有成员开展行车和泊车的强化学习工作
(二)求职者开场
- 技术栈情况:相对面试官更为单一
- 工作基础:入职前专注于planning的横向开发
- 项目经历:去年7月加入恒润835项目,核心负责横向规划算法中的参考线生成模块
二、求职者工作经历介绍
(一)核心项目:恒润835项目
- 规划方案逻辑
- 上游输入:定位(提供自车位姿)、感知(识别周围道线、其他车辆)、地图导航(明确当前道路信息、路口距离及转向要求、匝道接入等信息)
- 核心逻辑:横纵向完全解耦,先不考虑动态障碍物规划居中行驶参考线,再基于参考线处理障碍物绕行或换道,最后在横向轨迹基础上结合其他车辆预测轨迹,通过ST图做纵向决策与规划
- 参考线生成方案
- 平车道场景:对道线建图排序,在横向距离阈值范围内构建车道,拟合每条车道中心线;根据自车位姿定位所属车道及相邻车道,基于左、中、右三条车道的点链,经OSQP优化器平滑得到参考线,非换道时以中间参考线为追踪基准,换道时切换目标参考线并添加约束生成换道轨迹
- 障碍物处理:部分侵入时,结合侵入距离与安全距离偏置约束横向规划;完全封堵车道时,发起换道动作绕行
- 特殊场景处理
- 非机化道路(路口、车道分叉、进出匝道、辅路等):采用拼接式粗解生成参考线,锚定远端目标车道,保留自车前方点及后续点链,通过贝塞尔曲线连接构建引导轨迹
- 路口超视距规划:借助腾讯地图提供的粗link(含道路等级、车道数、道路拓扑)及路口退出点的局部车道信息(10米长车道的中心线和边界线),先以地图车道为引导拼接参考线,待远方感知信息稳定(SLAM ID连续一致、道线长度足够)后,切换为感知车道中心线引导,全程通过路口状态机实现"平行车道→地图引导→感知引导→平行车道"的状态转换
- 感知与地图融合优化:利用路沿位置调整地图车道边界;通过已出现道线预估车道宽度,处理道线缺失或不全场景下的车道划分
(二)其他工作内容
- 分叉路口选道功能:结合地图导航筛选车道,实现右转、直行等场景的正确选道
- 换道意图设计:明确转向需求时,生成对应换道意图,引导车辆换到目标车道
- 辅助功能开发:跟车功能设计、与同事对接雷达点云使用
三、面试官提问及求职者回答
(一)感知车道线相关问题
- 问题1:感知车道线不准导致中心线不准、车辆晃动如何处理?
- 回答:检查参考线绑定的车道属性及SLAM ID,若SLAM ID突变,判定感知存在错误,丢弃该帧参考线
- 问题2:感知上线稳定但位置轻微晃动(如高速车道保持场景)如何处理?
- 回答:上游SLAM对横向位置波动进行滤波;参考线生成时,与上一帧点链进行加权低通滤波;下游横向规划不额外处理抖动
- 问题3:参考线检测稳定但弯道下不居中如何处理?
- 回答:下游无法检测上游感知的偏差,当前方案中未遇到此类典型问题;曾因坐标系多次转换(自车坐标系→global pose→回传)产生偏差,后续优化自动操作系统后已解决
(二)规划坐标系相关问题
- 传统规划局限:SL下规划存在投影变形、高阶量失真等问题
- 创新尝试:开展XY坐标系下规划探索
- 方案1:将下游横向规划功能整合至参考线模块,由参考线直接完成XY规划
- 方案2:研发未量产的时空联合规划版本,采用"横向大量采样→单采样轨迹纵向规划→剪枝筛选→评分排序"的流程,通过贝塞尔曲线连接采样点
(三)其他技术问题
- 求解器相关:求职者表示主要为工具使用,未展开深入研究
- 跟车算法问题:高速场景下120km/h跟停静止车辆如何处理?
- 回答:当前跟车功能仅适用于城市路口,高速场景处理未做针对性设计,核心思路为划定边界避免碰撞
四、职业规划交流
(一)换工作原因
- 公司技术现状:技术栈陈旧,以框架修修补补、解决case、打补丁为主
- 个人诉求:接触前沿技术栈,实现个人能力提升
(二)未来工作方向
- 求职者意向:关注多端时空联合规划,对端到端相关技术(数据标注、数据挖掘、评测、重建、扰动、模型训练、数据合成、强化学习等)无实际经验
- 面试官建议:
- 短期:补充规划算法经验(经典方案中仍有一定应用场景)
- 长期:顺应行业趋势,向端到端方向转型,重点学习数据相关技术、模型知识、强化学习等
(三)岗位机会咨询
- 求职者疑问:地平线是否有适配岗位?是否提供技术方向转换机会?
- 面试官回应:
- 转换支持:入职后可直接参与端到端相关工作,团队正处于技术转型阶段
- 业务现状:传统规控方案已大幅简化,仅保留少量规划相关工作,决策模块基本不再投入资源
- 团队布局:多人从事强化学习、模仿学习、数据处理、重建、扰动等工作
五、面试收尾
- 面试官确认无其他问题,求职者未提出额外疑问,面试顺利结束