# 差速机器人同PWM输入为何跑偏，PID怎么改？

> 原文链接：https://robotics.hellobike.com/pitfalls/2016-07-26-robotics-se-1711
> 频道：pitfalls | 更新日期：2016-07-26 | 标签：auto, stackexchange, pid, differential-drive
> 核心摘要：左右电机同PWM会跑偏，采纳建议是为每个轮子分别建立PID闭环并给相同目标位置。

# 差速机器人同PWM输入为何跑偏，PID怎么改？

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Approach to using PID to get a differential robot driving straight](https://robotics.stackexchange.com/questions/1711/approach-to-using-pid-to-get-a-differential-robot-driving-straight)（Robotics Stack Exchange #1711）

**状态**：已解决

## 问题

差速驱动机器人左右轮各有编码器，但两个直流电机性能不一致；给左右电机相同PWM时，机器人会向左或向右偏航。提问者想用左右编码器差值做单个PID修正。

## 环境

闭环运动控制器

## 解决办法

1. 不用单个左右编码器差值PID直接映射电机功率。
2. 为左右轮分别建立独立的电机级PID闭环，并给两个轮子相同的目标位置。
3. 调参时让两个轮子尽量保持在很小的跟随误差范围内，使两侧电机行为尽量一致。
4. 若精度要求更高，原文建议考虑里程计是否足够，或增加相对/绝对位置测定、复杂运动学模型或外部参考来处理累计误差和`Abbe error`。

原问题作者：Robz；采纳答案作者：Mark Booth。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #1711：Approach to using PID to get a differential robot driving straight](https://robotics.stackexchange.com/questions/1711/approach-to-using-pid-to-get-a-differential-robot-driving-straight)