Efficacia ed Efficienza dell’IA – Robot mobile intelligente 4WD controllato a distanza (Progetto sperimentale)

Come analizzato nel precedente articolo, principi quali le reti neurali, l’agente intelligente e la digitalizzazione dei segnali analogici, ad esempio, sono essenziali per analizzare, comprendere e studiare il comportamento dei sistemi di elaborazione digitale quali l’Intelligenza Artificiale.

Ognuno dei principi elencati, e ovviamente il progetto stesso, contribuiscono ad evidenziare come i sistemi di elaborazione digitale, tra i quali l’Intelligenza Artificiale stessa, permettano di impiegare i processi computazionali in vari settori, industriali e non, contribuendo così al miglioramento della società che ne regola le dinamiche (infatti, l’impatto riguarda, oggigiorno, circa il 9% della forza lavoro globale. A decidere un salto sempre più in avanti contribuiscono i progressi nel deep learning e nelle reti neurali grazie anche all’impegno nella ricerca di base.).

Tra tutti, il settore che maggiormente risente di tale influenza è la robotica e l’automazione. È ovvio ormai come l’Intelligenza Artificiale permetta di ottimizzare i processi produttivi, ridurre i costi e le problematiche, potenziare gli strumenti delle tecnologie dell’informazione e della comunicazione che, di conseguenza, aumentano la produttività nelle occupazioni collegate all’economia della conoscenza. Secondo il McKinsey Global Institute, la multinazionale di consulenza strategica, la robotica è un’area che andrà incontro a profondi cambiamenti nei prossimi anni. Del resto, occorre precisare, i robot sono tuttora applicati in vasti e vari settori applicativi e, al fine di svolgere un’ampia gamma di operazioni, essi si sono sviluppati in varie modalità, passando dagli umanoidi ai robot controllati a distanza e robot mobili intelligenti e/o autonomi. Non a caso, infatti, il settore della robotica che più evidenzia lo sviluppo e l’influenza dell’Intelligenza Artificiale è quello della robotica mobile.

La robotica mobile autonoma costituisce un’area di ricerca affascinante per molte ragioni.     La prima riguarda l’ampia sfera di conoscenze coinvolte. Infatti, per trasformare un robot mobile da un computer su ruote – capace soltanto di percepire alcune delle proprietà fisiche dell’ambiente attraverso i suoi sensori – in un agente intelligente – in grado di identificare le caratteristiche dell’ambiente, determinare campioni e regolarità, imparare dall’esperienza, localizzare, costruire mappe e navigare – occorre la contemporanea applicazione di molte discipline. Per questa sua specificità, la robotica mobile capovolge la tendenza attuale della scienza verso una specializzazione sempre maggiore e richiede la combinazione di numerose aree di ricerca, divenendo direttamente correlata all’Intelligenza Artificiale medesima.
L’ingegneria e l’informatica sono ovviamente le discipline cardine della robotica: tuttavia, quando si affrontano i quesiti relativi al comportamento intelligente sono l’intelligenza artificiale, le scienze cognitive, la psicologia e la filosofia a offrire ipotesi e risposte. Altri aspetti, quali l’analisi dei comportamenti del sistema (per esempio mediante il calcolo degli errori e le valutazioni statistiche) e di tutti i sistemi in generale, rientrano nell’ambito della matematica che, supportata dalla fisica, fornisce molte spiegazioni.
In secondo luogo, i robot mobili rappresentano tuttora la migliore approssimazione di agenti intelligenti, un sogno antico. Da secoli gli uomini hanno desiderato costruire macchine in grado di imitare i comportamenti degli esseri viventi. La domanda “Che cos’è la vita e come possiamo comprenderla?” ha sempre stimolato la ricerca in questo campo, dalla realizzazione di animali meccanici con movimenti a orologeria fino allo sviluppo di software e agenti fisici di vita artificiale. Il sogno di sempre è stato riprodurre il comportamento intelligente. Negli esseri viventi la percezione e l’azione sono strettamente legate. Gli animali, per esempio, compiono specifici movimenti della testa e degli occhi per osservare l’ambiente: per interagire con esso, anticipano il risultato delle loro azioni e prevedono il comportamento di tutto ciò che rientra nel loro campo visivo. Per comunicare, alterano l’ambiente (ciò che viene definita stigmergia): la costruzione dei formicai è un esempio di tale comportamento. Questo stretto legame tra percezione e azione costituisce una motivazione importante per lo studio del comportamento intelligente per mezzo degli agenti ‘situati”, cioè i robot mobili. Per analizzare le simulazioni di agenti vivi o artificiali, che interagiscono intelligentemente con l’ambiente, è necessario chiudere il ciclo tra percezione e azione, permettendo all’agente di determinare la sua percezione del mondo esterno. Sia che i robot autonomi raggiungano livelli di intelligenza umana entro 50 anni, come alcuni autori predicono, o che gli esseri umani divengano obsoleti in questo arco di tempo (affermazioni molto vaghe, dato che le definizioni di “intelligente” e “obsoleto” non sono del tutto chiare), sia che si debbano attendere altri 100 anni per disporre di robot domestici veramente intelligenti, come sostengono altri, i robot autonomi mobili offrono una piattaforma unica di ricerca per indagare il comportamento intelligente.
Inoltre, esistono applicazioni commerciali di robot mobili: per esempio nel trasporto, nella sorveglianza, nell’ispezione, nella pulizia o anche in ambito domestico. Tuttavia, i robot mobili autonomi non hanno ancora un impatto significativo sulle applicazioni industriali e domestiche, principalmente a causa della mancanza di una navigazione robusta, affidabile e flessibile e di meccanismi di comportamento per robot mobili autonomi operanti in ambienti semistrutturati e non modificati. La possibilità di disporre di robot mobili in grado di lavorare in aree inaccessibili agli esseri umani o di effettuare compiti ripetitivi, difficili o pericolosi, costituisce un’altra forte motivazione alla ricerca e alla realizzazione di robot intelligenti e autonomi.
Infine, vi è anche l’aspetto estetico o artistico della robotica mobile. Sciami di robot che collaborano per realizzare un particolare compito o che si muovono per evitare collisioni tra loro e con gli oggetti presenti nell’ambiente, robot mobili disegnati in maniera elegante – come i microrobot o i robot in miniatura muniti di “gambe” – stimolano il nostro senso estetico. Non è dunque sorprendente che robot mobili o dotati di braccia siano stati impiegati in rappresentazioni artistiche (ne è un esempio l’artista Stelarc).

Robot 4WD intelligente controllabile a distanza, come evince il telecomando IR posto sulla destra.

La capacità dei robot mobili di muoversi autonomamente in un ambiente determina le loro migliori applicazioni: compiti che riguardono il trasporto, l’esplorazione, la sorveglianza, la guida, l’ispezione eccetera. In particolare, i robot mobili sono utilizzati per applicazioni in ambienti inaccessibili o ostili per gli umani. Esempi sono i robot sottomarini, quelli che esplorano le superfici di altri pianeti (planetary rover, i quali ultimamente guadagnano sempre più “velocità”) o quelli che operano in ambienti contaminati. Una seconda vasta area di applicazioni della robotica mobile è costituita dai campi dell’intelligenza artificiale, della scienza cognitiva e della psicologia.

I robot autonomi mobili offrono un mezzo eccellente per verificare le ipotesi sul comportamento intelligente, sulla percezione e sulla cognizione. Il programma di controllo di un robot mobile autonomo può essere analizzato in dettaglio; le procedure e l’assetto sperimentali possono essere controllati con attenzione, permettendo la replica e la verifica indipendente degli esperimenti; inoltre i parametri sperimentali individuali possono essere modificati in modo controllato. Comunque, per far fronte a situazioni impreviste e adattarsi agli ambienti dinamici, è necessaria la capacità di autogoverno ( principio di “autonomia forte”). L’autogoverno implica che la macchina sia capace di determinare il corso delle sue azioni mediante il suo processo di ragionamento, piuttosto che seguendo una sequenza fissa di istruzioni fornite dall’esterno. L’autonomia forte richiede la capacità di costruire rappresentazioni interne del mondo, di pianificare e di apprendere dall’esperienza.

Un robot mobile autonomo, quindi, ha la capacità di muoversi nel proprio ambiente per compiere un certo numero di compiti differenti, è capace di adattarsi ai cambiamenti di tale ambiente, di imparare dall’esperienza – modificando di conseguenza il proprio comportamento – e di costruire rappresentazioni interne del proprio mondo che possano essere utilizzate per processi razionali come la navigazione.

Proseguendo nello specifico, il robot realizzato, sulla base dei principi espressi nel paragrafo precedente, è specificatamente un robot autonomo intelligente, capace di evitare ostacoli e bordi sfruttando ampiamente le quattro ruote motrici di cui dispone. D’altra parte, altra funzionalità implementata nel robot nelle fasi successive della sperimentazione, è la capacità di reagire efficacemente a controlli remoti di ricevitori ad infrarosso. Tra le principali funzionalità di tale “agente” vi è la possibilità di:

  • Controllare la velocità e la direzione aggiungendo un controllo del movimento migliore e funzionalmente ottimizzato. Tra i movimenti permessi al robot rientra la capacità di:
    1. Muoversi in avanti. In tal caso i motori girano in avanti alla stessa velocità;
    2. Muoversi all’indietro. Pertanto entrambi i motori girano nella direzione opposta alla stessa velocità;
    3. Muoversi a sinistra. In tale caso i motori di sinistra sono fermi, mentre quelli sulla destra girano in avanti;
    4. Muoversi a destra, prevedendo una situazione opposta rispetto il caso precedente. Di conseguenza i motori di sinistra girano in avanti e quelli di destra sono fermi;
    5. Fermarsi, bloccando i motori;
    6. Incrementare o decrementare la velocità di movimento (sfruttando le funzioni PWM);
    7. Impostare la velocità di movimento, associata alle future azioni del robot;
  • Rendere il robot capace di vedere il suolo, utilizzando sensori IR per riconoscere linee e bordi;
  • Rendere il robot capace di guardarsi intorno, utilizzando un servomotore che gli permetta di scegliere la direzione migliore per muoversi;
  • Aggiungere, come accennato, il controllo remoto utilizzando un telecomando per la recezione degli infrarossi;
  • Implementare, modificare ed ottimizzare i sistemi di alimentazione (sia con batteria sia con caricatore a compensazione, ricaricabile).

La scelta di implementare un robot a quattro ruote motrici rappresenta l’opzione più valida per permettere al robot di operare su superfici anche irregolari. Tale piattaforma è dotata di un’ampia piastra in cima che è possibile utilizzare per fargli trasportare piccoli oggetti. Tuttavia, va sottolineato che il robot in questione richiederà maggiore corrente e sarà più pesante rispetto la controparte semplificata a due ruote motrici. Di conseguenza verranno richiesti degli opportuni accorgimenti per gestire la durata della batteria. Per tale motivo, il robot dispone di una duplice alimentazione, come evidenziato. Le ampie capacità di tale macchinario sono permesse dall’opportuna integrazione tra i sistemi hardware e software che costituiscono il medesimo. Tali sistemi, suddivisi in categorie ma interconnessi tra loro, contribuiscono a garantire, se opportunamente configurati, efficienza e stabilità al robot.

L’HW nella fase finale.

In un primo momento, l’architettura Hardware coinvolge tutti i componenti e dispositivi che costituiscono il robot, i quali sono molteplici (passando dai sensori SONAR ed IR al servomotore e la motor shield, ad esempio) e ognuno di essi detiene una capacità, o meglio, funzionalità specifica. Dalla gestione dei motori e rilevamento dei bordi sino al controllo remoto vi è una “sezione” specifica del robot che svolge la relativa funzione. L’elevata integrazione tra le varie componenti permette di considerare il dispositivo come un vero e proprio sistema.    Il centro di quest’ultimo è Arduino, una piattaforma hardware composta da una serie di schede elettroniche dotate di un microcontrollore. Generalmente con Arduino si possono realizzare in maniera relativamente rapida e semplice piccoli dispositivi come controllori di luci, di velocità per motori, sensori di luce, autolavaggi, temperatura e umidità e molti altri progetti che utilizzano sensori, attuatori e comunicazione con altri dispositivi. È abbinato ad un semplice ambiente di sviluppo integrato (IDE) per la programmazione del microcontrollore.

In secondo luogo, Il software di gestione del dispositivo è decisamente ampio e complesso e gestisce il robot e ogni singolo componente del medesimo impiegando otto differenti schede. Da precisare, tuttavia, che il codice di programmazione è stato realizzato sfruttando l’ambiente di sviluppo integrato IDE (Integrated Development Environment) di Arduino, ossia un’applicazione multipiattaforma scritta in Java, ed è derivata dall’IDE creato per il linguaggio di programmazione Processing e per il progetto Wiring. Tale ambiente è molto versatile, adatto per i principianti nella programmazione e, al contempo, provvisto di tutte le risorse necessarie per concepire programmi (definiti Sketch) di alto livello. Il codice del robot è stato realizzato completamente in inglese ed è provvisto di commenti in lingua italiana ed è, inoltre come accennato, ripartito in otto differenti schede, così denominate:

  • Scheda “4WD Project” (nominata arbitrariamente come “MarkII”), la quale costituisce la prima fase del codice che richiama le funzioni e definisce le librerie necessarie;
  • Scheda “Distance”: Scheda funzionale a gestire il sensore Ping, restituendo la distanza in centimetri;

    La scheda iniziale “4WD Project”

  • Scheda “IrSensors”: Tale scheda è funzionale per gestire, configurare e calibrare i sensori di riflessione a infrarossi IR;
  • Scheda “Look”: Tale scheda permette di ricercare eventuali ostacoli per intraprendere il percorso più opportuno, facendo ruotare il servomotore;
  • Scheda“Move”: La scheda in questione permette di richiamare le funzioni di movimento o di gestione del robot per permettere a quest’ultimo di spostarsi e, quindi, gestisce i motori;
  • Scheda “RemoteService”: Funzionale al controllo remoto, essa permette di inviare dati non solo tramite il telecomando di codifica, bensì anche da seriale (opzione aggiuntiva);
  • Scheda “softServo”: Fornisce gli angoli per controllare il servomotore, regolando la larghezza dell’impulso sul pin di Arduino collegato a quest’ultimo;
  • Scheda “robotDefines”: Essa definisce le ulteriori variabili globali di sistema e, quindi, i sensori IR, le variabili di direzione ed infine i comandi.

Altresì, altra possibilità prevista nel robot, è quella di analizzare in tempo reale il comportamento del robot e, in particolar modo, dei sensori di riflessione e dell’analizzatore di distanza. Tale processo viene effettuato sfruttando l’ambiente, già descritto, di sviluppo “Processing” e, al contempo, cambiando codice. Il codice utilizzato è secondario a quello analizzato nel dettaglio e permette esclusivamente di analizzare il comportamento dei sensori, lavorando quindi in parallelo con lo Sketch di processing. Lo Sketch di Processing risultano infatti molto articolati, in quanto sono essenzialmente funzionali a realizzare oggetti grafici, come tabelle, stringhe ed elementi che necessitano di variare secondo le informazioni inviate dallo Sketch di Arduino. La schermata di processing, in particolar modo, mostra i valori di analogRead ricavati dai sensori, destro e l’eventuale sensore centrale e dal sensore di distanza, evidenziando i valori minimi e massimi raggiunti da questi ultimi.

Il risultato dell’integrazione dello Sketch di Processing, opportunamente configurato con il codice del robot.

Il progetto, la cui documentazione completa è presente qui (nel primo capitolo dedicato a tale progetto), basa il proprio sviluppo e processo operativo su alcuni principi che regolano la robotica e, più in generale, l’Intelligenza Artificiale, secondo le tematiche affrontate nella premessa. Nel video seguente, è possibile analizzare accuratamente i processi del progetto sperimentale, l’architettura HW e SW ed alcune delle funzionalità permesse da tale integrazione.

 

Questa voce è stata pubblicata in Ambiente, didattica digitale, Elettronica, Informatica, laboratori, Make e contrassegnata con , , , , , , , , , , , , , , . Contrassegna il permalink.

2 Responses to Efficacia ed Efficienza dell’IA – Robot mobile intelligente 4WD controllato a distanza (Progetto sperimentale)

  1. franco maurizi scrive:

    Interessante ed esaustivo. Perché non mettersi al lavoro per realizzare una macchina per fare le righe dei campi sportivi nelle palestre? Io avrei un minisponsor disponibile.,.

  2. franco maurizi scrive:

    mi hai fatto anche ricordare una fantasia che mi viene mentre colgo le olive: sciami di mini droni che raccolgono autonomamente olive o ciliegie. La fantascienza ci offre sempre visioni apocalittiche e guerrieri. L’innovazione dovrebbe liberarci almeno dalla fatica

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.