Intégration Microsoft Kinect avec Raspberry Pi pour détection humaine temps réel sur robot Sonbi
A. Objectif
Notre but était d'embarquer une pile logicielle complète sur le Raspberry Pi du robot Sonbi, connecter un Microsoft Kinect, et permettre au robot de saluer les gens en agitant les bras lorsqu'il détecte un humain debout devant le capteur.
B. Système matériel
- Raspberry Pi avec stockage flash 8 Go
- Contrôleur servo 24 canaux Pololu Maestro
- Microsoft Kinect (caméra RGB, capteur profondeur, émetteur IR, réseau multi-micro, accéléromètre)
- Alimentation ATX 500 W
- Cartes d'essai, câblage, et composants mécaniques
Spécifications Raspberry Pi
- Processeur cœur ARM1176JZF-S 700 MHz
- 512 Mo SDRAM
- Entrée alimentation MicroUSB 5 V
- Ethernet, HDMI, et deux ports USB pour périphériques
- Tourne sous Raspbian OS – support communautaire étendu
Pololu Maestro 24
- 24 canaux servo indépendants
- Taux d'impulsion jusqu'à 333 Hz
- Mémoire script jusqu'à 8 Ko
- Jusqu'à 1,5 A par canal
- Options entrée USB ou header alimentation
- Scriptable via API native ou firmware personnalisé
Connexion Raspberry Pi au Pololu
- Câblage série TTL simple : alimentation, masse, Tx-Rx, Rx-Tx
- Libérez la console série par défaut du Pi en éditant
/etc/inittabet/boot/cmdline.txt - Référez-vous à ce tutoriel pour instructions détaillées
Fonctionnalités Microsoft Kinect
- Caméra RGB (résolution 1280×960) pour imagerie couleur
- Émetteur IR et capteur profondeur pour cartographie distance 3D
- Réseau 4 micros pour capture audio et localisation source sonore
- Accéléromètre 3 axes (±2 G) pour détection orientation
- Plage inclinaison verticale : 27°
- Fréquence d'images : 30 fps
C. Intégration Kinect avec Raspberry Pi
Comme les drivers natifs du Kinect sont Windows-only, l'installation des bibliothèques requises sur un Raspberry Pi Linux est chronophage mais essentielle. Les étapes suivantes décrivent le processus.
1. Installer les drivers Kinect
- Choisissez entre Libfreenect (driver user-space) ou OpenNI (framework haut niveau). Nous avons installé les deux pour flexibilité maximale.
- Libfreenect supporte images RGB/profondeur, contrôle moteur, accéléromètre, et LED ; support audio expérimental.
- OpenNI fournit support SDK multiplateforme pour profondeur, audio, et suivi squelette.
2. Compiler Libfreenect
sudo apt-get install git-core cmake pkg-config build-essential libusb-1.0-0-dev git clone https://github.com/OpenKinect/libfreenect cd libfreenect mkdir build cd build cmake -L .. make # optional: cmake --build . 3. Compiler OpenNI
sudo apt-get install g++ python libusb-1.0-0-dev freeglut3-dev cd Platform/Linux/CreateRedist ./RedistMaker sudo ./install.sh # optional: make mono_wrapper && make mono_samples D. Pile logicielle et exécution
Le robot démarre un script bootscript_sonbi.sh qui lance le module de détection de visage :
python facedetect.py --cascade=face.xml 0 Téléchargez le fichier de cascade Haar pré-entraîné ici : face.xml. Le script stream le flux RGB du Kinect, détecte les visages en temps réel, et signale l'exécutable Sonbi pour activer les servos moteurs pour un salut amical.
E. Résumé des actions
Lorsqu'un humain est détecté, le Kinect capture une image avec profondeur, l'algorithme de détection confirme un visage, et le Pololu Maestro commande les servos bras du robot Sonbi pour effectuer un salut accueillant. Cette intégration démontre la faisabilité d'utiliser du matériel grand public pour la robotique interactive.
Processus de fabrication
- Intégration MQTT transparente : capteurs NodeMCU DHT22 avec Raspberry Pi 3 B+ comme broker
- Profilage température Raspberry Pi précis avec Python, SQLite et LabVIEW
- Journaliser et graphiquer les événements d'un thermostat 24 V avec un optocoupleur et Raspberry Pi
- Construire un capteur de température distant avec Raspberry Pi et Python – Guide étape par étape
- Surveillance météo à distance avec Raspberry Pi 3 et PubNub
- Intégration du TI SensorTag à Blynk via Node‑RED sur Raspberry Pi Zero
- Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
- Construire un système de surveillance température et lumière multi-capteurs avec Raspberry Pi et DS18B20
- Capteur d'occupation de salle de bain basé sur Raspberry Pi avec alertes vocales et SMS via Twilio