2015-12-08 106 views
0

我试图模拟坦克状/车辆转向的车辆,即两个车轮(每侧一个)具有不同的速度,并且转向是通过增加或降低其中一侧的速度。坦克状车辆的旋转变化

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

我试过看Formula for controlling the movement of a tank-like vehicle?,以及这个问题上的链接,但没有拿出任何东西。我所有最好的猜测都失败了。

回答

0

第一:真正容易的边缘情况。如果V_lV_r为零,请勿移动。如果他们一样,不要转动。

其次,如果只有一个V_lV_r都为零,围绕固定胎面槽枢转,并且移动胎面描绘出长度V_big的圆弧的曲率D半径。 theta = Vbig/D,根据你的坐标加或减一些符号约定。 (坦克基地也转换一些距离,但计算是取决于坦克的旋转中心的定义是和你的坐标系统,所以细节留给读者作为练习)。

第三,对称性问题!很显然,油罐车轮的转向是左/右对称的。如果左踏板的速度是右踏板的两倍,那么坦克应该转动相同的量,就好像右踏板的速度是左侧的两倍一样,只是方向不同。同上倒退。

第四:肉和土豆!我假设没有任何坦克踏板可以滑倒。较快的胎面在角上以theta的角度标出的圆弧长度为V_fast。如果你回想起你的触发器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,你适当地承受r=DV_fast=2*V_slow回想theta=V_slow*rtheta=(V_fast-V_slow)/D

弧度,你要知道这是一个至关重要的细节。

注意:如果您将'右转'定义为正θ,并将其左转为负θ,则所有算法都会生效,即使对于负速度也是如此。坦克不会转身面对旅行的方向,它会继续面对正确的方式。

+0

谢谢!正是我在找什么! –

+0

一个mathjax如何?一个mathjax可以在SO上吗? –

+0

我不这么认为。 –