在机器人领域中,我们经常会听到“舵机”“伺服电机”“伺服驱动器”“伺服系统”等术语。它们彼此相关,但含义并不完全相同。要真正理解机器人关节为什么能够准确地转到某个角度、保持某个姿态,首先需要理解“伺服”到底是什么意思,以及舵机是如何工作的。

一、什么是舵机?

舵机(Servo) 是一种能够按照控制指令,对角度、位置、速度或力矩进行较精确控制的执行器。

可以把它理解成机器人中的“肌肉”。机器人控制器发出诸如:

  • “转到 30°”
  • “把手臂抬到这个位置”
  • “以指定速度旋转”
  • “保持这个关节不动”

这样的命令后,舵机负责把控制指令真正转换成机械运动。

普通电机通常更接近“通电以后开始旋转”,而舵机的关键特点在于:它通常能够知道自己当前处于什么状态,并根据目标自动进行修正。

这就是所谓的 闭环控制(Closed-loop Control)


二、舵机通常由哪些部分组成?

一个典型的机器人舵机通常包括以下几个部分:

  1. 电机(Motor)
    提供旋转所需要的动力。

  2. 减速机构(Gearbox)
    降低电机转速,同时提高输出扭矩,使其更加适合驱动机器人关节。

  3. 位置传感器(Position Sensor)
    用于测量输出轴当前的位置。常见形式包括电位器、编码器等。

  4. 控制器(Controller)
    接收目标指令,并把目标状态与实际状态进行比较,然后决定电机应该如何运动。

  5. 输出轴(Output Shaft)
    与机械臂、腿部、手指、转向机构等机械结构连接,最终输出机械运动。

因此,舵机并不只是“一台电机”,而更接近一个小型的:

电机 + 减速机构 + 传感器 + 控制系统


三、舵机是如何工作的?

假设机器人希望某个关节转到:

θ target = 90 ∘ \theta_{\text{target}}=90^\circ θtarget=90

但编码器检测到关节当前只有:

θ actual = 70 ∘ \theta_{\text{actual}}=70^\circ θactual=70

控制器就可以计算当前位置与目标位置之间的误差:

e = θ target − θ actual e=\theta_{\text{target}}-\theta_{\text{actual}} e=θtargetθactual

于是:

e = 90 ∘ − 70 ∘ = 20 ∘ e=90^\circ-70^\circ=20^\circ e=9070=20

这说明关节距离目标还差 20°。

于是控制器继续驱动电机,使关节向 90° 的方向运动。

随着关节越来越接近目标位置,误差会逐渐减小。如果发生了过冲,例如转到了 92°,系统又会检测到误差方向发生变化,于是反向进行修正。

整个过程可以概括为:

给定目标 → 测量实际状态 → 计算误差 → 控制电机 → 再次测量 → 再次修正

这个循环会不断进行。

这就是伺服系统最核心的工作原理:

利用反馈不断纠偏,使实际运动尽可能跟随目标指令。


四、“伺服”是什么意思?

“伺服”并不是某一种具体电机的名字,它首先描述的是一种 控制思想和控制方式

英文是:

Servo

“Servo”一词与拉丁语 servus 有关,本义与“服务者、仆人”有关。

在工程领域中,可以把它理解为:

上级控制器发出命令,伺服系统就根据反馈不断调整自身,使自己的运动服从并跟随这个命令。

因此,“伺服”最容易理解成两个字:

跟随。

更准确地说:

伺服就是根据反馈,自动、准确地跟随目标指令。

例如控制器要求关节转到:

θ target = 90 ∘ \theta_{\text{target}}=90^\circ θtarget=90

伺服系统就努力让实际角度:

θ actual \theta_{\text{actual}} θactual

不断接近目标值:

θ target = 90 ∘ \theta_{\text{target}}=90^\circ θtarget=90

所以从控制理论角度来看,“伺服”的核心不是简单的“转动”,而是:

跟踪目标。


五、为什么中文叫“伺服”?

“伺服”是对英文 Servo 的工程术语翻译。

从中文含义上也可以帮助理解这个概念。

“伺”具有观察、察看、等待响应的含义;“服”则可以理解为服从、执行。

因此,“伺服”这个词可以形象地理解为:

一边观察自己的状态,一边服从外部指令进行调整。

这恰好符合伺服系统的实际工作过程。

它不是简单地接收到命令以后机械执行,而是不断进行:

观察 → 比较 → 调整 → 再观察

直到系统尽可能达到目标状态。

换句话说,“伺服”之所以叫“伺服”,可以从工程思想上理解成:

察看自己的状态,然后服从目标指令。


六、伺服控制的核心:闭环反馈

理解“伺服”,最重要的一个概念就是:

反馈(Feedback)

一个典型的伺服控制系统可以表示为:

目标指令 → 控制器 → 电机 → 机械运动 \text{目标指令}\rightarrow\text{控制器}\rightarrow\text{电机}\rightarrow\text{机械运动} 目标指令控制器电机机械运动

与此同时,传感器会测量实际运动状态,并将测量结果送回控制器:

机械运动 → 传感器 → 控制器 \text{机械运动}\rightarrow\text{传感器}\rightarrow\text{控制器} 机械运动传感器控制器

这样就形成了一个完整的闭环。

更完整地表示,可以写成:

目标值 → 误差计算 → 控制器 → 电机 → 机械系统 → 实际输出 \text{目标值}\rightarrow\text{误差计算}\rightarrow\text{控制器}\rightarrow\text{电机}\rightarrow\text{机械系统}\rightarrow\text{实际输出} 目标值误差计算控制器电机机械系统实际输出

然后实际输出经过传感器反馈:

实际输出 → 传感器 → 反馈值 → 误差计算 \text{实际输出}\rightarrow\text{传感器}\rightarrow\text{反馈值}\rightarrow\text{误差计算} 实际输出传感器反馈值误差计算

控制器不断比较:

目标值 − 实际值 = 误差 \text{目标值}-\text{实际值}=\text{误差} 目标值实际值=误差

然后根据误差决定应该怎样驱动电机。

如果误差很大,就需要继续调整;如果误差越来越小,就逐渐接近目标。

因此,伺服系统实际上是在不断回答这样一个问题:

“我现在在哪里?距离目标还有多远?接下来应该怎么动?”


七、伺服和普通电机有什么不同?

普通电机和伺服系统最重要的区别,在于系统是否强调 反馈目标跟踪

类型 控制方式 是否知道实际状态 是否自动纠偏
普通电机 给电压、电流后旋转 通常不知道 通常不能
伺服系统 给定位置、速度或力矩目标 通常可以测量 可以
舵机 接收目标指令并控制输出 通常具有反馈 可以

例如,对一个普通直流电机说:

“通电。”

它会开始旋转。

但是,如果没有额外的传感器和控制系统,它通常并不知道:

  • 自己转了多少圈;
  • 当前转到了什么角度;
  • 有没有受到外力干扰;
  • 有没有真正到达目标位置。

而对于一个位置伺服系统,如果给它的命令是:

“转到 90°。”

系统就会不断检测当前位置,并努力把输出保持在 90° 附近。

因此:

普通电机关注的是“产生运动”,而伺服系统更关注“按照目标产生正确的运动”。


八、“伺服”并不等于“电机”

这是理解机器人执行器时非常重要的一点:

伺服 ≠ 电机。

“伺服”描述的是一种带反馈的目标跟踪控制机制。

而电机只是产生机械动力的执行部件之一。

一个完整的高性能伺服系统通常包括:

伺服电机(Servo Motor)

  • 编码器(Encoder)
  • 伺服驱动器(Servo Drive)
  • 控制算法(Control Algorithm)

它们各自承担不同的功能。

1. 伺服电机

负责产生机械动力。

它把电能转换成旋转运动。

2. 编码器

负责测量实际位置或速度。

例如编码器可以告诉控制器:

“关节现在位于 72.5°。”

3. 伺服驱动器

负责根据控制器的要求,控制电机中的电流、电压等。

它位于控制算法和电机之间。

4. 控制算法

根据目标值和实际值之间的误差,计算应该怎样调整电机。

因此,一个伺服系统可以简单表示为:

伺服系统 = 电机 + 传感器 + 驱动器 + 控制算法 \text{伺服系统}=\text{电机}+\text{传感器}+\text{驱动器}+\text{控制算法} 伺服系统=电机+传感器+驱动器+控制算法

所以“伺服电机”只是整个伺服系统中的一个组成部分。


九、舵机和伺服是什么关系?

在中文机器人领域中,“舵机”和“伺服”经常一起出现,但两者并不是完全相同的概念。

可以简单理解为:

  • 伺服:强调控制方式和反馈跟踪思想;
  • 舵机:强调一种具体的集成式执行器。

很多舵机内部本身就包含一个小型伺服系统,因此英文通常直接称为:

Servo

或者:

Servo Motor

例如常见的 RC 舵机,其内部通常已经包含:

电机 + 减速齿轮 + 位置传感器 + 控制电路 \text{电机}+\text{减速齿轮}+\text{位置传感器}+\text{控制电路} 电机+减速齿轮+位置传感器+控制电路

因此,外部控制器不需要直接控制电机,只需要告诉舵机:

“我要你转到这个角度。”

舵机内部会自行完成反馈控制。


十、机器人中的舵机和工业伺服电机有什么区别?

在实际使用中,“舵机”这个词有时包含两种不同层次的含义。

1. 小型机器人和遥控模型中的舵机

例如常见的 SG90 一类 RC 舵机。

它通常已经把:

  • 小型电机
  • 减速齿轮
  • 位置传感器
  • 控制电路

集成到一个外壳中。

其结构可以简单表示为:

控制信号 → 舵机内部控制器 → 电机 → 减速齿轮 → 输出轴 \text{控制信号}\rightarrow\text{舵机内部控制器}\rightarrow\text{电机}\rightarrow\text{减速齿轮}\rightarrow\text{输出轴} 控制信号舵机内部控制器电机减速齿轮输出轴

同时内部的位置传感器会形成反馈:

输出轴位置 → 位置传感器 → 内部控制器 \text{输出轴位置}\rightarrow\text{位置传感器}\rightarrow\text{内部控制器} 输出轴位置位置传感器内部控制器

控制器只需要向它发送目标角度等控制信号,就可以让输出轴转到指定位置。

这种舵机常用于:

  • 小型机器人
  • 遥控汽车
  • 遥控飞机
  • 摄像头云台
  • 简单机械臂
  • 教育机器人

2. 工业机器人中的伺服系统

工业机器人、人形机器人以及高性能机械设备中的伺服系统通常要复杂得多。

它可能由:

  • 无刷伺服电机
  • 高精度编码器
  • 减速器
  • 伺服驱动器
  • 电流环
  • 速度环
  • 位置环
  • 实时控制器

共同组成。

这种系统能够实现更高的:

  • 控制精度
  • 响应速度
  • 输出扭矩
  • 动态性能
  • 控制频率
  • 可靠性

因此,小型 RC 舵机和工业伺服系统虽然原理上都与“反馈跟踪”有关,但性能和复杂程度差别很大。


十一、伺服系统可以控制什么?

“伺服”并不仅仅意味着控制角度。

根据控制目标不同,伺服系统通常可以控制:

1. 位置

例如:

θ target = 90 ∘ \theta_{\text{target}}=90^\circ θtarget=90

要求机器人关节转到指定位置。

这叫:

位置控制(Position Control)


2. 速度

例如:

ω target = 100  rpm \omega_{\text{target}}=100\ \text{rpm} ωtarget=100 rpm

要求电机以指定速度旋转。

这叫:

速度控制(Velocity Control)


3. 力矩

例如:

τ target = 5  N ⋅ m \tau_{\text{target}}=5\ \text{N}\cdot\text{m} τtarget=5 Nm

要求电机输出指定力矩。

这叫:

力矩控制(Torque Control)

因此,现代机器人中的伺服系统通常不仅关心:

“转到哪里?”

还会关心:

“转多快?”

以及:

“用多大的力?”


十二、为什么机器人特别需要伺服系统?

机器人运动不能只要求:

“电机转起来。”

例如机器人抬起手臂时,需要知道:

  • 当前关节角度是多少?
  • 目标角度是多少?
  • 应该以多快的速度运动?
  • 加速度应该是多少?
  • 当前输出了多大力矩?
  • 是否受到了外力干扰?
  • 是否已经到达目标位置?

因此,机器人真正需要的是:

能够按照目标,对位置、速度和力矩进行持续反馈控制的执行系统。

这正是伺服系统的作用。

例如人形机器人中的:

  • 肩关节
  • 肘关节
  • 腕关节
  • 髋关节
  • 膝关节
  • 踝关节
  • 手指关节

都可能使用不同形式的伺服执行系统。


十三、一个直观的类比

可以把机器人中的几个关键部件类比成人体:

  • 控制器(Controller) —— 大脑
  • 伺服电机 / 舵机(Servo) —— 肌肉
  • 编码器(Encoder) —— 感觉器官
  • 机械结构(Mechanism) —— 骨骼

例如机器人准备把手臂抬到 90°。

控制器相当于大脑发出命令:

“把手臂抬到 90°。”

也就是:

θ target = 90 ∘ \theta_{\text{target}}=90^\circ θtarget=90

舵机开始运动。

编码器不断向控制器报告当前状态:

“现在 30°。”

θ actual = 30 ∘ \theta_{\text{actual}}=30^\circ θactual=30

随后:

“现在 60°。”

θ actual = 60 ∘ \theta_{\text{actual}}=60^\circ θactual=60

接着:

“现在 85°。”

θ actual = 85 ∘ \theta_{\text{actual}}=85^\circ θactual=85

最后:

“现在 90°。”

θ actual = 90 ∘ \theta_{\text{actual}}=90^\circ θactual=90

此时误差:

e = θ target − θ actual = 0 e=\theta_{\text{target}}-\theta_{\text{actual}}=0 e=θtargetθactual=0

于是系统认为已经到达目标位置。

如果机器人手臂受到外力影响,从 90° 掉到了 88°,那么:

e = 90 ∘ − 88 ∘ = 2 ∘ e=90^\circ-88^\circ=2^\circ e=9088=2

系统再次检测到误差,就会重新驱动电机,使关节回到 90° 附近。

这就是典型的 伺服控制过程


十四、从控制系统角度理解伺服

如果进一步从控制理论角度来看,伺服系统实际上包含两个非常重要的量:

目标值

也叫:

Reference / Command / Setpoint

例如:

r ( t ) r(t) r(t)

表示我们希望系统达到的状态。

实际值

也就是传感器真正测量到的输出:

y ( t ) y(t) y(t)

二者相减得到误差:

e ( t ) = r ( t ) − y ( t ) e(t)=r(t)-y(t) e(t)=r(t)y(t)

控制器根据误差:

e ( t ) e(t) e(t)

计算控制信号:

u ( t ) u(t) u(t)

然后控制电机运动。

所以整个过程可以抽象为:

r ( t ) → e ( t ) → Controller → u ( t ) → Motor/Plant → y ( t ) r(t)\rightarrow e(t)\rightarrow\text{Controller}\rightarrow u(t)\rightarrow\text{Motor/Plant}\rightarrow y(t) r(t)e(t)Controlleru(t)Motor/Planty(t)

而实际输出:

y ( t ) y(t) y(t)

又会反馈回来,与目标:

r ( t ) r(t) r(t)

继续比较。

这就是典型的:

闭环控制系统。


十五、为什么“跟随”是理解伺服最重要的关键词?

如果只把伺服理解成“能够精确旋转的电机”,其实并不完整。

伺服真正强调的是:

系统输出能够跟随外部给定的目标变化。

例如目标角度可能不是固定的 90°,而是在不断变化:

30 ∘ → 45 ∘ → 70 ∘ → 90 ∘ → 60 ∘ 30^\circ\rightarrow45^\circ\rightarrow70^\circ\rightarrow90^\circ\rightarrow60^\circ 3045709060

伺服系统就要不断让实际关节角度跟着目标变化。

也就是希望:

θ actual ( t ) ≈ θ target ( t ) \theta_{\text{actual}}(t)\approx\theta_{\text{target}}(t) θactual(t)θtarget(t)

这就是所谓的:

目标跟踪(Tracking)

因此,“Servo”真正强调的是:

你让我去哪,我就努力跟到哪;你改变目标,我也跟着改变。


十六、最简单的理解方式

如果暂时不考虑复杂的控制理论,可以把普通电机和伺服系统分别理解成:

普通电机

你告诉它:

“转。”

它就开始转。


伺服系统

你告诉它:

“转到 90°。”

它会一边转,一边检查:

“我现在到哪里了?”

然后不断调整,直到尽可能接近 90°。

因此两者最核心的区别可以概括为:

普通电机:产生运动 \text{普通电机:产生运动} 普通电机:产生运动

而:

伺服系统:按照目标控制运动 \text{伺服系统:按照目标控制运动} 伺服系统:按照目标控制运动


十七、总结

理解“舵机”和“伺服”,最重要的是区分 执行部件控制思想

舵机是什么?

舵机通常是机器人中负责产生可控机械运动的执行器。

它内部往往已经集成了:

电机 + 减速机构 + 位置传感器 + 控制电路 \text{电机}+\text{减速机构}+\text{位置传感器}+\text{控制电路} 电机+减速机构+位置传感器+控制电路


伺服是什么?

“伺服”并不是简单指一种电机。

它更根本的含义是:

根据反馈,自动调整系统状态,使实际运动准确跟随目标指令。

因此,可以把“伺服”首先理解成:

跟随。

更加完整地说就是:

根据反馈不断纠偏,从而精确跟随目标。


伺服系统的核心结构

一个典型伺服系统可以表示为:

目标指令 → 控制器 → 电机 → 机械运动 \text{目标指令}\rightarrow\text{控制器}\rightarrow\text{电机}\rightarrow\text{机械运动} 目标指令控制器电机机械运动

与此同时,系统通过传感器进行反馈:

机械运动 → 编码器 → 控制器 \text{机械运动}\rightarrow\text{编码器}\rightarrow\text{控制器} 机械运动编码器控制器

控制器不断计算:

误差 = 目标状态 − 实际状态 \text{误差}=\text{目标状态}-\text{实际状态} 误差=目标状态实际状态

然后根据误差调整电机。

因此整个闭环可以概括为:

目标 → 比较 → 控制 → 运动 → 测量 → 反馈 → 再次比较 \text{目标}\rightarrow\text{比较}\rightarrow\text{控制}\rightarrow\text{运动}\rightarrow\text{测量}\rightarrow\text{反馈}\rightarrow\text{再次比较} 目标比较控制运动测量反馈再次比较

并不断循环。


如果只记住一句话,可以记成:

舵机是机器人的执行器,而“伺服”的本质,是利用反馈让执行器精确地跟随目标。

也正因为如此,现代机器人才能让自己的关节不仅“动起来”,还能够知道:

动到哪里、动多快、用了多大的力,以及在出现误差时如何自动修正。
:::


上文由 NiceAIGC.net 大模型辅助生成,内容仅供参考,请注意辨别。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐