2008-09-24 20 views
5

¿Alguien conoce la fórmula utilizada para controlar el movimiento de un simple vehículo tipo tanque?¿Fórmula para controlar el movimiento de un vehículo tipo tanque?

Para 'guiarlo', debe modificar la fuerza aplicada a las "ruedas" izquierda y derecha. P.ej. 1 unidad de fuerza en ambas ruedas lo hace avanzar. -1 unidades de fuerza en ambas ruedas lo hacen retroceder. Aplica más fuerza a una rueda que a la otra y gira.

¿Cómo calcularía la cantidad de fuerza necesaria en ambas ruedas para girar el tanque un cierto número de grados en ambos sentidos?

¿O estoy pensando en esto de la manera incorrecta?

editar: Como mencionó William Keller, perdí la velocidad del tanque. Suponga que 1 unidad de fuerza en ambas ruedas mueve el tanque hacia delante a 1 unidad por segundo.

Para cualquiera que esté interesado, acabo de encontrar este hilo en 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

Otro hilo: http://www.physicsforums.com/showthread.php?t=220317

Resulta que la clave para encontrar la fórmula fue el hecho de saber la terminología correcta ("skid steer"): P

+0

Por favor, no etiquetar su pregunta con todos los idiomas bajo el sol para obtener más exposición! –

+0

Ese no era el punto del etiquetado. Esperaba que alguien diera un ejemplo en un lenguaje tipo C, porque esto es lo que el programa está escrito (C++ convertido a C#) Es por eso que no incluí los lenguajes funcionales. – ilitirit

+0

¿Has tenido en cuenta las unidades negativas? Las pistas de tanques están diseñadas para que puedan invertirse, ¡independientemente de la otra pista! –

Respuesta

1

Para una dirección por deslizamiento del vehículo que se requiere para convertir en radio 'r' a una velocidad dada 'Si' de la interior de la rueda/pista, la pista exterior debe ser accionado a velocidad 'So':

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

Detalles:

En Skid de Dirección, una vez se lleva a cabo por las ruedas exteriores/pista viajar más distancia que las ruedas interiores/pista.

Además, la distancia adicional recorrida se completa al mismo tiempo que la pista interior, lo que significa que las ruedas/pistas exteriores deben correr más rápido.

Circle circunferencia circunscrita por pista "interior": circunferencia

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

círculo circunscrito por pista "exterior":

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. 

Además, c2 = X * c1, que dice que c2 es proporcional más grande que c1

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

Por lo tanto, para un vehículo con dirección deslizante que se requiere a su vez en el radio 'r' en 's' una velocidad dada del interior de la rueda/carril, la pista exterior debe ser accionado a:

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

Dónde:

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

Bueno, tenga en cuenta que también está hablando de la duración aquí. Necesita averiguar las fuerzas que toman en cuenta la velocidad a la que el tanque gira (1, -1).

I.E., si el tanque tarda un segundo en girar 360˚ a (1, -1), y desea girar 180˚ en un segundo, (.5, -.5) haría el truco. Si quisiera girar la misma cantidad en medio segundo, entonces (1, -1) funcionaría.

Esto es aún más complicado si utiliza abs (lrate)! = Abs (rrate), en cuyo caso es probable que tenga que sacar un lápiz.

4

Lo estás pensando de la manera incorrecta. El hecho es que las diferentes cantidades de fuerza en las pistas no harán que el tanque tenga un cierto número de grados. Por el contrario, la fuerza diferente alterará la TASA de turno.

La relación entre la fuerza y ​​la velocidad de giro variará según la mecánica del tanque. Cuanto más ancho es el tanque, más lento gira. Cuanto más rápido es el tanque, más rápido gira.

P.S. Algunos más pensamientos sobre esto: no creo que una respuesta basada en la física sea posible sin basarla en un tanque del mundo real. Varias de las respuestas abordan la física del giro, pero existe la suposición implícita en todas ellas de que el sistema tiene un poder infinito. ¿Puede el tanque realmente operar a 1, -1? Y puede alcanzar esa velocidad al instante; la aceleración también se aplica a los giros.

Finalmente, las bandas de rodamiento tienen longitud y ancho. Eso significa que vas a obtener un deslizamiento lateral de las bandas de rodamiento en cualquier situación de giro, cuanto más rápido sea el giro, más se requerirá dicho deslizamiento. Eso va a quemar energía en un giro brusco, incluso si el motor tiene la potencia para hacer un giro de 1, -1, no giraría tan rápido como lo indicaría debido a las pérdidas por fricción.

0

Ha pasado un tiempo desde que hice alguna física, pero habría pensado que las fuerzas de las dos pistas que se mueven en direcciones opuestas dan como resultado un par de torsión alrededor del centro de masa del tanque.

Es este momento de torsión el que da como resultado el momento angular del tanque, que es simplemente otra forma de decir que el tanque comienza a girar.

+0

¡Creo que entiende tanto! –

0

No es una cuestión de fuerza, depende de la diferencia de velocidad entre los 2 lados y de cuánto tiempo se mantenga esa diferencia (también el ancho del tanque, pero eso es solo un parámetro constante).

Básicamente, debe calcular a lo largo de estas líneas:

  • La relación de velocidad entre los 2 lados es la misma que la relación de radios.
  • El ancho del tanque es la diferencia real entre los 2 rasiuses (sp?).
  • Usando esos 2 números, encuentre los valores reales para el radio.
  • Multiplique la velocidad de uno de los lados por el tiempo que se movía para obtener la distancia que recorrió.
  • Calcula qué parte de un círculo completo recorrió al dividirlo en el perímetro de ese círculo.
0

Yo diría que estás pensando en ello de la manera incorrecta.

Aumentar la diferencia de velocidad entre las dos bandas de rodamiento no causa grados de giro, que, combinados con el tiempo (distancia a diferentes velocidades), provocan grados de giro.

Cuanta más diferencia en la velocidad de la banda de rodadura, menos tiempo se necesita para alcanzar X grados de giro.

Por lo tanto, para obtener una fórmula, debe hacer algunas suposiciones. O gire a una velocidad fija, y use el tiempo como su variable para girar X grados, o establezca una cantidad fija de tiempo para completar un giro, y use la diferencia de velocidad de la pista como su variable.

2
Change in angle (in radians/sec) = (l-r)/(radius between treads) 
Velocity = l+r 

Para el dtheta, imagina que tenía un palo de madera entre sus dos manos, y si desea calcular cuánto gira dependiendo de la fuerza y ​​de qué manera sus manos están presionando - que desea averiguar:

cuánta distancia de la superficie en el polo de cubrir por segundo -> ¿cuántas rotaciones/seg que es -> cuántos radianes/s (es decir, mult por 2 pi)

+0

velocidad es (l + r)/2 creo – lajos

+0

podría estar equivocado, pero estoy al menos en el estadio –

1

Así es como me gustaría atacar el problema del tanque.

El centro del tanque probablemente se moverá según la velocidad promedio de las pistas derecha e izquierda. Al mismo tiempo, el tanque girará en el sentido de las agujas del reloj alrededor de su centro entre ([velocidad de seguimiento izquierda] * - [velocidad de seguimiento correcta])/[ancho].

Esto debería darle velocidad y un vector de dirección.

de responsabilidad: No he probado esto ...

0

Se podía mirarlo diciendo: cada pista describe un círculo. En el caso en que una pista esté girando (digamos a la izquierda) y la otra no, entonces la orientación dependerá de cuánto y hasta qué punto giran las pistas a la izquierda.

Esta distancia será la velocidad de las pistas x tiempo.

Ahora dibuja un triángulo con esta distancia, y la distancia entre ejes pautado, más algo de seno y coseno ecuaciones & aproximaciones, y es posible obtener una ecuación aproximada como:

frente al cambio = distancia recorrida por pistas/distancia entre ejes

entonces se podría incorporar algunas accelleration es más realista: la física ... más

La velocidad no es constante - es accellerates (y decellerates).

es decir, durante un período de tiempo la velocidad aumenta de 0 a 0.1 ... 0.2 ... 0.3 hasta un límite.

Por supuesto, a medida que la velocidad cambia, la velocidad de cambio del revestimiento también cambia - un poco más realista que la velocidad (y, por lo tanto, la tasa de cambio del revestimiento) es completamente constante.

En otras palabras, en lugar de controlar la velocidad, el jugador controla con el cambio en velocidad. Esto haría que la velocidad pasara de 0 ... 0.02 ... 0.06 ... 0.1 etc. a medida que el jugador empuja el controlador. Del mismo modo para la desaceleración, pero un poco más rápido, probablemente.

Espero que esto ayude.

0

Creo que todos deben tener en cuenta que los tanques pueden encender un círculo de radio cero: aplicando la misma velocidad en cada pista pero en direcciones opuestas, los tanques pueden encender un centavo.

Cuestiones relacionadas