人形机器人控制:双足行走与全身操作
人形机器人控制:双足行走与全身操作
导论:为什么人形机器人控制充满挑战?
人形机器人被设计为在人类环境中工作,其双足行走和全身操作能力是实现通用任务的基础。与轮式或固定基座机器人不同,人形机器人的基座浮动在空间中,需要同时处理稳定行走与上半身操作之间的强耦合关系。本节将拆解控制架构的核心组件,帮助你从零构建对人形机器人控制的系统认知。
本教程面向具备基本线性代数、刚体运动学和经典控制理论的读者,但会尽量以直观方式解释关键算法,并提供可仿真的简化模型思路。
基础建模:浮动基座与全身运动学
浮动基座系统
人形机器人的躯干并非固定在地面,而是相对世界坐标系自由移动。描述机器人状态时,必须包含基座的6自由度位姿(位置+姿态)。完整广义坐标通常写作:
q = [xb, yb, zb, roll, pitch, yaw, θ_joints]
其中前6项为基座位姿,之后为各关节角度。
浮动基座导致欠驱动特性:当双脚离地时,基座的6自由度无法被直接驱动,只能通过与环境接触产生的反作用力来控制。
关节空间与任务空间
- 关节空间:所有关节角度组成的向量空间,控制指令直接作用于此。
- 任务空间:我们关心的机器人部位(手、脚、头部或质心)在三维空间中的位姿。任务空间中的期望轨迹通常通过逆运动学或逆动力学映射回关节空间。
对于人形机器人,典型任务可能包括:右脚位置、左脚位置、左手位置、右手位置,以及质心位置和躯干朝向。任务数量常多于关节自由度,因此需要全身运动控制分配优先级。
双足行走控制核心
零力矩点(ZMP)理论与稳定性判据
双足行走最经典的稳定条件基于零力矩点(Zero Moment Point, ZMP)。ZMP定义为地面上一个点,机器人重力与惯性力的合力对该点的力矩在水平分量为零。如果ZMP始终落在脚掌构成的支撑多边形内,则认为机器人动态稳定(不会倾覆)。
简化的ZMP计算(忽略高度变化和转动惯性):
xzmp = x_com - (z_com / (g + z_com'')) * x_com''
yzmp = y_com - (z_com / (g + z_com'')) * y_com''
其中 x_com, y_com, z_com 为质心位置,g 为重力加速度。
初学者关键点:行走规划的本质是设计一条质心轨迹,使得由此导出的ZMP始终在变化着的支撑区域内部。这就构成了经典的预览控制(Preview Control)。
步态规划与足迹生成
行走模式由一系列脚步位置和时间序列定义。典型的规划流程:
- 定义步态参数:步长、步宽、步周期、双支撑相与单支撑相占比。
- 生成足迹序列:根据方向和速度指令计算出每一步落脚点在世界坐标系中的位姿。
- 生成脚部轨迹:每只脚在摆动相时设计抬起、前移、放下的光滑轨迹(多用摆线或样条曲线)。
- 生成质心轨迹:应用线性倒立摆模型(LIPM)与ZMP稳定性约束,求解满足期望ZMP的质心轨迹。
线性倒立摆方程(质心高度z_c恒定,忽略足脚力矩):
x_com'' = (g/z_c) * (x_com - x_zmp)
结合预览控制和二次规划(QP),可在线实时生成质心轨迹。
全身行走控制:从规划到执行
实际执行时,需要将任务空间轨迹转化为关节力矩或位置指令。主流方法分为位置控制流与力矩控制流。
-
位置控制流(基于逆运动学):
由质心和脚部轨迹通过逆运动学获得期望关节角度,再由底层关节位置伺服跟踪。这种方法实现简单,但在外力干扰下鲁棒性差。 -
力矩控制流(基于动力学):
使用逆动力学计算实现期望运动所需的关节力矩,同时利用接触力优化满足摩擦锥和ZMP约束。全身模型逆动力学通常表述为:M(q) * q'' + C(q, q') + g(q) = S^T * τ + J_c^T * f_c其中
J_c为接触点雅可比,f_c为约束力。通过QP一次性求解q'',τ,f_c,实现轨迹跟踪和接触力分配。这种方法能更好地应对外界扰动,是高端人形机器人(如Atlas)的主流方案。
全身操作控制:协调四肢完成复杂任务
当人形机器人不仅要行走,还要用双手推、拉、搬运物体时,全身协调控制变得极为关键。操作任务会显著改变质心动力学,行走控制器必须纳入操作力/力矩的前馈补偿。
任务优先级堆栈与零空间投影
人形机器人通常有多个任务需要同时满足:维持平衡(高优先级)、末端执行器运动(中等优先级)、姿态优化(低优先级)等。通过零空间投影可以严格分层执行这些任务。
给定速度层任务雅可比 J,求解关节速度 q':
q' = J^+ * v_task + (I - J^+ J) * q'_null
其中第一项实现主任务,第二项在任务零空间中优化次要目标,不会干扰主任务。
一个常见的全身操作优先级可以是:
- 支持脚接触约束(刚性约束,不可违背)
- 质心动力学与ZMP稳定性
- 手部位置/姿态追踪
- 关节限位与姿态舒适性
全身协调示例:搬运重物行走
当机器人搬运重物时,物体质量影响整个系统的质心位置和惯性矩阵。控制系统需要:
- 实时估计物体质量与质心偏移(基于关节力矩传感器或躯干姿态变化)。
- 在质心规划时加入物体模型,确保合并的ZMP仍然在支撑域内。
- 手部不仅要提供支持力,还需施加微小抗干扰力矩保持物体姿态。
早期实现可通过将期望末端力叠加到逆动力学QP的等式约束中:J_hand^T * f_hand = [desired_wrench],同时质心加速度约束相应调整。
基于优化的全身控制(WBOC)
现代人形机器人广泛采用全身运动控制框架,将行走与操作统一为一个优化问题:
- 决策变量:关节加速度、关节力矩、接触力/力矩
- 成本函数:跟踪期望任务空间加速度、最小化力矩、平滑过渡
- 约束:运动方程、接触一致性(摩擦锥、无滑动、ZMP)、关节与力矩极限
这种框架自然地同时处理行走和操作,避免了模式切换,是目前先进人形机器人系统的核心。
仿真与实验入门建议
对于初学者,推荐以下实践路径:
- 二维倒立摆仿真:用Python编写质点质量LIPM,调戏ZMP和质心轨迹生成,直观理解行走稳定性。
- 简化人形模型:使用MuJoCo、Drake或Raisim等物理仿真器,加载简化的双足机器人(如5连杆模型),实现基于位置控制的步行。
- 全身控制实践:结合开源库(如Pinocchio、Crocoddyl)实现力矩控制层的行走与简单操作,尝试改变任务优先级。
- 硬件迁移:从小型人形机器人平台(如NAO、ROBOTIS OP3)入手,熟悉传感器反馈与状态估计对控制性能的影响。
关键要点总结
- 人形机器人控制根植于浮动基座动力学,稳定性必须通过接触力主动管理。
- ZMP判据是双足行走的基石,预览控制是生成质心轨迹的实用工具。
- 位置控制和力矩控制各有优缺点,力矩控制正成为标准方法,通过QP实现约束下的全身协调。
- 全身操作需要将操作任务有机融入行走控制器,利用零空间优先级或统一的WBOC框架,确保平衡与操作互不冲突。
- 通过仿真逐步深入,从简单模型到复杂全身动力学,是最有效的学习路径。
人形机器人控制领域仍在快速演进,掌握上述核心原理后,你将能阅读最新的学术论文,并动手构建自己的行走与全身操作控制器。