一个公司的面试
➡️ 一面 (豆包会议纪要)
1. 个人经历与项目介绍
- 毕业与工作: 去年从清华大学博士毕业,到经纬恒润担任规控算法工程师,负责 CX835 项目。
- 项目职责: 主要维护参考线生成模块,根据地图和感知结果规划轨迹,设计了多种参考线生成方案。
2. 参考线生成方案 (CX835)
- 平行车道: 按建图结果生成左、中、右三条参考线,为换道决策做基础,换道时追踪相邻车道参考线。
- 分岔路: 将不跨线的车道纳入候选参考线,计算 cost 选最平直或最靠近目标方向的车道。
- 路口态:
- 先用轻地图设置目标点,构建参考线。
- 感知清晰后切换到感知车道。
- 备用方案:专家轨迹和混合 A 星搜索。
3. 特殊场景处理
- 非对称路口: 开发车流选道模块(以周边车辆轨迹为软约束),但上线后发现问题未采用。现方案:先直走,遇车刹车避让。
- MLC 问题: 并行输出多根参考线,下游纵向规划做碰撞检查,若条件不满足则报接管或错过入口掉头。
- 售后感知问题:
- 早期:用霍夫变换提取可行驶区域边界。
- 后期:采用栅格化射线扫描取内包络作为左右边界。
4. 感知与定位问题处理
- 感知抖动: 轨迹加低通滤波(近端权重高,远端低),有帧间 track 保持,避免短时丢帧。
- 车道异常: 按单边道线生成中心线,选离自车近的中心线决策。
- 地图与定位错误: 取地图和感知车道数的最大值,稳定多帧且 ID track 稳定的感知车道数可纠正地图车道数。
5. 代码可读性经验
- 方法封装: 将重复条件和大概率复用的操作封装成方法,便于复用和并行计算。
- 避免魔法数: 用枚举量代替魔法数,参数写成配置文件、常量或宏,提高易懂性和可维护性。
6. 公司情况介绍 (面试官)
- 公司概况: 22 年成立的初创公司,有一款履带式割草机器人在售(今年卖 7000 - 8000 台,老板希望明年卖 10 万台)。
- 产品技术: RTK + 双目 + IMU + 法轮速的融合定位方案,RGB 图像目标检测和分割,规划主要基于搜索,控制用 PID。
- 面临问题: 局部规划不完善,绕障能力差,坡上控制未考虑地形,状态机和规划耦合逻辑复杂,需花时间解 bug 和维护。
7. 职业规划与行业看法
- 职业期望: 希望跳槽到项目管理好、能正视方案问题、有技术变革魄力的公司。
- 行业看法: 认为乘用车自驾行业较卷,机器人行业相对蓝海,割草机行业国内起步不久,欧美市场有机会。
➡️ 二面 (线下)
- 面试官: 公司合伙人直面。
- 面试内容:
- 公司愿景 (前半小时): 主要谈论创业(为什么从图森等跳出来)、给期权、宏大愿景,搏一个创业机会。
- 能力考察: 询问关于个人学习能力、逻辑能力的问题。
- 技术问题:
- 什么是一个好的状态机?
- 怎样实现一个可维护性强的优秀状态机?
- 是否了解编译原理等?