先记住一句话
分辨率回答“能分出多小的码”,精度回答“离真值多远”,重复性回答“回到同一点有多一致”;控制系统还必须同时关心带宽、延迟、同步与失效模式。
1. 编码器到底测什么
| 类型 | 输出逻辑 | 上电行为 |
|---|---|---|
| 增量式 A/B/Z | 数脉冲并由相位判断方向,Z 提供每圈索引 | 通常要找零/找 Z 才知道绝对位置 |
| 单圈绝对式 | 圈内每个角度有唯一数字码 | 上电即知 0–360°,不知道转过多少整圈 |
| 多圈绝对式 | 同时记录圈内角和圈数 | 断电后仍可恢复多圈位置,取决于实现 |
接口可能是 ABI、SPI、SSI、BiSS-C、RS-485、CAN 或 EtherCAT。接口名字不决定传感原理;磁、光、电感或 resolver 都可以通过不同数字接口输出。
2. 磁、光、Hall 与 resolver
- Hall switches:常提供粗略的电角扇区,足够六步换向,但低速高性能位置控制通常嫌分辨率低。
- 磁编码器:紧凑耐污,适合集成关节;磁铁偏心/倾斜、附近铁磁材料会造成周期误差。
- 光编码器:可获得很高分辨率和精度,但对污染、装配与机械尺寸更敏感。
- Resolver:用旋转变压器的正余弦模拟信号表示角度,耐高温和恶劣环境,但需要激励与解算电路。
3. 五个不能混用的指标
| 指标 | 问题 | 例子 |
|---|---|---|
| 分辨率 | 最小数字步距是多少? | 15 bit/turn = 32768 个码 |
| 绝对精度 | 报告角度离真值多远? | ±0.1°,可能远差于一个 LSB |
| 重复性 | 同方向多次回到该点是否一致? | ±0.01° |
| 带宽/采样率 | 多快的变化能被测到? | 2 kHz update 不等于 2 kHz 有效带宽 |
| 延迟/抖动 | 真实发生到控制器收到相隔多久、是否稳定? | 固定 200 μs 可建模;0–2 ms 抖动更难控制 |
4. 速度通常是从位置估出来的
ω[k] ≈ (θ[k] − θ[k−1]) / Δt差分会放大量化噪声;滤波能降噪,却增加相位延迟。低速时脉冲间隔法可能比固定窗口差分更好。高增益速度/阻尼环必须把编码器噪声、采样时钟和滤波一起设计。
5. 电流传感不是输出力矩传感
FOC 用 shunt、Hall 或磁通门测相电流,并通过 τmotor ≈ Kt Iq 估计电机转矩。输出端还经过齿轮摩擦、效率、惯量和弹性:
τexternal ≠ ηN Kt Iq (加速、摩擦和变形尚未扣除)串联弹性执行器可测弹簧形变估力矩;应变片/力矩轴能更直接测输出扭矩;腕部或足底六维 F/T 传感器输出三轴力与三轴力矩,但会有串扰、温漂和过载风险。
6. IMU 测的不是“世界坐标姿态”
- 陀螺仪测角速度,积分会随 bias 漂移。
- 加速度计测 specific force;静止时能看到重力方向,运动时同时含线加速度。
- 磁力计可提供航向参考,但机器人电机大电流和钢结构会严重扰动磁场。
姿态是用陀螺、加速度计和其他观测做状态估计得到的。IMU 安装方向、时间戳、振动隔离、温度标定和坐标系定义与传感器型号同样重要。
7. 时间同步决定多传感器能否对齐
joint encoders @ t0 ─┐
IMU @ t0 ├─→ state estimator → q, dq, base pose @ one time
foot force @ t0 ┘
camera @ t0-Δ ─→ compensate exposure + transport latency
给所有数据打“收到消息时刻”的时间戳不够,因为采样可能早已发生。EtherCAT Distributed Clocks、硬件 trigger、PTP 或共享时钟的目标,是知道测量真正对应的时间。
8. 校准与故障检查
- 关节零位、方向、减速比与机械限位一致吗?
- 磁编码器一圈误差是否需要 harmonic compensation?
- 电流 sensor offset 在不同温度下是否漂移?
- IMU bias、scale、轴不正交和安装外参是否标定?
- 数据是否单调、CRC 正确、时间戳连续,断线是否 fail-safe?
9. 四个 sensor 手算
例 1:encoder quantization
12-bit absolute encoder 每转 4096 counts,单 count=360/4096=0.0879°。读数 1024 对应 90°;这不包含 offset、nonlinearity 和 mounting error。
例 2:差分估速度
10 ms 前 angle=1.00 rad,现在=1.03 rad,raw velocity=(1.03−1.00)/0.01=3 rad/s。若位置噪声各 ±0.002 rad,差分噪声可达约 ±0.4 rad/s。
例 3:motor current 到输出 torque
Current=8 A、Kt=0.1 N·m/A、reduction N=9、efficiency=0.8,估计 output torque=8×0.1×9×0.8=5.76 N·m。它仍不是直接 load-cell measurement。
例 4:timestamp misalignment
Joint 以 4 rad/s 转动,camera 与 encoder timestamp 差 15 ms,则对齐误差约 4×0.015=0.06 rad=3.44°,远大于常见 encoder quantization。
15-bit 编码器每码约 0.011°,只说明数字量化步距;它完全可能只有 ±0.2° 绝对精度,也可能经过减速器后被回差和结构变形主导。
自测
1. 为什么提高编码器分辨率不一定提高控制带宽?
带宽还受延迟、噪声、滤波、通信周期、机械共振和控制器影响;更多 bit 不能修复这些限制。
2. 为什么用电流估脚底接触力很困难?
必须通过全身动力学映射,并扣除惯性、重力、传动摩擦与效率;模型误差会进入接触力估计。
3. IMU 静止时为什么加速度计读数不为零?
加速度计测 specific force,支撑面对它施力以抵消重力,因此会观测到与重力相关的约 1 g 信号。
一手资料
ODrive Magnetic Encoders 说明磁铁安装与谐波误差;ODrive Hardware Configuration 比较编码器和双反馈;Unitree GO-M8010-6 给出 15-bit 编码器和位置/速度/力矩/温度反馈实例。