End-User Robot Programming
- Detto anche: end-user programming, EUP
- Categoria: Control › Human in the loop
- Tag: human-robot-interaction, robot-programming, usability, collaborative-robots, programming-by-demonstration
Metodi e strumenti che permettono a persone senza competenze di robotica o di programmazione di creare, adattare e riassegnare da sole i comportamenti dei robot, dove e quando ne hanno bisogno.
Definizione
La programmazione dei robot da parte dell'utente finale (end-user robot programming) è l'area della robotica e dell'interazione uomo-computer che si occupa di permettere alle persone che usano davvero i robot, come operai, tecnici, insegnanti o caregiver, di dire a un robot che cosa fare senza bisogno di competenze di programmazione specialistiche. Applica ai robot le idee dello sviluppo da parte dell'utente finale nel software, con la differenza che nei robot i programmi devono anche fare i conti con il movimento fisico, la percezione, l'incertezza e la sicurezza.
Esistono molti approcci, spesso combinati tra loro. La programmazione per dimostrazione permette agli utenti di mostrare il compito, per esempio con l'insegnamento cinestetico, in cui muovono il braccio a mano, oppure con la teleoperazione. Gli ambienti di programmazione visuale, compresi gli editor a blocchi e gli strumenti a diagramma di flusso o a linea temporale, permettono agli utenti di comporre le azioni graficamente. I teach pendant dei bracci industriali e collaborativi offrono sempre più spesso modelli di compito in stile procedura guidata. Regole trigger-azione, interfacce di realtà aumentata che mostrano i movimenti pianificati sul posto e interfacce in linguaggio naturale, oggi spesso costruite su modelli linguistici di grandi dimensioni che generano codice o piani di compito, sono ulteriori opzioni. Behavior tree e macchine a stati fungono spesso da rappresentazione sottostante del programma.
Le sfide centrali sono l'espressività, perché gli utenti possano descrivere compiti reali; la correttezza, perché ciò che creano faccia quello che intendevano; e la sicurezza, perché un programma scritto da un non esperto non crei pericoli come collisioni, violazioni dei limiti dei giunti, velocità eccessiva vicino alle persone o punti di schiacciamento. Gli approcci a queste sfide comprendono anteprime in simulazione, verifica e controllo automatici dei programmi, critici o validatori che codificano conoscenze esperte e forniscono feedback, e il mantenimento dell'utente nel ciclo per confermare o correggere il risultato. L'insegnamento cinestetico, su questo sito, è un metodo di input all'interno della programmazione da parte dell'utente finale; il campo più ampio copre anche il modo in cui i programmi vengono rappresentati, modificati, controllati e mantenuti.
Perché è importante
I robot nelle piccole fabbriche, nei laboratori, nelle case e nei contesti di assistenza devono essere riassegnati spesso a nuovi compiti, e ingaggiare specialisti di robotica per ogni modifica non è pratico. La programmazione da parte dell'utente finale determina se un robot può essere adattato dalle persone che lavorano con lui, ed è il punto in cui i requisiti di usabilità e di sicurezza si incontrano più direttamente.
Applicazioni principali
- Riassegnazione dei compiti dei bracci collaborativi nella piccola e media manifattura
- Programmazione di robot sociali e di servizio per contesti specifici
- Robotica educativa e insegnamento della programmazione
- Robot assistivi personalizzati da caregiver o utenti
- Automazione di laboratorio configurata dagli scienziati
In pratica
Una piccola officina di elettronica usa un braccio collaborativo per l'asservimento macchine. Un tecnico descrive un nuovo compito in linguaggio semplice: prendere le schede da un vassoio, metterle in un tester e smistarle in due contenitori in base al risultato. Un modello linguistico trasforma la descrizione in un programma nel framework dei compiti del robot. Prima dell'esecuzione, un insieme di critici automatici controlla il programma in simulazione alla ricerca di collisioni, raggiungibilità, velocità vicino alla posizione dell'operatore e punti di schiacciamento tra il braccio e il tester, e segnala i problemi in linguaggio semplice. Il tecnico corregge i passi segnalati portando a mano il braccio su waypoint corretti, visualizza in anteprima il movimento in una vista AR e poi lo esegue a velocità ridotta per i primi cicli.
Idee sbagliate comuni
- La programmazione da parte dell'utente finale è solo un'interfaccia utente più semplice — servono anche modi per controllare, fare il debug ed eseguire in sicurezza ciò che creano i non esperti
- Il linguaggio naturale risolve la programmazione dei robot — i programmi generati possono essere sbagliati o non sicuri e richiedono comunque controlli, feedback e conferma da parte dell'utente
- La programmazione per dimostrazione e la programmazione da parte dell'utente finale sono la stessa cosa — la dimostrazione è un approccio; altri comprendono interfacce visuali, basate su regole e in linguaggio naturale
- Agli utenti finali basta registrare movimenti — i compiti reali richiedono anche condizioni, percezione, gestione degli errori e cicli
Chi dovrebbe saperlo
- Sviluppatori di strumenti e interfacce di programmazione dei robot
- Ingegneri applicativi che installano cobot con operatori non esperti
- Ricercatori di HRI e HCI
- Product manager di robot di servizio e collaborativi
Tecnologie correlate
- Programmazione per dimostrazione (Programming by Demonstration)
- Programmazione visuale a blocchi (Block-Based Visual Programming)
- Teach pendant
- Interfacce di realtà aumentata (Augmented Reality Interfaces)
- Modelli linguistici di grandi dimensioni per la generazione di codice (Large Language Models for Code Generation)
- Programmazione trigger-azione (Trigger-Action Programming)
Termini correlati
Progetti correlati
- Reachy Mini: Open-source desktop robot from Pollen and Hugging Face with an expressive 6-DoF head
- RAI: Vendor-agnostic agent framework for ROS 2 robots and physical AI
- Assistive Gym: Physics simulation framework for training assistive robots in caregiving tasks