Bonjour,
Je mets en ligne une solution que j'ai développé pour me faire la main à javascript.
L'objectif 1° : Faire rejoindre des balises virtuelles à un robot minimaliste.
Matériel nécessaire : Un PC avec Webcam et port USB ou Bluetooth + navigateur Chrome + un robot éventuellement muni d'une led flash.
Pré-requis : Savoir installer une extension chrome (chrome://extensions puis sélectionner avancé puis décompacter le répertoire joint puis lancer l'application)
Principe : Une webcam track le robot, Javascript récupère les données utiles à la track, en déduit l'angle de direction du robot en fonction du repère orthogonal (2D, x, y), en déduit l'angle le séparant des balises au préalable placées avec la souris par surimpression à la vidéo transmise par la webcam.
Pilotage électronique : Le robot équipé d'une arduino par exemple, récupère le signal qui peut être de différentes formes (radio fréquence, bluetooth, wifi (non testé)). Les données récupées sont l'angle de déplacement du robot et l'angle du robot le séparant de la balise.
Avec ces données, plusieurs algorithmes sont possibles, simple avec une logique floue très sommaire, une régulation PI ou PID, ou autre plus complexe !
Limite d'emploi : Le tracking est simple donc pour supprimer les erreurs de tracking il ne faut qu'un seul objet avec une lumière si le tracking se fait avec la lumière (le tracking peut être fait sur une couleur primaire également (rouge/vert/bleu)). Il faut bien accorder les fréquences d’échantillonnages en fonction de la la vitesse de déplacement du robot, lors de sa rotation, aucun angle n'est pris en compte ou ne doit l'être. Pour avoir une bonne précision il faut que le robot avance de qq centimètres, sinon le calcul de l'angle sera peu précis.
D'autres limites peuvent apparaitre, mais ce n'est qu'une première version !
Quelques images pour illustrer tout ça, mais pour les faibles budget ou ceux qui veulent appronfondir la programmation sans se prendre la tête dans la confection d'un robot (2 servomoteurs +2 roues suffisent... <10€)
Si vous souhaitez + d'infos, n'hésiter pas.
Bonne soirée,
ludovic