# Roomba

Le Roomba est un robot aspirateur fabriqué par la société spécialisée dans les robots militaires et d'exploration spatiale, iRobot. La 1re version du Roomba a été introduite en 2002 et, depuis, plusieurs mises à jour et de nouveaux modèles ont été mis sur le marché. En 2009, plus de cinq millions d'exemplaires du Roomba ont été vendus dans le monde.

## Historique

Introduit en 2002, le Roomba atteint le million d'exemplaires vendus en 2004. En 2009, il fait partie des robots les plus vendus au monde, avec plus de cinq millions d'exemplaires vendus

## Description

Le Roomba a la forme d'un disque de 34 cm de diamètre et 9 cm de haut. Un large détecteur de choc ainsi qu'un capteur infrarouge sont montés sur la partie avant. Une poignée et les boutons de contrôle sont logés sur la face supérieure de l'appareil. La face inférieure comporte deux roues principales à suspension et le mécanisme d'aspiration composé de deux brosses contrarotatives. La partie arrière accueille le bac à poussière amovible. En fonction des modèles, le Roomba peut être accompagné d'un à trois « Murs virtuels » permettant d'interdire certaines zones de la maison à l'appareil, par un faisceau infrarouge.
Le Roomba utilise une batterie interne NiMH et doit être rechargé régulièrement. Cependant, les deuxième et troisième générations de Roomba possèdent une station de recharge que l'appareil peut retrouver automatiquement grâce à son capteur infrarouge. Le chargement complet dure environ trois heures pour les modèles récents contre 12 heures pour les Roomba de première génération.

## Mode de fonctionnement

Les première et seconde générations de Roomba fonctionnaient en déposant l'appareil où cela semblait utile et en pressant un des boutons :
* « clean » (mode standard consistant à nettoyer toute la surface accessible en suivant la logique embarquée dans l'appareil)
* « spot » (mode permettant le nettoyage d'une zone spécifique par des déplacements concentriques)
* « max » (similaire à « clean » mais jusqu'à épuisement total de la batterie)
La troisième génération de Roomba ne dispose plus du mode de fonctionnement « max » mais intègre le nouveau mode « dock » permettant d'ordonner au robot de retourner à sa station de recharge.
Les deuxième et troisième générations de Roomba peuvent être programmées (sur certaines versions uniquement). Cela permet de déclencher le fonctionnement de l'appareil à une heure et un jour précis même en l'absence de l'utilisateur.
Lorsque les boutons « clean », « spot » ou « max » sont pressés, le Roomba se met en marche. Le détecteur de choc frontal permet d'éviter murs et meubles, quatre capteurs spéciaux permettent d'éviter une chute dans les escaliers, alors que les « murs virtuels » infrarouges limitent les déplacements de l'appareil dans une zone définie par l'utilisateur. Les « murs virtuels » les plus évolués peuvent être programmés avec le Roomba et sont capables de s'ouvrir et de se refermer automatiquement afin de guider le Roomba dans les différentes pièces de la maison, les unes après les autres.
Les deuxième et troisième générations intègrent un détecteur supplémentaire chargé d'identifier des zones particulièrement sales et ainsi de déclencher le mode automatique « DIRT DETECT ». Ce mode a pour effet de concentrer le nettoyage sur la zone en question pendant un temps donné. Par la suite, le Roomba reprend son mode de fonctionnement initial.
Contrairement à d'autres robots aspirateurs, le Roomba ne cartographie pas les pièces qu'il nettoie. Son fonctionnement repose sur une série d'algorithmes heuristiques simples tels que les déplacements spiralés, le suivi d'un mur, le changement de direction à la suite de la détection d'un obstacle, etc.
Ce modèle de fonctionnement est basé sur des recherches du MIT et la philosophie générale du fabricant iRobot qui consistent à dire que les robots doivent se comporter comme des insectes, c'est-à-dire avoir des mécanismes de contrôle simples permettant une adaptation immédiate à leur environnement. Il en résulte une bonne efficacité et un comportement proche de celui d'un humain: pendant un cycle de nettoyage donné, certaines zones sont couvertes plusieurs fois, d'autres une seule fois et occasionnellement, certaines ne sont pas couvertes. Une utilisation régulière du Roomba assure donc un taux de couverture de la surface proche de 100 %.
Sur la première génération de Roomba, l'utilisateur doit saisir manuellement la taille de la pièce à nettoyer. Les deuxième et troisième générations calculent automatiquement le temps de nettoyage idéal en fonction des distances parcourues et de la quantité de poussière détectée. De plus, si une station de recharge est détectée le robot essayera d'y retourner de manière autonome, en fin de cycle. Enfin, une télécommande permettant le contrôle manuel et à distance du robot est aussi disponible sur les deux dernières générations.

## Modèles
### Première génération

La première génération de Roomba, introduite en 2002, comporte trois boutons permettant la saisie de la taille de la pièce. Elle comporte les versions Original, Pro et Pro Elite.

### Deuxième génération

La deuxième génération, introduite en 2004, remplace la précédente en juillet 2004 et apporte un plus grand bac à poussière, une amélioration de l'algorithme par le calcul automatique de la taille de la pièce, la station de recharge et la détection automatique des zones sales (mode DIRT DETECT). Elle est surnommée Discovery.

### Troisième génération

La troisième génération (série 5xx) de Roomba a été introduite en 2007 et intègre de nouvelles fonctions telles que la détection d'obstacles à distance (capteur infrarouge supplémentaire), la fonction DOCK et l'amélioration des éléments mécaniques responsables du déplacement et du nettoyage. Les modèles 560 disposent aussi d'un départ différé en fonction du jour et de l'heure et d'une fonction qui permet d'attendre qu'une pièce soit totalement propre avant de passer à la pièce suivante.

## Programmation et personnalisation

Les Roomba fabriqués après octobre 2005 contiennent une interface électronique et logicielle permettant la modification du firmware et ainsi, le contrôle, la modification du comportement et la lecture des données recueillies par les capteurs du robot. Cette fonction, appelée iRobot Roomba Open Interface par le constructeur, a été introduite afin d'encourager les programmeurs et ingénieurs en robotique à apporter leurs propres améliorations au Roomba.