Introduzione al progetto NAO
Il robot NAO è un robot umanoide sviluppato dalla compagnia francese Aldebaran Robotics, ora parte di United Robotics Group, progettato per interagire in modo naturale con le persone. Alto circa 58 cm, è dotato di numerosi sensori, telecamere e microfoni che gli permettono di percepire l’ambiente circostante. NAO è programmabile in diversi linguaggi, tra cui Python, ed è ampiamente usato nella didattica e nella ricerca. È capace di camminare, ballare, parlare e riconoscere volti e oggetti. Grazie alla sua struttura compatta e al design amichevole, è ideale per l’interazione con bambini e anziani.
Il progetto sul robot umanoide NAO ha rappresentato un’esperienza formativa ricca e multidisciplinare, unendo elementi di robotica, intelligenza artificiale, programmazione e interazione uomo-macchina, a svolgerlo sono stati gli studenti del corso di Informatica e Telecomunicazioni dell’istituto Cattaneo dall’Aglio.
Inoltre il robot NAO è stato utilizzato come presentatore del progetto “Cielo e Stelle d’Appennino”, svolto per una sensibilizzazione sul tema dell’inquinamento luminoso. Anch’esso sviluppato dagli stessi studenti, unendo due diversi percorsi.
Link all’articolo sul progetto “Cielo e Stelle d’Appennino” – https://www.funlab.info/cielo-e-stelle-dappennino-sky-quality-meter/
Software di controllo Coreographe Suite
L’azienda Aldebran Robotics fornisce agli utenti un ambiente di sviluppo per programmare semplici azioni e coreografie eseguibili dal robot: il software Choregraphe Suite. Inoltre viene messo a disposizione un SDK per la programmazione in linguaggio python (al momento disponibile per la versione 2.7), ovvero un insieme di strumenti di sviluppo ottimizzati per un determinato linguaggio di programmazione.
Link al sito web di Aldebaran Robotics: https://aldebaran.com

Riconoscimento Facciale
Nel software Coreographe si possono utilizzare “blocchi” di codice python già pronti per ordinare istruzioni precise al robot, eseguibili sequenzialmente o in parallelo. Utilizzando i moduli predefiniti di Choregraphe, NAO è stato programmato per memorizzare i volti grazie alla funzione learn face, e successivamente riconoscerli tramite face recognition. A ogni volto è stato associato un nome e, una volta riconosciuto, il robot pronunciava una frase personalizzata.
Ecco un esempio della percezione del robot dell’ambiente circostante, in questo caso quando ha una persona di fronte:

Riconoscimento Vocale
Attraverso il blocco speech recording, NAO è stato in grado di registrare comandi vocali. Questi venivano trasformati in testo e confrontati anch’essi in uno switch-case (Struttura di controllo), abilitando risposte o azioni differenti in base alla parola chiave riconosciuta.
Ecco un esempio del software Coreographe Suite con un programma di riconoscimento vocale basico:

Comunicazione tramite intelligenza artificiale
Uno dei traguardi più innovativi del progetto svolto è stata l’integrazione dell’intelligenza artificiale “Chat GPT” di Open AI con il robot NAO per permettere un dialogo tra uomo-macchina.
Operazioni preliminari :
Inizialmente, per poter lavorare con il robot, è necessario essere connessi alla stessa rete, la prima configurazione si può effettuare via cavo (Ethernet), in seguito sarà possibile connettersi wireless. Il sistema operativo del robot, NAOqi OS è una distribuzione embedded di GNU/Linux, originariamente basata su Gentoo, e include il framework NAOqi, date queste caratteristiche è stato necessario utilizzare comandi in linguaggio bash.
Le varie operazioni a livello di sistema operativo sono state effettuate dalla shell dei comandi, tramite connessione ssh:

– Connessione alla shell dei comandi tramite protocollo ssh, comando : ssh nao@ipv4 (l’indirizzo ipv4 si può fare dire a voce schiacciando il pulsante sul petto del robot)
– Impostazione dell’indirizzo IP statico, comando: connmanctl config "chiave rete wifi interessata" ipv4 subnetmask default-gateway
Si possono eventualmente configurare i DNS modificando con un editor di testo (es. nano) il file resolv.conf;
– Creazione di un ambiente di lavoro ordinato (creazione di cartelle), comando mkdir nome_cartella;
– Impostazione del livello dei microfoni in modalità di ricezione, comando: Alsamixer;
Flusso completo della comunicazione Robot-AI:
1. Registrazione della domanda.
Il primo step della comunicazione consiste nella registrazione dell’audio parlato tramite i microfoni del NAO. Questo passo viene eseguito interamente dal lato del robot, il quale esegue un programma python realizzato appositamente per la registrazione, sfruttando un modulo dell’SDK (Già disponibile sul sistema operativo NAOqi OS), il quale a fine registrazione salverà un file audio (.wav) in una cartella dedicata.

2. Conversione dell’audio in testo per poterlo elaborare da un ulteriore dispositivo back-end.
Il secondo step è la conversione dell’audio in testo in modo che possa essere elaborato dall’intelligenza artificiale. Per questo è stato sviluppato un secondo programma di linguaggio python, sfruttando la libreria “Speech Recognition” di google cloud reperibile sul sito https://pypi.org/project/SpeechRecognition/ .

3. Invio del testo all’intelligenza artificiale tramite API di OpenAI.
Per l’invio della domanda, in formato stringa, all’intelligenza artificiale, si è utilizzata la libreria python “openai”, ottimizzata per l’interazione con i modelli di intelligenza artificiale tramite chiamate API, un insieme di protocolli e regole per la comunicazione tra dispositivi o applicazioni software. Dopo avere installato la libreria e impostato la chiave di autenticazione (ottenibile dopo avere effettuato l’accesso dal sito https://openai.com/ ) sarà possibile inviare la richiesta:

4. Ricezione e riproduzione della risposta ricevuta.
L’ultimo step consiste nella riproduzione del testo ricevuto contenente la risposta fornita dall’IA, anche questo step viene eseguito in python ( versione 2.7 in questo caso) sfruttando l’SDK del robot per fargli riprodurre la risposta in uscita dai suoi microfoni:

La componente software sviluppata dagli studenti si può ottenere da un programma di installazione presente sul sito: https://naostorageweb.altervista.org/.
Di seguito un breve video del prodotto finale:
Animazioni e altre funzionalità
NAO è un robot in grado di eseguire diverse animazioni naturali e coinvolgenti. Può salutare alzando la mano e dicendo “ciao”, fare inchini e gesti di cortesia, muovere in modo coordinato il capo, le braccia e le mani, oppure ballare seguendo la musica. È anche capace di simulare emozioni attraverso la postura del corpo e la modulazione della voce. Tutte queste animazioni possono essere personalizzate e programmate per adattarsi a contesti specifici.
Per quanto riguarda le sue funzionalità, NAO è in grado di muoversi autonomamente: può camminare, girare, fermarsi e aggirare ostacoli grazie ai suoi sensori, offrendo movimenti fluidi e realistici adatti all’interazione con le persone. È sensibile al tocco attraverso sensori posizionati sulla testa, sulle mani e sui piedi, e reagisce quando viene toccato, ad esempio rispondendo con un gesto o una frase. Inoltre, NAO può connettersi facilmente a una rete Wi-Fi o tramite cavo Ethernet, il che gli permette di comunicare con altri dispositivi, ricevere comandi da remoto e integrarsi con sistemi esterni o applicazioni online.
Conclusione e considerazioni sul progetto da parte degli studenti
Il progetto “The future is NAO” ha permesso agli studenti del corso Informatica e Telecomunicazioni di sviluppare le proprie conoscenze e capacità in ambito di programmazione, intelligenza artificiale e robotica.
L’esperienza è stata dunque un importante percorso di sviluppo, che ha visto gli studenti impegnati in una ricerca informazioni e documentazione in ambito di una autoformazione sotto il tutotaggio dei docenti.