Différences entre versions de « Projet 4A - Repérage par camera »

De Polybot Grenoble
Sauter à la navigation Sauter à la recherche
Ligne 7 : Ligne 7 :
  
 
Suivant le règlement de la coupe de robotique de France, tous les robots verront attribuer un marqueur, qui est placé au sommet du support de balises.  
 
Suivant le règlement de la coupe de robotique de France, tous les robots verront attribuer un marqueur, qui est placé au sommet du support de balises.  
 +
 +
[[Fichier:Position du support de balises.png|sans_cadre|centré|300px]]
  
 
Ces marqueurs permettent à un système de vision présent sur le mât central d’identifier et de localiser chaque robot.  
 
Ces marqueurs permettent à un système de vision présent sur le mât central d’identifier et de localiser chaque robot.  
  
 +
[[Fichier:Terrain de jeu.png|sans_cadre|centré|700px]]
  
 
Le but est de créer ce système de vision pour identifier le positionnement de chaque robot, et un réseau pour envoyer ces coordonnées. Cette information peut être utilisée pour mieux synchroniser les deux robots à notre disposition, leur permettant de mieux collaborer, et pour éviter des collisions avec des robots adversaires.  
 
Le but est de créer ce système de vision pour identifier le positionnement de chaque robot, et un réseau pour envoyer ces coordonnées. Cette information peut être utilisée pour mieux synchroniser les deux robots à notre disposition, leur permettant de mieux collaborer, et pour éviter des collisions avec des robots adversaires.  
  
 
Le système peut aussi être utilisé pour identifier des éléments de jeu et changer les actions des robots. Par exemple, cette année, le terrain de jeu dispose une girouette qui s’arrête de tourner après le début du match pour indiquer dans quel sens souffle le vent. La direction du vent (nord ou sud), indique l’emplacement d'arrêt des robots à la fin du match ainsi que le positionnement des certains éléments du jeu. La girouette est disposée d’un tag ARUCO.  
 
Le système peut aussi être utilisé pour identifier des éléments de jeu et changer les actions des robots. Par exemple, cette année, le terrain de jeu dispose une girouette qui s’arrête de tourner après le début du match pour indiquer dans quel sens souffle le vent. La direction du vent (nord ou sud), indique l’emplacement d'arrêt des robots à la fin du match ainsi que le positionnement des certains éléments du jeu. La girouette est disposée d’un tag ARUCO.  
 +
 +
[[Fichier:Girouette .png|sans_cadre|centré|700px]]
  
 
Notre plan est de placer une caméra sur un de nos robots, capter l’angle d'arrêt de la girouette et transmettre l’information à l'autre robot afin d'exécuter les correctes actions. Le fait d’avoir cette information a notre disposition va nous permettre de gagner de points.
 
Notre plan est de placer une caméra sur un de nos robots, capter l’angle d'arrêt de la girouette et transmettre l’information à l'autre robot afin d'exécuter les correctes actions. Le fait d’avoir cette information a notre disposition va nous permettre de gagner de points.

Version du 8 avril 2020 à 19:36

Le but du projet

EN CONSTRUCTION

[INTRO]

ARUCO est une librairie OpenSource qui permet la détection des marqueurs rectangulaires dans une image. Le projet est développé à l'Université de Cordoba en Espagne. Il s’agit des librairies des marqueurs (tags) et des algorithmes qui permettent leur détection et suivant une procédure d'étalonnage l’estimation précise de la position des tags et de la caméra qui les détecte.

Suivant le règlement de la coupe de robotique de France, tous les robots verront attribuer un marqueur, qui est placé au sommet du support de balises.

Position du support de balises.png

Ces marqueurs permettent à un système de vision présent sur le mât central d’identifier et de localiser chaque robot.

Terrain de jeu.png

Le but est de créer ce système de vision pour identifier le positionnement de chaque robot, et un réseau pour envoyer ces coordonnées. Cette information peut être utilisée pour mieux synchroniser les deux robots à notre disposition, leur permettant de mieux collaborer, et pour éviter des collisions avec des robots adversaires.

Le système peut aussi être utilisé pour identifier des éléments de jeu et changer les actions des robots. Par exemple, cette année, le terrain de jeu dispose une girouette qui s’arrête de tourner après le début du match pour indiquer dans quel sens souffle le vent. La direction du vent (nord ou sud), indique l’emplacement d'arrêt des robots à la fin du match ainsi que le positionnement des certains éléments du jeu. La girouette est disposée d’un tag ARUCO.

Girouette .png

Notre plan est de placer une caméra sur un de nos robots, capter l’angle d'arrêt de la girouette et transmettre l’information à l'autre robot afin d'exécuter les correctes actions. Le fait d’avoir cette information a notre disposition va nous permettre de gagner de points.

Participants

Prénom & Nom Filière
Errikos Messara IESE-4
Pedro Lopes IESE-4

Tuteur: Sylvain Toru

Cahier des charges

Architecture du système

Schéma .png

Travail réalisé

Le choix du matériel

Détection des tags

Traitement des données

Le réseau

Support mécanique

Modèle 3d de la boite conceptualisée pour supporter la caméra, la Raspberry Pi et une batterie usb

Evaluation de la performance

Améliorations possibles

Mode d'emploi

Installation par image disque (recommandé)

Installation manuelle

  1. Mise à jour du système d’exploitation et des paquets installés:
    sudo apt update, sudo apt upgrade
  2. Recompiler et installer la plus récente version de OpenCV et ses depandances avec des options d’optimisation (procédure longue >1h). Guide à suivre
    1. Pour activer des options de multithreading il faut ajouter les flags WITH_TBB=ON, WITH_OPENMP=ON, pendant la génération du makefile. Ces flags de compilation permettent à OpenCV de fonctionner en multithreading. De plus, les flags ENABLE_NEON=ON, ENABLE_VFPV3=ON, forcent la librairie d’utiliser d’instructions spécifiques à l'architecture ARM, qui en conséquence améliorent la performance.
      Liste des flags complète :
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON \
    -D BUILD_TESTS=OFF \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D CMAKE_SHARED_LINKER_FLAGS=-latomic \
    -D WITH_TBB=ON \
    -D WITH_OPENMP=ON \
    -D BUILD_EXAMPLES=OFF ..
3. Installer imutils
pip3 install imutils

Programmes de base

Calibrage

Pendant la coupe