# 差速机器人在不平路面难以直线行驶

> 原文链接：https://robotics.hellobike.com/pitfalls/2016-07-16-robotics-se-2829
> 频道：pitfalls | 更新日期：2016-07-16 | 标签：auto, stackexchange, sensors, control, pid, differential-drive
> 核心摘要：在不平路面直线行驶可使用带加速度计和陀螺仪的 I2C IMU 计算航向并纠偏。

# 差速机器人在不平路面难以直线行驶

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Differential Drive Robot on uneven surfaces](https://robotics.stackexchange.com/questions/2829/differential-drive-robot-on-uneven-surfaces)（Robotics Stack Exchange #2829）

**状态**：已解决

## 问题

提问者在制作差速驱动机器人，希望其在不平整表面自主直线行驶；担心光电编码器因打滑产生误差，不确定应选编码器、加速度计还是其他传感器。

## 环境

差速驱动机器人；不平整表面；传感器选型阶段；提到 Arduino 库与 I2C 通信。

## 解决办法

1. 选用可通过 `i2c` 通信的较好 IMU。
2. 确保 IMU 同时包含加速度计和陀螺仪。
3. 用这两个传感器计算机器人航向，并根据航向误差进行修正以保持直行。
4. 可参考 SparkFun 对应 IMU 及其 Arduino 库来简化航向计算。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #2829：Differential Drive Robot on uneven surfaces](https://robotics.stackexchange.com/questions/2829/differential-drive-robot-on-uneven-surfaces)