# Humanoid Robot Actuators

> 来源：[HackerNews](https://www.firgelli.com/pages/humanoid-robot-actuators)

```markdown
# 人形机器人执行器：让机器"动起来"的核心技术解析

> 原文链接：[Humanoid Robot Actuators](https://www.firgelli.com/pages/humanoid-robot-actuators) | 来源：HackerNews

---

## 背景与概述

2024年，人形机器人赛道迎来爆发式增长。从特斯拉的Optimus到波士顿动力的Atlas，再到国内优必选、宇树科技等企业的密集布局，这个曾经只存在于科幻电影中的领域正加速走向现实。而在所有人形机器人的核心技术栈中，**执行器（Actuator）** 堪称最基础也最关键的环节——它直接决定了机器人能否像人类一样灵活运动。

执行器本质上是人形机器人的"肌肉与关节"，负责将电能转化为精确的机械运动。与工业机器人不同，人形机器人需要在复杂环境中保持动态平衡、完成多自由度协同动作，这对执行器提出了极高的性能要求：既要输出足够扭矩支撑全身重量，又要具备毫秒级的响应速度，同时还需控制体积和重量以适应紧凑的机身设计。可以说，执行器的技术水平直接划定了人形机器人的能力边界。

近年来，随着无框力矩电机、谐波减速器、行星滚柱丝杠等核心零部件的成熟，以及AI控制算法的突破，人形机器人执行器正经历从"能用"到"好用"的关键跃迁。本文将深入剖析这一核心技术领域，为开发者梳理关键要点。

---

## 核心内容

### 一、执行器的主要类型与选型逻辑

人形机器人执行器按驱动方式可分为三大类：

| 类型 | 原理 | 优势 | 典型应用 |
|:---|:---|:---|:---|
| **电动执行器** | 电机+减速器 | 精度高、可控性强、清洁 | 主流方案，占90%以上 |
| **液压执行器** | 高压液体驱动 | 功率密度极高 | 波士顿动力Atlas（早期） |
| **气动执行器** | 压缩气体驱动 | 成本低、柔性好 | 轻负载场景、科研原型 |

当前行业明显向**电动执行器**收敛。特斯拉Optimus的旋转关节采用**无框力矩电机+谐波减速器+力传感器**方案，线性关节则使用**行星滚柱丝杠**实现直线运动，整套设计在功率密度和成本间取得了较好平衡。

### 二、旋转关节：谐波减速器与力矩电机的协同

人形机器人的髋关节、肩关节等旋转自由度通常采用**谐波减速器（Harmonic Drive）** 配合无框力矩电机的架构。谐波减速器的核心优势在于**零背隙**和**高减速比**（通常50:1至160:1），这使得电机可在高速低扭矩工况下运行，同时输出端获得极低转速和极高扭矩。

关键参数选型需关注：
- **扭矩密度**：单位质量的输出扭矩，直接影响机器人负载能力
- **刚度与柔性的平衡**：过高刚度导致碰撞风险，需配合力控算法
- **传动效率**：谐波减速器通常为70%-90%，影响续航和散热

### 三、线性执行器：丝杠技术的精密化演进

对于腿部伸缩、手指抓握等直线运动场景，**行星滚柱丝杠（Planetary Roller Screw）** 正逐步替代传统滚珠丝杠。其结构通过多个滚柱同时啮合丝杠螺纹，将接触点从"点接触"变为"线接触"，承载能力可提升**3-15倍**，寿命延长**10倍以上**。

以Optimus为例，其大腿线性执行器行程约**100-150mm**，需支撑超过**60kg**的整机重量完成跳跃、下蹲等高动态动作，这对丝杠的导程精度、耐磨性和抗冲击能力都是严峻考验。

### 四、力控与柔顺性：从位置控制到交互智能

传统工业机器人强调位置精度，而人形机器人必须在**未知环境中与人安全交互**。这要求执行器具备**力/力矩感知能力**，实现阻抗控制或导纳控制：

- **电流环力控**：通过电机电流估算输出扭矩，成本低但精度有限
- **应变片式力传感器**：直接测量关节输出力，精度高但增加系统复杂度
- **SEA（串联弹性执行器）**：在输出端串联弹性体，天然实现柔顺性，是MIT Cheetah等研究项目的经典方案

### 五、集成化趋势：执行器模组的"黑盒化"

为降低整机开发门槛，头部厂商正将电机、减速器、编码器、驱动器、力传感器集成于**标准化关节模组**。例如Harmonic Drive的FHA-C系列、Maxon的EC-i系列模组，开发者只需关注CAN/EtherCAT通信接口，无需深入机械设计。

---

## 技术分析

### 机电一体化架构的典型实现

一个完整的人形机器人旋转关节可拆解为以下层级：

```
┌─────────────────────────────────────┐
│  应用层：步态规划、轨迹生成（ROS2/Mujoco） │
├─────────────────────────────────────┤
│  控制层：FOC矢量控制、阻抗控制算法        │
│         ├─ d-q坐标变换                │
│         ├─ PID/ADRC电流环、速度环、位置环 │
│         └─ 力位混合控制               │
├─────────────────────────────────────┤
│  驱动层：三相逆变器、Gate Driver        │
│         ├─ PWM频率：通常15-20kHz       │
│         └─ 死区补偿、过流保护           │
├─────────────────────────────────────┤
│  执行层：无框力矩电机 + 谐波减速器       │
│         ├─ 极对数：通常10-20（低转速高扭矩）│
│         ├─ 减速比：80-120              │
│         └─ 绝对值编码器：19-23位分辨率    │
├─────────────────────────────────────┤
│  传感层：霍尔/磁编码器 + 输出端力传感器    │
│         └─ 力控带宽目标：>50Hz          │
└─────────────────────────────────────┘
```

### 关键控制代码示例（FOC电流环简化框架）

```python
import numpy as np

class FOCController:
    def __init__(self, pole_pairs, Ld, Lq, Rs):
        self.pole_pairs = pole_pairs  # 极对数
        self.Ld = Ld                  # d轴电感
        self.Lq = Lq                  # q轴电感
        self.Rs = Rs                  # 定子电阻
        self.id_integral = 0.0
        self.iq_integral = 0.0
        
    def clarke_park_transform(self, ia, ib, theta_e):
        """Clarke变换 + Park变换：三相静止坐标系 → 两相同步旋转坐标系"""
        # Clarke: 三相 → 两相静止(αβ)
        i_alpha = ia
        i_beta = (ia + 2*ib) / np.sqrt(3)
        
        # Park: 静止(αβ) → 旋转(dq)
        cos_t = np.cos(theta_e)
        sin_t = np.sin(theta_e)
        id =  i_alpha * cos_t + i_beta * sin_t
        iq = -i_alpha * sin_t + i_beta * cos_t
        return id, iq
    
    def current_loop(self, id_ref, iq_ref, id_meas, iq_meas, dt):
        """PI电流环：控制id≈0，iq跟踪力矩指令"""
        # d轴控制（通常设id_ref=0，实现最大转矩电流比）
        id_err = id_ref - id_meas
        self.id_integral += id_err * dt
        vd = 10.0 * id_err + 100.0 * self.id_integral  # Kp, Ki需整定
        
        # q轴控制（直接对应输出力矩：T = 1.5 * pole_pairs * flux_linkage * iq）
        iq_err = iq_ref - iq_meas
        self.iq_integral += iq_err * dt
        vq = 10.0 * iq_err + 100.0 * self.iq_integral
        
        # 前馈解耦���偿
        vd -= self.Lq * iq_meas * self.pole_pairs * omega_e  # 需接入速度
        vq += self.Ld * id_meas * self.pole_pairs * omega_e
        
        return vd, vq
    
    def inverse_park_svpwm(self, vd, vq, theta_e):
        """逆Park + SVPWM：生成三相PWM占空比"""
        # ... 空间矢量调制实现
        pass
```

### 设计权衡：功率密度 vs. 成本 vs. 可靠性

| 方案 | 功率密度 | 成本 | 可靠性 | 适用场景 |
|:---|:---|:---|:---|:---|
| 高端谐波+无框电机 | ★★★★★ | ★★☆☆☆ | ★★★★☆ | 科研、高端商用 |
| 行星减速器+伺服电机 | ★★★★☆ | ★★★★☆ | ★★★★★ | 工业协作机器人 |
| 准直驱（大扭矩电机+低减速比） | ★★★☆