💼 大厂面试专题:机器人 / 具身智能岗位
面向「机器人控制 / 电机驱动 / ROS / 具身智能算法」求职者:岗位地图、六大专题高频问答题、项目深挖题、场景开放题、手撕题与答题方法论,一套页把面试从「临时抱佛脚」变成「有框架地输出」。
面试求职
FOC 电机驱动
控制算法
ROS2
具身智能
🎯 本页目标
1. 能画出机器人 / 具身智能五类岗位地图,说出各自的技能树与典型面试轮次
2. 能对六大专题(电机驱动 / 机械传动 / 控制 / ROS2 / 感知规划 / 具身智能)的 20+ 高频问答题给出「框架化参考回答要点」
3. 掌握流程题、项目深挖题、场景开放题的回答套路(拆解 → 决策点 → 验证),并会用 STAR 法则讲项目
建议用时: 约 50~60 分钟(含 12 道自测)
1 岗位地图:五类岗位、技能树与面试轮次
人形机器人 / 具身智能公司(宇树、智元、小鹏、小米、特斯拉、Figure、星动纪元、松延动力等)的校招与社招岗位,大体可归为五类。先看清「自己投的是哪一类」,面试准备才有靶子——不同岗位的深挖方向完全不同。
岗位分类 核心技能树 典型面试轮次
嵌入式 / 电机驱动
MCU(STM32G4 等)、C 语言、FOC 与三环、电力电子(MOS / 栅极驱动 / 电流采样)、编码器、CAN / EtherCAT、示波器调试
电话面(C/嵌入式基础)→ 技术面(FOC 深挖 + 硬件题)→ 项目深挖(调过什么板)→ HR
机器人控制算法
控制理论(PID / 前馈 / MPC / LQR)、运动学动力学、力控与阻抗控制、WBC / 轨迹规划、Simulink / MuJoCo
技术面(推公式)→ 手撕(矩阵 / 动力学 / 差分)→ 项目深挖(整机调参)→ HR
ROS / 系统集成
ROS2(话题 / 服务 / 动作 / TF)、DDS / QoS、硬件接口与总线、Linux、部署与调试、行为树
电话面(Linux / ROS 基础)→ 技术面(ROS2 概念 + 工程题)→ 项目(集成过什么平台)→ HR
感知 / 规划
视觉与 SLAM、点云处理、相机标定、路径规划(A* / RRT)、深度学习、PCL / OpenCV
技术面(算法推导)→ 手撕(数据结构 / 图搜索 / LeetCode)→ 项目(跑过什么 SLAM)→ HR
具身智能算法
强化学习 / 模仿学习、VLA、世界模型、sim2real、PyTorch / Isaac Lab / MuJoCo、数据处理
电话面(ML / RL 基础)→ 技术面(VLA / RL 原理)→ 项目深挖(训过什么策略)→ 手撕(概率 / 优化 / LeetCode)→ HR
💡 通用轮次规律: 大厂技术岗常见 3~5 轮。电话面 一般 20~40 分钟,考基础与简历真实性;技术面 考原理 + 手撕;项目深挖(交叉面) 围绕简历项目问「为什么这么做、踩了什么坑、数据如何」;HR 面 考动机、稳定性、薪酬。电机驱动与控制岗最看重公式能不能现场推 ,具身智能岗最看重项目有没有真跑通 。
① 电话面 · 20~40min
· 基础概念快问快答
· 核验简历真实性
· 岗位匹配初筛
备考:高频题第 2 节
口述稿:第 6.1 节 STAR
② 技术面 · 原理+手撕
· 公式现场推导(三环/FOC)
· 手撕代码 / 数据结构
· 追问到底层原理
备考:第 9 节手撕 10 题
第 5 节现场提示
③ 项目深挖 · 交叉面
· 为什么这么做(选型依据)
· 踩过什么坑(根因)
· 数据如何(量化验收)
备考:第 3 节深挖框架
第 4 节场景题
④ HR / 综合面
· 动机与稳定性
· 抗压与团队协作
· 薪酬与反问环节
备考:第 7 节 HR 10 题
反问:第 6.3 节
结果无论好坏,24 小时内按第 12.1 节「五问复盘法」写复盘——答错的题回填到第 2 节对应专题,追问最深处就是岗位的真实需求。
时间紧张时按第 11 节「七天冲刺计划」做定向复习:每天一个主题、每天产出一份可复用材料。
图 1:校招技术岗面试轮次流程——四轮考察重点逐轮变化,每轮备考指向本页对应章节;电机驱动岗主战场在第②轮,具身智能岗主战场在第③轮
2 高频问答题(六大专题 · 每题带参考回答要点)
点击问题展开参考回答。回答时记住原则:先给结论 → 再讲机制 → 最后落到「对机器人关节意味着什么」 ,比背定义更能拿分。下面每题先写「一句话结论」,再列展开要点。
2.1 电机驱动
Q1 FOC 为什么用双环 / 三环?各环之间什么关系?
一句话结论: 因为电机是「转矩 → 加速度 → 速度 → 位置」的积分链,每层物理量用一个环去控制,环环嵌套。
要点: ① 从内到外依次是电流环 → 速度环 → 位置环 ;② 电流环直接控制绕组电流(≈直接控电磁转矩),速度环输出电流指令,位置环输出速度指令;③ 外环把内环「当理想执行器」用,因此外环带宽必须显著低于内环 (通常差 5~10 倍),否则内外耦合会振荡;④ 双环(电流+速度)用于扭矩/速度模式,三环再加位置模式——人形关节常三环齐用。
Q2 为什么电流环是最快的环?带宽大概多少?
一句话结论: 电流环控的是电气量,时间常数最小,所以带宽最高。
要点: ① 电流环的时间常数由电机电气时间常数 L/R 决定,典型毫秒级;速度环由机械时间常数 J/B 决定,几十毫秒以上,位置环更慢;② 电流环采样频率最高(典型 10~40kHz),速度环 1~5kHz,位置环 1kHz 左右;③ 电流环带宽可达数百 Hz~1kHz+,速度环通常几十 Hz,位置环几 Hz~十几 Hz;④ 内环快才能给外环提供「近似理想的力矩源」 ,这是整个三环能稳定的前提。
Q3 Clark / Park 变换的推导直觉是什么?
一句话结论: 把三相正弦交流量「换到转子上看」,变成两个直流分量,从而能用 PI 控制器无静差控制。
要点: ① Clark :三相 abc(相差 120°)投影到两相正交 αβ 静止坐标系,减少一维冗余(幅值不变或功率不变两种约定);② Park :αβ 静止坐标系乘旋转矩阵 R(θ)转到随转子旋转的 dq 坐标系,d 轴对齐转子磁场(直轴 / 励磁),q 轴正交(交轴 / 转矩);③ 变换后三相正弦量变成两个直流分量 Id、Iq,直流量的 PI 控制没有稳态相位误差;④ Id 控励磁(d 轴电流常设 0 或 MTPA),Iq 控转矩,实现励磁与转矩解耦 ;⑤ 逆变换(SVPWM)把 dq 电压送回三相占空比。
Q4 SVPWM 与 SPWM 有什么区别?为什么 FOC 用 SVPWM?
一句话结论: SVPWM 把三相合成电压当作「旋转电压矢量」用伏秒平衡合成,母线电压利用率比 SPWM 高约 15%,谐波更优。
要点: ① SPWM 是三相各自与三角载波比较,相电压幅值最高只能到 Vdc/2,线电压利用率约 86.6%;② SVPWM 用 6 个基本电压矢量(6 个扇区)+ 2 个零矢量,按伏秒平衡合成任意旋转矢量,相电压幅值可达 Vdc/√3,利用率高约 15.5%;③ SVPWM 谐波更小、开关损耗更可控;④ 所以 FOC 标准输出调制用 SVPWM(或等价的空间矢量实现)。
Q5 编码器有哪些类型?关节里怎么选型?
一句话结论: 先分「增量 / 绝对」,再按「磁 / 光 / 旋变」与接口、环境选。
要点: ① 增量式 (ABZ):便宜、结构简单,但上电要回零,丢步会累积;② 绝对式 (单圈 / 多圈):上电即知绝对位置,免回零,人形关节首选;③ 按原理:磁编码器 (AS5047P / MT6816 / TLE5012B)抗油污、便宜、分辨率中高,关节主流;光电编码器 分辨率与精度最高,但怕油污;旋变(Resolver) 抗振抗高温,汽车 / 重工业用;④ 选型维度:分辨率 / 精度、绝对 or 增量、接口(SPI / ABI / BISS / SSI / 模拟)、环境(油污、温度、振动)、成本;⑤ 人形关节常用双编码器 :电机端磁编码器跑 FOC,输出端编码器消除减速器误差。
Q6 编码器 / 通信为什么用差分信号?
一句话结论: 差分靠「两根线同时受到同样的噪声、接收端做差」把共模噪声抵消掉,抗干扰能力强。
要点: ① 差分对(RS422 / LVDS / 差分时钟)利用共模抑制 ——电磁噪声同时耦合到两线上,接收端相减即消除;② 电机驱动板 PWM 开关噪声极大,单端信号易被误触发,高速编码器(ABI 数 MHz 或 BISS/SSI 时钟)尤其需要差分;③ 差分允许更长线缆、更好信号完整性;④ 典型:ABZ 走 RS422 差分,时钟 / 数据走 LVDS。
2.2 机械 / 传动
Q7 谐波 vs 行星 vs 摆线(RV)怎么对比选型?
一句话结论: 谐波「零背隙 + 大减速比」、行星「反驱透明 + 便宜」、RV/摆线「刚度大 + 承载大」,各取所需。
指标 谐波 行星 RV / 摆线
减速比(单级) 30~160 3~10 30~200+
背隙 ≈0(零背隙) 有,多级累积 极低
刚度 中(柔轮弹性) 中 高
反驱透明度 一般 好(准直驱首选) 一般
成本 / 重量 较高 / 轻 低 / 轻 高 / 重
落点: 轻载高精度旋转关节(肩 / 肘 / 髋)用小谐波;追求力控 / 冲击鲁棒的用行星准直驱(QDD,如 CyberGear 3.5:1);重载底座 / 大关节用 RV。
Q8 减速器背隙(回差)怎么测?
一句话结论: 固定一端,在另一端正反加载,测输出轴转角差即背隙(单位弧分)。
要点: ① 常用法:锁住输入轴,给输出轴施加正、反向小额定扭矩,用高精度角度传感器(光栅 / 编码器)测两次位置差,即回差;② 等价法:锁输出、正反转输入,测得输入转角除以减速比;③ 工业上专用回差检测仪 测「加载-卸载」滞回曲线;④ 人形关节一般要求背隙 ≤1 弧分(约),谐波接近 0;⑤ 背隙过大导致换向冲击、末端定位误差与抖动。
Q9 减速比与输出扭矩、负载惯量是什么关系?
一句话结论: 理想下 τ_out = τ_in × i × η,ω_out = ω_in / i;负载惯量折合到电机端按 i² 缩小。
要点: ① 减速比 i 越大,输出扭矩越大、输出转速越低(功率不变,损失在效率 η);② 负载惯量 J_load 折合到电机端为 J_eff = J_load / i²,减速器让负载「看起来更轻」,更易控制;③ 但 i 过大→反驱透明度变差、摩擦与背隙放大、带宽受限;④ 选型是「扭矩够不够」与「反驱 / 带宽要不要」的权衡。
Q10 丝杠和皮带(同步带)怎么选?
一句话结论: 丝杠「精度高、刚度大、承载力大」,皮带「长行程、高速、低成本低惯量」,看需求取舍。
要点: ① 丝杠 (滚珠 / 行星滚柱):旋转转直线,精度高、刚度大、承载大,梯形丝杠可自锁,适合直线关节 / 直线执行器(如 Optimus 腿部);缺点是速度低、成本高;② 皮带 / 同步带 :适合长行程、高速、低惯量,成本低;缺点是刚度低、有弹性与回差、精度一般、需张紧;③ 判断维度:行程、速度、精度、负载、刚度、是否需自锁。
2.3 控制
Q11 PID 调参的标准流程是什么?
一句话结论: 由内而外、先 P 后 I 再 D,先稳后准。
要点: ① 先只加 P,逐步增大到「临界振荡」附近再略回退;② 加 I 消除静差(I 会引入相位滞后,别贪大);③ 必要时加 D 抑制超调(D 放大噪声,机械系统慎用);④ 电流环常用 PI(不加 D),速度环 PI,位置环 P 或 PI;⑤ 注意积分饱和 anti-windup 与输出限幅;⑥ 系统化方法:Ziegler-Nichols 临界比例法 / 阶跃响应法,或频域法看相位裕度(30°~60°)整定。
Q12 前馈(feedforward)的作用是什么?
一句话结论: 反馈是「先有误差才纠正」,前馈是「知道要往哪走,提前把控制量给上」,提高跟踪、减小滞后。
要点: ① 典型:速度前馈、加速度前馈(惯性前馈)、力矩前馈(重力 / 动力学补偿);② 前馈在反馈回路之外,不改变系统稳定性 ;③ 能显著减小跟随误差、提高响应速度,尤其高速 / 大惯量关节;④ 前提是模型较准,前馈量 = 逆模型 × 期望轨迹;⑤ 与反馈互补:「反馈治偏差、前馈治滞后」。
Q13 为什么双足稳定用 ZMP 判据?
一句话结论: ZMP 把「会不会翻」转化为「一个点是否落在支撑多边形内」的几何判断,直观可算。
要点: ① ZMP(零力矩点):地面上使地面反力水平力矩为零的点;② 判据:ZMP 落在足底支撑凸包(单脚 / 双脚多边形)内则动态平衡,否则会绕足边翻倒;③ 它把全身动力学压成「一点对一多边形」,适合在线规划与反馈;④ 经典做法:离线生成 ZMP 参考轨迹 + 在线跟踪(如 ASIMO 的步行模式生成);⑤ 局限:ZMP 是「足底无反作用力矩」的假设,对脚底打滑、抓地力变化等场景需额外处理。
Q14 MPC 与 LQR 有什么区别?
一句话结论: 都是最优控制;LQR 是「无限时域 + 线性 + 无约束」的解析解,MPC 是「有限时域 + 在线优化 + 可显式处理约束」。
要点: ① LQR:代价函数二次,解代数 Riccati 方程得固定状态反馈增益,离线一次算好,计算轻;② MPC:每步在有限预测时域内解带约束优化,滚动优化,能显式处理输入限幅 / 状态约束 / 避障,可做非线性 MPC;③ LQR 可视为「无约束 + 无限时域 + 线性」的 MPC 特例;④ 腿式机器人常用 MPC / WBC(全身控制)做落脚点与地面反力规划,因为它天然要处理接触约束。
Q15 什么是频率响应 / 带宽?带宽是不是越高越好?
一句话结论: 带宽是闭环能有效跟踪 / 抑制的频率范围(常取 -3dB 点);不是越高越好,受机械谐振与噪声约束。
要点: ① 带宽越高,响应越快、抗扰越好;② 但受限于采样频率、传感器延迟、以及机械谐振频率 (关节柔性 / 减速器刚度引入),带宽逼近谐振会自激;③ 相位裕度(穿越频率处离 -180° 的余量)决定稳定性与超调,一般要求 30°~60°;④ 工程上电流环带宽 > 速度环 > 位置环,且都要避开机械谐振;⑤ 面试点:「控制带宽与机械谐振的关系」 是关节控制核心约束。
2.4 ROS2
Q16 ROS2 话题 / 服务 / 动作三者区别?
一句话结论: 话题是异步多对多的数据流,服务是同步一问一答,动作是「带反馈、可取消的长任务」。
要点: ① 话题 :发布 / 订阅,异步、多对多、无应答,适合连续数据(关节状态 / IMU / 图像);② 服务 :请求 / 响应,同步一问一答,适合短任务(参数设置、触发一次计算);③ 动作 :客户端 / 服务器,含 goal / feedback / result / cancel 状态机,适合长任务(导航、抓取),可反馈进度、可取消;④ 选型口诀:连续流用话题、短问答用服务、长任务用动作 。
Q17 TF 树是什么?常见坑有哪些?
一句话结论: TF 维护坐标系间变换,构成一棵「每个坐标系有且仅有一个父」的树,供各传感器 / 关节数据统一到一个坐标系。
要点: ① tf2 缓存带时间戳的变换并支持插值,lookupTransform 可查任意两系关系;② 常见坑:TF 树断裂 (父子链缺一环)、时间戳不匹配 (查未来 / 过期帧)、成环 (一系多父)、静态 / 动态变换混用;③ 定位、导航、机械臂抓取都依赖 TF 对齐。
Q18 launch 文件的作用?
一句话结论: 一次启动多个节点、配参数、remap 话题、组织命名空间。
要点: ① ROS2 主推 Python launch(.py),支持条件、事件、参数文件、命名空间;② 可 remap 话题 / 服务名,解决节点间名称对接;③ 对比 ROS1 的 XML launch:Python launch 更可编程、更灵活;④ 工程意义:整机几十个节点靠 launch 一键拉起。
Q19 ROS2 的 DDS 与 QoS 是什么?
一句话结论: ROS2 底层通信走 DDS,QoS 决定通信的可靠性 / 历史 / 持久性等策略,QoS 不兼容则节点连不上。
要点: ① DDS 提供分布式、实时、跨语言、去中心化(自动发现)的通信;② 常用 QoS:Reliability (Reliable / BestEffort)、History (KeepLast / KeepAll)、Durability (Volatile / TransientLocal)、Deadline、Lifespan、Liveliness;③ QoS 兼容规则 :发布者的可靠性 ≥ 订阅者要求,否则无法匹配(常见「收不到消息」的坑);④ 实时控制常配 BestEffort + 小队列,参数 / 状态常配 Reliable + TransientLocal。
Q20 Nav2 的完整流程是什么?
一句话结论: 感知建图 → 定位 → 全局规划 → 局部规划 / 控制 → 行为树编排 + 恢复行为。
要点: ① 传感器 + 滤波(点云 / 激光)→ 建图(slam_toolbox / cartographer);② 定位(AMCL 自适应蒙特卡洛);③ 全局规划(代价地图 + NavFn / A* 等)算全局路径;④ 局部规划 / 控制器(DWB / MPPI 等)输出 cmd_vel;⑤ 行为树 编排导航动作,失败触发恢复行为(原地旋转清障、重规划);⑥ 输入目标位姿 → 输出速度指令,是移动底盘导航的标配。
2.5 感知 / 规划
Q21 点云滤波的典型流程?
一句话结论: 降采样降噪 → 去离群点 → (可选)地面分割 / 去畸变,再做配准或特征提取。
要点: ① 体素滤波 VoxelGrid :降采样、统一密度、大幅减数据量;② 统计离群点去除 (StatisticalOutlierRemoval):按邻域距离分布剔除噪点;③ (可选)地面分割 (RANSAC 平面拟合 / 渐进形态学)、去运动畸变;④ 之后接配准(ICP / NDT)、聚类 / 特征提取;⑤ 常用库 PCL。
Q22 相机标定标的是什么?
一句话结论: 求内参(焦距 / 主点 / 畸变系数)与外参(相机在世界的位姿),建立像素 ↔ 世界坐标的映射。
要点: ① 内参 :fx、fy、cx、cy 与畸变系数(径向 k1k2k3 + 切向 p1p2);② 外参 :相机相对世界 / 机械臂基座的位姿(手眼标定是外参特例);③ 常用张正友标定法 :拍多张不同位姿棋盘格 → 求单应矩阵 → 求内参初值 → LM 优化;④ 用途:去畸变、像素坐标 ↔ 相机坐标转换、视觉伺服。
Q23 A* / Dijkstra / RRT 的区别与适用?
一句话结论: Dijkstra 无启发、完备最优但慢;A* 加启发式更快且(启发可采纳时)仍最优;RRT 采样式适合高维连续空间。
要点: ① Dijkstra :代价扩散,完备且最优(均匀代价),但搜索空间大;② A* :f = g + h,用启发式 h 引导,当 h 可采纳(不高估)时仍最优,比 Dijkstra 快,适合栅格图;③ RRT / RRT* :随机采样 + 树生长,适合机械臂关节空间(高维连续),概率完备,RRT* 渐进最优;缺点是路径抖、需平滑;④ 选型:栅格 / 图用 A*,高维连续用 RRT*。
Q24 SLAM 前端和后端分别做什么?
一句话结论: 前端「建约束」(帧间位姿估计),后端「优图」(全局一致性优化)。
要点: ① 前端 :特征提取与匹配、点云配准(ICP / NDT)、里程计,得到相邻帧之间的相对位姿约束;② 后端 :位姿图优化,消除累积漂移,闭环检测 + 回环约束,方法分滤波法(EKF / 粒子滤波)与优化法(g2o / GTSAM);③ 视觉前端(特征点) vs 激光前端(scan 匹配);④ 一句话:前端给后端喂约束,后端把这些约束全局「拉平」 。
2.6 具身智能
Q25 VLA 与传统分层控制有什么区别?
一句话结论: 传统是「感知 → 规划 → 控制」分模块级联;VLA 是视觉 + 语言指令端到端直接输出动作。
要点: ① 传统:模块化、可解释、鲁棒、可独立调试,但工程量大、泛化弱、误差逐级累积;② VLA(视觉-语言-动作):输入图像 + 自然语言,输出动作 token,泛化好、免繁规则,代表 RT-2 / OpenVLA / π0 / Helix;③ VLA 短板:数据需求大、可解释差、高频精细控制不足;④ 趋势:VLA 做高层语义决策 + 传统底层控制做精细执行 的混合架构。
Q26 世界模型(World Model)是什么?
一句话结论: 学习环境转移动力学 p(s′|s,a)、能在模型内「想象」动作后果并做规划的模型。
要点: ① 学习「状态如何演化、动作导致什么后果」;② 价值:样本效率、离线规划、评估动作后果、合成数据、作为 VLA 的训练器;③ 代表:UniSim、Genie、Sora(视频世界模型);④ 与 VLA 关系:世界模型可预测未来、给策略「试错」,是当前前沿方向。
Q27 sim2real 的主要难点与手段?
一句话结论: 难点是仿真与真实的 gap(物理 / 视觉 / 延迟),手段以域随机化为核心,辅以辨识与真机微调。
要点: ① gap 来源:摩擦、接触、惯量、执行器动态不准,视觉纹理 / 光照差异,传感器噪声与通信延迟;② 手段:域随机化 (随机质量 / 摩擦 / 延迟 / 噪声 / 光照)、系统辨识、仿真 + 真实数据混合、课程学习、奖励塑形、真机微调;③ 现象:仿真满分、真机摔倒,是具身智能岗最常被追问的项目坑。
Q28 具身智能的训练数据从哪来?
一句话结论: 遥操作示范 + 仿真合成 + 人类视频 + 真机自主,混合来源、形成数据闭环。
要点: ① 遥操作采集 :手柄 / 动捕 / AirPilot 类遥操直接录真机轨迹,质量高但贵、慢;② 仿真合成 :大规模 RL + 域随机化,便宜可扩,但有 gap;③ 人类示范视频 :被动学习,量大但无动作标签、跨 embodiment 难;④ 真机自主数据 :在线自监督 / RL,形成闭环;⑤ 难点:真实操作数据稀缺昂贵、标注难、跨本体泛化难 ,趋势是仿真 + 遥操作 + 真实数据混合。
3 流程题 / 项目深挖题(8 题 · 用框架答题)
这类题考的是「你能不能把一个开放目标拆成可执行工程」。统一答题框架:拆解问题 → 关键决策点 → 验证方法 → 风险与取舍 。
P1 设计一个关节模组的研发流程?
答题框架: 需求定义 → 电机 / 减速器选型 → 结构设计 → 硬件设计 → 固件控制 → 集成标定 → 性能验证。
展开要点: ① 先定义指标:峰值 / 持续扭矩、转速、背隙、重量、尺寸、供电电压、通信;② 由负载与反驱需求选减速器(谐波 or 行星 QDD)与无框电机;③ 结构:同轴排布、中空走线、散热;④ 硬件:MOS / 栅驱 / 三电阻采样 / 双编码器接口 / CAN-EtherCAT;⑤ 固件:FOC 三环 + 前馈 + 标定;⑥ 验证:扭矩-转速曲线、背隙、带宽、温升、寿命。
P2 如何从 0 搭建一台机器人整机?
答题框架: 整机架构 → 关节模组 → 骨架结构 → 电气与总线 → 软件栈 → 联调。
展开要点: ① 定自由度与关节布局(肩 / 肘 / 髋 / 膝 / 踝),据此定关节数量与规格;② 关节模组(见 P1)按部位分扭矩等级;③ 骨架 / 外壳结构 + 走线;④ 电源分配、CAN/EtherCAT 总线、主控;⑤ 软件:低层 FOC → 关节控制 → 全身控制(WBC / 步态)→ 上层感知 / 决策;⑥ 联调里程碑:先单关节、再单腿、再整机站立、再行走。
P3 你的项目遇到的最大问题是什么?怎么解决的?
答题框架(套 STAR): 情境 → 任务 → 行动 → 结果,重点放在「你做了什么」。
要点: ① 选一个
真踩过、能说清数据 的坑(如电机啸叫 / 编码器零位漂移 / sim2real 摔倒);② 情境一句话交代,任务说清目标;③
行动 是核心:如何定位(示波器看相电流 / 二分法缩小范围 / 域随机化对照实验)、如何验证、改了什么;④ 结果给量化(超调从 X% 降到 Y%、成功率从 a% 到 b%);⑤ 结尾补一句反思:下次如何更早发现。
P4 如何评估一个减速器方案?
答题框架: 指标定义 → 静态指标 → 动态指标 → 环境 / 成本 → 实测验证。
要点: ① 先对齐需求:扭矩、减速比、背隙、重量、寿命、成本;② 静态:减速比、额定 / 峰值扭矩、背隙、刚度、效率、转动惯量;③ 动态:反驱透明度(反驱力矩)、摩擦、传动误差;④ 环境:温升、噪声、油污 / 润滑、寿命;⑤ 验证:装机测背隙(回差)、测传动误差、测温升与效率,交叉对比 2~3 家样件。
P5 如何做一个关节模组的性能测试与验收?
答题框架: 电气安全 → 静态性能 → 动态性能 → 可靠性与寿命。
要点: ① 电气:耐压、绝缘、上电限流;② 静态:扭矩-转速曲线、峰值 / 持续扭矩、堵转;③ 动态:阶跃响应、带宽、背隙、跟随误差、温升;④ 可靠性:耐久、振动、高低温;⑤ 出测试报告,和规格书逐项对表,不合格项回溯到减速器 / 电机 / 采样 / 结构。
P6 如何定位机械臂末端抖动问题?
答题框架: 现象分层 → 电气 / 机械 / 控制三路排查 → 逐层定位。
要点: ① 先看抖动频率:低频抖动多与控制带宽 / 刚度有关,高频多与机械谐振或电气噪声有关;②
电气 :电流采样噪声、PWM 毛刺、编码器信号干扰;③
机械 :背隙、联轴器松动、结构刚度不足、谐振;④
控制 :增益过高、前馈过冲、带宽逼近谐振、积分饱和;⑤ 用示波器 / 频谱 + 扫频实验定位谐振峰,再针对性降增益 / 加陷波。
P7 如何设计一块 FOC 驱动板(硬件选型流程)?
答题框架: 需求 → 电源链路 → 功率级 → 采样 → 控制 → Layout → 调试。
要点: ① 需求:母线电压、相电流、开关频率、通信接口;② 电源:母线电容 → Buck → LDO,模拟 / 数字电源隔离;③ 功率级:MOS(耐压 / 内阻)+ 栅极驱动(自举、死区)+ 母线电容;④ 采样:三电阻下桥 + 运放偏置,Kelvin 连接;⑤ 控制:STM32G4(带 HRTIM / 硬件触发 ADC);⑥ Layout 最小化功率环路、采样线远离开关点;⑦ 调试:先限流上电、测采样波形、再开环、再闭环。
P8 如何做一个 sim2real 落地项目?
答题框架: 环境建模 → 策略训练 → gap 分析 → 域随机化 / 辨识 → 真机验证 → 迭代。
要点: ① 在 MuJoCo / Isaac 建高保真模型(惯量、摩擦、延迟、噪声);② 训策略(PPO 等)+ 域随机化;③ 分析真实与仿真差异来源;④ 系统辨识 + 参数对齐 + 真机微调;⑤ 量化指标(成功率 / 跟踪误差);⑥ 强调「仿真不是终点,真机闭环才是」。
4 场景题 / 开放题(5 题 · 给分析思路)
开放题没有标准答案,考「思路是否成体系、能否抓住关键约束」。答题先明确约束与假设 ,再分层给方案。
S1 让机器人端一杯水不洒,你怎么做?
分析思路: ① 先分「水不洒」的两类要求:位姿平稳 (杯口不倾斜、不剧烈加减速)与末端柔顺 (接触 / 碰撞不硬怼);② 规划层:轨迹用平滑插值(如三次 / 五次多项式),限制加加速度(jerk),避免急停;③ 控制层:加重力补偿 + 前馈 ,必要时把末端做「阻抗控制」保证柔顺;④ 感知层:视觉检测杯口液面 / 位姿做闭环补偿;⑤ 加分点:考虑动态平衡(托盘 / 双臂)、力反馈防溢出。
S2 机械臂定位精度不够,怎么排查?
分析思路: ① 先分清重复精度 vs 绝对精度 :重复精度差看机械与电气,绝对精度差看标定与模型;② 机械:背隙、减速器传动误差、结构刚度、装配松动;③ 电气:编码器分辨率 / 零位、双编码器是否对齐;④ 模型:DH 参数误差、连杆变形,做运动学标定;⑤ 控制:稳态误差、摩擦补偿不足;⑥ 顺序:先测重复性(机械电气)→ 再校准(标定 / 零位)→ 最后控制补偿 。
S3 电机啸叫 / 异响,怎么排查?
分析思路: ① 先判断啸叫频率:与 PWM 载波相关→电气噪声;与转速相关→机械或编码器;② 电气:电流采样毛刺(采样时机 / 滤波)、PWM 载波过低、死区过大;③ 机械:轴承、联轴器松动、减速器啮合;④ 控制:增益过高自激、带宽逼近机械谐振;⑤ 工具:示波器看相电流频谱、扫频找谐振峰,对照现象分层定位。
S4 机器人走路不稳 / 会摔,从哪些方面排查?
分析思路: ① 分层:感知 → 状态估计 → 控制 → 执行 ;② 状态估计:IMU 漂移、接触检测误判(脚是否着地);③ 控制:步态周期 / 落脚点、ZMP 是否在支撑域、MPC / WBC 约束;④ 执行:关节跟踪滞后(带宽不足 / 前馈缺)、扭矩不够;⑤ 地面:摩擦、坡度;⑥ 方法:先仿真复现,再真机打日志逐环节对,优先怀疑「状态估计」与「接触判断」。
S5 训练的策略在仿真里很好,真机完全不行,怎么分析?
分析思路: ① 先确认 gap 类别:是「物理 gap」还是「观测 gap」;② 物理:摩擦 / 接触 / 惯量 / 延迟不匹配→系统辨识 + 域随机化重训;③ 观测:真机传感器噪声、视觉分布漂移→加噪声训练、真机数据微调;④ 执行:动作频率、控制环带宽不足;⑤ 手段阶梯:域随机化 → 参数辨识 → 真机数据混合微调 → 课程学习 ;⑥ 结论:「真机数据 + 仿真数据混合」通常是最快解。
5 现场手撕题提示
技术面「手撕」不一定是 LeetCode,很多是本岗位的公式 / 推导白板题 。常见几类:
手撕类型 典型题 出现场景
坐标变换 / 矩阵 手写 Clark / Park 矩阵、旋转矩阵、四元数乘法 电机驱动岗、控制岗
控制离散化 PID 位置式 / 增量式离散化、一阶低通滤波、前馈表达式 控制岗、嵌入式岗
状态估计 一维卡尔曼滤波推导(预测-更新两式)、互补滤波 控制 / 感知岗
运动学 二连杆正 / 逆运动学、雅可比矩阵 控制岗
数据结构 / 编程 二叉树遍历、图搜索(BFS/DFS)、链表反转等 LeetCode 常见题 各岗通用编程环节
⚠️ 提醒: 手撕题重点是把过程讲清楚 而非背结果。写公式时边写边解释「这一步为什么」;编程题先说思路与复杂度再写码,写不出完整代码就写伪代码 + 讲清边界条件。
6 答题方法论与面试自检清单
6.1 项目叙述:STAR 法则
S(Situation) 一句话背景 → T(Task) 你的目标 → A(Action) 你做了什么(重点,占 60% 篇幅)→ R(Result) 量化结果。反面教材是「我们团队做了 X」——面试官要的是「我」做了什么 。
6.2 技术题:先框架后细节
先给结论 (一句话答案)→ 再展开机制 → 最后落到「对机器人关节意味着什么」;
不会的题别硬编,诚实说「这块我了解不深,我的理解是……,下来我会补」,比瞎编更稳;
被追问「为什么」时,往物理本质 (能量 / 带宽 / 稳定性 / 时域频域)上靠。
6.3 反问环节建议
反问能展示你关心的是「业务本质」而非待遇。可问:团队目前在攻的最难技术问题 是什么?该岗位前 6 个月 最看重的产出?机器人 量产 / 落地 到了什么阶段?避免一上来问加班与薪资。
6.4 面试自检清单
✅ 简历里每个项目都能用 STAR 讲 2 分钟,且能说出 3 个被追问的坑;
✅ FOC 三环、Clark/Park、SVPWM、编码器、背隙能不看稿讲通;
✅ PID / 前馈 / MPC-LQR / 带宽能现场推或画框图;
✅ ROS2 话题 / 服务 / 动作、TF、QoS 能举例说明;
✅ 准备 2 个场景题(端水、精度排查)的分析框架;
✅ 准备 2 个反问问题;
✅ 手撕:LeetCode 高频题刷过一轮 + 会手写 Clark/Park 与 PID 离散化。
7 HR 面与综合面常见题(10 题 · 参考回答要点)
HR 面与综合面(总监面 / 交叉面)考的是「动机、稳定性、情商、性价比」,技术题往往只占一部分。原则:真实 + 结构化 + 与岗位强关联 ,不要背稿。下面每题给「回答要点 + 参考话术骨架」,展开后用你自己的话重说一遍。
Q1 请做自我介绍(1 分钟 / 3 分钟怎么讲)
1 分钟版(三段式): ① 我是谁(学校 / 方向 / 工龄一句话);② 我做过什么(挑 1~2 个最相关亮点,带量化,如「我把电流环带宽调到 X Hz、策略真机成功率 Y%」);③ 我为什么适合这个岗位(把简历关键词往 JD 上贴)。
3 分钟版: 把第②段展开成一个完整 STAR(情境→任务→行动→结果),其余两段不变。
参考骨架: 「我是 XX,方向是机器人控制。硕士期间我独立完成了一个 FOC 关节控制器,把电流环带宽做到 XX,并在真机上验证了力控;后来做了一个 sim2real 步态项目,成功率从 X% 提到 Y%。我看到贵司在做 XX,和我的积累高度匹配,所以来应聘这个岗位。」
注意: ① 别复述简历全文,讲「简历之外、面试官想听的重点」;② 结尾留一个「钩子」,引导面试官追问你最拿手的项目。
Q2 为什么选择我们公司 / 这个岗位?
三点结构: ① 技术方向匹配(公司做的东西 = 你的积累,点名具体产品 / 技术,如「你们的 H1 步态 RL」「灵犀开源平台」);② 业务阶段吸引你(量产攻坚 / 前沿探索 / 开源社区);③ 你能贡献什么(反向给价值)。
参考骨架: 「我长期在做电机驱动与运动控制,贵司在步态强化学习和关节模组上的技术路线正好是我深耕的方向;同时产品正处在从 Demo 到量产的关键阶段,我的工程落地经验能帮上忙。」
避坑: 只说「平台大 / 薪资高 / 离家近」会显得动机很弱,一定要落到「技术 + 业务」上。
Q3 为什么从 A 方向转到 B 方向(转岗 / 转行)?
框架: ① 承认并肯定过去(别贬低原方向,「汽车底盘控制让我打下了扎实的控制功底」);② 讲清转换的内在逻辑 (能力可迁移:「都是从『建模→控制→真机』这套方法」);③ 展示你已做的准备(自学课程 / 做过的小项目 / 复现的 demo);④ 落到长期匹配。
参考骨架: 「我在汽车行业做了三年底盘电机控制,核心是 FOC 与闭环调参,这套能力在机器人关节上完全通用。过去一年我业余复现了谐波关节的力控和一套 sim2real 抓取 demo,确认自己更想做人形机器人。」
避坑: 忌说「原行业没前途」「想换风口」——要讲「能力延续 + 主动选择」。
Q4 期望薪资怎么谈?
要点: ① 先做功课:了解目标公司该岗位的市场区间(招聘平台 / 学长 / 社区);② 被问时给区间而非单点 ,且下限是你能接受的底线;③ 反问清薪酬结构 (月 base / 年终几个月 / 股票期权 / 补贴 / 加班费),再算总包;④ 表达态度:「薪资合理即可,我更看重岗位与成长」。
参考骨架: 「我了解这个岗位的市场区间大概在 XX~XX,我希望在这个范围内。具体数字可以根据贵司的薪酬结构(年终、股票)综合来看,我更看重的是岗位匹配和长期发展。」
避坑: 别一上来报死数,也别甩一句「你们看着给」——既显得没准备,也容易被压价。
Q5 说说你的缺点?
公式: 真实但非致命的缺点 + 已采取的改进措施 + 量化效果。
参考骨架: 「我过去写代码喜欢一次写完再测,导致联调阶段返工多。后来我强制自己用『先写测试用例、小步提交、真机增量验证』的方式,现在项目联调周期明显缩短了。」
避坑: ① 别说「我太追求完美 / 太努力」这类变相自夸的空话;② 也别踩岗位红线(嵌入式岗说「我粗心、不喜抠细节」是自杀);③ 说 1 个即可,别连说 3 个暴露过多。
Q6 为什么从上家公司离职?
原则: 客观、不贬低前司、往前看。安全且真实的理由:① 发展方向与个人规划不匹配;② 想接触具身智能 / 机器人前沿;③ 组织或业务调整(如实)。
参考骨架: 「上一家公司在传统工业控制,我很感谢那几年的积累;但我想把积累用在前景更大的机器人方向,这和我的长期规划一致,所以主动选择离开。」
避坑: 绝不说「和领导 / 同事不和」「钱少事多加班狠」——哪怕是真的,面试官也只会担心你「不好相处 / 抗压差 / 再来一次还会走」。
Q7 你的职业规划是什么?
三段式(对齐岗位 JD): ① 短期 1~2 年:扎根岗位,把某块技术做到精通(如「把关节控制与整机联调吃透」);② 中期 3~5 年:成为该方向的骨干 / 能独立带一个技术模块(如「独立负责某类关节或某个控制子系统」);③ 长期:结合公司业务一起成长(如「往整机运动控制 / 具身智能架构方向深耕」)。
避坑: 别给「三年当主管、五年创业」这类脱离岗位的规划,面试官要的是「你会不会踏实留下来做技术」。
Q8 项目里和同事发生冲突,你怎么处理?
框架(对事不对人): ① 先各自说清分歧点,把「立场之争」变成「问题之争」;② 用数据 / 实验 说话(「我们各做一个最小验证,看结果」);③ 找折中方案或请负责人拍板;④ 事后复盘协作机制。
参考骨架(套一个例子): 「一次我和硬件同学就电流采样方案有分歧,我没有争论谁对,而是各做一版小样测噪声和温漂,用实测数据选了更稳的方案,并把选择标准沉淀下来。」
考点: 面试官在测你的沟通方式与情绪管理 ,重点展示「如何把冲突导向结果」,而不是「谁赢」。
Q9 你对 996 / 加班怎么看?
立场: 接受关键节点的必要加班,但更强调效率与结果导向;不硬扛、也不当面抗拒。
参考骨架: 「项目冲刺、上线、真机演示这些关键节点,需要时我全力以赴;平时我更倾向于把时间花在提升效率上,避免无效加班。我理解这个行业偶尔要抢进度,只要目标明确、付出有回报,我没有问题。」
避坑: ① 别说「我坚决不加班」(显得难管理);② 也别拍胸脯「加班完全无所谓」(显得假、也可能被当软柿子)。
Q10 反问环节该问什么(怎么问显得专业)?
核心:问「业务本质」而非「待遇细节」。 推荐问:① 团队目前在攻的最难技术问题 是什么?② 这个岗位前 6 个月 最看重的产出 / 成功标准?③ 产品到了什么阶段(Demo / 小批量 / 量产 )?④ 某条技术路线怎么选(如「步态是走 RL 还是 MPC/WBC?为什么」)?
避坑: 第一轮别一上来问加班和薪资(薪资可在谈 offer 时集中谈);也别问官网上已写得明明白白的问题,显得没做功课。
8 英文面试速查(15 个高频问题 · 中英对照)
外企、海外面试、或外籍面试官环节常会英文问答。每题给「中文理解(先懂要答什么)+ 英文回答模板(可背可改)」。套用模板时把方括号里的占位换成你自己的项目与数字。
Q1 Tell me about yourself(请介绍一下自己)
中文理解: 背景(学历 / 方向)→ 1~2 个相关亮点(带量化)→ 为什么适合该岗位。
I'm a master's student in control engineering. I built a FOC joint controller, where I tuned the current loop to a [XX Hz] bandwidth, and I trained a locomotion policy that reached [XX%] success on the real robot. My background in motor control and motion planning matches this role well.
Q2 Why robotics / why do you want to work in robotics?
中文理解: 为什么选机器人方向 / 这份工作,讲兴趣 + 能力 + 价值。
Robotics sits at the intersection of perception, control, and hardware. I enjoy turning algorithms into physical motion, and humanoid robots push both control and embodied AI to the limit — that is exactly where I want to grow.
Q3 What is FOC (field-oriented control)?
中文理解: 先讲 Clark/Park 把三相交流转到 dq 变成直流,再讲 d/q 分别控励磁与转矩,最后 SVPWM 输出。
FOC transforms the three-phase currents into a rotating d-q frame using the Clarke and Park transforms, so the AC currents become DC values. A PI controller then regulates the torque (q-axis) and the flux (d-axis) independently, and the result is converted back through the inverse transforms and SVPWM.
Q4 What is the difference between PID and MPC?
中文理解: PID 无模型、只反馈、简单;MPC 有模型、有限时域在线优化、可显式处理约束。
PID is a feedback-only controller with no explicit model — simple and fast. MPC solves a finite-horizon optimal control problem at every step using a model, so it can preview future references and explicitly handle constraints, at a much higher computational cost.
Q5 Explain SLAM.
中文理解: 同时定位与建图;前端建约束、后端全局优化 + 回环消除漂移。
SLAM estimates the robot's pose and builds a map at the same time. The front end extracts and matches features to get relative poses between frames, and the back end performs global optimization — for example pose-graph or factor-graph optimization — plus loop closure to reduce accumulated drift.
Q6 What is a Kalman filter?
中文理解: 递推状态估计,预测 + 更新两步,卡尔曼增益按噪声权衡。
It is a recursive state estimator. First it predicts the state and covariance using the motion model, then it updates them with the measurement, weighted by the Kalman gain, which balances the trust between the model and the sensor noise.
Q7 What is impedance control?
中文理解: 把机器人末端调节成「弹簧-阻尼-质量」,控制力与运动的关系,用于柔顺接触。
Impedance control makes the robot behave like a spring-mass-damper system. It regulates the relationship between force and motion — roughly F = M·x'' + B·x' + K·x — which is essential for safe contact and manipulation.
Q8 What is the difference between forward and inverse kinematics?
中文理解: 正解由关节角算末端位姿;逆解由期望位姿反求关节角(解析或雅可比数值)。
Forward kinematics computes the end-effector pose from the joint angles. Inverse kinematics computes the joint angles that achieve a desired pose, usually solved numerically with the Jacobian or analytically for simple arms.
Q9 What is sim2real?
中文理解: 仿真训练、真机部署;gap 来自物理 / 视觉 / 延迟;手段是域随机化、辨识、真机微调。
Policies are trained in simulation for cheap and scalable data, then deployed on the real robot. The gap comes from physics, vision, and latency mismatch. Domain randomization, system identification, and fine-tuning with real data are the common ways to close it.
Q10 What is a VLA (vision-language-action) model?
中文理解: 视觉 + 语言指令端到端直接输出动作,区别于传统分层控制。
A VLA model maps vision and language instructions directly to robot actions, end to end, instead of the classic sense-plan-act pipeline. It generalizes better but needs large amounts of data and is less interpretable.
Q11 What is a harmonic drive (gearbox)?
中文理解: 谐波减速器:波发生器使柔轮变形、与刚轮啮合,大减速比、近零背隙。
A harmonic drive uses a wave generator to deform a flexspline against a rigid circular spline, achieving a high reduction ratio — roughly 30 to 160 — with near-zero backlash. It is widely used in humanoid robot joints.
Q12 What are CAN and EtherCAT?
中文理解: CAN 稳健低成本的实时总线;EtherCAT 基于以太网、低延迟 + 时钟同步,适合多轴。
CAN is a robust, low-cost fieldbus for real-time control. EtherCAT is an Ethernet-based protocol with very low latency and synchronized distributed clocks, which is better for many-axis motion control.
Q13 Describe a challenging project (your biggest challenge).
中文理解: 用 STAR 讲一个真踩过的坑:现象→定位→行动→量化结果。
In my FOC project the motor screamed at high speed. I scoped the phase-current waveform, found sampling noise near the PWM switching edge, moved the ADC sampling point and added filtering, and the oscillation disappeared. That taught me to always check the signal chain before tuning gains.
Q14 What are your strengths and weaknesses?
中文理解: 优点贴合岗位;缺点真实但非致命 + 改进措施。
My strength is bridging theory and practice — I can derive a controller and also tune it on hardware. My weakness is that I sometimes over-optimize small details; I now set time-boxes and priorities to stay focused on the goal.
Q15 Do you have any questions for us?
中文理解: 问业务本质,别问待遇细节。
Yes — what is the hardest technical problem the team is solving right now? What would success look like in the first six months? And how far along is the product toward mass production?
9 手撕代码与手推题(10 题 · 题目 + 思路 + 关键代码)
这是第 5 章「手撕题提示」的详细展开:每题先讲「推导 / 思路」,再给「伪代码 / 关键代码」。面试时边写边讲为什么 ,写不出完整代码就给伪代码 + 说清边界条件。
Q1 一维卡尔曼滤波:推导并写出预测 / 更新两步
推导: 系统 x_k = A·x_{k-1} + w、观测 z_k = H·x_k + v(w~N(0,Q)、v~N(0,R))。
预测: x̂_k⁻ = A·x̂_{k-1},P_k⁻ = A·P_{k-1}·Aᵀ + Q。
更新: K = P_k⁻·Hᵀ·(H·P_k⁻·Hᵀ + R)⁻¹,x̂_k = x̂_k⁻ + K·(z_k − H·x̂_k⁻),P_k = (I − K·H)·P_k⁻。一维时 A=H=1,退化为两式。
// 一维卡尔曼(状态 x、方差 P、过程噪声 Q、观测噪声 R)
float kalman1d(float x, float P, float Q, float R, float z) {
// 预测(一维 A=1,无控制输入)
float x_pred = x;
float P_pred = P + Q;
// 更新(一维 H=1)
float K = P_pred / (P_pred + R);
x = x_pred + K * (z - x_pred);
P = (1.0f - K) * P_pred;
return x; // 返回滤波后的状态
}
Q2 PID 离散化:位置式与增量式各写一遍
推导: 位置式 u(k) = Kp·e(k) + Ki·Σe(i) + Kd·(e(k)−e(k−1));增量式 Δu(k) = Kp·(e(k)−e(k−1)) + Ki·e(k) + Kd·(e(k)−2e(k−1)+e(k−2)),u(k)=u(k−1)+Δu(k)。增量式天然无积分累加、便于限幅与手自动切换。
// 位置式(注意积分抗饱和 + 限幅)
u = Kp*e + Ki*integral + Kd*(e - prev_e);
integral += e; prev_e = e; // 之后对 u 与 integral 做 anti-windup 限幅
// 增量式(输出 = 上次输出 + 增量)
du = Kp*(e - e1) + Ki*e + Kd*(e - 2*e1 + e2);
e2 = e1; e1 = e; // 滑动保存历史误差
u = u_prev + du; u_prev = u;
Q3 Clark / Park 变换手写(幅值不变约定)
推导: Clark 把三相 abc 投到两相正交 αβ(幅值不变);Park 把 αβ 随转子旋到 dq,使交流量变直流量。逆变换用于把 dq 电压送回三相。
// Clark(幅值不变):abc -> alpha/beta
I_alpha = I_a;
I_beta = (I_a + 2.0f*I_b) / sqrtf(3.0f); // 或 (I_b - I_c)/sqrt(3)
// Park:alpha/beta -> d/q
I_d = I_alpha*cosf(th) + I_beta*sinf(th);
I_q = -I_alpha*sinf(th) + I_beta*cosf(th);
// 逆 Park:d/q -> alpha/beta
V_alpha = V_d*cosf(th) - V_q*sinf(th);
V_beta = V_d*sinf(th) + V_q*cosf(th);
Q4 SVPWM 扇区判断(给定 Vα、Vβ 求扇区号)
推导: 用三个投影 Vref1=Vβ、Vref2=√3/2·Vα−1/2·Vβ、Vref3=−√3/2·Vα−1/2·Vβ 的正负组合 N 判扇区,N 与扇区的映射为 {3→1,1→2,5→3,4→4,6→5,2→6}。
int svpwm_sector(float Va, float Vb) {
float V1 = Vb;
float V2 = 0.866f*Va - 0.5f*Vb; // sqrt(3)/2 * Va - 1/2 * Vb
float V3 = -0.866f*Va - 0.5f*Vb; // -sqrt(3)/2 * Va - 1/2 * Vb
int N = (V1 > 0) + ((V2 > 0) << 1) + ((V3 > 0) << 2);
switch (N) {
case 3: return 1; case 1: return 2; case 5: return 3;
case 4: return 4; case 6: return 5; case 2: return 6;
}
return 0;
}
Q5 四元数转欧拉角(roll / pitch / yaw)
推导: 四元数 q=(w,x,y,z) 对应的旋转矩阵元素可反解出欧拉角;注意 pitch 需 clamp 到 [−1,1] 再 asin,避免数值越界。不同旋转顺序(ZYX / XYZ)公式不同,本处为 ZYX。
roll = atan2f(2*(w*x + y*z), 1 - 2*(x*x + y*y));
pitch = asinf(clampf(2*(w*y - z*x), -1.0f, 1.0f));
yaw = atan2f(2*(w*z + x*y), 1 - 2*(y*y + z*z));
Q6 栅格地图上两点间的 A* 寻路
思路: open 表按 f = g + h 取最小(g 已付代价、h 启发式,曼哈顿 / 欧氏),每次弹出 f 最小点扩展,记录父节点回溯路径;h 可采纳则保证最优。
def astar(grid, start, goal):
open_h = [(h(start, goal), 0, start)] # (f, g, 节点) 最小堆
g = {start: 0}; parent = {}
while open_h:
f, cost, cur = heappop(open_h)
if cur == goal: break
for nxt in neighbors(cur):
if grid[nxt] == 障碍: continue
ng = cost + 1 # 四邻接代价为 1
if ng < g.get(nxt, inf):
g[nxt] = ng; parent[nxt] = cur
heappush(open_h, (ng + h(nxt, goal), ng, nxt))
return reconstruct(parent, goal) # 沿 parent 回溯路径
Q7 点云质心与 PCA 主轴方向
思路: 质心 c = mean(p_i);协方差 C = Σ(p_i−c)(p_i−c)ᵀ/n;最大特征值对应特征向量即点云主轴(主方向),常用于位姿估计 / 抓取朝向。可用幂迭代或直接特征分解(Eigen/Jacobi)。
c = points.mean(axis=0) # (3,)
C = (points - c).T @ (points - c) / len(points) # 3x3 协方差
w, v = np.linalg.eig(C) # 特征分解
axis = v[:, argmax(w)] # 最大特征值 -> 主轴方向
Q8 欧拉积分 vs 四阶龙格-库塔(RK4)
思路: 欧拉是单步一阶近似,简单但误差大、需小步长;RK4 在区间内取 4 个斜率加权,四阶精度,步长可更大。面试点:精度阶数、步长与稳定性。
// 欧拉(一阶)
y += h * f(t, y); t += h;
// RK4(四阶)
k1 = f(t, y);
k2 = f(t + h/2, y + h/2 * k1);
k3 = f(t + h/2, y + h/2 * k2);
k4 = f(t + h, y + h * k3);
y += (h / 6.0) * (k1 + 2*k2 + 2*k3 + k4); t += h;
Q9 二阶低通滤波器离散化(双线性变换)
思路: 连续二阶低通 H(s)=ωn²/(s²+2ζωn·s+ωn²),令 s = 2fs·(z−1)/(z+1) 代入,展开成 biquad 形式,得到差分方程 y[n] = b0·x[n]+b1·x[n−1]+b2·x[n−2] − a1·y[n−1] − a2·y[n−2]。
k = 2.0f * fs;
A = k*k + 2.0f*zeta*wn*k + wn*wn;
b0 = wn*wn / A;
b1 = 2.0f*wn*wn / A;
b2 = wn*wn / A;
a1 = 2.0f*(wn*wn - k*k) / A;
a2 = (k*k - 2.0f*zeta*wn*k + wn*wn) / A;
// y[n] = b0*x[n] + b1*x[n-1] + b2*x[n-2] - a1*y[n-1] - a2*y[n-2]
Q10 二叉树层序遍历(通用编程题)
思路: BFS 用队列,按层循环 len(q) 次把当前层节点全部出队,同时把下一层子节点入队,得到「一层一个列表」。时间 O(n)、空间 O(n)。
from collections import deque
def levelOrder(root):
if not root: return []
res, q = [], deque([root])
while q:
level = []
for _ in range(len(q)): # 每次恰好处理一层
node = q.popleft()
level.append(node.val)
if node.left: q.append(node.left)
if node.right: q.append(node.right)
res.append(level)
return res
10 公司专项速览(8 家 · 一段简介 + 高频考点)
下面为具身智能 / 机器人方向常见目标公司。考点经 web_search 核实(2025~2026 面经 / 招聘 JD),涉及型号与组织以官方为准,标「约」表示需以公司最新动态为准 。
10.1 宇树科技(Unitree)
以四足(Go2 / B2)与人形(H1 / G1 / H2)闻名,自研关节电机与灵巧手(如 Dex 系列),步态走强化学习(RL)sim2real 路线,底层电机驱动与运动控制是「硬主线」,面试官更想听你怎么把代码跑到真机上。
FOC / 无刷电机驱动与三环调参
运动控制:MPC(约 30~50Hz)与虚拟模型控制 VMC(可 500Hz+)对比
RL 步态 / sim2real 与域随机化
灵巧手力控与触觉
嵌入式 C / CAN / 编码器
10.2 智元机器人(Agibot)
具身智能路线,远征系列人形 + 开源人形平台「灵犀」X1 / X2,主推通用操作基座 / VLA 大模型(如 GO-1 / 启元大模型,约),强调数据采集与真机训练闭环。
VLA / 通用操作模型原理(端到端 vs 分层)
RL 与模仿学习、sim2real
遥操作数据采集与数据闭环
灵犀开源平台 / ROS2 工程
世界模型(World Model)
10.3 大疆(DJI)
嵌入式与控制是看家本领(无人机 / 云台 / 机器人),电机控制算法岗笔试以「偏难、覆盖广」著称,常考 PWM、MTPA、FOC、弱磁与姿态解算。
C / C++ 与指针、RTOS、内存
FOC / MTPA / 弱磁 / SVPWM
PID / 卡尔曼滤波 / 姿态解算(四元数、互补滤波、EKF)
IMU / 传感器标定与融合
嵌入式系统设计(中断 / 采样时序)
10.4 华为车 BU / 机器人
嵌入式(中高级)与通信是重点,机器人 / 具身智能是新兴方向。通信侧常考 CAN / CAN-FD、车载以太网、时间同步与网络协议栈。
嵌入式基础:内存、多线程、中断、并发
Linux / 操作系统原理
CAN / CAN-FD / 车载以太网等通信协议
网络协议与时间同步(约)
手撕数据结构 / 算法
10.5 特斯拉 Optimus(Tesla)
Optimus 以一体化执行器著称,结构 / 执行器 / 热管理是硬件面试重点:旋转关节用谐波减速器,直线关节用行星滚柱丝杠(约),灵巧手与传感器集成度高,量产工艺是持续热点。
行星滚柱丝杠原理与选型
谐波减速器与关节结构
关节结构设计与热管理
电机选型与电磁设计
量产工艺 / 轻量化(约)
10.6 波士顿动力(Boston Dynamics)
Atlas 从液压转向电动(约),控制与动力学是其灵魂:模型预测控制 + 全身控制(WBC)+ 状态估计是高频考点,重推导与落地。
模型预测控制(MPC)与凸优化
全身控制 WBC / 二次规划(接触约束)
动力学建模与接触 / 摩擦
状态估计(IMU / 接触判断)
ZMP / 倒立摆 / 步态规划
10.7 小米机器人
CyberOne(铁大)、CyberDog(铁蛋)系列,电机(自研关节电机)与机械(谐波减速器 / 结构 / 轻量化)是重点,有变刚度柔顺关节相关专利(约)。
关节电机选型与电磁设计
谐波减速器 / 传动与背隙
结构设计与轻量化
FOC 驱动与力控
传感器(IMU / 力 / 视觉)
10.8 速腾聚创(RoboSense)/ 禾赛(Hesai)
激光雷达 + 感知算法为主线,考点集中在雷达原理、点云处理、3D 检测与多传感器融合,对 C++ 与数据结构要求高。
激光雷达测距原理(ToF / FMCW,约)
点云滤波 / 配准(ICP / NDT)
3D 目标检测与跟踪
多传感器融合与标定
C++ 与数据结构 / 算法
11 面试七天冲刺计划(拿到面试邀约后怎么准备)
大多数校招/保研面试的窗口期只有 3~10 天。与其把本页 60+ 道题全部重背,不如按下面的节奏做"定向复习"——每天一个主题,每天产出一份可复用的材料:
天 主题 要做的事 产出物
D1 项目定稿 用第 6.1 节 STAR 法则把 1~2 个核心项目各写成 200 字口述稿,对着计时器练到 90 秒内讲完 项目口述稿 + 追问预演清单(每项目 5 个可能追问)
D2 基础盘:电机与控制 过 2.1 / 2.3 两节高频题;手推 FOC 电流环框图与三环级联结构,能白板画出 一页"电机控制速查卡"
D3 基础盘:硬件与传动 过 2.2 节 + 减速器三问(减速比/背隙/柔轮疲劳),对照机型全景页准备"关节方案选型"观点题 谐波 vs 行星丝杠 vs QDD 的 90 秒陈述
D4 软件与系统 过 2.4 / 2.5 节;ROS2 六概念 + QoS 组合表过一遍;准备一个"分层定位故障"的实战故事 ROS2 速查卡 + 一个故障排查 STAR 故事
D5 手撕与场景 第 9 节 10 题至少动手写 6 题(别只看);第 4 节场景题口述 3 道 可运行的代码片段 + 场景题分析框架
D6 公司定向 按面试公司查第 10 节对应条目,准备 2 个"为什么选我们"的具体理由(提到对方的具体产品线) 公司专项一页纸 + 3 个反问问题
D7 全真模拟 找同学或录像做 30 分钟模拟面试(英文岗按第 8 节题库);复盘录音,标记所有"卡壳点" 卡壳点清单 → 回填到 D1~D6 对应卡片
⚠️ 冲刺期三条纪律: ①每天产出物必须落纸,不看产出只看时长的复习都是伪努力;②手撕题必须真写代码,看会 ≠ 写得出;③最后一天不做新题,只复盘错题与卡壳点——临场记忆需要留白巩固。
12 面试复盘模板与 Offer 决策(面试之后做什么)
面试结束不是终点。24 小时内做复盘,记忆最完整;收获的不只是这一场的经验,而是一套可持续迭代的面试系统:
12.1 五问复盘法(每场面试后当天写)
哪道题答错了 / 答浅了? ——写出正确答案与自己的知识缺口,回填到本站对应页面(形成你自己的"错题-页面"映射);
哪个问题完全没预料到? ——这类题最值钱,说明你的准备框架有盲区,补进第 2 节对应专题;
哪道题答得比预期好? ——固化下来,这就是你的"主场题",后续自我介绍可以主动往这上面引;
面试官在哪个点上追问最深? ——追问方向就是岗位的真实需求,下次面试优先准备这个方向;
如果重来一次,90 秒自我介绍会怎么改? ——每场迭代一版,三轮之后你的自我介绍会非常锋利。
12.2 多个 Offer 怎么比
比较 Offer 不只比薪资。建议给四个维度定权重:业务赛道 (人形机器人整机 vs 零部件 vs 仿真工具,决定你三年后的技能画像)、导师/团队 (直属 leader 的技术背景与带人记录,校招阶段权重应高于公司名气)、技术栈匹配 (你简历上的项目在对方是否还有成长空间)、地理与成本 。保研复试场景下还要比较课题组:方向匹配度 > 组内毕业生去向 > 导师头衔——去官网查近三年毕业生的一作论文与就业去向,比听任何宣讲都可靠。
💡 记住: 面试是双向选择,复盘时也请记录"这家公司/课题组给你的感受"。你在面试中观察到的工程师状态、提问质量与办公氛围,往往比宣传稿更接近真相。
13 本节自测
1. FOC 三环从内到外的正确顺序是?
A. 位置环 → 速度环 → 电流环
B. 电流环 → 速度环 → 位置环
C. 速度环 → 电流环 → 位置环
D. 电流环 → 位置环 → 速度环
💡 解析:三环从内到外是电流环(最内、最快)→ 速度环 → 位置环(最外) 。外环带宽须显著低于内环(约差 5~10 倍),这是三环能稳定的前提。
2. 关于 SVPWM 与 SPWM,下列说法正确的是?
A. SPWM 的母线电压利用率更高
B. SVPWM 只能合成 6 个离散电压矢量,无法连续旋转
C. SVPWM 用伏秒平衡合成旋转电压矢量,相电压幅值可达 Vdc/√3,利用率更高
D. 两者谐波表现完全相同
💡 解析:SVPWM 用 6 个基本矢量 + 零矢量按伏秒平衡合成任意旋转矢量,相电压幅值可达 Vdc/√3,比 SPWM(相电压 Vdc/2)利用率高约 15%,谐波也更优。
3. 人形机器人关节常用「双编码器」方案,其作用是?
A. 电机端编码器跑 FOC,输出端编码器消除减速器传动误差
B. 两个编码器互为热备份,一个坏了另一个顶上
C. 一个测温度,一个测角度
D. 一个用于 CAN 通信,一个用于 EtherCAT
💡 解析:电机端(高速)编码器提供转子电角度供 FOC 换相与解耦;输出端(低速)编码器测真实输出角度,消除减速器背隙与弹性带来的误差,保证末端位置精度。
4. 关于减速器选型,下列说法错误的是?
A. 谐波减速器单级减速比大(约 30~160)且几乎零背隙
B. 行星减速器反驱透明度好,适合准直驱(QDD)关节
C. RV/摆线减速器刚度大、承载大,适合重载关节
D. 减速比越大,输出转速越高
💡 解析:D 错。理想下 ω_out = ω_in / i,减速比越大输出转速越低 、输出扭矩越大(τ_out = τ_in × i × η)。其余三项均正确。
5. 前馈(feedforward)的主要作用是?
A. 提高系统的稳定性裕度
B. 根据期望轨迹提前给控制量,减小跟随误差与滞后
C. 消除传感器噪声
D. 替代反馈控制器
💡 解析:前馈在反馈回路之外,利用「已知期望轨迹 × 逆模型」提前输出控制量,改善跟踪、减小相位滞后,且不改变系统稳定性 ;反馈治偏差、前馈治滞后。
6. ROS2 中适合「长任务、可反馈进度、可取消」的通信机制是?
A. 话题(Topic)
B. 服务(Service)
C. 动作(Action)
D. 参数(Parameter)
💡 解析:动作(Action)含 goal / feedback / result / cancel 状态机,适合导航、抓取等长任务;话题是异步多对多数据流,服务是同步一问一答。
7. 关于 SLAM 前端与后端,下列说法正确的是?
A. 前端做帧间位姿估计建约束,后端做全局一致性优化消除漂移
B. 前端只负责建图,后端只负责定位
C. 前端用位姿图优化,后端用特征匹配
D. 前端和后端功能完全相同,只是顺序不同
💡 解析:前端(特征提取匹配 / ICP / 里程计)建立相邻帧相对位姿约束;后端(滤波法或 g2o/GTSAM 位姿图优化)做全局一致性优化、闭环修正,消除累积漂移。
8. VLA(视觉-语言-动作)模型的核心特点是?
A. 仍按「感知→规划→控制」分模块级联执行
B. 输入视觉与语言指令,端到端直接输出机器人动作
C. 只做视觉识别,不涉及动作生成
D. 专门用于电机 FOC 底层控制
💡 解析:VLA 把视觉感知 + 自然语言指令端到端映射为动作(代表 RT-2 / OpenVLA / π0 / Helix),区别于传统分层控制;短板是数据需求大、可解释差、高频精细控制不足。
9. HR 面被问「说说你的缺点」时,最合适的做法是?
A. 说一个致命缺点,显得诚实
B. 说「我最大的缺点是太追求完美」这类套话
C. 说一个真实但非核心的缺点,并给出已采取的改进措施与效果
D. 拒绝回答,认为这题不合理
💡 解析:缺点题要「真实但非致命 + 改进措施 + 量化效果」;「太追求完美」是变相自夸,说致命缺点或拒答都会扣分,且不要踩岗位红线(如嵌入式岗说「我粗心」)。
10. 英文面试被问 Tell me about yourself 时,最稳妥的结构是?
A. 只报姓名与年龄
B. 背景(学历/方向)→ 1~2 个相关亮点(带量化)→ 为什么适合该岗位
C. 把简历从头到尾完整念一遍
D. 直接反问面试官想听什么
💡 解析:自我介绍用三段式「我是谁 → 我做过什么(带量化)→ 我为什么适合」,别复述简历全文,结尾留「钩子」引导面试官追问你最拿手的项目。
11. 关于 PID 的离散化,下列说法正确的是?
A. 位置式 PID 每次输出的是控制量的增量
B. 增量式 PID 输出控制量增量 Δu,便于限幅与手自动无扰切换
C. 位置式与增量式在数学上完全无关
D. 增量式 PID 不含积分作用
💡 解析:增量式 Δu(k)=Kp(e(k)−e(k−1))+Ki·e(k)+Kd(e(k)−2e(k−1)+e(k−2)),输出是「上次 + 增量」,天然避免积分累加,便于限幅与手自动无扰切换;它仍含积分作用,与位置式等价。
12. 关于波士顿动力 Atlas 的核心控制,最贴近其技术路线的是?
A. 仅用单环 PID,不做任何优化
B. 模型预测控制(MPC)+ 全身控制(WBC)+ 状态估计
C. 只用 ZMP 判据,完全不建模
D. 完全依赖端到端 VLA,不做传统控制
💡 解析:波士顿动力以控制 / 动力学见长,Atlas 采用模型预测控制 + 全身控制(WBC,处理接触约束的二次规划)+ 状态估计这条传统控制路线,ZMP / 倒立摆只是其中一环。
13. 关于闭环控制带宽,下列说法正确的是?
A. 带宽越高越好,不存在任何上限
B. 带宽受机械谐振与噪声限制,逼近谐振会自激,并非越高越好
C. 位置环的带宽应高于电流环
D. 带宽与采样频率、传感器延迟无关
💡 解析:带宽不是越高越好(见 2.3 Q15)。它受采样频率、传感器延迟与机械谐振频率 (关节柔性 / 减速器刚度)约束,带宽逼近谐振会自激;且电流环带宽 > 速度环 > 位置环,故 A、C、D 均错。
14. 关于 MPC 与 LQR 的区别,下列说法正确的是?
A. LQR 能显式处理输入限幅与状态约束
B. MPC 是无限时域、无约束的解析解
C. LQR 是「无限时域 + 线性 + 无约束」的解析解,MPC 是「有限时域 + 在线优化 + 可显式处理约束」
D. 两者在数学上完全等价,没有任何区别
💡 解析:见 2.3 Q14。LQR 解代数 Riccati 方程得固定反馈增益,离线一次算好;MPC 每步在有限预测时域内解带约束优化,滚动优化,能显式处理输入限幅 / 状态约束 / 避障。LQR 可看作「无约束 + 无限时域 + 线性」的 MPC 特例。
15. 关于减速比与负载惯量,下列说法错误的是?
A. 负载惯量折合到电机端为 J_eff = J_load / i²
B. 理想下 τ_out = τ_in × i × η,ω_out = ω_in / i
C. 减速比越大越好,反驱透明度与带宽也会随之提高
D. 减速比过大会使反驱透明度变差、摩擦与背隙放大
💡 解析:C 是常见误区,见 2.2 Q9。减速比越大输出扭矩越大、转速越低,负载折合惯量按 i² 缩小;但 i 过大→反驱透明度变差、摩擦与背隙放大、带宽受限 ,所以不是越大越好。
📌 本节要点速查: ①先看清自己投的岗位(嵌入式 / 控制 / ROS / 感知 / 具身智能五类),技术岗常见 3~5 轮;②FOC 三环从内到外为电流环→速度环→位置环,带宽逐环递减、外环比内环低约 5~10 倍;③减速器按需选:谐波零背隙、行星反驱好、RV 刚度大;④答题统一套路「先结论→再机制→落点」,项目用 STAR,开放题用「拆解→决策点→验证」。
📌 本节小结: 机器人 / 具身智能面试的本质是「用结构化框架展示你对系统从底层(FOC、减速器)到上层(VLA、规划)的通透理解」。把岗位地图看清楚,六大专题高频题各准备一句「结论 + 机制 + 落点」,流程题与场景题统一用「拆解 → 决策点 → 验证」框架,项目用 STAR 讲清「我做了什么 + 量化结果」,手撕会推核心公式——这套组合比临时背题稳得多。
🤔 思考题:
1. 如果面试官追问「为什么电流环带宽必须高于速度环?反过来会怎样」,你怎么从「内外环耦合」的角度回答?
2. 选一个你做过的项目,用 STAR 法则写一段 2 分钟口头稿,并预想面试官会问的 3 个坑。
3. 「让机器人端一杯水不洒」如果要你现场给出更细的控制方案 (具体到加什么补偿、用什么控制器),你会补充什么?
14 参考资料
本页高频题与趋势经 web_search 核实(2025~2026 常见面经 / 题库 / 招聘 JD);涉及型号参数以官网为准。资料整理更新至 2026-08。