la ricerca

Autonomia dei robot, cosa è e come misurarla

Ai robot industriali collaborativi e ai robot di servizio sono richieste capacità autonome molto avanzate. Vediamo quali e lo stato dell’arte dei metodi per misurarle, che saranno sempre più utili al mercato e alle aziende

Pubblicato il 03 Gen 2018

Francesco Amigoni

Politecnico di Milano, Dipartimento di Elettronica, Informazione e Bioingegneria

Andrea Bonarini

Politecnico di Milano, Dipartimento di Elettronica, Informazione e Bioingegneria

Giulio Fontana

Politecnico di Milano, Dipartimento di Elettronica, Informazione e Bioingegneria

Matteo Matteucci

Professore Associato, Docente di Artificial Neural Networks and Deep Learning, Politecnico di Milano

Viola Schiaffonati

Politecnico di Milano, Dipartimento di Elettronica, Informazione e Bioingegneria

Robotics_2017_149

Da lungo tempo la robotica ha varcato i cancelli delle fabbriche, e rappresenta un elemento chiave dell’industria moderna. Solo, però, nella sua accezione più limitata: quella che impiega il robot come una macchina automatica particolarmente sofisticata, ma incapace di qualunque decisione autonoma. Il concetto di autonomia è invece l’aspetto chiave dell’odierna ricerca in robotica: un robot autonomo è un robot in grado di percepire il suo ambiente, interpretare quanto ha percepito, prendere decisioni e metterle in atto. Il tutto senza alcuna supervisione umana, anche e soprattutto quando l’ambiente è totalmente o parzialmente ignoto, e quando le attività del robot devono adattarsi a eventi imprevisti. Ciò che caratterizza un robot autonomo è proprio questo: non la semplice capacità di operare senza supervisione umana (che molte macchine possiedono), bensì quella di gestire efficacemente l’incertezza.

L’autonomia è l’ingrediente indispensabile per l’evoluzione dei robot dalle applicazioni industriali tradizionali (in cui l’ambiente è completamente sotto controllo e gli imprevisti assenti o assai rari) a quelle della robotica di servizio, in cui il robot è chiamato a interagire direttamente con esseri umani e a operare in ambienti a misura d’uomo. Perfino le applicazioni strettamente industriali stanno cambiando in una direzione ‑quella delle produzioni on demand e flessibili‑ in cui l’approccio tradizionale non è più sufficiente. All’industria di oggi è richiesto di sapersi adattare rapidamente a richieste, prodotti e lavorazioni variabili nel tempo. Per far ciò, la robotica industriale deve diventare collaborativa: i robot del futuro dovranno saper lavorare a stretto contatto con l’uomo, garantendone la stessa sicurezza che oggi si ottiene usando gabbie metalliche di separazione.

In questo nuovo contesto, il ruolo tradizionale del robot industriale (quello di una macchina veloce e sofisticata, ma stupida e pericolosa per gli umani) perde significato. Nelle fabbriche del futuro a queste macchine si preferiranno sempre più spesso quelli che alcuni chiamano cobots, ovvero COllaborative roBOTS. Un cobot è un robot in grado di collaborare con gli esseri umani (ed eventualmente con altri robot) nelle attività di produzione: ad esempio, per svolgere i compiti più faticosi, lasciando al partner umano le attività più complesse, di maggiore impegno cognitivo e,  perché no?,  più soddisfacenti professionalmente. È evidente però che a un robot di questo tipo sono richieste capacità totalmente sconosciute ai suoi progenitori: quella di operare (e cooperare) in sicurezza tra le persone, e quella di lavorare in un ambiente parzialmente imprevedibile proprio perché popolato da altri agenti (umani e robot) il cui comportamento non è noto a priori.

Analoghe considerazioni valgono, a maggior diritto, per la robotica di servizio: qui le difficoltà e i problemi di sicurezza sono forse ancora più complessi. Infatti gli ambienti in cui gli esseri umani svolgono le loro attività non lavorative (sia domestici sia pubblici, quali una piazza o un centro commerciale) sono ancora meno adatti ai robot di quanto lo siano gli ambienti industriali, e ancor più difficilmente modificabili. Ad esempio, ben poche persone sono disposte a cambiare sostanzialmente l’organizzazione della propria casa per facilitare a un robot i propri compiti, e ancora meno sono le amministrazioni comunali pronte a deliberare costose opere pubbliche a questo scopo. In definitiva, a un robot di servizio progettato per operare in ambienti umani è richiesto di adattarsi a questi ambienti così come sono oggi, senza alcuna possibilità di modifica.

Siamo così tornati al punto di partenza: l’autonomia. Ai robot industriali collaborativi e ai robot di servizio sono richieste capacità autonome molto avanzate, tra cui

  • percepire e interpretare il proprio ambiente: ad esempio per distinguere un pezzo meccanico da un altro, o per seguire le indicazioni di un semaforo;
  • muoversi in sicurezza attraverso questo ambiente: ad esempio per consegnare un pezzo a un operatore umano, o per attraversare un’area affollata da pedoni in movimento;
  • decidere con intelligenza quali compiti svolgere e in che modo svolgerli, tenendo conto delle esigenze (molto spesso implicite) delle persone con cui interagisce: ad esempio per capire quale punto sorreggere di una macchina in fase di montaggio, o per decidere se adesso -magari durante una cena tra amici- è il momento giusto per pulire il pavimento del salotto;
  • gestire gli imprevisti durante l’esecuzione di quanto deciso: ad esempio evitando collisioni con operai distratti o con il gatto di casa, o scegliendo un itinerario alternativo quando quello previsto è ostruito.

I problemi appena elencati, già complessi se considerati ad uno ad uno, diventano estremamente difficili da risolvere quando devono essere affrontati tutti contemporaneamente, e in tempo reale: infatti, diversamente dal mondo immateriale di internet, il mondo fisico spesso non consente di “fermarsi a pensare un attimo”. Altrettanto diverse sono le conseguenze di un eventuale errore, che ‑a seconda dell’applicazione‑ possono arrivare a mettere in pericolo la vita delle persone. Diventa cruciale, pertanto, assicurarsi che un tale errore non si verifichi.

Per essere all’altezza di queste sfide, ai robot occorrono sensori sofisticati, attuatori affidabili, e grande potenza di calcolo: ma soprattutto algoritmi avanzati, flessibili e potenti. Gli algoritmi (e la loro implementazione sotto forma di software) sono la chiave per acquisire e fondere grandi moli di dati sensoriali eterogenei, interpretarle correttamente alla luce di sofisticati modelli del mondo, prendere le decisioni migliori e interagire con accuratezza e precisione con il mondo fisico. In breve, sono la chiave per dotare i robot di autonomia.

Da decenni la ricerca scientifica si occupa di robotica autonoma, raggiungendo risultati impressionanti. Tanto che pare essere giunto, finalmente, il momento di trasportare questi risultati dai laboratori al mercato. Un esempio oggi sotto gli occhi di tutti è costituito dalle automobili a guida autonoma, che sono a tutti gli effetti robot autonomi dedicati all’ambiente stradale (è buffo pensare il termine automobile, dopo più di un secolo dalla sua introduzione, abbia solo oggi assunto per intero il suo significato originario).

Un’auto autonoma è un robot dotato di intelligenza sufficiente a operare correttamente in un ambiente specifico: la strada. Questo ambiente è parzialmente imprevedibile (in particolare per quel che riguarda gli altri veicoli), ma contemporaneamente dotato di regole ben strutturate (dimensioni, segnaletica, codice della strada). Per questa ragione la strada, tra i molti ambienti umani, è uno di quelli più adatti all’introduzione di robot autonomi. Molti altri ambienti seguiranno: in molti si aspettano, in effetti, che nei prossimi decenni la robotica trasformi le nostre vite in misura pari a quanto lo ha fatto internet nei decenni appena trascorsi.

Nel momento in cui i robot autonomi diventano prodotti commerciali, problemi che in ambito di ricerca pura potevano essere ignorati senza conseguenze diventano non solo rilevanti, ma cruciali. Tra questi problemi vi è il seguente: affinché si crei un mercato per i robot autonomi, è necessario che i potenziali acquirenti siano messi in condizione di valutarne le capacità e confrontarne le prestazioni. Fare ciò risulta purtroppo ben più complesso di quanto possa sembrare inizialmente. Infatti è relativamente semplice definire parametri descrittivi e misure di performance significative per prodotti tradizionali: si pensi alla velocità massima o all’accelerazione di un’auto, oppure al consumo elettrico di un elettrodomestico, o anche alla precisione e ripetibilità di posizionamento di un robot industriale. Ma come è possibile fare lo stesso per un prodotto ‑un robot autonomo- che, per definizione, si comporta diversamente a seconda delle circostanze? Ancora più difficile è valutare l’autonomia di un robot, ovvero misurare la sua capacità di svolgere un compito in modo efficace non solo nelle condizioni ottimali, ma anche e soprattutto quando si verificano situazioni anomale o eventi imprevisti.

Qui entra in gioco il concetto di benchmarking. Da dizionario, un benchmark è “un problema o test standardizzato che funge da riferimento per la valutazione o la comparazione delle prestazioni di un sistema”. Un modo per valutare le prestazioni di un robot autonomo è infatti quello di definire dei benchmark, ovverosia dei problemi standard, di farli risolvere dal robot e di valutare il risultato. Il benchmarking, ovvero la definizione e l’uso di benchmark, è un’ottima soluzione al problema di valutare l’autonomia di un robot: e tuttavia nella sua applicazione rivela difficoltà non evidenti a prima vista. Tra esse: quali criteri (ovverosia quali metriche) utilizzare per valutare il risultato? In che modo è possibile comparare tra loro le prestazioni di robot che svolgono il compito parzialmente, e ne svolgono parti diverse? In che modo è possibile definire dei benchmark che mettano alla prova la capacità di un robot di reagire all’imprevedibile e all’inaspettato?

L’ultima tra le difficoltà sopra elencate è una di quelle più critiche. Infatti, per poter valutare l’autonomia di un robot, un benchmark deve necessariamente incorporare elementi di variabilità e incertezza (un fatto che, di per sé stesso, già separa il benchmarking di sistemi autonomi da quello di ogni altro tipo di macchina). Come è possibile coniugare questa variabilità e incertezza col requisito che i risultati ottenuti da robot diversi sottoposti allo stesso benchmark siano confrontabili tra loro? Appare evidente come la definizione di procedure per il benchmarking di robot autonomi richieda di conciliare tra loro esigenze contrastanti.

Di questi argomenti la ricerca scientifica si occupa da tempo. In particolare, esplorando il problema di progettare benchmark per robot autonomi i cui risultati possano essere considerati una misura attendibile dell’autonomia, e quindi delle capacità, del robot. Potremmo dire che un benchmark debba essere scientifico: per essere considerato pienamente attendibile, un benchmark deve infatti possedere alcune proprietà tipiche degli esperimenti scientifici (ripetibilità, riproducibilità) che risultano particolarmente difficili da ottenere quando il sistema sotto esame è autonomo. Un benchmark scientifico garantisce che le capacità di un robot siano misurate in modo oggettivo, e che le misure relative a robot differenti siano confrontabili tra loro.

Nonostante le indubbie difficoltà, disporre di validi benchmark per robot autonomi diventerà cruciale nel momento in cui per tali macchine nascerà un mercato significativo. A tutt’oggi ciò non è ancora avvenuto: tuttavia i robot autonomi esistono già, e per varie ragioni (non ultima, aiutare la nascita di quel mercato) è interesse di chi sviluppa questi robot illustrare di cosa sono capaci. In effetti, da tempo si svolgono, in parallelo alla ricerca scientifica e in stretta contiguità con essa, iniziative tese a dimostrare e confrontare le capacità dei robot. La più famosa tra queste iniziative è sicuramente RoboCup, una competizione che sottopone i robot partecipanti (sia di tipo autonomo che teleoperato) a test difficili da superare e spettacolari da osservare.

A queste e altre competizioni per il benchmarking dedichiamo un articolo separato.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

EU Stories - La coesione innova l'Italia

Tutti
Iniziative
Analisi
Iniziative
Parte la campagna di comunicazione COINS
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia
Iniziative
Parte la campagna di comunicazione COINS
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia

Articoli correlati