机器人概念:伺服与舵机【概念、原理与名称由来】
在机器人领域中,我们经常会听到“舵机”“伺服电机”“伺服驱动器”“伺服系统”等术语。它们彼此相关,但含义并不完全相同。要真正理解机器人关节为什么能够准确地转到某个角度、保持某个姿态,首先需要理解“伺服”到底是什么意思,以及舵机是如何工作的。
一、什么是舵机?
舵机(Servo) 是一种能够按照控制指令,对角度、位置、速度或力矩进行较精确控制的执行器。
可以把它理解成机器人中的“肌肉”。机器人控制器发出诸如:
- “转到 30°”
- “把手臂抬到这个位置”
- “以指定速度旋转”
- “保持这个关节不动”
这样的命令后,舵机负责把控制指令真正转换成机械运动。
普通电机通常更接近“通电以后开始旋转”,而舵机的关键特点在于:它通常能够知道自己当前处于什么状态,并根据目标自动进行修正。
这就是所谓的 闭环控制(Closed-loop Control)。
二、舵机通常由哪些部分组成?
一个典型的机器人舵机通常包括以下几个部分:
-
电机(Motor)
提供旋转所需要的动力。 -
减速机构(Gearbox)
降低电机转速,同时提高输出扭矩,使其更加适合驱动机器人关节。 -
位置传感器(Position Sensor)
用于测量输出轴当前的位置。常见形式包括电位器、编码器等。 -
控制器(Controller)
接收目标指令,并把目标状态与实际状态进行比较,然后决定电机应该如何运动。 -
输出轴(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=90∘−70∘=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 N⋅m
要求电机输出指定力矩。
这叫:
力矩控制(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=90∘−88∘=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)→Controller→u(t)→Motor/Plant→y(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 30∘→45∘→70∘→90∘→60∘
伺服系统就要不断让实际关节角度跟着目标变化。
也就是希望:
θ 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 大模型辅助生成,内容仅供参考,请注意辨别。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)