整理自优必选(UBTECH)Walker系列人形机器人技术体系与行业高频考点,聚焦双足平衡、步态规划、全身协同等核心方向。

一、运动学与动力学基础(2题)

第1题:请你详细描述一下人形机器人逆运动学(IK)的求解过程,优必选Walker有36个自由度,你是怎么处理冗余自由度的?

考察点: IK理论深度、冗余自由度处理策略、数值解法 vs 解析解法

参考答案:

逆运动学就是从末端位姿反算各个关节角度的过程。Walker有36个自由度,每条腿6个自由度、每只手7个、灵巧手4个、头部2个,这是一个典型的高冗余系统。

求解IK主要有两条路:

解析法——对特定构型推导封闭解,速度快、精度高,但通用性差。比如某些6轴臂可以用Pieper准则解耦,把位置和姿态分开算。但是Walker这种全身构型,解析法基本搞不定,构型一变就得重新推。

数值法——更通用,常见的有:

  • 雅可比伪逆法:根据末端速度 δx = J·δq,用雅可比矩阵的伪逆求解 δq = J⁺·δx,然后迭代逼近目标。

  • 阻尼最小二乘法(DLS / Levenberg-Marquardt):在伪逆基础上加了阻尼项,解决雅可比矩阵奇异时解发散的问题,公式是 J⁺ = Jᵀ(JJᵀ + λ²I)⁻¹。

  • 二次规划(QP)法:把IK建模成带约束的最优化问题,可以额外加关节限位、碰撞避免等约束。

怎么处理冗余自由度?——这才是面试重点

冗余自由度本身不是麻烦,反而是优势——问题在于怎么利用它。常见策略:

  1. 零空间投影法:核心公式是 q̇ = J⁺·ẋ + (I - J⁺J)·q̇₀

- 第一项J⁺·ẋ,保证主任务(末端跟随目标)

- 第二项是零空间投影,在保证主任务的前提下,利用冗余自由度去做次优任务,比如保持关节舒适性、避障、优化力矩分配

  1. 任务优先级分层:用层级任务框架(比如Salisbury的严格优先级),高优先级任务先解,低优先级任务的求解只能在零空间中进行

在Walker实际落地上——Tavily资料显示优必选采用组件化、松耦合的算法架构,不同运动模式由上层APP Manager调度。实际面试中可以提一句:优必选北研所的实时控制系统里,IK模块以1000Hz跑在核心控制环中,用到了QP求解器做冗余自由度优化,同时把关节限位、力矩约束都放进求解器里。

第2题:请推导人形机器人的拉格朗日动力学方程。在Walker这种双足机器人上,为什么浮动基座动力学和固定基座(如机械臂)有本质区别?

考察点: 动力学建模扎实程度、浮动基座 vs 固定基座的理解

参考答案:

先推导一下:

拉格朗日量 L = T - V,T是动能,V是势能。对于n自由度的机器人,广义坐标q ∈ ℝⁿ,动力学方程为:


d/dt (∂L/∂q̇) - ∂L/∂q = τ

展开写成标准形式:

M(q)q̈ + C(q, q̇)q̇ + G(q) = τ + JᵀF_ext

其中:

  • M(q) 是 n×n 惯性矩阵

  • C(q,q̇) 是科里奥利力和离心力项

  • G(q) 是重力项

  • τ 是关节驱动力矩

  • JᵀF_ext 是外力/力矩映射到关节空间的项

浮动基座 vs 固定基座的本质区别:

机械臂固定在底座上,基座不动。但人形机器人的脚没有固定在地面上——基座(躯干)是"浮"在空中的,跟地面之间通过脚和地面的接触力来交互。

这就导致了两个关键区别:

第一,广义坐标组成不同:

  • 固定基座:q ∈ ℝⁿ,就是关节角度

  • 浮动基座:q = [q_b; q_j],其中q_b ∈ SE(3)是基座(躯干)的位姿(6个自由度),q_j是关节角度。浮动的基座多出来6个自由度的"虚拟关节"

第二,动力学方程的结构不同:

浮动基座的M(q)矩阵不再是正定的——因为没有跟地面刚性连接,基座有6个自由度的"欠驱动"部分,这体现为惯性矩阵的零空间。你没法像机械臂那样直接给基座施加力矩。

实际控制时,双足机器人只能通过脚底和地面的接触反力来间接控制躯干的运动。这就是为什么双足平衡问题这么难——它本质上是一个欠驱动系统的约束控制问题,而且接触状态还在单脚支撑、双脚支撑之间来回切换。

参考优必选Walker的架构:其脚底嵌入了六维力传感器,实时测量地面反作用力,通过力反馈来估计躯干的状态,再用MPC或WBC做闭环补偿。这也是为什么优必选在招人时明确要求"多刚体动力学建模能力"。


二、步态规划与ZMP稳定性(3题)

第3题:详细解释ZMP(零力矩点)稳定性准则。优必选Walker采用ZMP做稳定控制,你能说出它的物理含义和局限吗?

考察点: ZMP底层理解、优缺点认知、实际工程sense

参考答案:

ZMP的物理含义:

ZMP全称Zero Moment Point,中文叫零力矩点。定义是:地面上这样一个点,该点处地面反作用力对机器人产生的水平方向的合矩为零。

简单说就是——你把机器人受到的惯性力、重力、所有外力的合力算出来,往地平面投影,那个投影点就是ZMP。

ZMP稳定判据: ZMP必须落在支撑多边形(Support Polygon)内部。

  • 双脚支撑时,支撑多边形是两个脚掌和之间连线围成的凸包

  • 单脚支撑时,支撑多边形就是单只脚掌的轮廓

如果ZMP跑到多边形外边去了,脚掌就会翻转,机器人就摔了。

Walker用的就是这条准则——Tavily搜索到优必选官网明确写了"Walker采用实时步态规划,基于ZMP等传统控制算法保障稳定性"。

ZMP的局限(面试加分点):

  1. 只适用于平坦地面——ZMP的前提是地面足够硬、足够平,有明确的支撑多边形。上楼梯、走碎石路,ZMP就不太好用

  2. 静态/准静态假设——严格来说ZMP是"不翻转"的条件,对剧烈动态动作(跑步、跳跃)约束太强,会导致步态偏保守

  3. 没法处理柔性交互——比如人被撞了会通过身体柔顺地调整,ZMP理论本身不提供"怎么调"的指导

怎么补? 实际工程中,Walker架构上用的是多层防护:

  • 离线规划层用ZMP做步态设计

  • 在线控制层用力反馈+MPC做动态补偿

  • 上层还有自平衡抗干扰算法(Push Recovery)

第4题:请介绍线性倒立摆模型(LIPM)与Capture Point(捕获点)理论。在Walker的实际步态规划中,你是怎么处理地面不规则性的?

考察点: LIPM模型理解、Capture Point、地形自适应策略

参考答案:

线性倒立摆模型(LIPM):

人形机器人行走时可以简化成一个倒立摆——全身质量集中在质心(CoM),腿等效成一个可变长度的无质量连杆,脚底和地面是点接触。

加一个关键假设:质心高度恒定。这就是LIPM的"线性"之处。在这个假设下,水平方向的动力学解耦成了两个独立的线性微分方程:


ẍ_CoM = (g / z_c) · (x_CoM - x_ZMP) ÿ_CoM = (g / z_c) · (y_CoM - y_ZMP)

g是重力加速度,z_c是质心高度常数。这个方程可以解析求解——把质心轨迹和ZMP轨迹的关系用一个封闭形式表达出来。

Capture Point(落脚点):

Capture Point是LIPM框架下提出的概念,指这样一个点:如果机器人把脚踩到Capture Point上,就能完全吸收当前动量,使机器人静止下来。

公式是:CP = x_CoM + v_CoM / ω₀,其中 ω₀ = √(g/z_c)

有了CP,步态规划就变成了"选落脚点"的问题——只要让脚落在CP附近,人形机器人在这一步就能稳定停下来。这个思想很自然地扩展到了Push Recovery(受扰动后的恢复控制)。

Walker的地形适应性处理:

Tavily资料显示,Walker能适应20°斜坡、15cm台阶、厚地毯和碎石路面。这里面涉及的策略包括:

  1. 自适应斜坡行走算法——通过IMU和足部力传感器实时检测地面坡度,动态调整躯干姿态和踝关节角度,让脚底尽量贴合地面

  2. 摆动腿运动避障规划——摆动腿在空中时,用传感器探测障碍,规划腿部的运动轨迹绕过障碍再落地

  3. 质心高度自适应算法——不维持固定z_c了,而是根据地形调节质心高度,比如上楼梯时主动抬高

  4. 脚掌姿态控制——Walker脚掌有独立的姿态控制算法,在不平整地面上主动调整脚掌的俯仰和翻滚角,增大有效接触面积

第5题:机器人行走过程中受到横向推力(比如有人从侧面推了一把),Push Recovery有哪些策略?优必选Walker怎么实现抗干扰的?

考察点: 平衡恢复策略、实际工程经验

参考答案:

Push Recovery本质上是"怎么重新选择落脚点和调整躯干姿态才能不倒"。主流策略分三层:

第一层:踝关节策略(Ankle Strategy)

如果扰动比较小,不动上身也不动脚,只靠踝关节力矩产生恢复力矩。相当于你站着被人轻轻碰一下,脚脖子使劲扛住了。

优点是响应快,缺点是力矩有限——踝关节能提供的力矩有上限,超过这个上限就扛不住了。

第二层:髋关节策略(Hip Strategy)

扰动更大一些时,髋关节主动发力,摆动上肢和躯干来产生反方向的惯性力矩,相当于你站稳了之后甩胳膊来保持平衡。

Walker在做这个的时候,双臂并不是闲着——也可以通过上肢摆动产生额外的动量补偿。

第三层:迈步策略(Step Strategy)

扰动大到踝和髋都扛不住了,那就迈一步,通过改变落脚点来重新建立稳定域。

这时候Capture Point就有用了——根据当前速度和ZMP的位置算出CP,然后决定脚踩到哪。

Walker的抗干扰能力:Tavily资料提到,Walker在RoboCup技术挑战赛的Push Recovery项目中拿到第三名,能够承受一定质量的重物撞击并在原地踏步中保持平衡。此外,Walker还具备单脚承受冲击后保持平衡的能力。

工程上Walker实现的细节:

  • 足底六维力传感器实时测量地面反作用力

  • IMU测量躯干姿态和角速度

  • 1000Hz的控制频率保证快速响应

  • 多层控制器叠加:踝关节策略做细调,迈步策略做大范围修正


三、力控制(2题)

第6题:谈谈力/位混合控制(Hybrid Force-Position Control)的原理。在人形机器人的实际工作场景中(比如端茶倒水、拧瓶盖),你如何设计控制器?

考察点: 力/位混合控制理解、任务分解能力

参考答案:

力/位混合控制的核心思想:

在机器人的操作空间中,把每个自由度按照任务需求分成两个正交的子空间——位置控制子空间和力控制子空间。

约束条件告诉你在哪个方向该控位置、哪个方向该控力。比如擦桌子:垂直桌面方向控力(维持一定压力),水平方向控位置(沿着桌面移动)。

数学上用一个选择矩阵S来区分:S对角线上1代表这一维做位置控制,0代表做力控制。控制器输出就是两个子空间控制量的加权求和。

人形机器人拧瓶盖的场景怎么设计:

首先做任务分解,建立操作约束模型:

  1. 手抓瓶盖:径向控力(不能捏碎也不能滑脱),切向控力矩(施加扭转力)

  2. 手臂输出:需要同时做位置跟踪(手要跟着瓶盖转)和力矩控制(施加扭转力矩)

  3. 躯干/下半身:力控过程中会有反作用力传到躯干,下半身必须做位置/姿态保持

实际控制架构如下:

  • 外层:检测瓶盖类型、松紧程度,算出所需的轴向拉力F_des和扭转力矩τ_des

  • 中层:在笛卡尔空间做力/位分解——绕着瓶盖轴线方向是力控(施加扭转力矩),其他方向是位置控(保持跟瓶盖对齐)

  • 内层:通过雅可比映射到关节空间,在关节层面做力矩补偿

Walker手臂有7个自由度,还有力传感器,恰恰具备做这种精细力控的硬件基础。而且Tavily资料提到,优必选在力控方面有专门的柔性控制算法,能实现末端柔顺控制,完成按摩、拧瓶盖等任务。

面试中可以补充一句:实际调试中最头疼的是力控和位控的切换时机——比如拧瓶盖拧到最后一圈的时候,力控突然变成空载,如果不及时切换到位置控,手臂就会猛地冲出去。这个切换逻辑需要反复实验调参。

第7题:简述阻抗控制(Impedance Control)的原理。它跟力/位混合控制有什么区别?人形机器人跟人交互时(比如握手),你选哪个?

考察点: 阻抗控制理解、控制策略对比、应用场景判断力

参考答案:

阻抗控制的核心思想:

不直接控力,也不直接控位置——而是控"力和位置之间的动态关系"。

把机器人的末端等效成一个质量-弹簧-阻尼系统:


M · Δẍ + B · Δẋ + K · Δx = F_ext

  • Δx = x_actual - x_desired:实际位置和期望位置的偏差

  • M是虚拟质量,B是虚拟阻尼,K是虚拟刚度

  • F_ext是外部施加的力

你可以调这三个参数来改变机器人的"软硬"程度:

  • 刚度K调小→机器变软→顺应外部力

  • 阻尼B调大→运动变粘→吸收冲击

跟力/位混合控制的区别:

| 维度 | 力/位混合控制 | 阻抗控制 |

|------|-------------|---------|

| 控制目标 | 某些方向严格控位置,某些方向严格控力 | 控位置偏差和外力的关系 |

| 切换方式 | 硬切换(S矩阵确定方向) | 无切换,连续调节 |

| 对外力响应 | 力控方向主动跟踪目标力 | 柔顺地"让开" |

| 适合场景 | 磨削、擦洗等需要精确力控制的任务 | 人机交互、未知环境接触 |

选型建议:人机交互场景用阻抗控制

为什么?因为人机交互(比如握手)你根本不知道对方会怎么动——他的力、速度、位置都是不确定的。

力/位混合控制要求你事先知道哪些方向控力、哪些控位置,这个你没法提前定。

阻抗控制的好处是:你不需要知道具体力的大小,只需要把机器人的"阻抗"设对——调低刚度、调高阻尼,机器人就会自然地顺应人的动作,既不会僵着不动让人不舒服,也不会软趴趴的失控。

优必选Walker在柔顺物理交互这块做了专门优化——Tavily资料提到Walker具备"全身柔顺控制,感应外力冲击"的能力,这就是阻抗控制的工程实现。Walker在做柔性安全交互时,控制器实时检测外力并调整各关节的阻抗参数,确保人机互动安全。


四、全身协同控制(2题)

第8题:说说全身协同控制(Whole-Body Control,WBC)的框架。人形机器人控制里,WBC和传统分而治之(腿部一个控制器、手臂一个控制器)有什么区别?

考察点: WBC框架理解、对比分析、实际案例

参考答案:

WBC的核心思想:

全身协同控制,核心是把机器人所有自由度(含基座浮动自由度)纳入一个统一框架,同时处理多个任务,用优先级或加权的方式求解,最终统一输出每个关节的力矩指令。

WBC的数学框架:

标准WBC的构建流程:

  1. 任务定义:把每个任务表达成关节空间的加速度约束——A·q̈ = b

- CoM运动任务:J_cm · q̈ = ẍ_cm_des

- 脚掌接触任务:J_foot · q̈ = 0(保持不动)

- 手臂末端任务:J_hand · q̈ = ẍ_hand_des

- 姿态保持任务:J_torso · q̈ = ω̇_torso_des

  1. 求解:把上述任务按优先级排序(Contact > CoM > 姿态 > 末端操作),用层级QP求解,输出最优加速度 q̈*

  2. 映射到力矩:用逆动力学 τ = M(q)q̈ + C(q,q̇)q̇ + G(q) + JᵀF_ext 算出力矩

WBC vs 分而治之:

传统做法把上半身和下半身分开——腿部控制器管走路和平衡,手臂控制器管抓取操作。这样开发简单,各团队可以并行。

但是出现了一个致命问题:当手臂做操作时,反作用力会通过躯干直接传导到下半身。两个控制器各自为政,没人管这个耦合。结果就是——人形机器人一抬重物就摔,一推门就倒。

WBC解决了这个问题:所有任务都在同一个优化器里求解,自然考虑到了交互力和关节力矩的耦合。

优必选Walker的实践:

Tavily资料显示,优必选在算法架构上:

  • 1000Hz核心控制环:处理状态估计、全身控制器输出

  • 200Hz规划环:做步态规划、动作规划

  • 1Hz/0.1Hz长期规划

WBC跑在1000Hz这一层,接收上层规划的轨迹、接触状态、任务优先级,统一求解关节力矩。同时Walker的41个伺服关节、全身力传感器都接入反馈,构成了闭环。

优必选招聘JD里明确写了"熟悉MPC、WBC等优化控制算法开发经验",说明WBC是Walker的核心技术栈。

第9题:人形机器人在执行全身操作任务时(比如"双手推开门的同时,双脚保持平衡并跟随门移动"),你怎么构建任务优先级?实际操作中,WBC的求解器有哪些常见坑?

考察点: 任务优先级设计、工程实际问题排查

参考答案:

任务优先级构建:

按照"越安全、越基础的任务优先级越高"的原则,典型层级如下:

| 层级 | 任务 | 说明 |

|------|------|------|

| 最高 | 接触约束 | 脚底不能滑、不能脱离地面 |

| 高 | CoM运动 | 保持质心在支撑多边形内 |

| 中高 | 躯干姿态 | 保持上身稳定 |

| 中 | 双手末端操作 | 推门的位置和力 |

| 低 | 关节舒适性 | 避免关节极限 |

| 最低 | 零空间优化 | 能耗最小化 |

推门这个具体场景:

  1. 阶段1(刚接触门):双手接触门表面,控力(建立稳定的接触力,让手不要滑脱)

  2. 阶段2(推门过程):双手末端跟着门开合轨迹走(位置控),同时下肢通过脚底力传感器感知身体重心的偏移,动态调整髋关节和踝关节

  3. 阶段3(门开到位):切换回姿态保持,机器人静止

WBC求解器的常见坑:

  1. 任务冲突导致无解:当高优先级任务本身不可行时(比如接触约束要求脚不能动,但受力更大要求脚必须迈步),低优先级任务直接得不到控制资源。解法:对接触约束加松驰变量,允许在极端情况下"软约束"。

  2. QP求解器的实时性问题:自由度越多,优化变量越多。Walker几十个自由度,任务再几十个,QP规模不小。解法:利用问题的稀疏结构(如Hessian矩阵的块对角特性)加速求解,或者用主动集法(Active Set)替代内点法。

  3. 模型误差放大:WBC依赖精确的动力学模型。一旦模型参数不准(比如负载变了、关节摩擦变了),矩控制出问题。解法:加鲁棒项,或者用基于力传感器的外部扰动估计做前馈补偿。

  4. 接触状态的硬切换:从单脚支撑切换到双脚支撑时,动力学模型瞬间变化,WBC的输出会出现冲击。解法:引入接触状态的平滑过渡(类似混合系统的处理),或者用基于接触力的软约束过渡。

优必选Walker在RoboCup中遇到的"对抗激烈导致摔倒"的问题就是个典型案例——比赛中机器人间碰撞频繁,WBC需要同时处理来自多个方向的冲击力,接触状态频繁切换。Walker凭借1000Hz的高频控制环和力传感器反馈,能够在这类复杂场景下维持稳定性。


五、场景应用(1题)

第10题:假设优必选Walker要在工厂里做一个实际任务(比如从A点取货,走到B点放货),请你从运动控制角度完整描述整个技术流程和控制环路,并说出你最担心的工程问题是什么。

考察点: 系统整合能力、工程落地思维、风险预判

参考答案:

完整技术流程:

阶段1:感知与规划

  1. 视觉定位:Walker用多目视觉做SLAM,知道自己在工厂里什么位置

  2. 全局路径规划:Coarse-to-fine多层规划,规划A到B的全局路径

  3. 局部步态规划:根据路径上的障碍物、地形特征,生成具体的落脚点序列

  4. 操作规划:规划手臂从取货点到目标位置的抓取轨迹

阶段2:执行行走


循环频率:1000Hz

阶段3:操作执行

到达B点后:

  1. 脚底力传感器确认站稳→切换到双脚稳定支撑

  2. 手臂按规划轨迹运动,同时WBC持续运行

  3. 取/放货过程中,手部力传感器做柔顺控制,避免损坏物品

阶段4:恢复行走

货物负载变化了(重心变了、质量变了):

  1. 状态估计器重新估计带载后的CoM位置

  2. 行走参数根据新负载在线调整(比如增大支撑域、降低步速)

  3. 继续行走直到任务完成

最担心的工程问题——TOP 3:

1. 地面不确定性和负载变化的鲁棒性

工厂地面可能有油污、接缝、障碍物碎片,Walker的ZMP稳定性准则在新环境下可能不适用。最怕:机器人走的过程中脚底打滑,ZMP突然跑出支撑多边形,系统来不及反应就摔倒。

解法:脚底力传感器实时监测切向力,一旦检测到打滑趋势立即调整落脚点;同时加摔落检测和缓冲策略——摔倒也要"优雅地倒",减少硬件损坏。

2. Sim-to-Real间隙

Tavily资料提到优必选构建了"真机采集-仿真训练"的数据闭环。但仿真里的摩擦力、刚度、阻尼永远跟真机有差距。最怕:仿真跑得飞起,真机一跑就抖、一跑就倒。

解法:域随机化(Domain Randomization)——训练时随机化仿真参数,迫使策略学会适应各种工况。优必选正在做的就是这个方向。

3. 长时间运行的关节发热和磨损

Walker在工厂里可能要连续8小时作业,伺服关节持续高负载运行会发热,导致力矩输出偏差。这个偏差积累到一定程度,WBC的模型预测跟实际系统差异越来越大,最终失控。

解法:关节温度监控+力矩补偿,以及定期的自校准流程。优必选周剑在采访中也提到"以更鲁棒的算法降低对高精度部件与高性能传感器的依赖"——这也是算法工程师要解决的工程问题。


以上10道题覆盖了优必选人形机器人运动控制工程师面试的核心知识点:
- 运动学/动力学基础:逆运动学(IK)、浮动基座动力学建模
- 步态规划/ZMP:ZMP准则、LIPM/Capture Point、Push Recovery
- 力控制:力/位混合控制、阻抗控制
- 全身协同:WBC框架、任务优先级设计
- 场景应用:系统整合、工程风险预判
基础理论 + 工程实践 + 优必选Walker技术特色缺一不可。面试时不用每个公式都背,但基本推导思路要清楚,工程落地的实际经验比纯理论更有说服力。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐