Trajectoire projetée d'un véhicule?

8

Dans le jeu que je développe, je dois calculer si mon véhicule (1) qui dans l'exemple se déplace vers le nord avec une vitesse V, peut atteindre sa cible (2). L'exemple décrit le problème du haut:

entrez la description de l'image ici

Il y a en fait deux scénarios possibles: V est constant (résultant en trajectoire 4, un arc de cercle) ou le véhicule a la capacité d'accélérer / décélérer (trajectoire 3, un arc de spirale).

Je voudrais savoir s'il existe un moyen simple de vérifier si le véhicule est en mesure d'atteindre sa cible (plutôt que de le dépasser) . Je m'intéresse particulièrement à la trajectoire n ° 3, car je ne pense qu'à intégrer la position du véhicule dans le temps.

EDIT: bien sûr, le véhicule a toujours la capacité de braquer, mais le rayon de braquage varie avec sa vitesse (pensez à une force g latérale maximale).

EDIT2: notez également que (comme la plupart des véhicules dans la vie réelle), il existe également un rayon de braquage minimum pour ceux du jeu).

Mac
la source

Réponses:

15

Si vous pouvez faire varier votre vitesse (donc votre angle de braquage) vous trouverez toujours une solution, à partir de celle dégénérée où l'entité est presque arrêtée de tourner en petit cercle jusqu'à pointer la cible.

Si vous ne pouvez pas varier votre vitesse, vous pouvez penser à des zones inaccessibles ou à des ombres que vous ne pouvez pas atteindre même en utilisant votre meilleure direction, si la cible se trouve dans ces zones, vous ne pouvez pas l'atteindre (à moins que "dépassement", vous pouvez même les dépasser et les sortir de la zone d'ombre).

Votre meilleure direction vous permet de tourner à gauche / à droite sur un arc de cercle, vous permettant de dessiner une circonférence complète:

ombres

Comme vous pouvez le voir, ce qui se trouve à l'intérieur de l'un des deux cercles ne peut pas être atteint directement.

Un corps de masse m qui se dirige sur une courbe de rayon de courbure r , subit une force centrifuge apparente radiale provoquée par le comportement inertiel du corps, égale à:

Fc = mV ^ 2 / r

où V est la vitesse du corps (la longueur du vecteur vitesse); étant l'accélération d'un corps due à une force étant:

a = F / m

notre accélération est:

a = V ^ 2 / r

Si nous disons que am est l'accélération maximale, nous obtenons que:

rm = V ^ 2 / am

où rm est le rayon minimal en utilisant l'accélération maximale.

Pour tester si le veicule en P se déplaçant à la vitesse V peut atteindre la cible en T, il faut:

1) calculer C1 et C2 comme:

c1 et c2

2) tester la distance minimale de P de C1 et C2 comme suit:

test de rayon

Si d est supérieur à rm, cela signifie que T est en dehors des deux ombres et est alors accessible par le véhicule en ajustant simplement la direction sous la contrainte de direction. (pour être plus précis, il existe un chemin sous contraintes qui laisse la fonction de la distance entre T et P décroître de façon monotone)

[MISE À JOUR]

S'il est possible de changer la vitesse, est toujours possible d'obtenir un arc (soit un couple accelleration vitesse / radiale) qui va de P à T . Cela est possible car le rayon devient un véritable degré de liberté.

C'est une construction possible:

chemin cible

La ligne noire est l'axe où le centre des cercles peut s'étendre: elle est perpendiculaire à l'orientation actuelle du véhicule et passe par son centre de rotation.

Le segment vert représente la ligne perpendiculaire à celle qui relie le centre du véhicule à la cible et passe au milieu de cette distance.

La ligne verte croise la noire exactement au centre de l'arc souhaité. La longueur du segment orange nous indique le rayon de braquage qui peut être atteint en régulant la vitesse et en tournant au braquage maximum ou en régulant à la fois la vitesse et le braquage pour rester sous la contrainte

FxIII
la source
Merci d'avoir pris le temps d'écrire cette réponse détaillée (+1). J'ai besoin de "l'étudier" un peu, mais dès la première lecture il me semble que votre première affirmation "vous trouverez toujours une solution ..." n'est pas forcément vraie: l'existence d'un rayon de braquage minimum implique qu'il y ait toujours sera une "zone d'ombre" dont la limite définira une sorte "d'orbite" autour de la cible ... Ou je me trompe? [C'est en effet le vrai problème pour moi, car les calculs pour V = k sont simples ...]
mac
@mac si la cible n'est pas au même endroit que votre véhicule, vous pouvez ralentir pour que rmin génère un cercle suffisamment petit pour ne pas contenir la cible. Lorsque vous êtes dans cette condition, vous pouvez définir votre vitesse de sorte que la cible repose exactement sur votre circonférence!
FxIII
@Fxill - Encore une fois, merci pour la mise à jour, si c'était possible, je vous donnerais un deuxième +1 pour la dédicace! :) Pourtant, je n'arrive pas à comprendre à partir de votre explication comment vous tenez compte à la fois de l'accélération et de la vitesse initiale: tout le problème repose sur le fait qu'avec le temps la vitesse va changer (arc de spirale). J'ai l'impression qu'il n'y a tout simplement pas assez d'espace pour que le véhicule ralentisse suffisamment / obtienne un rayon suffisamment petit pour intercepter la cible ... ou je me trompe?
mac
@mac permet de dire am = 1 puis rm = v ^ 2; si d = | PT | > 0 vous pouvez choisir v ^ 2 <d / 2; si d = 0 cela signifie que P = T donc vous avez déjà atteint votre objectif ...
FxIII
hahaha sans aucun doute que cela fonctionne! : D
FxIII