Robot mobile évitant les obstacles par vision sur Raspberry Pi
Résumé
Ce rapport présente la conception et l'implémentation d'un robot mobile low‑cost utilisant la vision par ordinateur pour détecter et éviter les obstacles. Alimenté par un Raspberry Pi et une webcam USB, le système démontre comment du matériel peu onéreux peut permettre une navigation autonome en intérieur, comme dans des entrepôts, sans opérateur humain.
Introduction
Les robots autonomes commerciaux sont souvent chers et adaptés à un seul environnement, s'appuyant sur des capteurs passifs (ultrasons, infrarouge) pour l'évitement de collision (Wang et al., 2011). Les avancées récentes de l'embarqué permettent d'exécuter des algorithmes de vision performants sur des plateformes bon marché. Une approche par vision détecte les obstacles bien avant qu'ils ne soient à proximité immédiate, offrant une solution plus robuste pour la navigation en intérieur.
Solution proposée & Artefact
L'objectif est de construire un robot autonome détectant les obstacles via une webcam USB connectée à un Raspberry Pi. Le processus de développement a impliqué :
- Conception d'un algorithme de vision par ordinateur avec SimpleCV pour identifier les obstacles.
- Portage de l'algorithme sur le Raspberry Pi.
- Implémentation du contrôle moteurs CC via Python GPIO.
- Test et évaluation des performances sur le Pi.
Les objectifs clés ont été atteints :
- Portée de détection ajustable via paramètres d'algorithme.
- Obstacles marqués d'un cercle de taille constante pour identification facile.
- SimpleCV interface le Pi pour commander deux moteurs CC.
- Performance validée à diverses distances d'obstacles.
Pile matérielle et logicielle
Matériel
- Kit Raspberry Pi
- Webcam USB
- Deux moteurs CC
- Driver pont en H
- Châssis et câblage
- Plaque d'essai et câbles
Logiciel
- Bibliothèque Python SimpleCV
- Ubuntu / Raspberry Pi OS (Raspbian)
- Python 2.7
Principe de l'algorithme de vision
L'algorithme a d'abord été développé sur un portable Ubuntu, puis porté sur le Pi grâce à la compatibilité Linux. Il identifie un marqueur circulaire placé sur les obstacles, binarise l'image pour isoler la forme, et calcule son rayon pour estimer la distance. L'écran est divisé en trois zones verticales ; la position horizontale du cercle détermine l'action de direction du robot.
Compte tenu du processeur 700 MHz et 512 Mo RAM du Raspberry Pi limitant le traitement haute résolution, une résolution 320×240 a été choisie pour équilibrer précision de détection et stabilité du taux de rafraîchissement.
Configuration expérimentale
Un banc de test a mesuré la relation entre la surface en pixels du cercle et sa distance physique au robot. En rapprochant ou éloignant l'obstacle, le mapping pixel‑distance de l'algorithme a été calibré, permettant une estimation précise de la distance depuis une seule vue caméra.
Flux de fonctionnement du système
En fonctionnement, la webcam USB envoie les images au Pi. SimpleCV scanne chaque image pour le marqueur circulaire. À la détection, le Pi calcule la position du marqueur, puis actionne le pont en H pour commander les moteurs gauche, droit ou avant selon le cas.
Conclusion
Le projet démontre qu'un Raspberry Pi, une webcam USB et SimpleCV forment un système d'évitement d'obstacles viable et économique, adapté à la robotique d'intérieur. Les travaux futurs pourraient étendre l'algorithme à la détection d'obstacles non marqués et intégrer la fusion de capteurs pour une fiabilité accrue.
Processus de fabrication
- Vision robotique dans l'industrie : de la vision à l'auto-programmation
- Construire un robot évitant les murs avec Raspberry Pi – Guide pas à pas
- gatoBot : Robot Raspberry Pi Zero W piloté par web avec vidéo en direct
- Robot de tri de recyclage propulsé par Google Coral Edge TPU
- Collaboration mobile : réduire les temps d'arrêt maintenance et booster les opérations globales
- Système d'Évitement d'Obstacles par Intelligence Artificielle (Q-Learning) sur Arduino
- Robot de Désinfection UV Piloté par Arduino Mega : Système Germicide Télécommandé
- Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
- KUKA KMR iiwa : bras robotique collaboratif mobile pour l'Industrie 4.0