4. 零位标定原理:电机零位与关节零位的区别

做机器人关节标定,第一个绕不开的概念就是「零位」。

很多人一上来就搞混了——电机零位和关节零位,到底是不是一回事?

我直接告诉你答案:不是。而且搞混了,你的机器人就别想走直线。

4.1 电机零位 vs 关节零位

先说说电机零位。它指的是电机转子相对于定子的一个固定电气角度位置。说白了,就是电机自己内部的一个参考点。对于无刷直流电机(BLDC)来说,这个零位决定了换相时序的起点。

而关节零位呢?它是指整个关节模组在机械结构上的「初始位置」。比如一个旋转关节,当它处于0度时,连杆应该指向哪个方向?这个由机械设计决定。

我遇到过不少项目,电机零位标好了,但装到关节上发现整个手臂歪了30度。为什么?因为电机轴和关节输出轴之间还有减速器、联轴器、编码器安装偏差。这些误差累积起来,电机零位和关节零位之间就有了一个固定的偏移量。

核心结论:电机零位是电气参考,关节零位是机械参考。两者之间通常存在一个固定偏移,标定的任务就是找到这个偏移量。

你想想看,如果只标电机零位不标关节零位,那机器人每次上电都不知道自己「胳膊」到底在哪儿。这就像你闭着眼睛转方向盘,却不知道车轮朝哪边——能开吗?能开,但肯定撞墙。

4.2 霍尔传感器零位校准

霍尔传感器是电机里最常见的低成本位置传感器。三个霍尔元件相隔120度安装,输出三路高低电平信号,组合起来能给出6个状态,对应60度电角度的分辨率。

但问题来了——霍尔元件安装的时候,不可能精确。哪怕偏差1度,换相时机就会错,电机就会抖、发热、效率低。

霍尔零位校准,说白了就是找到霍尔信号跳变沿与电机反电动势过零点之间的对应关系。

我习惯的做法是这样的:

  1. 拖拽法:给电机断电,用手或工具缓慢转动电机轴。同时用示波器观察霍尔信号和电机三相端电压(反电动势)。记录下霍尔信号跳变时对应的反电动势相位。
  2. 对位法:给电机通一个固定方向的直流电(比如A相通正,B相通负),让电机转子锁定到一个已知位置。然后读取霍尔信号的状态,这个状态就对应了当前的电气角度。
  3. 软件补偿:把测得的偏差值写入固件参数,后续运行时自动补偿。
我的经验:霍尔安装偏差通常在±5度以内。如果偏差超过10度,建议检查霍尔板的机械安装,而不是一味靠软件补偿。软件能补,但补多了会牺牲换相精度。

嗯,这里要注意一点:霍尔零位校准只需要做一次。只要霍尔板不拆下来,这个偏移量就是固定的。所以很多量产方案会在产线上做一次校准,然后把参数烧录到芯片里。

4.3 磁编码器零位寻找

磁编码器比霍尔传感器精度高得多,分辨率能做到12位、14位甚至更高。但高精度也意味着对安装偏差更敏感。

磁编码器零位寻找,核心就是找到磁铁北极(N极)和南极(S极)的分界线,对应编码器输出的0点。

我常用的方法有两种:

方法 原理 精度 适用场景
机械对零法 用夹具将关节固定在机械零位,读取编码器值作为零位 取决于夹具精度,通常±0.1° 量产产线、高精度关节
电气对零法 给电机通直流电锁定转子,读取编码器值 ±0.5°~±1° 研发调试、小批量
自寻零法 电机缓慢旋转,检测编码器输出突变点 ±0.2°~±0.5° 带位置记忆的系统

我个人最推荐的是机械对零法。虽然需要做夹具,前期投入大,但一旦做好,后续的重复性非常好。我曾经在一个协作机器人项目里,用机械对零法把30个关节的零位一致性做到了±0.05度以内。

自寻零法听起来很智能,但有个坑——如果磁编码器是增量式的,断电后位置就丢了。每次上电都得重新寻零,这在工业现场很麻烦。所以我现在做设计,只要成本允许,一定选式磁编码器。

避坑指南:我曾经遇到过一批磁编码器,上电后零位每次都不一样,偏差最大到3度。排查了三天,最后发现是磁铁安装时没有做防旋转处理,磁铁在轴上轻微转动了。所以,磁铁安装一定要用键槽或D型轴固定,光靠胶水不靠谱。

4.4 零位标定的完整流程

好了,把上面这些串起来,一个完整的零位标定流程应该是这样的:

  1. 机械准备:将关节固定在机械零位(用夹具或定位销)
  2. 电机零位标定:通过霍尔或反电动势法找到电机电气零位
  3. 编码器零位标定:读取当前编码器值,记为编码器零位
  4. 偏移量计算:计算电机零位与编码器零位之间的偏移
  5. 参数写入:将偏移量写入控制器固件或EEPROM
  6. 验证:松开夹具,手动转动关节,检查零位是否准确

下面这张图展示了整个标定的逻辑关系:

零位标定知识体系 电机零位 电气参考点 • 转子与定子相对位置 • 决定换相时序起点 • 霍尔/反电动势法标定 关节零位 机械参考点 • 连杆初始角度位置 • 由机械设计决定 • 夹具/定位销固定 编码器零位 传感器参考点 • 磁编码器N/S分界 • 霍尔信号跳变沿 • 机械/电气/自寻零法 偏移量 = 关节零位 − 电机零位 标定的核心任务:找到这个固定偏移 标定流程 机械固定 → 电机零位标定 → 编码器零位标定 → 偏移计算 → 参数写入 → 验证

最后说一句:零位标定这件事,看起来简单,但做不好就是灾难。我见过一个团队,标定参数写错了字节顺序,结果机器人一上电就猛转180度,差点把旁边的工程师打了。所以,标定完成后一定要做限位保护测试——先用手动模式慢速验证,确认无误再切自动运行。

我的习惯:每次标定完,我都会在关节外壳上用记号笔做个物理标记,标出零位位置。这样即使断电、拆装,也能快速目视检查零位有没有跑偏。土办法,但管用。