首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >坦克类车辆旋转的变化

坦克类车辆旋转的变化
EN

Stack Overflow用户
提问于 2015-12-08 19:37:13
回答 1查看 113关注 0票数 0

我试图模拟一辆类似坦克/滑行的车辆,即两个轮子(两边各一个)有不同的速度,而转向是通过增加或降低一侧的速度来完成的。

例如,如果我把左轮的速度设为5,把右轮设为3,它就会向右转。我想知道的是,考虑到车轮Vl和Vr的速度,以及车轮D之间的距离,车辆的方向会在一个滴答中改变多少度?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-08 20:28:40

第一:非常简单的边缘情况。如果V_lV_r为零,请不要移动。如果他们是一样的,不要掉头。

第二,如果V_lV_r中只有一个为零,则油箱围绕固定踏面旋转,移动的踏面以曲率D半径为长度V_big的弧。theta = Vbig/D,根据你的坐标加或减一些符号约定。(坦克基地也会翻译一些距离,但计算取决于坦克旋转中心的位置和你的坐标系,所以这些细节是留给读者的练习。)

第三,对称问题!显然,坦克的踏板转向是左右对称的。如果左胎面的速度是右胎面的两倍,油箱应该转动相同的量,就像右胎面的速度是左胎面的两倍,只是在一个不同的方向。向后退也是。

第四:肉和土豆!我猜两辆坦克都不会滑倒。速度更快的胎面在半径V_fast的圆圈上跟踪长度为theta的弧线,该圆圈由一个角theta标记。如果你还记得你的三角V_fast=(r+D)*theta。较慢的车轮在半径为V_slow的圆上画出一条长度为r的弧线,以相同的角度表示。(V_slow = theta*r)将一个方程除以另一个方程,接收V_fast/V_slow = (r+D)/r。应用代数提供r=D/((V_fast/V_slow)-1)注意,当V_slow为0或V_fast=V_slow时,这会适当地爆炸,当V_fast=2*V_slow回忆起theta=V_slow*rtheta=(V_fast-V_slow)/D时,适当地接收r=D

在弧度上,请注意这是一个关键的细节。

注意:如果你把“右转”定义为正θ,把左转定义为负θ,那么即使在负速度的情况下,它也是可行的和theta=(V_l-V_r)/D。坦克不会转过身来面对方向,它会继续朝着正确的方向前进。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34164518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档