Salut,
Pour répondre au problème de savoir quel angle doit avoir le "volant" (donc les roues directrices par rapport à la voiture) pour suivre une trajectoire, on peut passer par le problème contraire : trouver la trajectoire que suivrait la voiture si ces roues directrices ont un certain angle.
Trouver la trajectoire à partir de l'angle des roues :
Pour simplifier le problème, on considère une roue directrice à l'avant et une roue droite à l'arrière (ie une moto).
A angle fixé, il est naturel de dire qu'une voiture "tourne en rond". La question est de savoir quel est le rayon du cercle formé. Et d'ailleurs ce rayon n'est pas le même pour la roue avant (R) et la roue arrière (r), d'après le schéma ci-dessous.
Notations : longueurs en noir; points en violet; vecteurs (unitaires) en rouge.
Pour déterminer le cercle de trajectoire, je me base sur le fait que les roues avant et arrières sont toujours tangentes aux cercles. Ça me permet de tracer deux droites qui se croisent au centre du cercle O.
Les segments forment donc un triangle OPQ :
- rectangle en Q
- dont l'angle en O est alpha, qui correspond à l'angle des roues directrices
- dont la longueur de PQ est L, la longueur entre les roues
C'est bon ! On a tout ce qu'il faut pour déterminer R et r par trigonométrie :
- R = L / sin(alpha)
- r = L / tan(alpha)
Voilà, donc tu as ce qu'il faut pour déterminer la trajectoire exacte de ta voiture selon sa longueur et l'orientation des roues directrices.
Trouver l'angle des roues à partir de la trajectoire :
Maintenant, on veut suivre une trajectoire donnée. Donc pour éviter les mouvement inutiles, on considère que les roues seront inclinées de la même manière jusqu'au prochain point. Donc alpha est fixé à une valeur inconnue, et le schéma est valide.
Comme je l'ai indiqué sur le schéma, orienter les roues vers le prochain point n'est pas bon puisque ce point n'est pas sur la trajectoire naturelle.
En revanche, on peut considérer que le point sera sur notre cercle mystère, donc à une distance R du point O.
Mais où ce trouve ce point O ?
- On sait qu'il est à la distance R à la fois de A[i] et de P. Donc il est sur la médiatrice du segment [A[i],P] d'après un théorème appris au collège

- On sait également qu'il est sur la droite passant par Q et perpendiculaire à (PQ)
Voilà ! O se trouve à l'intersection de ces deux droites (je te laisse faire les recherches si tu as besoin de voir comment calculer ça).
Et revenons à ce qu'on veut : alpha. Et bien il s'agit simplement de l'angle POQ, sachant que tu connais ces trois points.
Voilà, c'est un peu moins direct que ce que tu faisais, mais j'espère que ça vaut le coup
PS : Ces calculs sont valides seulement si la trajectoire est circulaire, donc si les roues ne sont pas droites (sinon, tu risques d'avoir des divisions par zéro). Donc si ta voiture est presque alignée avec ton point cible, alors tu peux éviter ces calculs et juste faire alpha=0.
Partager