Robot Aspirateur

Etude de système — Sciences de l'Ingénieur

Le robot aspirateur autonome représente une application concrète et moderne des concepts fondamentaux enseignés en Sciences de l'Ingénieur. Il intègre en un seul produit des domaines variés tels que la mécanique, l'automatique, l'informatique embarquée et les réseaux, en faisant un objet d'étude pédagogique idéal pour comprendre la complexité et l'interdisciplinarité des systèmes pluri-technologiques.

Ce cours a pour objectif de décomposer le fonctionnement de ce système automatisé, depuis la perception de son environnement jusqu'à l'exécution des tâches de nettoyage, en passant par la prise de décision et la gestion de l'énergie. Nous analyserons les solutions techniques mises en œuvre pour répondre aux contraintes de coût, d'autonomie et d'efficacité, en illustrant les compromis inhérents à tout projet d'ingénierie.

Principe de fonctionnement général

Un système automatisé de service

Le robot aspirateur est un système automatisé mobile dont la mission est de nettoyer une surface (sol) de manière autonome. Son cycle de fonctionnement typique comprend : le démarrage (manuel ou programmé), la phase de nettoyage, le retour à la station de charge lorsque la batterie est faible, la recharge, et souvent la reprise du nettoyage jusqu'à achèvement de la mission. Il doit gérer des événements comme les obstacles, les zones interdites ou les commandes utilisateur.

Architecture système

On peut le modéliser selon l'approche SYSML ou le schéma classique Chaîne d'Information / Chaîne d'Énergie. La chaîne d'information (capteurs, unité de traitement) pilote la chaîne d'énergie (moteurs, pompe à aspiration, brosses). Le tout est coordonné par un programme ou un automate séquentiel (GRAFCET).

Les capteurs : la perception de l'environnement

Capteurs de contact et de proximité

  • Bumper (capteur tactile) : Détecte les chocs contre les obstacles. Il s'agit souvent d'un interrupteur à came ou d'un capteur à effet Hall actionné par le déplacement du pare-chocs.
  • Capteurs infrarouges (IR) : Utilisés pour la détection d'obstacles à courte distance (évitement), pour le suivi de mur ou pour détecter les « zones interdites » délimitées par un ruban réfléchissant.

Capteurs de position et de déplacement

  • Gyroscope / Accéléromètre : Mesure l'orientation angulaire et l'accélération. Essentiel pour estimer la trajectoire (odométrie) et corriger la dérive, surtout dans les modèles sans SLAM avancé.
  • Encodeurs incrémentaux : Sur les roues motrices, ils mesurent la distance parcourue et la vitesse de rotation.

Capteurs de télédétection avancés

  • Caméra (vision) : Permet la reconnaissance de formes, le suivi de caractéristiques du sol ou, couplée à un algorithme, la cartographie visuelle (vSLAM).
  • LiDAR (Light Detection and Ranging) : Scanne l'environnement avec un laser rotatif pour créer une carte précise en 2D. C'est le capteur phare des modèles haut de gamme pour la navigation par SLAM.

Algorithmes de navigation et de déplacement

Navigation aléatoire ou réactive

C'est la méthode la plus simple et la moins coûteuse. Le robot avance jusqu'à rencontrer un obstacle (détecté par bumper ou IR), puis effectue une rotation aléatoire ou prédéfinie avant de repartir. L'efficacité du nettoyage repose sur la loi des grands nombres et un temps de fonctionnement suffisant. Il n'y a pas de cartographie ni de mémoire du parcours.

Navigation systématique et cartographiée (SLAM)

SLAM (Simultaneous Localization and Mapping) est l'algorithme clé des robots plus intelligents. Le robot construit une carte de son environnement tout en se localisant dedans en temps réel.

  • Localisation : Fusion des données des encodeurs, gyroscope et capteurs externes (LiDAR, caméra).
  • Cartographie : Création d'une carte (grille d'occupation) à partir des données du LiDAR ou de la caméra.
  • Planification de trajectoire : Une fois la carte connue, l'algorithme peut calculer un parcours optimal en « lignes de tonte » (boustrophédon) ou en zone, évitant les passages inutiles.

Chaîne d'énergie : propulsion, aspiration et alimentation

Propulsion et motricité

Deux moteurs à courant continu (DC) à aimants permanents indépendants entraînent les roues motrices (gauche/droite). Leur commande en vitesse (via un pont en H ou un driver) permet les virages différentiels. Une ou plusieurs roues folles assurent l'équilibre.

Système de nettoyage

  • Moteur d'aspiration : Un moteur DC ou un moteur à balais créant une dépression pour aspirer les poussières.
  • Brosse latérale : Petite brosse rotative (mue par un micro-moteur) pour dégager les saletés des angles et les ramener vers la zone de passage.
  • Brosse principale : Brosse en forme de rouleau, souvent à entraînement par courroie, qui soulève les saletés du tapis.

Alimentation et gestion de l'énergie

Une batterie Li-ion (14.4V à 22V typiquement) offre un bon compromis énergie/masse. Un circuit de charge gère la recharge à la station de contact. Un régulateur de tension (convertisseur DC/DC) fournit les tensions stabilisées (5V, 3.3V) nécessaires à l'électronique. Des capteurs de courant/tension surveillent l'état de la batterie.

Chaîne d'information : traitement et commande

Architecture matérielle

Le cerveau du robot est un microcontrôleur (type ARM Cortex-M) ou un processeur embarqué plus puissant pour les modèles avec SLAM. Il est connecté aux capteurs (bus I2C, SPI, UART) et aux actionneurs via des interfaces de puissance (drivers).

Traitement des données

  • Acquisition : Lecture périodique des capteurs (numériques ou analogiques).
  • Fusion de capteurs : Combinaison des données (ex : odométrie + gyro) pour une estimation plus fiable de la position.
  • Pilotage des actionneurs : Génération des signaux de commande PWM pour les moteurs et la pompe.

Gestion des séquences avec le GRAFCET

Le comportement séquentiel (ex : « nettoyer jusqu'à batterie faible, puis chercher la base ») peut être modélisé par un GRAFCET. Les étapes représentent des modes (Nettoyage, Retour à la base, Recharge, Erreur) et les transitions sont conditionnées par des réceptivités (niveau batterie, détection d'obstacle, fin de timer).

Programmation et intelligence embarquée

Structure du programme principal

Le programme suit généralement une boucle infinie (supervision) qui appelle des modules : acquisition capteurs, algorithme de navigation, commande des moteurs, gestion de la batterie. Des interruptions gèrent les événements urgents (ex : choc avec bumper).

Implémentation des algorithmes

  • Aléatoire : Simple génération de nombres aléatoires pour les angles de virage.
  • SLAM : Utilisation de bibliothèques logicielles complexes (ex : ROS, algorithmes propriétaires) pour le traitement du nuage de points LiDAR ou des images.
  • Évitemment d'obstacles : Algorithmes réactifs du type « potential field » ou « bug algorithm ».

Gestion des états et mémoire

Le robot doit souvent mémoriser sa carte, ses paramètres et l'historique de nettoyage. Cela nécessite une mémoire non volatile (Flash) et une gestion de fichiers simple.

Connectivité : interface utilisateur et IoT

Connectivité WiFi et application mobile

La plupart des modèles récents intègrent un module WiFi. Cela permet :

  • Le contrôle à distance via une application smartphone (planification, démarrage/arrêt, sélection de pièces).
  • La visualisation en temps réel de la carte générée et du parcours.
  • La réception de notifications (nettoyage terminé, erreur).
  • Les mises à jour logicielles (OTA - Over The Air).

Architecture client-serveur

Le robot (client) se connecte au réseau local et souvent à un cloud du fabricant. L'application se connecte au cloud pour commander le robot, même à distance. Cela introduit des considérations sur la sécurité des données et la vie privée.

Autres interfaces

Boutons physiques sur le robot pour un contrôle basique, indicateurs LED, et parfois haut-parleur pour les messages vocaux.

Synthèse et compromis technico-économiques

Analyse des solutions techniques

Le choix des technologies est un compromis constant :

  • Capteurs : Bumper/IR (faible coût, faible intelligence) vs LiDAR/caméra (coût élevé, haute précision et intelligence).
  • Algorithme : Aléatoire (simple, longue durée de nettoyage) vs SLAM (complexe, nettoyage efficace et rapide).
  • Autonomie : Batterie capacité vs poids vs temps de charge.
  • Connectivité : Ajoute de la valeur mais augmente la complexité et les coûts de développement.

Évolution et perspectives

Les tendances actuelles vont vers l'amélioration de l'intelligence artificielle (reconnaissance d'objets pour les éviter), l'optimisation énergétique, et l'intégration dans la maison connectée (IoT) avec d'autres appareils.

Exercices d'application

Exercice 1

Comparez les avantages et inconvénients d'un algorithme de navigation aléatoire par rapport à une navigation basée sur le SLAM, d'un point de vue technique et économique.
Voir la correction

Navigation aléatoire :
Avantages : Simplicité algorithmique, faible besoin en puissance de calcul (microcontrôleur basique), coût très faible (capteurs simples : bumper, IR).
Inconvénients : Efficacité de nettoyage médiocre (recouvrement irrégulier, passages multiples ou zones oubliées), temps de nettoyage plus long pour une surface donnée, impossibilité de cartographier ou de nettoyer des pièces spécifiques sur demande.

Navigation SLAM :
Avantages : Efficacité de nettoyage optimale (parcours systématique), temps de nettoyage réduit, création d'une carte réutilisable (nettoyage par pièce, zones interdites virtuelles), expérience utilisateur enrichie (visualisation).
Inconvénients : Complexité algorithmique élevée, besoin en puissance de calcul (processeur plus performant), coût élevé des capteurs (LiDAR), consommation énergétique potentiellement plus importante, développement logiciel complexe.

Exercice 2

Proposez un GRAFCET de niveau 1 décrivant le comportement séquentiel simplifié d'un robot aspirateur (états : Attente, Nettoyage, Obstacle, Batterie Faible, Retour Base, Recharge). Précisez au moins trois réceptivités.
Voir la correction

GRAFCET simplifié :
- Étape 0 : Attente. Activité : Arrêt. Transition vers Étape 10 : [Démarrage appuyé].
- Étape 10 : Nettoyage. Activité : Avancer, aspirateur ON. Transitions : [Obstacle détecté] -> Étape 20 ; [Batterie < 15%] -> Étape 30.
- Étape 20 : Obstacle. Activité : Reculer légèrement, tourner d'un angle aléatoire. Transition : [Manoeuvre terminée] -> Étape 10.
- Étape 30 : Batterie Faible. Activité : Arrêter aspiration, calculer chemin vers base. Transition : [Chemin calculé] -> Étape 40.
- Étape 40 : Retour Base. Activité : Suivre chemin vers station. Transition : [Base détectée / Contacts alignés] -> Étape 50.
- Étape 50 : Recharge. Activité : Se positionner sur contacts, charger. Transition : [Batterie > 90%] -> Étape 0 (ou Étape 10 pour reprise).
Réceptivités exemples : "Démarrage appuyé" (bouton physique ou app), "Obstacle détecté" (signal du bumper ou des IR), "Batterie < 15%" (mesure de tension).

Exercice 3

Expliquez le rôle et le principe de fonctionnement d'un capteur de type "bumper" (pare-choc tactile). Quel type de signal délivre-t-il et comment est-il traité par la chaîne d'information ?
Voir la correction

Le bumper est un capteur de contact (tout-ou-rien) dont le rôle est de détecter une collision frontale ou latérale du robot avec un obstacle. Son fonctionnement mécanique est simple : un pare-chocs mobile est relié à un interrupteur (mécanique ou à effet Hall). Lors d'un choc, le pare-chocs se rétracte et actionne l'interrupteur.
Il délivre un signal logique TOR (Tout Ou Rien) : généralement 0V (pas de choc) / 3.3V ou 5V (choc détecté).
Dans la chaîne d'information, ce signal est connecté à une entrée numérique du microcontrôleur. Le programme peut le lire en continu ou via une interruption matérielle pour une réaction immédiate. Lorsque le signal passe à l'état haut, l'algorithme de navigation interrompt la routine de déplacement en cours et exécute une séquence d'évitement (ex : reculer, tourner).

Scientia