足端传感器
为什么足式机器人需要足端力传感
足式机器人(四足、双足、六足)的运动本质是一系列离散的接触事件。准确感知足端与地面的交互力对以下任务至关重要:
- 接触状态检测:脚是否着地?何时着地?
- 地面反力(GRF)测量:每条腿承受多少负载?
- 地形识别:硬地面、软泥地、斜坡、楼梯?
- 步态控制:根据接触状态切换摆动/支撑相
- 平衡维持:ZMP(Zero Moment Point)计算需要足底力分布
地面反力(GRF)基础
定义
地面反力(Ground Reaction Force)是地面对机器人足端的反作用力,根据牛顿第三定律:
\[\vec{F}_{GRF} = -\vec{F}_{foot \to ground}\]
三维分量
\[\vec{F}_{GRF} = \begin{bmatrix} F_x \\ F_y \\ F_z \end{bmatrix}\]
- \(F_z\):法向力(支撑力),与重力平衡
- \(F_x, F_y\):切向力(摩擦力),提供推进力
静态站立
四足机器人静态站立时,四条腿的法向力之和等于体重:
\[\sum_{i=1}^{4} F_{z,i} = mg\]
如果质心不在四足支撑多边形中心,各腿负载不均匀。
动态行走
动态行走时,GRF 随步态相位周期性变化:
\[F_z(t) \approx mg + m\ddot{z}_{CoM}(t)\]
推进力分量:
\[F_x(t) = m\ddot{x}_{CoM}(t)\]
传感器类型
1. 应变片式足端力传感器
最常用的高精度方案,工作原理与六维力矩传感器相同,但专为足端环境优化。
结构:
地面接触面(橡胶/硅胶垫)
┌──────────────────┐
│ 弹性体结构 │
│ ┌──┐ ┌──┐ │
│ │SG│ │SG│ ← 应变片 (Strain Gauge)
│ └──┘ └──┘ │
├──────────────────┤
│ 连接法兰(接小腿) │
└──────────────────┘
典型规格:
| 参数 | 范围 |
|---|---|
| 量程 (Fz) | 50 ~ 500 N |
| 量程 (Fx, Fy) | 20 ~ 200 N |
| 分辨率 | 0.1 ~ 1 N |
| 采样率 | 500 ~ 2000 Hz |
| 维度 | 1轴(仅Fz)或 3轴 |
| 防护 | IP65 以上 |
案例:ANYmal 足端力传感器
ETH Zurich 的 ANYmal 四足机器人在每条腿末端安装了三维力传感器:
- 应变片式,3轴测量
- 量程 ±500 N(法向)/ ±200 N(切向)
- 1 kHz 采样
- 集成在足端碳纤维结构中
2. 电容式足端传感器
工作原理:柔性电容阵列覆盖在足底
\[C = \varepsilon_0 \varepsilon_r \frac{A}{d}\]
受力时介电层压缩,极板间距 \(d\) 减小,电容增大。
优点:
- 可以测量压力分布(多个 taxel)
- 柔性,适应不规则足形
- 可嵌入橡胶足垫
缺点:
- 精度不如应变片
- 受湿度影响
- 动态范围有限
案例:Honda ASIMO 足底压力阵列
- 每只脚 4 个压力传感区域
- 用于 ZMP 计算和步态稳定控制
3. 二值接触开关
最简单的足端传感方案:只检测"有接触/无接触"。
实现方式:
- 微动开关(Microswitch):机械触发,0/1 输出
- 弹簧加载按钮:接触时闭合
- 霍尔传感器 + 磁铁:非接触式,更耐用
# 伪代码:基于接触开关的步态相位检测
def detect_gait_phase(contact_states):
"""
contact_states: [FL, FR, RL, RR] 四足接触状态
1 = 接触, 0 = 离地
"""
if contact_states == [1, 1, 1, 1]:
return "STAND"
elif contact_states == [1, 0, 0, 1]:
return "TROT_PHASE_A" # 左前+右后
elif contact_states == [0, 1, 1, 0]:
return "TROT_PHASE_B" # 右前+左后
else:
return "TRANSITION"
优点:极其简单、便宜、可靠
缺点:无力大小信息,只有开/关
4. 本体感觉力估计(无传感器方案)
许多现代四足机器人不使用专用足端力传感器,而是通过电机电流估算足端力:
\[\hat{F}_{foot} = (J^T)^{-1} (\tau_{motor} - \hat{\tau}_{friction} - \hat{\tau}_{gravity})\]
其中:
- \(J\) 为足端雅可比矩阵
- \(\tau_{motor} = K_t \cdot i\) 为电机力矩
- \(\hat{\tau}_{friction}\) 为摩擦估计
- \(\hat{\tau}_{gravity}\) 为重力补偿
Unitree Go2 方案:
- 不使用独立足端力传感器
- 通过关节电流 + 动力学模型估算接触力
- 在强化学习控制中效果良好
- 接触检测基于力估计阈值
优缺点:
| 方面 | 评价 |
|---|---|
| 成本 | 零额外成本 |
| 可靠性 | 高(无易损传感器) |
| 精度 | 中等(依赖模型) |
| 带宽 | 受限于控制频率 |
| 接触检测延迟 | 较大(需要力建立) |
各方案在主流机器人上的应用
| 机器人 | 方案 | 维度 | 特点 |
|---|---|---|---|
| ANYmal | 应变片式 | 3轴 | 高精度,工业级 |
| Spot (Boston Dynamics) | 未公开(推测本体感觉) | - | 商业保密 |
| Unitree Go2 | 电流估计 | 3轴估计 | 低成本,RL友好 |
| ASIMO (Honda) | 电容阵列 | 分布式 | ZMP控制 |
| Atlas (Boston Dynamics) | 多传感器融合 | 6轴 | 高性能液压 |
| MIT Mini Cheetah | 电流估计 | 3轴估计 | 开源四足 |
| HUBO (KAIST) | 六维力矩 | 6轴 | 高精度双足 |
设计考虑
鲁棒性
足端传感器工作在最恶劣的环境中:
- 冲击:着地冲击力可达体重的 3-5 倍
- 磨损:与地面持续摩擦
- 水/泥:户外环境
- 温度:-20°C ~ 60°C
设计要求:
- 过载保护 ≥ 5x 满量程
- 防护等级 ≥ IP65(防水防尘)
- 工作温度范围覆盖预期环境
- 弹性体/橡胶垫可更换
防水设计
橡胶保护套
┌─────────────┐
│ ┌─────────┐│
│ │ 传感器 ││ ← 环氧树脂灌封
│ │ 电路板 ││
│ └─────────┘│
│ O型密封圈 │ ← 防水密封
└─────────────┘
连接器(IP67)
关键措施:
- 灌封(Potting):环氧树脂或硅胶灌封电路
- O型圈:机械接口处密封
- 防水连接器:IP67 级别(如 M8/M12)
- 排水设计:避免积水
标定
足端传感器标定比腕部传感器更具挑战:
离线标定:
- 使用力平台(force plate)作为参考
- 施加已知力,记录传感器输出
- 拟合标定模型
在线标定:
- 利用静态站立条件:\(\sum F_z = mg\)
- 利用力平台走步数据
- 自适应滤波补偿漂移
\[F_{calibrated} = \alpha(t) \cdot F_{raw} + \beta(t)\]
其中 \(\alpha(t), \beta(t)\) 为时变标定参数。
采样率
不同应用对采样率的要求:
| 应用 | 最低采样率 | 推荐采样率 |
|---|---|---|
| 步态相位检测 | 100 Hz | 200 Hz |
| GRF 测量 | 200 Hz | 500 Hz |
| 冲击检测 | 500 Hz | 1 kHz |
| 地形分类 | 100 Hz | 500 Hz |
| 振动分析 | 1 kHz | 5 kHz |
足端力传感与控制的结合
接触检测器
\[\text{contact}_i = \begin{cases} 1 & \text{if } \hat{F}_{z,i} > F_{threshold} \\ 0 & \text{otherwise} \end{cases}\]
阈值选择很关键:
- 太低 → 误检测(传感器噪声触发)
- 太高 → 漏检测(轻接触无法检测)
- 典型值:\(F_{threshold} = 5 \sim 20\) N
地形估计
通过足端力传感器特征识别地形:
| 地形 | 力特征 |
|---|---|
| 硬地面 | 接触瞬间力快速上升,稳定 |
| 软沙地 | 力缓慢上升,有沉降 |
| 草地 | 中等上升速度,有弹性 |
| 冰面 | 切向力很小(低摩擦) |
| 楼梯边缘 | 不完整接触区域 |
利用力信号的时频特征 + 机器学习分类器可实现在线地形分类。
GRF 反馈控制
在模型预测控制(MPC)或全身控制(WBC)中,期望 GRF 由优化器计算:
\[\min_{\vec{F}_{1:4}} \| M\ddot{q}_{desired} - \sum J_i^T F_i - g(q) \|^2\]
\[\text{s.t.} \quad F_{z,i} \geq 0, \quad \sqrt{F_{x,i}^2 + F_{y,i}^2} \leq \mu F_{z,i}\]
实测 GRF 可用于反馈修正:
\[\tau_{correction} = K_F (F_{desired} - F_{measured})\]
参考资源
- Focchi, M. et al., "Robot Impedance Control and Passivity Analysis with Inner Torque and Velocity Feedback Loops," 2016
- Bledt, G. et al., "MIT Cheetah 3: Design and Control of a Robust, Dynamic Quadruped Robot," IROS, 2018
- Hutter, M. et al., "ANYmal - a highly mobile and dynamic quadrupedal robot," IROS, 2016
- Kim, D. et al., "Highly Dynamic Quadruped Locomotion via Whole-Body Impulse Control and Model Predictive Control," 2019