FPV racing tracker pour nos courses !
Posté : sam. 22 nov. 2014 13:42
Salut,
Je travaille actuellement sur un système de tracker qui permettra la détection de nos engins lors des courses, je viens donc vous faire part de mes avancées.
Au début du projet, j'ai pensé utiliser un système infrarouge. Dans l'idée, chaques MiniQuads disposent d'un émetteur infrarouge, et sur le terrain sont disposés des récepteurs. Dans le principe, ça se passe comme une télécommande pour Tv, chaques MiniQuads = une chaîne différente et le récepteur interprète les données. Le gros avantage de L'infrarouge (IR) c'est qu'en intérieur notamment, le signal se réfléchit contre les parois et permet de bien capter. En extérieur c'est moins facile et de plus, il y a des émissions infrarouges parasites. Je n'ai donc pas tenter d'améliorer mon premier dispositif de détection sur base IR par ce que je ne voulais pas non plus d'une usine à transporter...arduino + batterie ....
Petite aparté : j'ai banni de ma réflexion l'utilisation de module RFID car d'après quelques recherches, les antennes qui permettent une bonne détection, avec les contraintes du terrain, coûtent chère...
Après des heures de recherche sur le net, sur les différents systèmes utilisés pour les courses de karting, courses à pieds ...etc. Je suis tombé sur une vidéo qui a
attiré mon attention :
Comment ça marche ?
Il s'agit d'un programme utilisant un librairie open source, "OPEN CV" qui inclue une série de fonction permettant de traiter les images capturées par une caméra (webcam ou autre ...) : détection de mouvement, filtre de couleur ... etc.
Ayant quelques notions en C++, je me suis donc lancé dans la création d'un programme dans cette idée.
Problématique :
Détecter et tracker le mouvement : pas de problème particulier, les librairies pour le traitement d'images sont équipées de fonctions qui permettent cela.
Différencier les participants : ... le plus compliqué...
Un collègue développeur m'a donné ce conseil lorsque l'on souhaite faire un programme : " Quel cheminement ton cerveau réaliserait pour faire l'action que tu veux programmer" :
- Je regarde ce qui bouge : caméra + fonction de la librairie
- Je différencie les concurrents, type de miniH, couleurs, formes ... : là s'est compliqué ... car différencier à l’œil nu 2 ptits trucs volant c'est pas la joie...
=> mon idée : utiliser des couleurs différentes pour chaque miniH = création d'un dossard (jaune, bleu, vert, rouge ...) ou ajouter des boules de couleurs en polystyrène ... voir tracker des leds de couleurs ...
Contrainte pour les couleurs :
- il faut que les contrastes avec le fond de l'image soit important pour avoir une bonne détection.
- En terme pratique, il serait plus simple d'avoir un lot de dossard, qui se fixerait rapidement avec des velcros et élastique sur nos zinzins... une sorte de carénage en toile de couleur.
Avancement du programme :
J'ai choisi de réaliser un programme pour 3 concurrents (mais facilement modifiable pour +) car j'ai trouvé des tuto avec des éléments que j'ai pu réutiliser.
Le programme peu aujourd'hui :
- Prendre en charge des pseudos 3 joueurs.
- détecter et tracker 3 différentes couleurs à paramétrer.
- Dessiner un ligne de détection sur la vidéo qui permet de compter les tours ( en cours de finalisation)
La suite :
- réaliser un test en extérieur ( ...météo pas top en ce moment)
- afficher des infos comme : nombres tours restants, meilleurs temps au tours, moyenne de temps par tours, position (1er, 2eme, 3eme)
- faire une interface ludique pour faciliter l'utilisation et le paramétrage du programme.
- gérer plusieurs caméra pour avoir plusieurs point de contrôle sur le circuit.
Voilà, j'avance petit à petit le weekend quand il ne fait pas beau ... je vous tiendrais au courant des avancées.
Voici les vidéos des tutos qui m'ont permis de réaliser le programme, en espérant que ça vous inspire aussi :
" onclick="window.open(this.href);return false;
" onclick="window.open(this.href);return false;
J'attends vos remarques et vos idées qui m'aideront sans nul doute à avancer dans le programme.
Bon weekend
A+ !
Tom
Je travaille actuellement sur un système de tracker qui permettra la détection de nos engins lors des courses, je viens donc vous faire part de mes avancées.
Au début du projet, j'ai pensé utiliser un système infrarouge. Dans l'idée, chaques MiniQuads disposent d'un émetteur infrarouge, et sur le terrain sont disposés des récepteurs. Dans le principe, ça se passe comme une télécommande pour Tv, chaques MiniQuads = une chaîne différente et le récepteur interprète les données. Le gros avantage de L'infrarouge (IR) c'est qu'en intérieur notamment, le signal se réfléchit contre les parois et permet de bien capter. En extérieur c'est moins facile et de plus, il y a des émissions infrarouges parasites. Je n'ai donc pas tenter d'améliorer mon premier dispositif de détection sur base IR par ce que je ne voulais pas non plus d'une usine à transporter...arduino + batterie ....
Petite aparté : j'ai banni de ma réflexion l'utilisation de module RFID car d'après quelques recherches, les antennes qui permettent une bonne détection, avec les contraintes du terrain, coûtent chère...
Après des heures de recherche sur le net, sur les différents systèmes utilisés pour les courses de karting, courses à pieds ...etc. Je suis tombé sur une vidéo qui a
attiré mon attention :
Comment ça marche ?
Il s'agit d'un programme utilisant un librairie open source, "OPEN CV" qui inclue une série de fonction permettant de traiter les images capturées par une caméra (webcam ou autre ...) : détection de mouvement, filtre de couleur ... etc.
Ayant quelques notions en C++, je me suis donc lancé dans la création d'un programme dans cette idée.
Problématique :
Détecter et tracker le mouvement : pas de problème particulier, les librairies pour le traitement d'images sont équipées de fonctions qui permettent cela.
Différencier les participants : ... le plus compliqué...
Un collègue développeur m'a donné ce conseil lorsque l'on souhaite faire un programme : " Quel cheminement ton cerveau réaliserait pour faire l'action que tu veux programmer" :
- Je regarde ce qui bouge : caméra + fonction de la librairie
- Je différencie les concurrents, type de miniH, couleurs, formes ... : là s'est compliqué ... car différencier à l’œil nu 2 ptits trucs volant c'est pas la joie...
=> mon idée : utiliser des couleurs différentes pour chaque miniH = création d'un dossard (jaune, bleu, vert, rouge ...) ou ajouter des boules de couleurs en polystyrène ... voir tracker des leds de couleurs ...
Contrainte pour les couleurs :
- il faut que les contrastes avec le fond de l'image soit important pour avoir une bonne détection.
- En terme pratique, il serait plus simple d'avoir un lot de dossard, qui se fixerait rapidement avec des velcros et élastique sur nos zinzins... une sorte de carénage en toile de couleur.
Avancement du programme :
J'ai choisi de réaliser un programme pour 3 concurrents (mais facilement modifiable pour +) car j'ai trouvé des tuto avec des éléments que j'ai pu réutiliser.
Le programme peu aujourd'hui :
- Prendre en charge des pseudos 3 joueurs.
- détecter et tracker 3 différentes couleurs à paramétrer.
- Dessiner un ligne de détection sur la vidéo qui permet de compter les tours ( en cours de finalisation)
La suite :
- réaliser un test en extérieur ( ...météo pas top en ce moment)
- afficher des infos comme : nombres tours restants, meilleurs temps au tours, moyenne de temps par tours, position (1er, 2eme, 3eme)
- faire une interface ludique pour faciliter l'utilisation et le paramétrage du programme.
- gérer plusieurs caméra pour avoir plusieurs point de contrôle sur le circuit.
Voilà, j'avance petit à petit le weekend quand il ne fait pas beau ... je vous tiendrais au courant des avancées.
Voici les vidéos des tutos qui m'ont permis de réaliser le programme, en espérant que ça vous inspire aussi :
" onclick="window.open(this.href);return false;
" onclick="window.open(this.href);return false;
J'attends vos remarques et vos idées qui m'aideront sans nul doute à avancer dans le programme.
Bon weekend
A+ !
Tom