Da anni, i Robotic Vacuum Cleaners (RVC) offrono una soluzione per la pulizia autonoma dei pavimenti domestici. Un sistema RVC tipico si compone di due elementi principali: il robot aspirapolvere e la sua stazione di ricarica. La stazione, collegata a una fonte di alimentazione, ricarica la batteria del robot.
Il robot è dotato di componenti meccaniche ed elettroniche, inclusi un computer e vari sensori. Un sensore a infrarossi anteriore individua ostacoli mentre un altro rileva spazi vuoti per prevenire cadute, ad esempio, dalle scale. Un sensore integrato monitora i livelli di carica della batteria, e il computer coordina i dati sensoriali per navigare e controllare le ruote. Un sensore addizionale misura direzione e distanza percorsa.
Il robot presenta tre interruttori principali: "on-off", "start" e "learn". Il pulsante "learn" inizia il processo di mappatura, permettendo al robot di esplorare e registrare la disposizione degli spazi da pulire. Questa mappatura impedisce al dispositivo di superare ostacoli fisici come muri o porte chiuse, e di cadere da dislivelli superiori a 1 cm.
Per efficacia, la procedura di mappatura parte dalla stazione di ricarica. Completata la mappa, il robot vi ritorna e si prepara per la pulizia. Premendo "start", il robot procede con la pulizia basandosi sulla mappa acquisita. Se la batteria si esaurisce, ritorna alla base per ricaricarsi, riprendendo poi il lavoro fino al completamento.
Lo sviluppo di un sistema RVC richiede la definizione di un documento di requisiti comprensivo di:
La progettazione inizierà con un focus a livello di sistema, che ingloba gli aspetti sia di hardware sia di software, per delineare i requisiti di alto livello. Seguirà la specifica dei requisiti software per ciascun componente che lo richieda. È importante che il documento di requisiti sia chiaro, completo, e privo di ambiguità, omissioni, o errori, per garantire che team esterni possano progettare, implementare, e testare l'applicazione efficacemente.
Per la documentazione e la modellazione si raccomandano strumenti come Signavio, Argo UML, Astah, Star UML, e Plant UML.