Robotics - Motor
“总线”和“无刷”描述的是两个不同维度。
总线说的是通信方式;无刷说的是电机类型。
一个舵机可以同时是:
- 无刷电机;
- 带编码器;
- 通过 CAN/RS485 总线通信;
这种设备通常叫无刷智能伺服执行器。
三个容易混淆的概念
| 维度 | 可能类型 | 回答的问题 |
|---|---|---|
| 电机 | 有刷 DC、无刷 BLDC | 电机怎么产生转矩 |
| 传感器 | 电位器、磁编码器、光电编码器 | 关节现在在哪里 |
| 通信 | PWM、TTL 总线、RS485、CAN、EtherCAT | 控制器怎么发送命令、读取状态 |
所以:
总线舵机 ≠ 必然无刷
无刷舵机 ≠ 必然能向电脑返回位置
例如:
- STS3215:智能总线舵机,但核心电机不一定是无刷。
- 航模“无刷舵机”:内部可能有无刷电机和位置传感器,但外部仍然只有 PWM 输入,电脑不一定能读取位置。
- 机器人无刷执行器:BLDC + 编码器 + 驱动板 + 减速器 + CAN/RS485,通常可以读写位置、速度、电流和温度。
无刷舵机里面有什么
典型机器人无刷执行器结构:
CAN / RS485 命令
│
▼
控制 MCU
├── 位置环
├── 速度环
└── 电流/转矩环
│
▼
三相 MOSFET 驱动器
│
▼
无刷电机 BLDC
│
▼
减速器
│
▼
机械臂关节
编码器构成反馈:
目标位置 ──→ 控制器 ──→ 电机 ──→ 实际关节位置
↑ │
└──── 编码器反馈 ────┘
无刷电机通常需要知道转子角度,才能正确控制三相绕组。因此常见传感器包括:
- 霍尔传感器;
- 磁编码器;
- 光电编码器;
- 绝对值编码器。
但这里要区分两种“知道位置”。
电机内部知道位置
舵机内部用编码器完成自己的闭环控制,但不一定把位置传给电脑。
这种舵机可能仍然只有:V+ / GND / PWM。
电脑也能读取位置
舵机通过 CAN、RS485 或 TTL 总线开放状态寄存器:
Actual PositionActual VelocityMotor CurrentVoltageTemperatureError Status
这种才适合机器人数据采集和高级控制。
无刷执行器的反馈层次
“有传感器”也需要继续问传感器装在哪里。
1. 电机侧编码器
编码器装在电机转子上:
电机 ── 编码器 ── 减速器 ── 关节
优点是控制电机很方便,但它看不到减速器之后的:
- 齿隙;
- 弹性变形;
- 齿轮磨损;
- 输出端滑动。
2. 输出侧编码器
编码器直接测量机械臂关节:
电机 ── 减速器 ── 关节
│
编码器
它测到的更接近真实关节角度,但结构和成本更高。
3. 双编码器
高性能机械臂可能同时有:
电机侧编码器 + 输出侧绝对编码器
这样既能控制电机,也能测量减速器误差。
4. 转矩反馈
无刷驱动器可以通过相电流估算转矩:
其中:
- :电机转矩;
- :转矩常数;
- :电机电流。
但电流估算不等于真正的关节力传感器。减速器摩擦、惯性和齿隙都会带来误差。更高级的机械臂会增加应变片或关节转矩传感器。
机械臂不一定必须采用“总线舵机”
反馈机械臂有三种常见架构。
集成式总线舵机
电脑 → 总线 → 智能舵机
传感器、控制器、驱动器都在舵机里。
优点:
- 接线简单;
- 开发快;
- 容易读取状态;
- 很适合 SO-ARM。
普通电机加外部编码器
STM32 → PWM/驱动器 → 电机
↑
编码器
反馈由 STM32 自己读取和控制。
优点是硬件可以更便宜、更自由,但控制软件、PCB 和调试工作明显增加。
无刷电机加工业伺服驱动器
主控制器 → CAN/EtherCAT → 无刷驱动器 → BLDC
↑
编码器
工业机械臂更多采用这种结构,而不一定使用 STS3215 这种一体式小舵机。
对 SO-ARM 降本有没有帮助
通常无刷执行器不是降本方案,而是性能升级方案。
它的优势是:
- 效率更高;
- 寿命更长;
- 发热更容易控制;
- 连续输出能力更好;
- 更适合速度和转矩控制;
- 可以实现更柔顺的碰撞响应。
但代价通常是:
- 电机更贵;
- 驱动器更复杂;
- 电源功率更大;
- CAN/RS485 接口成本更高;
- 减速器仍然很贵;
- 机械结构需要重新设计。
对于桌面级 SO-ARM,STS3215 智能总线舵机通常仍然是成本、兼容性和开发难度之间更好的平衡。
如果以后设计更大负载、更长机械臂或者需要力控,再考虑:
- BLDC
- 行星/谐波减速器
- 绝对编码器
- CAN 驱动器
选购“无刷舵机”时,不能只看“无刷”和“有编码器”,还要确认:
- 能否读取实际位置;
- 是 PWM 还是双向总线;
- 编码器在电机侧还是输出侧;
- 是否支持位置、速度和转矩模式;
- 连续转矩是多少,而不只是堵转转矩;
- 减速器齿隙多大;
- 是否有绝对位置;
- LeRobot 或自己的控制程序是否支持它的协议。
最简洁的判断是:
无刷决定电机性能,编码器提供反馈,总线决定反馈能不能方便地传给电脑。三者不能互相替代。
可以把机械臂关节拆成四部分:
- 电机:产生力量
- 编码器:测量转到了哪里
- 控制器:比较目标与实际位置
- 总线:在电脑和关节之间传递命令与状态
编码器是什么
编码器是一种测量旋转角度的传感器。
例如电脑要求关节转到 90°:
目标角度:90°
│
▼
控制器驱动电机
│
▼
编码器测得:82°
│
▼
控制器发现还差 8°
│
▼
继续驱动
│
▼
编码器测得:90°
没有编码器,控制器通常只能发出“转动”的命令,却不知道机械臂真正到了哪里。
编码器相当于机械臂的本体感觉。
编码器测量什么
通过连续读取编码器,可以得到:
- 当前角度;
- 旋转方向;
- 旋转速度;
- 是否已经到达目标;
- 是否可能发生堵转;
- 关节有没有被外力推动。
速度通常由角度变化计算:
12-bit 编码器是什么意思
12-bit 可以表示:
个不同位置。
如果覆盖完整一圈:
也就是理论上每一个计数约代表 0.088°。
但这只是分辨率,不等于实际精度。齿轮间隙、结构变形、安装误差和传感器误差都会使真实精度更差。
绝对编码器与增量编码器
绝对编码器的每个角度都有唯一数值:
上电后直接知道:当前位置是 137°
增量编码器只记录移动了多少:
从上次位置向前移动了 20 个计数
断电后,增量编码器通常会忘记原点,需要重新归零。机械臂更喜欢使用绝对编码器,因为重新上电后更容易知道关节位置。
编码器装在哪里也很重要
电机侧编码器:
电机—编码器—减速器—机械臂关节
它测量电机轴,但看不到减速器齿隙和输出端变形。
输出侧编码器:
电机—减速器—机械臂关节—编码器
它更接近真实关节角度,但结构和成本更高。
有刷电机是什么
“刷”指的是电刷。
有刷直流电机内部大致是:
- 固定磁铁
- 旋转线圈
- 电刷
- 换向器
电刷是接触旋转换向器的导电零件:
电源
│
电刷
│
换向器
│
转子线圈
转子旋转时,电刷和换向器通过机械接触自动改变线圈中的电流方向,让电机持续旋转。
优点:
- 控制简单;
- 成本较低;
- 只需要 H 桥就能正反转;
- 低成本舵机中很常见。
缺点:
- 电刷会磨损;
- 有摩擦和电火花;
- 有电磁噪声;
- 效率通常较低;
- 连续运行寿命较短;
- 高负载时比较容易发热。
无刷电机是什么
无刷电机取消了机械电刷和换向器。
典型无刷电机:
- 转子:永久磁铁
- 定子:三相线圈
线圈不跟着旋转,所以不需要通过电刷给旋转线圈供电。
但是控制器必须知道转子的位置,然后依次给三相线圈通电:
编码器/霍尔传感器
│
▼
控制器判断转子位置
│
▼
六个 MOSFET 组成三相逆变器
│
▼
依次驱动 A、B、C 三相线圈
│
▼
转子继续旋转
这种电子切换电流方向的过程叫电子换向。
优点:
- 没有电刷磨损;
- 效率较高;
- 寿命较长;
- 同体积下通常能提供更好的持续输出;
- 散热更容易;
- 适合速度控制和转矩控制;
- 运行通常更平稳。
缺点:
- 必须使用三相驱动器;
- 控制算法更复杂;
- 通常需要霍尔传感器或编码器;
- 成本更高;
- PCB 和功率器件更复杂。
有刷和无刷并不决定有没有反馈
这是最重要的关系:
- 有刷/无刷:电机怎么旋转
- 编码器:怎么测量位置
- 总线:怎么与电脑通信
因此四种组合都可能存在:
| 电机 | 编码器 | 结果 |
|---|---|---|
| 有刷 | 无 | 普通直流电机 |
| 有刷 | 有 | 有刷伺服系统 |
| 无刷 | 无或只用简单霍尔 | 普通无刷动力系统 |
| 无刷 | 高精度编码器 | 无刷伺服系统 |
例如:
RA8:
- 有刷电机
- 磁编码器
- MCU
- UART 总线
= 有刷智能总线舵机
RX8:
- 无刷电机
- 磁编码器
- MCU
- UART 总线
= 无刷智能总线舵机
两者都有反馈,也都能通过总线读取位置。区别主要在电机的效率、寿命、持续输出能力和成本。
为什么还需要减速器
电机通常转得很快,但直接输出的转矩较小。机械臂需要低速、大转矩,因此会加减速器:
电机高速、小转矩
│
▼
减速器
│
▼
关节低速、大转矩
理想情况下:
其中 是减速比。
例如减速比 100:1,理论上能把转矩放大约 100 倍,但同时速度降低,并会产生摩擦、齿隙和效率损失。
所以一只完整的机器人舵机实际上是:
有刷或无刷电机
+
减速器
+
编码器
+
电机驱动器
+
控制 MCU
+
总线通信
可以用一个简单类比记住:
| 部件 | 类比 |
|---|---|
| 电机 | 肌肉 |
| 减速器 | 杠杆 |
| 编码器 | 本体感觉 |
| 控制器 | 局部小脑 |
| 总线 | 神经 |
无刷并不自动代表“有反馈”,总线也不自动代表“无刷”。真正适合机械臂的是由电机、减速器、编码器、控制器和通信接口共同组成的闭环关节。
编码器是一种专门测量位置和旋转角度的传感器。
“三项电机”一般写作“三相电机”。这里的“相”不是三个电机,而是三组按不同时间通电的线圈。
什么是三相电机
无刷电机里通常有三组定子线圈:
- A 相线圈
- B 相线圈
- C 相线圈
也常标成:U / V / W。
三组线圈在空间上错开,控制器按顺序给它们通电:
A 产生磁场
↓
B 产生磁场
↓
C 产生磁场
↓
再回到 A
这样电机内部就形成一个不断旋转的磁场,转子上的永久磁铁会跟着这个磁场旋转。
可以想象成三个人围着转盘站在不同位置,按顺序推动转盘:
A 推一下 → B 推一下 → C 推一下 → A 再推
只要切换足够快而且平滑,转盘就会持续旋转。
三相电流是什么样的
理想情况下,三相电流是三个相互错开 的周期信号:
画出来大致是:
A 相:~~~~正~~~~负~~~~
B 相: ~~~~正~~~~负~~~~
C 相: ~~~~正~~~~负~~~~
三组电流在时间上错开,因此合成的磁场会连续旋转。
直流电源怎样产生三相电
机器人通常使用电池或直流电源,例如 12V DC。
但无刷电机需要三相电流,因此中间要加入三相逆变器:
直流电源
│
▼
六个 MOSFET
组成三相逆变器
│
├── U 相
├── V 相
└── W 相
│
▼
无刷电机
每一相使用两个 MOSFET:
- U 相:上管 + 下管
- V 相:上管 + 下管
- W 相:上管 + 下管
因此总共通常是:
个功率 MOSFET。
这也是为什么无刷电机驱动器比普通有刷电机的 H 桥复杂。
编码器在这里有什么作用
控制器需要知道转子现在朝向哪里,才能决定下一步给哪组线圈通电。
编码器测量转子角度
│
▼
控制器计算应当产生的磁场方向
│
▼
控制六个 MOSFET
│
▼
驱动 U、V、W 三相线圈
│
▼
转子旋转
例如:
- 编码器:转子现在位于 32°;
- 控制器:下一步应该增强 B 相、减弱 A 相;
- 驱动器:改变对应 MOSFET 的 PWM。
这个过程会非常快速地循环。
因此编码器有两个用途:
- 帮助无刷电机完成电子换向;
- 测量机械臂关节的实际位置。
但要注意,如果编码器装在电机轴上,它主要知道电机转子位置;如果装在减速器输出端,才更接近真实关节位置。
有刷与无刷的关键区别
有刷电机依靠电刷和换向器机械切换电流:
电源 → 电刷 → 换向器 → 转子线圈
无刷电机依靠控制器和 MOSFET 电子切换三相电流:
电源 → MCU → 六个 MOSFET → 三相线圈
所以:
| 项目 | 有刷电机 | 无刷三相电机 |
|---|---|---|
| 换向方式 | 电刷机械换向 | MOSFET 电子换向 |
| 常见线圈 | 转子线圈 | 定子三相线圈 |
| 转子 | 线圈 | 永久磁铁 |
| 驱动电路 | H 桥,通常 4 个 MOSFET | 三相逆变器,通常 6 个 MOSFET |
| 是否需要转子位置 | 电刷自动处理 | 控制器通常需要知道 |
| 维护 | 电刷会磨损 | 没有电刷磨损 |
| 控制复杂度 | 较低 | 较高 |
霍尔传感器和编码器
无刷电机也可能只安装三个霍尔传感器。
霍尔传感器通常只能比较粗略地告诉控制器:转子进入了哪个扇区。
编码器则可以更精细地告诉控制器:转子当前位置是 127.36°。
所以:
- 风扇、电动车轮毂电机:霍尔传感器可能足够;
- 机械臂伺服关节:通常更希望使用高分辨率编码器。
完整的无刷机械臂关节可以表示成:
目标关节角度
│
▼
控制 MCU ← 编码器反馈
│
▼
三相逆变器(6 个 MOSFET)
│
▼
三相无刷电机
│
▼
减速器
│
▼
机械臂关节
因此“三相”描述的是电机有三组交替工作的线圈;编码器是告诉控制器电机或关节目前转到哪里的传感器。