坦克类车辆的旋转变化

Change in rotation of a tank-like vehicle

我正在尝试模拟 tank-like/skid-steered 车辆,即两个车轮(每侧一个)具有不同的速度,并且通过增加或减少其中一侧的速度来完成转向。

例如,如果我将左轮的速度设置为5,将右轮设置为3,它就会向右转。我想知道的是,给定车轮 Vl 和 Vr 的速度,以及车轮之间的距离 D,车辆指向的方向将在一个刻度内变化多少度?

我已经尝试查看 Formula for controlling the movement of a tank-like vehicle? 以及有关该问题的链接,但没有找到任何答案。我最好的猜测都失败了。

首先:真正简单的边缘案例。如果 V_lV_r 为零,则不要移动。一样的就不要转

其次,如果 V_lV_r 中只有一个为零,则油箱围绕静止胎面旋转,移动胎面描绘出长度为 V_big 的弧形曲率半径 Dtheta = Vbig/D,根据您的坐标加上或减去一些符号约定。 (坦克底座也平移了一些距离,但其计算取决于坦克旋转中心的定义位置和您的坐标系,因此该细节留作 reader 的练习。)

第三,对称性问题!显然坦克履带转向是 left/right 对称的。如果左踏板的速度是右踏板的两倍,则坦克应该转动相同的量,就好像右踏板的速度是左踏板的两倍一样,只是方向不同。倒退也是如此。

第四:肉和土豆!我假设坦克胎面不会打滑。较快的胎面在半径为 r+D 的圆上描绘了一个长度为 V_fast 的弧,该圆由角度 theta 标出。如果你还记得你的三角 V_fast=(r+D)*theta。较慢的轮子在用相同角度标记的半径 r 的圆上划出一条长度 V_slow 的弧。(V_slow = theta*r) 将一个方程除以另一个方程,得到 V_fast/V_slow = (r+D)/r.应用代数提供 r=D/((V_fast/V_slow)-1) 请注意,当 V_slow 为零或 V_fast=V_slow 时,这会适当地爆炸,并且当 V_fast=2*V_slow 时,您会适当地收到 r=D 回想一下 theta=V_slow*r: theta=(V_fast-V_slow)/D

以弧度表示,请注意这是一个至关重要的细节。

注意:如果您将 'turning right' 定义为正 theta,将左转定义为负 theta,则一切正常 theta=(V_l-V_r)/D,即使是负速度。坦克不会转身面对行进方向,它会一直面向正确的方向。