第三节:传感器初识——IMU、关节编码器、足底力传感器的作用与数据解读
各位同学,咱们今天聊聊人形机器人的“感官”。
你想想看,一个人要站稳,得靠眼睛看、耳朵里的前庭系统感知平衡、脚底感受地面反馈。机器人也一样。它没有天生的“第六感”,全靠传感器来感知自身状态和外部环境。
我常说,调参调到最后,其实是在跟传感器数据“对话”。你读不懂数据,就调不好参数。今天咱们就把三个最核心的传感器——IMU、关节编码器、足底力传感器——掰开揉碎了讲清楚。
一、IMU:机器人的“内耳”
IMU,全称惯性测量单元。说白了,它就是测量加速度和角速度的。我习惯把它比作人的内耳前庭系统,负责感知“我是不是歪了?”、“我是不是在转?”
1.1 IMU 的核心数据
- 三轴加速度计:测量 X、Y、Z 三个方向的线性加速度。单位是 m/s² 或 g。
- 三轴陀螺仪:测量绕 X、Y、Z 三个轴的角速度。单位是 rad/s 或 °/s。
- 部分高端 IMU 还有磁力计:辅助修正航向角(Yaw)。
关键点:IMU 直接输出的是加速度和角速度,不是角度!角度是通过积分算出来的。
1.2 数据解读与避坑
我在项目中遇到过一个问题:机器人明明站着没动,IMU 读出来的角度却在缓慢漂移。为什么会这样?
嗯,这里要注意。陀螺仪有零偏,积分一次就会累积误差。加速度计虽然能算俯仰角和横滚角,但它怕振动——你跺一下脚,它读数就跳了。
我的经验:
- 用加速度计算静态角度(比如站立不动时),用陀螺仪算动态角度(比如快速摆动时)。
- 两者通过互补滤波或卡尔曼滤波融合,才能得到靠谱的姿态角。
- 我曾经因为 IMU 安装位置偏了 2 厘米,导致 ZMP 计算一直不准,排查了整整两天。所以,IMU 的安装位置一定要在机器人质心附近。
小技巧:调试时,先把机器人悬空,手动晃动它,观察 IMU 输出的角度是否跟实际一致。这是最直接的验证方法。
二、关节编码器:机器人的“关节角度尺”
关节编码器,说白了就是装在电机或关节上的角度传感器。它告诉控制器:“现在这个关节转到多少度了?”
没有编码器,你连机器人的胳膊腿在什么位置都不知道,还谈什么控制?
2.1 编码器的类型
| 类型 | 原理 | 特点 |
|---|---|---|
| 增量式编码器 | 输出脉冲,通过计数得到相对位置 | 便宜,但断电后丢失位置,需要找零 |
| 式编码器 | 直接输出角度值 | 贵,但上电就知道位置,无需找零 |
| 磁性编码器 | 利用霍尔效应或磁阻效应 | 抗污染,精度适中,常用于关节 |
| 光学编码器 | 利用光栅或码盘 | 精度高,但怕油污和灰尘 |
2.2 数据解读与避坑
我建议,在人形机器人上,至少关节输出端要用式编码器。为什么?
你想想看,机器人摔倒了,你把它扶起来。如果是增量式编码器,它不知道关节现在在什么位置,需要执行一次“找零”动作——这在人形机器人上很麻烦,甚至危险。
我曾经遇到过编码器数据跳变的问题。排查到最后,发现是线缆屏蔽没做好,电机大电流干扰了编码器信号。从那以后,我所有编码器线缆都强制要求双绞屏蔽。
警告:编码器数据是位置环和速度环的反馈源。如果编码器数据有毛刺,电机就会抖动,甚至震荡。一定要在软件里做滤波,比如滑动平均或低通滤波。
三、足底力传感器:机器人的“脚底神经”
足底力传感器,通常安装在机器人的脚踝或脚底。它测量的是机器人脚底与地面之间的接触力和力矩。
我常说,没有足底力传感器,机器人就像踩在棉花上走路——它不知道地面硬不硬,也不知道自己有没有踩实。
3.1 核心数据:六维力/力矩
- Fx, Fy, Fz:三个方向的力。Fz 最重要,代表垂直支撑力。
- Mx, My, Mz:三个方向的力矩。Mx 和 My 代表脚底的压力分布中心(CoP)。
3.2 数据解读:ZMP 与 CoP
在双足步行中,有一个核心概念叫 ZMP(零力矩点)。说白了,ZMP 就是脚底压力合力的作用点。如果 ZMP 落在脚掌范围内,机器人就能站稳;如果跑出去了,机器人就要倒。
足底力传感器直接测量 CoP(压力中心),而 CoP 在静态和准静态下近似等于 ZMP。所以,我们通过足底力传感器就能实时监控机器人的稳定性。
核心公式(简化版):
CoP_x = -My / Fz
CoP_y = Mx / Fz
其中 My 和 Mx 是足底传感器测得的力矩,Fz 是垂直力。
3.3 避坑指南
我曾经在调试时发现,机器人单脚支撑时,CoP 数据一直在抖动。一开始我以为是控制算法问题,折腾了两天。后来发现,是足底传感器的安装面不平,有 0.1mm 的间隙。拧紧螺丝后,数据立刻稳定了。
我的建议:
- 足底传感器安装面一定要精加工,保证平面度。
- 传感器线缆要留出足够的余量,避免关节运动时拉扯。
- 上电后先做零点校准——机器人悬空,记录此时传感器的读数作为零点偏移。
四、知识体系总览
下面这张图,是我自己总结的传感器知识框架。你可以把它当作一张“地图”,随时回来对照。
这张图把三个传感器的关系串起来了。IMU 告诉你身体姿态,编码器告诉你关节位置,足底力传感器告诉你地面接触状态。三者缺一不可。
我的习惯:调试初期,我会把三个传感器的原始数据全部打印出来,画成曲线图。先看 IMU 姿态是否平滑,再看编码器是否跟随指令,最后看足底力是否对称。哪条曲线不对劲,问题就在哪。
好了,传感器这块咱们就聊到这儿。记住,传感器是机器人的“眼睛”和“耳朵”,你读懂了它们,就等于拿到了稳定控制的钥匙。