# 四轮差速机器人如何由线速度角速度求轮速

> 原文链接：https://robotics.hellobike.com/pitfalls/2019-03-10-robotics-se-2324
> 频道：pitfalls | 更新日期：2019-03-10 | 标签：auto, stackexchange, wheeled-robot, inverse-kinematics, wheel
> 核心摘要：四轮差速机器人可用基于 ICR 的运动学模型，将线速度和角速度换算为左右轮速度。

# 四轮差速机器人如何由线速度角速度求轮速

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Kinematics of a 4 wheeled differential drive robots](https://robotics.stackexchange.com/questions/2324/kinematics-of-a-4-wheeled-differential-drive-robots)（Robotics Stack Exchange #2324）

**状态**：已解决

## 问题

提问者使用 ROS 标准速度命令 `linear_velocity`、`angular_velocity`，需要把它们转换为四轮差速机器人左右两侧轮速，不确定如何考虑 4 个轮子。

## 环境

Linux / ROS 机器人软件与控制通用开发环境

## 解决办法

1. 设机器人线速度为 `v`、角速度为 `ω`，到瞬时转动中心 ICR 的距离为 `v/ω`。
2. 设轮子相对 ICR 的几何参数为 `d`、`s`，轮子绕 ICR 的速度为 `ω * sqrt(d^2+s^2)`。
3. 计算角度 `α = arctan(s/d)`，轮子线速度取 `v_r = ω * sqrt(d^2+s^2) / cos(α)`。
4. 当 ICR 远离车辆时，该模型与普通差速模型一致；当 ICR 靠近中心时更准确。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #2324：Kinematics of a 4 wheeled differential drive robots](https://robotics.stackexchange.com/questions/2324/kinematics-of-a-4-wheeled-differential-drive-robots)