首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制坦克车辆移动的公式?

控制坦克车辆移动的公式?
EN

Stack Overflow用户
提问于 2008-09-24 02:36:45
回答 10查看 7.7K关注 0票数 6

有人知道用来控制一个简单的坦克车辆移动的公式吗?

要“操纵”它,你需要改变左右两个“轮子”的作用力。例如:两个轮子上的1个力单位使它前进。两个轮子上的力单位使其向后移动。在一个轮子上施加比另一个轮子更多的力,它就会转动。

你如何计算两个轮子都需要多少力才能将坦克转动一定的角度?

还是我想错了?

编辑:正如威廉·凯勒提到的,我错过了坦克的速度。假设两个轮子上的1个力单位以每秒1个单位的速度向前移动坦克。

对于感兴趣的人,我在gamedev.net上找到了这个帖子:http://66.102.9.104/search?q=cache:wSn5t58ACJwJ:www.gamedev.net/community/forums/topic.asp%3Ftopic_id%3D407491+tank+track+radius+velocity&hl=en&ct=clnk&cd=1&gl=za&client=firefox-a

另一个线程:http://www.physicsforums.com/showthread.php?t=220317

事实证明,找到公式的关键是知道正确的术语("skid steer") :P

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2016-08-24 06:03:46

对于需要以内轮/轨道的给定速度'Si‘以半径'r’转弯的打滑转向车辆,外部轨道必须以'So‘的速度行驶:

代码语言:javascript
复制
So = Si * ((r+d)/r)

详情:

在滑动转向中,外部车轮/轨道的转弯距离比内部车轮/轨道的距离更远。

此外,额外行驶的距离与内部赛道在同一时间内完成,这意味着外部车轮/赛道必须跑得更快。

由“内”轨迹外接的圆周长:

代码语言:javascript
复制
c1 = 2*PI*r
'r' is radius of circle origin to track/wheel

由“外部”轨迹外接的圆周长:

代码语言:javascript
复制
c2 = 2*PI*(r+d)
'r' is radius of circle origin to inner track/wheel
'd' is the distance between the Inner and Outer wheels/track.

此外,c2 =X* c1,这表示c2按比例大于c1

代码语言:javascript
复制
X = c2 / c1
X = 2*PI*(r+d) / 2*PI*r
X = (r+d)/r

因此,对于需要以内轮/轨道的给定速度's‘以半径'r’转弯的打滑转向车辆,外部轨道必须以:

代码语言:javascript
复制
So = Si * ((r+d)/r)

其中:

代码语言:javascript
复制
'So' = Speed of outer track
'Si' = Speed of inner track
'r'  = turn radius from inner track
'd'  = distance between vehicle tracks.


               ********* <---------------- Outer Track
           ****    |    ****                     
        **         |<--------**----------- 'd' Distance between tracks
       *        *******<-------*---------- Inner Track
      *      ***   ^   ***      *  
     *      *      |<-----*------*-------- 'r' Radius of Turn
     *     *       |       *     * 
     *     *       O       *     * 
     *     *               *     * 
     *      *             *      * 
      *      ***       ***      *  
       *        *******        *   
        **                   **    
           ****         ****       
               *********           
票数 4
EN

Stack Overflow用户

发布于 2008-09-24 02:47:49

你想错了。问题是,轨道上不同的力不会使坦克转动一定的度数。相反,不同的力会改变转弯的速度。

力和转动率之间的关系将根据坦克的机械结构而变化。油箱越宽,转动速度就越慢。坦克越快,它转动的速度就越快。

附言:我认为,如果没有现实世界的坦克,基于物理的答案是不可能的。有几个答案解决了转向的物理学问题,但所有这些答案都隐含着一个假设,即系统具有无限的力量。坦克真的能在1,-1下运行吗?它能立即达到这个速度吗,加速度也适用于转弯。

最后,踏面既有宽度,也有长度。这意味着在任何转弯的情况下,你都会得到一些踏面的侧滑,转弯越快,需要的滑移就越多。这会在急转弯中消耗能量,即使发动机有能力转一圈,因为摩擦损失,它也不会转得那么快。

票数 4
EN

Stack Overflow用户

发布于 2008-09-24 02:55:17

代码语言:javascript
复制
Change in angle (in radians/sec) = (l-r)/(radius between treads)
Velocity = l+r

对于dtheta,假设你的两只手之间有一根木杆,你想要计算它旋转了多少,这取决于你的手按压的力度和方向-你想要弄清楚:

每秒你在杆子上覆盖的表面距离是多少转/秒,也就是->多少弧度/秒(即乘以2pi)。

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

https://stackoverflow.com/questions/125099

复制
相关文章

相似问题

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