next up previous contents
Next: 2.2 Calcul des consignes Up: 2. La génération de Previous: 2. La génération de   Contents

2.1 Calcul de l'angle et de la distance

Pour réaliser cette trajectoire, il suffit donc de calculer l'angle $\theta$ duquel il faut tourner sur place et la distance $d$ qu'il faut parcourir en ligne droite.

Pour la distance, la formule est assez simple :

\begin{displaymath}d = \sqrt{(x_{n}-x_{n-1})^2 + (y_{n}-y_{n-1})^2}\end{displaymath}

Pour l'angle, ça n'est pas beaucoup plus compliqué :

\begin{displaymath}\theta = fmod\_pmpi\left( atan2(y_n-y_{n-1},x_n-x_{n-1}) - \theta_{n-1} \right)\end{displaymath}

Le fmod_pmpi externe permet de minimiser la rotation en ramenant toujours l'angle dans l'intervalle $[-\pi;+\pi]$. On évite ainsi au robot de tourner de $3\pi/2$ au lieu de $-\pi/2$.

atan2 est une arc-tangente un peu particulière qui est implémentée dans la majorité des langages. Contrairement à l'arc-tangente classique qui est modulo $\pi$, cette version améliorée est modulo $2\pi$ et retourne en général 2.2 un angle compris entre $-\pi$ et $+\pi$. En lui indiquant une ordonnée et une abscisse, cette fonction très pratique retrouve l'angle correspondant sur le cercle trigonométrique.



Coco 2002-12-06