用于控制坦克式车辆运动的公式? [英] Formula for controlling the movement of a tank-like vehicle?

查看:69
本文介绍了用于控制坦克式车辆运动的公式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人知道用于控制简单的坦克式车辆运动的公式吗?

要转向"它,您需要更改施加在左右车轮"上的力.例如.两个车轮上都有1个单位的力使其前进.两个车轮上的-1单位力使其向后移动.向一个车轮施加比另一个车轮更大的力,然后车轮转动.

您如何计算两个轮子使油箱任一方向旋转一定角度所需的力?

还是我以错误的方式考虑这个问题?

正如威廉·凯勒(William Keller)提到的那样,我错过了坦克的速度.假设两个轮子上有1个单位的力使油箱以每秒1个单位的速度向前移动.

对于任何感兴趣的人,我都在gamedev.net上找到了这个线程: http://www.physicsforums.com/showthread.php?t=220317

事实证明,找到公式的关键是只知道正确的术语(滑移转向"):P

解决方案

对于要求以内轮/履带的给定速度"Si"以半径"r"转弯的滑移转向车辆,外履带必须以"So"的速度行驶:

So = Si * ((r+d)/r)

详细信息:

在打滑转向系统中,外轮/履带的行驶距离比内轮/履带的行驶距离远.

此外,额外的行进距离与内轨道同时完成,这意味着外轮/轨道必须运行得更快.

内部"轨道所限定的圆周长:

c1 = 2*PI*r
'r' is radius of circle origin to track/wheel

外"轨道所限定的圆周长:

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

X = c2 / c1
X = 2*PI*(r+d) / 2*PI*r
X = (r+d)/r

因此,对于要求以内轮/履带的给定速度"s"转弯半径"r"的防滑转向车辆,外履带必须以以下速度行驶:

So = Si * ((r+d)/r)

位置:

'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       *     * 
     *     *               *     * 
     *      *             *      * 
      *      ***       ***      *  
       *        *******        *   
        **                   **    
           ****         ****       
               *********           

Anyone know the formula used to control the movement of a simple tank-like vehicle?

To 'steer' it, you need to alter the force applied the left and right "wheels". Eg. 1 unit of force on both wheels makes it go forward. -1 units of force on both wheels makes it go backwards. Apply more force to one wheel than the other and it turns.

How would you calculate the amount of force needed on both wheels to turn the tank a certain number of degrees either way?

Or am I thinking about this in the wrong way?

edit: As William Keller mentioned I missed out the speed of the tank. Assume 1 unit of force on both wheels moves the tank forward at 1 unit per second.

For anyone who's interested, I just found this thread on 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

Another thread: http://www.physicsforums.com/showthread.php?t=220317

It turns out the key to finding the formula was just knowing the correct terminology ("skid steer") :P

解决方案

For a skid steered vehicle that is required to turn in radius 'r' at a given speed 'Si' of the Inner Wheel/Track, the Outer track must be driven at speed 'So' :

So = Si * ((r+d)/r)

Details:

In Skid Steering, a turn is performed by the outer wheels/track traveling further distance than the inner wheels/track.

Furthermore, the extra distance traveled is completed in the same time as the inner track, meaning that the outer wheels/track must run faster.

Circle circumference circumscribed by "Inner" track:

c1 = 2*PI*r
'r' is radius of circle origin to track/wheel

Circle circumference circumscribed by "Outer" track:

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.

Furthermore, c2 = X * c1, which says that c2 is proportionally bigger than c1

X = c2 / c1
X = 2*PI*(r+d) / 2*PI*r
X = (r+d)/r

Therefore for a skid steered vehicle that is required to turn in radius 'r' at a given speed 's' of the Inner Wheel/Track, the Outer track must be driven at :

So = Si * ((r+d)/r)

Where:

'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       *     * 
     *     *               *     * 
     *      *             *      * 
      *      ***       ***      *  
       *        *******        *   
        **                   **    
           ****         ****       
               *********           

这篇关于用于控制坦克式车辆运动的公式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆