[具身智能-811]:为什么运动控制系统大量用相对位置,而不是绝对位置
为什么运动控制系统大量用相对位置,而不是绝对位置
通俗理解:
绝对位置:从原点零点算起,离起点多远。
相对位置:在上一步当前位置基础上,再走多少。
举小车例子:
- 绝对:走到 X=1000 的地方(以开机原点为 0)
- 相对:从现在的位置,再往前走 200 个脉冲
1、核心原因 1:硬件天然适合做增量运动
绝大多数电机反馈是增量编码器(JGB37‑520 这类带 AB 相编码器)。 增量编码器不记忆绝对坐标,只能检测「转了多少、变化了多少」,断电之后坐标直接丢失。
- 上电那一刻,MCU 只知道:电机转了多少,不知道自己在世界坐标系哪个绝对坐标。
- 这种硬件天生擅长算变化量(相对),不是天生知道全局绝对位置。
对比:绝对编码器才可以直接读出绝对位置,成本高,机器人小车很少用。
2、核心原因 2:控制算法(PID)本质处理的是「误差」,误差就是相对量
PID 闭环,输入是:目标值 − 当前实际值 = 误差(差值,相对量)。
举例子: 当前轮子脉冲:5000 希望再转 300 脉冲:目标 = 5000+300 =5300 PID 只管:我和目标还差多少,去消除这个差值。
不管你现在身处世界哪个绝对坐标,PID 只关心本次要移动多少偏移量。
运动控制器底层,绝大多数都是接收相对位移,再内部叠加得到绝对坐标。
3、核心原因 3:工程安全性,抗扰动、容错更好
场景 A:相对位置模式
“从当前点,向前移动 500 脉冲”
- 不管你现在在哪,只执行增量动作。
- 如果中途被人手推一把扰动,闭环会修正,补够这 500 脉冲。
场景 B:直接下发绝对位置
“直接去到绝对坐标 8000”
- 如果开机原点找错、零点漂移、编码器丢脉冲,整个坐标体系全部错乱,直接跑到错误位置,撞机。
现实工程:
很多控制器内部底层跑相对运动;
上层导航 / 规划输出绝对位姿,控制器内部自动换算成相对增量去执行。
4、核心原因 4:指令简单,分段运动容易实现
机器人连续动作:前进→右转→前进。 每一步只需要下发本次要走多少(相对),不需要每次都计算全局世界坐标。
比如麦克纳姆轮小车:
当前位姿 (x,y,θ),接下来向前移动 0.2m。 上层算出增量 Δx=0.2,Δy=0,Δθ=0;下发增量给运动板。 运动板不需要理解全局地图,只负责把这一段增量运动走完。
5、什么时候才用绝对位置?
需要明确固定空间点位:充电桩对接、机械臂抓取点、回零。
- 使用绝对位置前,一般要先回零(找原点),建立全局坐标系。
- 如果没有正确原点,绝对位置指令毫无意义。
6、一句话总结
- 增量编码器硬件,只能感知变化量,天然适配相对位置;
- PID 闭环算法计算的就是差值误差,本身就是相对量;
- 相对运动对零点错误、扰动更鲁棒,不容易直接撞机;
- 上层规划输出绝对目标,运动控制器内部会转为相对增量执行。
补充一个常见坑: 很多人以为给 STM32 运动板发
X=1.0m绝对坐标,板子直接跑。 实际底层:板子拿到绝对目标,减去当前实际位置,算出相对位移 Δ,再跑增量闭环。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)