# 使用PID控制器实现不同运动学机器人坐标移动时运行效果差如何解决

> 原文链接：https://robotics.hellobike.com/pitfalls/2022-05-15-robotics-se-23478
> 频道：pitfalls | 更新日期：2022-05-15 | 标签：auto, stackexchange, pid
> 核心摘要：开发者实现PID控制的机器人xyθ坐标移动时效果差，答复给出双控制器的配置方案解决问题。

# 使用PID控制器实现不同运动学机器人坐标移动时运行效果差如何解决

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[How to use a PID controller for different kinematics robots](https://robotics.stackexchange.com/questions/23478/how-to-use-a-pid-controller-for-different-kinematics-robots)（Robotics Stack Exchange #23478）

**状态**：有绕过办法

## 问题

开发者基于WPILib Java库实现机器人航迹推算及基于PID的x、y、θ坐标移动功能，现有PID控制器运行效果不好。

## 环境

使用WPILib Java库，运动学机器人，无其他明确软硬件信息。

## 解决办法

1. 采用两个高层控制器，一个输出参考前进速度V，一个输出参考转向量。
2. 将距离误差dS输入控制器（仅P控制器可能即可）得到期望速度V_des。
3. 用角度u减去当前θ得到朝向误差，输入单独控制器（仅P控制器可能即可）得到期望朝向变化率Theta_dot_desired。
4. 通过运动学公式反解得到左右轮的速度。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #23478：How to use a PID controller for different kinematics robots](https://robotics.stackexchange.com/questions/23478/how-to-use-a-pid-controller-for-different-kinematics-robots)