Accueil
TODO section
U.W.R project
Download
Section
ScreenShots
Contact
Section
Member
Section
|
Untitled Document
Dynamique
du véhicule |
|
|
|
I
Première approche
II
Deuxième approche
|
|
|
Première
approche |
|
Les
lois de la physique n’existe pas dans notre monde virtuel, c’est
à nous de les créer. La méthode que nous allons déployer
est la suivante :
- Déterminer
les forces qui s'appliquent sur le chacune des parties du système
: {chassis + 4 roues + moteur}.
- Appliquer
le principe fondamentale de la dynamique.
- Intégrer
l'ensemble et déterminer la nouvelle situation du véhicule.
|
|
Les
référenciels: c'est une des choses les plus importantes.
Première le référenciel du monde virtuel est :

|
Comme
vous pouvez le constater, le repère du monde virtuel est orienté
main gauche, il faudra donc garder en mémoire que les produits
scalaires et vectoriels ne donneront pas les même résultats.
Il serait trop coûteut de faire une conversion à chaque itération,
donc on reste en repère main gauche. Donc soit alpha l'angle de
rotation autour de Ywc (wc = world coordinate) on aura :
Xcc = Xwc * cos( alpha+Pi/2) + Ywc * sin(alpha - Pi/2)
Ycc = Ywc * cos( alpha+Pi/2) - Xwc * sin(alpha - Pi/2)
Voilà
pour ce qui est du monde, passons au repére lié au véhicule
:
|
|
Dans
ce repère Zcc (cc = car coordinate) pointe vers nous, donc on est
en repère main droite, comme c'est un repère tampon on peut
ce le permettre. C'est à dire, à la différence du
repère précédent ici on ne fera que des calculs liés
à la physique du véhicule, alors que dans le l'autre repère
est utilisé par tous les modules du jeu ( affichage graphique,
gestion des caméras...) si on souhaite modifier le répère
lié au monde, autant choisir une autre librairie que directx (ou
opengl d'ailleur). On utilise les notations suivantes :
l = demi
largeur du véhicule, distance entre le centre de gravité
et les partie latérales du chassis.
L1 = distance entre le centre de gravité et l' avant du chassis.
L2 = distance entre le centre de gravité et l' arrière du
chassis.
L2+L1 = longueur totale du véhicule.
2 * l = largeur totale du véhicule.
Première
approximation
: on considère que l'essieu des roues avant est situé au
niveau de l'avant du véhicule et idem pour l'arrière. Même
si ce n'est pas le cas au niveau graphique.
Maintenant passons au repère lié aux roues :
|
|
On
notera beta l'angle de braquage des roues, ici la matrice de changement
est plus simple :
Xwr[i] = Xw[i] * cos(beta) + Yw[i] * sin(beta)
Ywr[i] = Yw[i] * cos(beta) - Xw[i] * sin(beta)
avec i =
{1,2,3,4} , Xw[i] = Xcc et Yw[i] = Ycc en terme de vecteur.
Bon maintenant, on a tout ce qu'il nous faut pour passer à la suite.
|
|
La
problèmatique:
Maintenant
il faut déterminer les forces appliquées à notre
véhicule, mais comment faire:
- Tout d'abord
on va isoler le moteur, comme ca on déterminera ca vitesse de
rotation et le couple qu'il génère.
- Ensuite
on isole les roues, on pourra ainsi déterminer les forces qui
s'appliqueront sur le chassis
- Finalement
on isole le chassis et on applique les forces issuent des roues plus
les forces de frottement de l'air et autres résistances.
Tout à
l'air assez simple vu comme ca, mais pour déterminer la vitesse
de rotation du moteur, il nous faut celle des roues et pour avoir celle
des roues il nous faut le couple moteur ... on tourne un peu en rond,
donc on aura des équations différenciels qu'il faudra résoudre
avec des méthodes numériques.
|
|
|
|
Bilan
des forces: en cours d'élaboration. |
Equations
de la dynamique: en cours d'élaboration. |
Intégration:
en cours d'élaboration. |
|
Deuxième
approche |
|
|
Space
partitioning : |
Collision
Detection : |
Collision
Reaction :
http://www.d6.com/users/checker/dynamics.htm |
|
|
|
|
|
|
|
|
|
|
|
|