Position caméra

adsofts
Modifié (May 2023) dans Géométrie
Bonjour à tous
Travaillant sur un petit robot auquel je souhaite "donner la vue", je suis bêtement bloqué sur un calcul qui, je crois devrait etre simple, et pourtant mon petit cerveau n'y arrive pas ... alors j'espère avoir un peu d'aide ici :smile:

Pour simplifier l'explication, disons que la tête de mon robot ne peut tourner que de gauche à droite et que tout ce qui suit s'entend en regardant du dessus (je vais ajouter un petit schéma même si je pense que vous allez comprendre rapidement).

Initialement, mon robot regarde devant lui un objet placé dans son centre de vision (centre du carré si on considère que son champ de vision est un carré). De plus, son œil est aussi aligné avec le centre du carré et donc l'objet
Si cet objet se déplace horizontalement d'une distance connue, comment calculer l'angle de rotation de la tête pour que l'objet se retrouve à nouveau au centre du champ de vision de mon cher robot ?

Vous l'aurez certainement compris, je tente de faire du tracking [suivi ?] d'objet et je suis en train d'essayer de position les servo-moteurs qui gère les rotations de la tête de mon robot pour qu'il "regarde" toujours droit vers l'objet que je veux lui faire traker  [suivre] ... 

Encore une fois je pense que la solution doit être relativement simple, probablement une projection sur un cercle trigo ou un truc dans le genre, mais bon, le collège est loin ... :blush:
Merci à ceux qui voudrons bien se pencher sur mon petit souci.

[L' "object"  d'outre-Manche s'écrit "objet" en français. :)  AD]

Réponses

  • On va noter $R$ la position du robot. Le point tout en bas du dessin donc, si j'ai bien compris le dessin.
    Tu connais la distance $d(x_1,x_2)$ , tu sais aussi que l'angle entre $(R,x_1)$ et $(x_1,x_2)$ est un angle droit. Tu ne le dis pas, mais visiblement, dans ton dessin, c'est supposé.
    Et du cherches l'angle $(x_1,R,x_2)$
    Le premier problème, c'est que ça ne suffit pas. Tu imagines bien que si on a une distance $(x_1,x_2)$ de 10 cm, si c'est à partir d'un point qui est à 20cm du nez du robot, ou à 5m, ça ne donne pas le même angle.

    Le deuxième problème qui va probablement arriver assez vite, c'est que l'angle entre $(R,x_1)$ et $(x_1,x_2)$ est peut-être un angle droit au tout début de l'expérience, mais ce ne sera probablement plus vrai quelques secondes plus tard. 
    Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. Benjamin Franklin
  • Bonsoir @lourrran
    Et pour commencer, merci pour ta réponse.
    En fait, mon idée était de considérer un cercle dont le centre est l'oeil du robot (donc la pointe du triangle ou se rejoignent les 3 lignes de couleur sur mon schéma)...appelons ce point "Origine" et la position initiale de l'object (Objet) est sur le périmètre de se cercle. Si je déplace l'object sur une tangente de ce cercle (donc perpendiculaire à l'axe passant par Origine et Objet) je devrais pouvoir projeter la nouvelle coordonnée (si je ne m'occupe que de la translation sur cette tangente) et ensuite en déduire l'angle ... après peut-etre que je me fais des films et que ce n'est clair que dans ma tête :smile:

    Ceci dit, si cela peut aider, je peux avoir une notion de "profondeur" dans mes calculs. Je suis capable de calculer la différence de distance par rapport à l'oeil entre les 2 positions de l'objet.


  • lourrran
    Modifié (May 2023)
    $\newcommand{\dist}{\mathrm{dist}}$Cette notion de profondeur est indispensable.

    Je reste sur mes notations, où le point en bas est R.
    Si tu sais mesurer en plus une notion de profondeur, alors c'est bon. 
    Sauf que, j'ai l'impression qu'il va y avoir encore un petit problème.
    Tu sais que l'objet a bougé d'une certaine distance  $\dist(x_1, x_2)$, en mètres.
    Si tu sais mesurer la distance $\dist(R, x_1)$ en mètres, ça va, on va trouver les équations.
    Si tu sais mesurer la distance $\dist(R, x_2)$ en mètres, pareil.
    Si tu sais mesurer la différence de distance $\dist(R, x_2)-\dist(R, x_1)$ en mètres, pareil.
    Si tu sais mesurer le rapport de distance $k=\frac{\dist(R, x_2)}{\dist(R, x_1)}$, pareil.

    Et je pense que c'est ce dernier calcul qui va te permettre d'avancer.
    Si on connait ce rapport $k$, alors l'angle en bas $\alpha$ est donné par $\alpha = arccos( \frac {1}{k})$

    Si tu sais mesurer la différence de distance $\dist(R, x_2)-\dist(R, x_1)$ en mètres, c'est à dire la même unité que pour la distance $\dist(x_1, x_2)$, alors les calculs sont un peu plus compliqués.
    Je vais noter  $a= \dist(x_1, x_2)$ et $c=\dist(R, x_2)-\dist(R, x_1)$
    alors $\alpha = \arctan (\frac{2ac}{a^2-c^2})$.
    Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. Benjamin Franklin
Connectez-vous ou Inscrivez-vous pour répondre.