Le Projet "Robot Mobile"

Comment savoir où se trouve le mobile ?



  1. Présentation du problème

    Le mobile se déplace dans un carré de côté C. Pour repérer la position du mobile, deux balises sont disposées en O1 et O2. Le problème est de trouver les coordonnées x et y du robot (figuré par le point M), connaissant les angles de visée de chaque balise.
    On peut positionner les balises différemment, en les plaçant à chaque extrémité de la diagonale. Mais il faut l'éviter car on ne peut alors pas déterminer la position du robot lorsqu'il se trouve sur cette diagonale. Voir l'étude correspondante.


  2. Résolution mathématique du problème

    Les balises mesurent les angles a et b qui sont comptés positifs dans le sens trigonométrique. Lorsqu'une balise vise la diagonale, l'angle vaut zéro. Cela permet de ne pas avoir d'angle qui pourrait approcher les 90° ce qui poserait des problèmes au niveau du calcul des tangentes



    La résolution va se faire en deux temps :
    Tout d'abord on va calculer les coordonnées du point M dans le repère (O1,X',Y'). Dans ce repère, les angles a et b varient de -45° à +45°.
    Ensuite, on va effectuer un changement de repère pour trouver les coordonnées du point M dans le repère (O1,X,Y).

    Soit D la diagonale du carré : D = C . Ö2
    On a tout d'abord les relations suivantes, en utilisant les triangles (01 M' M) et (O2 M" M).
    tga = y' / x'
    tgb = ( D/2 - x' ) / ( D/2 + y' )
    C'est un système de deux équations à deux inconnues x' et y' que l'on peut résoudre par substitution :
    y' = x' . tga
    ( D/2 + y' ) . tgb = D/2 - x'

    En reportant la valeur de y' dans la deuxième équation, on obtient :
    ( D/2 + x' . tga ) . tgb = D/2 - x'
    x' . ( 1 + tga . tgb ) = D/2 . ( 1 - tgb )

    D'où :
    x' = D/2 . ( 1 - tgb ) / ( 1 + tga . tgb )
    On en déduit la valeur de y' en reprenant la première équation du système :

    y' = x' . tga = D/2 . ( 1 - tgb ) . tga / ( 1 + tga . tgb )
    Finalement, on a :
       x' = D/2 . ( 1 - tgb ) / ( 1 + tga . tgb )   
       y' = D/2 . ( 1 - tgb ) . tga / ( 1 + tga . tgb )   

    Il reste maintenant à faire le changement de coordonnées :
    Plaçons nous dans le cas général où l'on souhaite passer du repère (O1,X',Y') au repère (O1,X,Y), en premant en compte l'angle q entre les deux repères. Les coordonnées du point M sont connues dans le repère (O1,X',Y') et on cherche à les déterminer dans le repère (O1,X,Y). Utilisons les vecteurs directeurs unitaires i, i', j, j' des axes X, X', Y et Y' :


    Les vecteurs i' et j' peuvent être définis en fonction de i et j :
    i' = cosq . i + sinq . j
    j' = -sinq . i + cosq . j
    Le point M peut être défini de la manière suivante :
    OM = x'.i' + y'.j'
    En remplaçant i' et j' par leur expression en fonction de i et j, on obtient :
    OM = x'.(cosq . i + sinq . j) + y'.(-sinq . i + cosq . j)
    OM = (x'.cosq - y'.sinq) . i + (x'.sinq + y'.cosq) . j
    D'où finalement :
       x = x' . cosq - y' . sinq   
       y = x' . sinq + y' . cosq   


    Remarque : la position du mobile ne peut pas être déterminée lorsqu'il se trouve sur le côté O1 O2 du carré. C'est une position qu'il faudra interdire.


  3. Simulation avec un tableur

    Application numérique : C = 2 m ; q = 45°




  4. Algorithme pour l'acquisition des angles et le calcul du point