数据来源:真实面经整理 | 版本:final


一、公司画像 & 校招节奏

宇树科技(Unitree Robotics)成立于,总部杭州滨江区,创始人王兴兴。

这个名字你可能不熟,但你一定见过他们家的产品——B站上那些跑酷、翻跟头、被人踢一脚还能站稳的四足机器人狗,十有八九是宇树出品。更不用说春晚舞台上那群"机器人群舞",刷屏全网,那批也是宇树的H1人形机器人。

公司规模不算大,大概五六百人。但在四足机器人和人形机器人领域,宇树是国内毫无争议的第一梯队。Go2机器狗的全球出货量已经是同类产品里最高的,B2工业级四足机器人在电力巡检、矿山巡查方向已经有规模化商业落地。H1和G1人形机器人,更是让学术界和工业界同时盯着的产品。

核心产品线:

产品 定位 特点
Go1/Go2 消费/科研四足机器人 全球出货量最大
B2 工业级四足机器人 负载50kg,室外全地形
H1 通用人形机器人 发布,全身关节可控
G1 轻量化人形机器人 发布,更便携
Z1 机械臂 配合四足使用

技术路线上,宇树走的是"强化学习+经典控制双轮驱动"路线。运动控制算法里,RL(强化学习)负责处理复杂地形和动态扰动;MPC/WBC(模型预测控制/全身控制)负责高精度任务执行。两条线都在做,不偏科。

另一个重要特点:宇树核心技术自研程度很高,关节电机、控制板、运动控制算法基本都是自己做的。这意味着工程师要同时懂算法和硬件,纯软件背景进去会有点不适应,但如果你喜欢软硬件结合,会觉得很爽。

主要招聘方向:

岗位 技术侧重 招聘量
运动控制算法工程师 C++/Python,强化学习,全身控制,步态规划 最多
嵌入式软件工程师 C/C++,MCU编程,驱动,实时控制 多
感知算法工程师 SLAM,点云,3D目标检测 中等
仿真平台工程师 IsaacGym/IsaacLab,仿真环境搭建 较少
机械设计工程师 SolidWorks,机构设计 中等(非CS方向)

校招节奏(参考):

阶段 时间 说明
暑期实习 6- 表现好可留用,是最佳入职通道
正式网申 job.unitree.com,关注官网和招聘号
技术面试 10- 2-3轮技术面 + 1轮HR面
Offer发放 11- 节奏比大厂快一些

薪资水平:相比BAT等大厂略低,本科应届15-22k居多,研究生可到25-30k;但股权期权比例较高,且公司处于快速成长阶段,有较大想象空间。

宇树是创业公司氛围——没有大厂的繁文缛节,但也没有大厂的资源缓冲。项目迭代快,工作强度真实,但如果你对机器人有热情,这是国内很难找到的工作体验。


二、岗位JD解析:技术要求拆解

宇树的JD写得比较克制,不像部分互联网大厂那样列一大堆"加分项"。核心要求就那几条,但每条都是真实在考的。

运动控制算法工程师(核心方向)

能力维度 JD描述 真实考察重心 备考权重
C++工程能力 熟练C++ 实时系统C++:无动态内存分配、RAII、多线程同步 ⭐⭐⭐⭐⭐
强化学习 熟悉RL算法 PPO原理、奖励函数设计、Sim-to-Real迁移 ⭐⭐⭐⭐⭐
经典控制 MPC/WBC经验 二次规划(QP)、刚体动力学、MPC公式 ⭐⭐⭐⭐
数学基础 线性代数/优化理论 四元数/旋转矩阵、Eigen库使用、梯度下降 ⭐⭐⭐⭐
ROS/ROS2 机器人中间件 节点通信、话题/服务/Action机制、实时调度 ⭐⭐⭐
项目经验 机器人相关经历 有无实际跑通过机器人程序(不只是仿真) ⭐⭐⭐⭐⭐

一个关键提示:宇树面试非常看重"你有没有真的跑通过机器人"。在仿真里跑通和在真实硬件上调通,在面试官眼里是完全不同量级的经验。如果你有RoboMaster、ROBOCON、或者自己攒过机器人的经历,一定要详细讲。

嵌入式软件工程师

能力维度 JD描述 真实考察重心 备考权重
嵌入式C 熟悉裸机/RTOS编程 FreeRTOS任务调度、优先级翻转问题 ⭐⭐⭐⭐⭐
电机控制 FOC控制原理 FOC原理、PID整定、SVPWM实现 ⭐⭐⭐⭐⭐
硬件通信协议 CAN/SPI/I2C/UART CAN报文格式、波特率配置、中断处理 ⭐⭐⭐⭐
Linux驱动 了解Linux内核 字符设备驱动框架、DMA传输、内存映射 ⭐⭐⭐
调试能力 硬件调试经验 示波器/逻辑分析仪使用,能定位底层bug ⭐⭐⭐⭐

感知算法工程师

能力维度 JD描述 真实考察重心 备考权重
SLAM 激光/视觉SLAM LIO-SAM流程、VINS-Mono原理 ⭐⭐⭐⭐⭐
点云处理 3D感知 PCL库使用、地面分割、障碍物检测 ⭐⭐⭐⭐
深度学习 3D目标检测 PointPillar/CenterPoint,BEV感知基础 ⭐⭐⭐
C++ 工程实现 与运动控制岗C++要求相同 ⭐⭐⭐⭐⭐

三、LeetCode高频题Top 20(真实面经数据)

宇树科技面试的算法题难度是"Medium能写好即可"。不是Google那种专门卡Hard题的面试风格,但基础数据结构和常见算法一定要扎实,而且必须用C++实现。

重要说明:宇树面试官会要求C++手写代码,不接受Python伪代码。代码要能编译通过,边界条件要处理好。

第一梯队:必须掌握(出现频率极高)

题号 题目 类型 核心考点 C++要点
206 反转链表 链表 指针操作、迭代/递归两种写法 裸指针操作基础
21 合并两个有序链表 链表 哨兵节点技巧 注意内存不泄漏
102 二叉树层序遍历 树/BFS 队列使用、层级管理 queue
236 二叉树的最近公共祖先 树 递归思维、后序遍历 注意nullptr判断
53 最大子数组和 动态规划 Kadane算法、DP状态定义 经典DP入门
215 数组中的第K个最大元素 堆/快排 手写快速选择/堆排序 priority_queue使用
手撕 快速排序 排序 partition逻辑、递归 必须能默写
手撕 归并排序 排序 分治、合并有序数组 注意辅助数组

第二梯队:高频出现(大概率会考到其中一两道)

题号 题目 类型 核心考点
23 合并K个升序链表 链表/堆 优先队列,多路归并
70 爬楼梯 动态规划 DP基础,滚动数组优化
1143 最长公共子序列 动态规划 二维DP,状态转移
200 岛屿数量 图/DFS DFS/BFS图遍历
146 LRU缓存 哈希表+链表 手写LRU,考设计能力
3 无重复字符的最长子串 滑动窗口 双指针,哈希集合
15 三数之和 双指针 去重逻辑,排序+双指针
54 螺旋矩阵 矩阵模拟 边界条件,方向控制
48 旋转图像 矩阵 原地旋转,转置+翻转
33 搜索旋转排序数组 二分查找 二分的变形,条件判断

第三梯队:中等频率(准备充分的可以看看)

题号 题目 类型 核心考点
42 接雨水 单调栈/双指针 经典题,多种解法
76 最小覆盖子串 滑动窗口 窗口收缩条件

备考策略:宇树面试不会让你在白板上默写50道LeetCode。更常见的是"写一个快排/归并/链表反转,然后聊聊你的项目"。算法题是门槛,项目经验才是加分项。

C++手写注意事项: - 链表题:注意空指针处理,if (head == nullptr) 不能省 - 递归题:考虑栈溢出问题(面试官可能追问) - 动态规划:说清楚状态定义和转移方程,比直接给代码更重要 - 排序:快排要会手写partition,不能只会std::sort


四、技术面试考点

宇树面试的技术考察有明显的机器人公司特色。除了算法题,专业知识考察是重头戏,而且会根据你的简历深挖。

C++专项(各岗位通用,权重最高)

实时性与性能是宇树C++考察的核心关键词。机器人控制循环通常跑在1kHz(每秒1000次),任何不必要的延迟都会导致机器人抖动甚至摔倒。所以宇树非常在意你是否理解"实时安全"的C++写法。

高频考点:

  1. 禁止动态内存分配:在实时控制循环里,new/delete/malloc 是禁区。面试官会问:怎么在堆不可用的场景下管理内存?(答案方向:内存池、静态分配、对象复用)

  2. RAII(资源获取即初始化):智能指针(unique_ptr/shared_ptr)、锁的RAII封装(lock_guard/unique_lock)、自定义RAII类——这类题几乎必考。

  3. 多线程实时控制: - 1kHz控制循环怎么保证时序?(Linux实时线程:SCHED_FIFO + mlockall + CPU亲和性设置) - 无锁队列(lock-free queue)原理?(std::atomic + CAS操作) - 优先级反转问题?(优先级继承协议、使用PTHREAD_MUTEX_ERRORCHECK)

  4. Eigen矩阵库:宇树代码里大量使用Eigen做矩阵运算。考点:Matrix3d/Quaterniond的操作、旋转矩阵和四元数互转、Eigen的懒惰求值机制(Expression Templates)。

  5. C++17新特性:结构化绑定(auto [x, y] = pair)、if constexpr、std::optional——了解即可,不会深问。

一个容易被忽视的考点:volatile 关键字在嵌入式环境下的意义。很多人以为volatile和多线程同步有关,其实它解决的是编译器优化导致的内存访问问题(防止编译器把硬件寄存器的读取"优化"掉)。

运动控制算法专项

强化学习方向:

考点 考察内容 深度要求
PPO算法 裁剪目标函数、价值网络、优势函数估计 能推导公式
Sim-to-Real Domain Randomization原理、为什么仿真到现实有gap 能讲原理和方案
奖励函数设计 速度追踪项、能量惩罚项、接触力惩罚项 能解释各项的直觉含义
IsaacGym/IsaacLab GPU并行仿真原理、与MuJoCo的区别 了解框架使用
策略网络结构 MLP vs Transformer策略网络的优缺点 了解趋势

面试官常问的一个问题:"你怎么设计一个让机器人学会爬楼梯的奖励函数?" 这道题没有标准答案,考的是你对RL和机器人运动的系统理解。参考答案思路:正奖励(前进速度、重心高度维持)+ 负奖励(关节扭矩过大、接触力突变、摔倒检测)。

经典控制方向:

考点 考察内容 深度要求
MPC(模型预测控制) 滚动优化、约束处理、四足机器人MPC建模 理解公式,会写状态方程
全身控制(WBC) 层次化QP、操作空间控制、动力学模型 了解框架,能说出任务优先级如何实现
PID控制 P/I/D三项作用、整定方法(Ziegler-Nichols)、抗积分饱和 必须非常熟
步态规划 接触序列、摆动腿轨迹规划、稳定裕度分析 了解trot/walk/bound步态区别
刚体动力学 URDF格式、正/逆运动学、雅可比矩阵 理解概念,会用RBDL/Pinocchio库

嵌入式专项

考点 核心问题 参考答案方向
FreeRTOS调度 优先级翻转怎么发生?如何解决? 互斥量实现优先级继承,或使用优先级天花板
CAN总线 仲裁机制?报文ID的作用? CSMA/CA,ID越小优先级越高
FOC电机控制 为什么FOC比普通PWM控制更好? Clarke/Park变换,解耦d-q轴控制,低速扭矩平滑
中断处理 中断里能不能用printf?为什么? 不能,printf可能死锁;改用标志位+任务处理
内存管理 嵌入式里为什么尽量避免动态内存分配? 内存碎片化、分配时间不确定、堆空间有限

五、面经规律总结

整理了近两年宇树科技的校招面经,发现以下规律:

面试结构

通常3轮: - 技术一面(60-):算法1-2道 + C++基础 + 简历项目深挖 - 技术二面():专业知识考察(运动控制/嵌入式/感知,根据岗位定向) + 更深的项目追问 - HR面():动机、职业规划、团队协作,无特殊技巧

面试规律

规律1:项目经验是核心考察点

宇树面试官非常喜欢追问项目。"你在这个项目里遇到的最难的问题是什么?""最后怎么解决的?""如果重新做,你会改什么?"

这意味着:简历上写的项目必须深入了解,不能只知道"用了什么技术",要知道"为什么用这个技术、遇到了什么坑、怎么解决的"。

规律2:C++是硬门槛,不可绕过

面试官会让你在线手写C++代码(通常用牛客在线面试工具或共享文档)。代码不需要一次性完美,但基本语法要正确,指针操作要规范。

频繁被问到的C++细节: - struct 和 class 的区别(默认访问权限) - 虚函数表的工作原理(vtable指针存储在哪) - 移动语义(std::move什么时候用、右值引用的意义) - 模板函数的实例化时机(编译期还是运行期)

规律3:算法题难度中等,重视代码质量

宇树不会出Hard难度的LeetCode题为难应届生。但面试官会注意你的代码风格:变量命名是否规范、是否有注释、边界条件是否考虑周全。

"你的代码能不能直接放到我们的代码库里"——这是宇树面试官的潜在判断标准。

规律4:机器人背景是显著加分项

简历上有以下任何一项,会显著提升通过率: - RoboMaster竞赛经历(尤其是做步兵/英雄机器人的运动控制) - 课题组里跑过四足/人形机器人实验 - IsaacGym/IsaacLab仿真训练经历 - 开源贡献(宇树SDK的issues/PR)

规律5:宇树面试节奏比大厂快

大厂可能面了两个月还没消息,宇树通常1-就有结果。反馈速度快是创业公司的特点之一。


校招节奏

这份校招节奏以"运动控制算法工程师"为主线设计,嵌入式方向在部分重点投入,感知方向在替换为视觉SLAM部分。

:C++深度强化

这是宇树备考的地基。不管投哪个方向,C++不过关就别想了。

:实时安全C++ - 掌握:RAII惯用法,智能指针的使用场景和开销 - 掌握:什么是实时系统里的"不确定行为"(内存分配、I/O、异常) - 练习:手写一个线程安全的环形缓冲区(lock-free版本) - 掌握:volatile vs atomic vs mutex 的区别和使用场景

:Eigen矩阵库 - 掌握:Matrix3d、Vector3d、Quaterniond的基本操作 - 掌握:旋转矩阵 ↔ 四元数 ↔ 欧拉角的互相转换 - 掌握:Eigen的Block操作和广播操作 - 练习:用Eigen实现一个简单的旋转变换链

:多线程实时控制 - 掌握:Linux实时线程配置(SCHED_FIFO、CPU亲和性、mlockall) - 掌握:std::thread、std::mutex、std::condition_variable 用法 - 了解:无锁数据结构(lock-free queue)的原理(不要求手写) - 掌握:优先级反转问题的成因和解决方案

:C++面试题集中演练 - 刷C++经典面试题(虚函数、模板、move语义、RAII) - 重新看一遍之前写的代码,检查命名规范和注释质量


:算法专项

:链表与树 - 刷:LeetCode 206、21、23、236、102、144、145(层序/前序/后序遍历) - 重点:用C++手写,不用auto省事,写完整类型声明 - 练习:白板上默写反转链表和二叉树层序遍历

:动态规划与排序 - 刷:LeetCode 53、70、1143、300(最长递增子序列) - 手写:快速排序(重点partition逻辑)、归并排序 - 练习:说清楚状态定义和转移方程,不只是写代码

:矩阵与双指针 - 刷:LeetCode 48、54、3、15 - 重点:矩阵边界条件,双指针去重逻辑


:运动控制深度学习

:强化学习专项 - 理解:PPO算法(策略梯度、Clipping目标函数、GAE优势估计) - 理解:Sim-to-Real的gap从哪里来(物理参数不精确、传感器噪声、执行器延迟) - 理解:Domain Randomization的方法(随机化摩擦系数、质量、外力扰动) - 配置:在本地或服务器跑一个IsaacLab的示例任务(官方有现成的四足步行任务) - 重点:能够解释宇树H1/Go2用的是什么训练框架

:MPC与步态规划 - 理解:MPC的滚动优化原理(为什么每一步都重新求解?) - 理解:四足机器人的简化动力学模型(质心动力学模型) - 理解:trot/walk/bound三种步态的接触序列区别 - 了解:MPC for Legged Robots(CMU Cheetah论文是经典参考)

:全身控制与动力学 - 理解:层次化QP(Hierarchical QP)的任务优先级机制 - 理解:雅可比矩阵(Jacobian)在机器人中的作用(速度映射、奇异点) - 了解:RBDL / Pinocchio库的基本使用 - 练习:用Eigen手写一个简单的3自由度机械臂正运动学计算


:SLAM基础

:激光SLAM - 理解:LIO-SAM的系统框架(IMU预积分+激光里程计+回环检测) - 理解:ICP算法(迭代最近点)的原理 - 了解:地面分割(RANSAC)和点云滤波(体素滤波) - 配置:跑一个LIO-SAM的开源demo(数据集:MulRan或KITTI)

:视觉惯性里程计(VIO) - 理解:VINS-Mono的框架(滑动窗口优化、IMU预积分) - 理解:特征点提取与匹配(ORB特征) - 了解:相机-IMU外参标定(Kalibr工具) - 重点:能解释为什么四足机器人用SLAM而不只用IMU做定位


:嵌入式专项

这三天重点面向嵌入式软件工程师岗位。运动控制岗也要了解基础。

:RTOS与任务调度 - 掌握:FreeRTOS的任务创建、调度策略(抢占式)、任务通知 - 掌握:优先级反转问题(成因:低优先级任务持有高优先级任务需要的锁) - 掌握:优先级继承协议(Priority Inheritance Protocol)的原理

:总线协议与电机控制 - 掌握:CAN总线的报文格式(ID、DLC、DATA字段)、仲裁机制 - 掌握:FOC(磁场定向控制)的Clarke变换、Park变换和SVPWM原理 - 掌握:PID整定的基本方法(为什么积分项会引起超调?如何抗积分饱和?) - 了解:宇树电机使用的是自研关节模组(T-Motor同款技术路线)

:Linux驱动基础 - 了解:字符设备驱动的框架(file_operations结构体) - 了解:DMA传输(为什么DMA比CPU轮询高效?) - 掌握:中断处理的上半部/下半部机制(不能在中断里做耗时操作)


:冲刺准备

:宇树面经整理 - 搜集最新宇树面经(重点看以后的) - 整理高频问题,对每个问题准备2-的回答 - 重点:项目描述练习(STAR法则:情境-任务-行动-结果)

:项目准备与GitHub展示 - 整理2-3个你最有把握讲清楚的项目 - 每个项目准备:背景、技术选型理由、遇到的坑、最终效果 - 如果有宇树SDK相关代码,push到GitHub(面试前发给面试官) - 如果参与过开源项目(legged_gym、unitree_ros2等),梳理贡献点

:模拟面试与知识查漏 - 找同学或录视频,模拟技术一面(,算法题+C++题+项目) - 检查:白板手写代码是否流畅?项目讲述是否清晰? - 查漏:把之前标记"不太确定"的知识点再过一遍 - 心态准备:宇树面试节奏快,被拒了很快知道,没必要焦虑等消息


📚 你可能还需要这些

机器人公司其他备考攻略

如果你在同时投多家机器人/自动驾驶公司,这些可以参考: - 📌 地平线校招备考攻略(芯片+算法双轨,C++要求同样极高) - 📌 Momenta校招备考攻略(视觉感知方向,深度学习权重更大) - 📌 小鹏智驾校招备考攻略(端到端架构,RL在自动驾驶的应用)

C++和嵌入式基础巩固

如果C++基础有短板,可以配合以下攻略: - 📌 大厂C++技术面试常考题整理(通用C++考点,宇树必考范围均覆盖) - 📌 大厂笔试面试八股文-算法-数组常考题(算法基础补充)


💡 关注我,少走弯路

我会持续分享: - ✅ 大厂高频题整理(按公司、岗位精准分类,宇树/地平线/Momenta等机器人公司专项) - ✅ 最新面经汇总(届校招第一时间更新) - ✅ 机器人方向备考指南(运动控制/嵌入式/感知全覆盖) - ✅ C++实时系统专题(专为机器人/嵌入式岗位定制)

这篇攻略整理了大量面经和技术文档,如果对你有帮助: - 👍 点个"赞"和"在看",让更多备考同学看到 - 💬 评论区聊聊你的备考进展,或者留下你在宇树面经里遇到的题目 - 🔄 转发给同样在投机器人公司的同学

有问题随时留言,我会尽量回复!


数据来源: - 宇树科技官网招聘信息(job.unitree.com) - -届校招面经(各平台公开信息整理) - 宇树开源项目文档(github.com/unitreerobotics) - 机器人运动控制学术论文(legged_gym、unitree_rl_gym项目) -