QiuQiu

Robotics - Motor

“总线”和“无刷”描述的是两个不同维度。

总线说的是通信方式;无刷说的是电机类型。

一个舵机可以同时是:

这种设备通常叫无刷智能伺服执行器。

三个容易混淆的概念

维度 可能类型 回答的问题
电机 有刷 DC、无刷 BLDC 电机怎么产生转矩
传感器 电位器、磁编码器、光电编码器 关节现在在哪里
通信 PWM、TTL 总线、RS485、CAN、EtherCAT 控制器怎么发送命令、读取状态

所以:

总线舵机 ≠ 必然无刷

无刷舵机 ≠ 必然能向电脑返回位置

例如:

无刷舵机里面有什么

典型机器人无刷执行器结构:

CAN / RS485 命令


控制 MCU
  ├── 位置环
  ├── 速度环
  └── 电流/转矩环


三相 MOSFET 驱动器


无刷电机 BLDC


减速器


机械臂关节

编码器构成反馈:

目标位置 ──→ 控制器 ──→ 电机 ──→ 实际关节位置
                ↑                    │
                └──── 编码器反馈 ────┘

无刷电机通常需要知道转子角度,才能正确控制三相绕组。因此常见传感器包括:

但这里要区分两种“知道位置”。

电机内部知道位置

舵机内部用编码器完成自己的闭环控制,但不一定把位置传给电脑。

这种舵机可能仍然只有:V+ / GND / PWM

电脑也能读取位置

舵机通过 CAN、RS485 或 TTL 总线开放状态寄存器:

这种才适合机器人数据采集和高级控制。

无刷执行器的反馈层次

“有传感器”也需要继续问传感器装在哪里。

1. 电机侧编码器

编码器装在电机转子上:

电机 ── 编码器 ── 减速器 ── 关节

优点是控制电机很方便,但它看不到减速器之后的:

2. 输出侧编码器

编码器直接测量机械臂关节:

电机 ── 减速器 ── 关节

                 编码器

它测到的更接近真实关节角度,但结构和成本更高。

3. 双编码器

高性能机械臂可能同时有:

电机侧编码器 + 输出侧绝对编码器

这样既能控制电机,也能测量减速器误差。

4. 转矩反馈

无刷驱动器可以通过相电流估算转矩:

τKtI \tau \approx K_t I

其中:

但电流估算不等于真正的关节力传感器。减速器摩擦、惯性和齿隙都会带来误差。更高级的机械臂会增加应变片或关节转矩传感器。

机械臂不一定必须采用“总线舵机”

反馈机械臂有三种常见架构。

集成式总线舵机

电脑 → 总线 → 智能舵机

传感器、控制器、驱动器都在舵机里。

优点:

普通电机加外部编码器

STM32 → PWM/驱动器 → 电机

                   编码器

反馈由 STM32 自己读取和控制。

优点是硬件可以更便宜、更自由,但控制软件、PCB 和调试工作明显增加。

无刷电机加工业伺服驱动器

主控制器 → CAN/EtherCAT → 无刷驱动器 → BLDC

                            编码器

工业机械臂更多采用这种结构,而不一定使用 STS3215 这种一体式小舵机。

对 SO-ARM 降本有没有帮助

通常无刷执行器不是降本方案,而是性能升级方案。

它的优势是:

但代价通常是:

对于桌面级 SO-ARM,STS3215 智能总线舵机通常仍然是成本、兼容性和开发难度之间更好的平衡。

如果以后设计更大负载、更长机械臂或者需要力控,再考虑:

选购“无刷舵机”时,不能只看“无刷”和“有编码器”,还要确认:

  1. 能否读取实际位置;
  2. 是 PWM 还是双向总线;
  3. 编码器在电机侧还是输出侧;
  4. 是否支持位置、速度和转矩模式;
  5. 连续转矩是多少,而不只是堵转转矩;
  6. 减速器齿隙多大;
  7. 是否有绝对位置;
  8. LeRobot 或自己的控制程序是否支持它的协议。

最简洁的判断是:

无刷决定电机性能,编码器提供反馈,总线决定反馈能不能方便地传给电脑。三者不能互相替代。

可以把机械臂关节拆成四部分:

编码器是什么

编码器是一种测量旋转角度的传感器。

例如电脑要求关节转到 90°:

目标角度:90°


控制器驱动电机


编码器测得:82°


控制器发现还差 8°


继续驱动


编码器测得:90°

没有编码器,控制器通常只能发出“转动”的命令,却不知道机械臂真正到了哪里。

编码器相当于机械臂的本体感觉。

编码器测量什么

通过连续读取编码器,可以得到:

速度通常由角度变化计算:

ωΔθΔt \omega \approx \frac{\Delta \theta}{\Delta t}

12-bit 编码器是什么意思

12-bit 可以表示:

212=4096 2^{12}=4096

个不同位置。

如果覆盖完整一圈:

36040960.088 \frac{360^\circ}{4096}\approx0.088^\circ

也就是理论上每一个计数约代表 0.088°。

但这只是分辨率,不等于实际精度。齿轮间隙、结构变形、安装误差和传感器误差都会使真实精度更差。

绝对编码器与增量编码器

绝对编码器的每个角度都有唯一数值:

上电后直接知道:当前位置是 137°

增量编码器只记录移动了多少:

从上次位置向前移动了 20 个计数

断电后,增量编码器通常会忘记原点,需要重新归零。机械臂更喜欢使用绝对编码器,因为重新上电后更容易知道关节位置。

编码器装在哪里也很重要

电机侧编码器:

电机—编码器—减速器—机械臂关节

它测量电机轴,但看不到减速器齿隙和输出端变形。

输出侧编码器:

电机—减速器—机械臂关节—编码器

它更接近真实关节角度,但结构和成本更高。

有刷电机是什么

“刷”指的是电刷。

有刷直流电机内部大致是:

电刷是接触旋转换向器的导电零件:

电源

电刷

换向器

转子线圈

转子旋转时,电刷和换向器通过机械接触自动改变线圈中的电流方向,让电机持续旋转。

优点:

缺点:

无刷电机是什么

无刷电机取消了机械电刷和换向器。

典型无刷电机:

线圈不跟着旋转,所以不需要通过电刷给旋转线圈供电。

但是控制器必须知道转子的位置,然后依次给三相线圈通电:

编码器/霍尔传感器


控制器判断转子位置


六个 MOSFET 组成三相逆变器


依次驱动 A、B、C 三相线圈


转子继续旋转

这种电子切换电流方向的过程叫电子换向。

优点:

缺点:

有刷和无刷并不决定有没有反馈

这是最重要的关系:

因此四种组合都可能存在:

电机 编码器 结果
有刷 普通直流电机
有刷 有刷伺服系统
无刷 无或只用简单霍尔 普通无刷动力系统
无刷 高精度编码器 无刷伺服系统

例如:

RA8:

= 有刷智能总线舵机

RX8:

= 无刷智能总线舵机

两者都有反馈,也都能通过总线读取位置。区别主要在电机的效率、寿命、持续输出能力和成本。

为什么还需要减速器

电机通常转得很快,但直接输出的转矩较小。机械臂需要低速、大转矩,因此会加减速器:

电机高速、小转矩


      减速器


关节低速、大转矩

理想情况下:

τoutNτmotor \tau_{\text{out}}\approx N\tau_{\text{motor}}

其中 NN 是减速比。

例如减速比 100:1,理论上能把转矩放大约 100 倍,但同时速度降低,并会产生摩擦、齿隙和效率损失。

所以一只完整的机器人舵机实际上是:

有刷或无刷电机
       +
减速器
       +
编码器
       +
电机驱动器
       +
控制 MCU
       +
总线通信

可以用一个简单类比记住:

部件 类比
电机 肌肉
减速器 杠杆
编码器 本体感觉
控制器 局部小脑
总线 神经

无刷并不自动代表“有反馈”,总线也不自动代表“无刷”。真正适合机械臂的是由电机、减速器、编码器、控制器和通信接口共同组成的闭环关节。

编码器是一种专门测量位置和旋转角度的传感器。

“三项电机”一般写作“三相电机”。这里的“相”不是三个电机,而是三组按不同时间通电的线圈。

什么是三相电机

无刷电机里通常有三组定子线圈:

也常标成:U / V / W

三组线圈在空间上错开,控制器按顺序给它们通电:

A 产生磁场

B 产生磁场

C 产生磁场

再回到 A

这样电机内部就形成一个不断旋转的磁场,转子上的永久磁铁会跟着这个磁场旋转。

可以想象成三个人围着转盘站在不同位置,按顺序推动转盘:

A 推一下 → B 推一下 → C 推一下 → A 再推

只要切换足够快而且平滑,转盘就会持续旋转。

三相电流是什么样的

理想情况下,三相电流是三个相互错开 120120^\circ 的周期信号:

iA=Isin(θ) i_A = I\sin(\theta)
iB=Isin(θ120) i_B = I\sin(\theta-120^\circ)
iC=Isin(θ240) i_C = I\sin(\theta-240^\circ)

画出来大致是:

A 相:~~~~正~~~~负~~~~
B 相:    ~~~~正~~~~负~~~~
C 相:        ~~~~正~~~~负~~~~

三组电流在时间上错开,因此合成的磁场会连续旋转。

直流电源怎样产生三相电

机器人通常使用电池或直流电源,例如 12V DC

但无刷电机需要三相电流,因此中间要加入三相逆变器:

直流电源


六个 MOSFET
组成三相逆变器

    ├── U 相
    ├── V 相
    └── W 相


       无刷电机

每一相使用两个 MOSFET:

因此总共通常是:

3×2=6 3\times2=6

个功率 MOSFET。

这也是为什么无刷电机驱动器比普通有刷电机的 H 桥复杂。

编码器在这里有什么作用

控制器需要知道转子现在朝向哪里,才能决定下一步给哪组线圈通电。

编码器测量转子角度


控制器计算应当产生的磁场方向


控制六个 MOSFET


驱动 U、V、W 三相线圈


转子旋转

例如:

这个过程会非常快速地循环。

因此编码器有两个用途:

  1. 帮助无刷电机完成电子换向;
  2. 测量机械臂关节的实际位置。

但要注意,如果编码器装在电机轴上,它主要知道电机转子位置;如果装在减速器输出端,才更接近真实关节位置。

有刷与无刷的关键区别

有刷电机依靠电刷和换向器机械切换电流:

电源 → 电刷 → 换向器 → 转子线圈

无刷电机依靠控制器和 MOSFET 电子切换三相电流:

电源 → MCU → 六个 MOSFET → 三相线圈

所以:

项目 有刷电机 无刷三相电机
换向方式 电刷机械换向 MOSFET 电子换向
常见线圈 转子线圈 定子三相线圈
转子 线圈 永久磁铁
驱动电路 H 桥,通常 4 个 MOSFET 三相逆变器,通常 6 个 MOSFET
是否需要转子位置 电刷自动处理 控制器通常需要知道
维护 电刷会磨损 没有电刷磨损
控制复杂度 较低 较高

霍尔传感器和编码器

无刷电机也可能只安装三个霍尔传感器。

霍尔传感器通常只能比较粗略地告诉控制器:转子进入了哪个扇区。

编码器则可以更精细地告诉控制器:转子当前位置是 127.36°。

所以:

完整的无刷机械臂关节可以表示成:

目标关节角度


控制 MCU ← 编码器反馈


三相逆变器(6 个 MOSFET)


三相无刷电机


减速器


机械臂关节

因此“三相”描述的是电机有三组交替工作的线圈;编码器是告诉控制器电机或关节目前转到哪里的传感器。