Des tags ArUCO (en rouge) sont placés sur le plateau et les éléments de jeu. Pour situer ces tags, des modules sont placés sur des balises (en bleu ou jaune) : Plateau de jeu 2024
Chaque balise est montée d'un module contenant :
- Une caméra
- Un module XBee (S1 Pro)
- Une batterie LiFePO4
- Un Raspberry Pi Zero (OpenCV et OpenCV contrib)
Installation
Pour utiliser la librairie ArUCO, il faut installer :
- La librairie custom XBee
- La librairie OpenCV avec OpenCV contrib :
# Installe Cmake
sudo apt install cmake libgtk2.0-dev
git clone https://github.com/opencv/opencv.git
mkdir opencv/build && cd opencv/build && mkdir modules
git clone https://github.com/opencv/opencv_contrib.git
mv opencv_contrib/modules/aruco modules
cmake -DOPENCV_EXTRA_MODULES_PATH=./modules ..
sudo make install # Ajouter -j3 accélère la compilation mais peut faire crasher la Raspberry Pi
Le processus d'installation peut prendre plusieures heures sur une Raspberry Pi. {.quote .quote-WARNING} Il est aussi possible de cross-compiler OpenCV (non testé).
Calibration
Pour avoir une meilleure détection, il est nécessaire de calibrer la caméra :
- Définir les paramètres dans
data/config.yml
- Générer une grille ArUCO avec
./ArUCO board
- Démarrer la calibration avec
./ArUCO calibrate
- Prendre plusieurs point de vue avec
c
- Calculer les paramètres en appuyant
ECHAP
Si tout s'est bien passé, un fichier data/camera_params.yml
a été créé contenant les paramètres de la caméra (matrice de projection, distorsion, etc...).
Utilisation
./ArUCO estimate
permet de lancer le script de détection et d'estimation de la position des tags ArUCO.
Les paramètres sont repris de data/camera_params.yml
et data/config.yml
et les positions sont données par rapport à un tag de référence (ref_marker_id
).