Robot Cloud: la potenza della robotica si unisce al cloud computing

La tecnologia del cloud computing risale ormai a più di vent'anni fa. Il termine cloud, infatti, è stato usato per riferirsi a piattaforme per il calcolo distribuito già nel 1993. Adesso, questa stessa tecnologia, sta plasmando il mondo cibernetico e si evolve come elemento chiave di servizi per la condivisione di risorse, tra cui piattaforme e applicazioni software. Anche se porta una grande capacità di calcolo e benefici economici, le applicazioni del cloud computing sono ancora limitate. Infatti, ci sono moltissime richieste di servizi in loco basati sulla posizione fisica a cui il cloud computing non può ottemperare, a causa della ''limitazione cyber''. In questo articolo vedremo come è possibile integrare il mondo cibernetico e il mondo fisico con  l'idea di un ''Robot Cloud'' per unire la potenza della robotica e del cloud computing. 

Cloud computing

Poiché i consumatori si affidano ai fornitori di servizi, per tutti i loro dati o le loro risorse di calcolo, l'industria informatica si sta spostando verso la fornitura di Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), e persino X as a Service (XaaS), dove X può essere qualsiasi oggetto. Tutte le principali società di calcolo partecipano ai servizi di cloud computing e stanno emergendo molte piattaforme, tra cui Amazon Elastic Compute Cloud (EC2), Google App Engine, Microsoft Azure, Sun network.com (Sun Grid) e GRIDS Lab Aneka. L'emergere del cloud computing e dei nuovi prodotti che ne derivano, rende possibile l'utilizzo delle risorse di calcolo proprio come l'accesso ai servizi di utility. Nel 2010 è stata presentata un'architettura di cloud computing riutilizzabile e personalizzabile chiamata Cloud Computing Open Architecture (CCOA), che descrive diversi principi per costruire i sistemi e le applicazioni di Cloud Computing e per adottare l'architettura orientata ai servizi (SOA), che potrebbe rendere la CCOA più flessibile, estensibile e riutilizzabile.

I principali contributi del CCOA forniscono due importanti intuizioni; in primo luogo, la nuova architettura consente la condivisione delle risorse a livello di infrastruttura, quindi anche i robots nella Robot Cloud dovrebbero essere condivisi. In secondo luogo, il metodo di costruzione SOA può essere utilizzato per separare la progettazione del business dal supporto dell'infrastruttura. Anche il Mobile Cloud Computing sta diventando un argomento caldo. Mobile Cloud e Robot Cloud condividono somiglianze in una certa misura poiché i robot tipicamente interagiscono con altri servizi nel Cloud attraverso la comunicazione wireless. Ma la differenza tra loro è prominente. Il Mobile Cloud fornisce le risorse di calcolo e di dati della piattaforma Cloud agli utenti mobili. Funziona, per esempio, scaricando i dati di lavoro inviati ai dispositivi mobili per essere eseguiti sulla piattaforma Cloud. Nel Robot Cloud, invece, l'obiettivo è quello di integrare i robot nella piattaforma Cloud. Così facendo, i servizi robotici diventano un tipo di servizio Cloud e una parte integrante della piattaforma. Pertanto, i loro obiettivi, i principi di interazione e le tecniche di implementazione sono molto diversi.

Robotica abilitata al cloud

Le automobili a guida autonoma di Google hanno dimostrato che un'auto senza pilota, equipaggiata con la tecnologia informatica può viaggiare in sicurezza da una città all'altra. Inoltre, c'è un buon numero di ricercatori che stanno esplorando l'idea di usare i robot basati sull'infrastruttura di cloud computing, con l'obiettivo di accedere a una grande quantità di potenza di elaborazione e di dati. I compiti ad alta intensità di CPU nei robot possono essere trasferiti da computer di bordo più piccoli e che consumano meno energia a server cloud remoti. Un robot può migliorare le sue capacità integrandosi con servizi basati sul cloud. Un esempio di questo è il robot abilitato al cloud con la funzione di riconoscimento degli oggetti come Google Goggles, il precursore di Google Immagini. Immaginate che un robot trovi un oggetto che non ha mai visto o usato prima, per esempio una scatola di cereali. Il robot può essere programmato per inviare un'immagine della scatola al cloud. L'algoritmo di riconoscimento dell'oggetto viene eseguito nel cloud e restituisce al robot il nome dell'oggetto, un modello 3-D e le istruzioni su come versarlo. Attualmente si sta mirando a sviluppare i robot come terminali efficaci che siano in grado di scaricare la maggior parte del loro complesso lavoro computazionale e di memorizzazione sul cloud, piuttosto che intensificare l'abilità dei robot stessi. A livello di robotica, i robot sono isolati, il che significa che ci sono poche interazioni dirette tra i robot. Questo perché in questa architettura, un robot abilitato al cloud interagisce con il cloud piuttosto che con i suoi pari. Ci sono, tuttavia, alcuni svantaggi. Raggiungere buone prestazioni in tempo reale, che dipendono da una forte capacità di elaborazione a bordo, sarebbe un territorio proibito per la robotica cloud. Per esempio, il controllo del movimento di un robot, che si basa molto su sensori e feedback, non beneficerà molto del cloud. Inoltre, il paradigma della robotica cloud, che si basa pesantemente sulle reti, può indebolire l'autonomia e l'affidabilità della robotica. Se ci fosse una paralisi delle reti, tutta la robotica del cloud diventerebbe "senza cervello".

Tuttavia, il Robot Cloud mira a modellare i robot come parte del servizio di cloud computing che porta alla concezione ''Robot as a Service''. Da un lato, l'architettura orientata ai servizi non deve essere implementata sul web, così, l'interfaccia standard può essere più semplice e veloce. I servizi possono anche migrare su una macchina locale per ridurre i costi di comunicazione. Inoltre, il Robot Cloud non è la semplice estensione delle tecnologie di cloud computing o della robotica. Ha le caratteristiche sia del cloud computing che della robotica. In particolare, a livello di robotica, i robot nel Cloud possono contattarsi l'un l'altro piuttosto che agire come unità isolate che possono solo scambiare dati con i server remoti. Di conseguenza, Robot Cloud farà il miglior uso delle più eccellenti conquiste scientifiche esistenti nel campo della robotica. Di solito, quando si sviluppa un nuovo sistema, è necessario sviluppare un framework che sia in grado di spiegare vari concetti architettonici e specifiche del sistema. Lo scopo di sviluppare un tale quadro è quello di permettere il miglioramento e l'integrazione delle metodologie e degli strumenti di sviluppo. Tuttavia, i risultati analitici dello stack cloud attualmente accettato e l'architettura della robotica abilitata al cloud, indicano che queste architetture non possono soddisfare tutte le esigenze del Robot Cloud proposto. Le discrepanze tra il progetto e l'uso attuale ostacoleranno sicuramente il potenziale di applicazione delle Robot Cloud. Pertanto, è essenziale progettare una nuova architettura per la Robot Cloud.

Robot come servizio

Poiché SOA diventa sempre più popolare, questo nuovo stile di architettura è stato applicato allo sviluppo di applicazioni di robotica come, per esempio, sviluppare sistemi incorporati ricomponibili. I ricercatori incapsulano le funzioni di ogni parte del robot e delle applicazioni robotiche come servizi ben definiti. I programmatori sono poi in grado di assemblare nuove applicazioni robotiche usando questi servizi. In questo modo, l'intero sistema è liberamente accoppiato e più flessibile da adattare. Ancora più importante, nuove applicazioni possono essere sviluppate in modo più efficiente semplicemente componendo ogni componente utile e personalizzandolo. L'architettura robotica basata su SOA si basa sull'estensione del cloud computing al campo della robotica-RaaS (Robot as a Service). Ci sono un gran numero di unità robotiche in un sistema RaaS. Tutte queste unità robotiche forniscono servizi ai consumatori. Un sistema RaaS ha anche funzioni complete di SOA, cioè come fornitore di servizi, come intermediario di servizi e come cliente di servizi. Un'unità cloud RaaS è un fornitore di servizi. Ogni unità ospita un repository di servizi precaricati. Uno sviluppatore o un cliente può distribuire nuovi servizi in un robot o rimuoverli. I servizi possono essere usati da questo robot e possono essere condivisi con altri robot. Un cloud RaaS contiene un insieme di applicazioni distribuite. Uno sviluppatore o un cliente può comporre una nuova applicazione basata sui servizi disponibili dentro e fuori l'unità. Un'unità RaaS è anche un intermediario di servizi; un cliente può cercare i servizi e le applicazioni disponibili nella directory, che possono essere organizzati in una gerarchia o in classi per facilitare la ricerca.

Figura 1: Illustrazione dei livelli di servizio e del registro e repository dei servizi. Credit: Z. Du et al. / Future Generation Computer Systems 74 (2017) 337–348

Figura 1: Illustrazione dei livelli di servizio e del registro e repository dei servizi. Credit: Z. Du et al. / Future Generation Computer Systems 74 (2017) 337–348

La Figura 1 illustra i livelli di servizio e la gerarchia del registro e della scoperta dei servizi. Ci sono tre tipi di servizi elementari, che sono anche chiamati servizi di basso livello, tra cui ''Basic Hardware Services'', ''Application Services'' e ''Common Services'' (rappresentati da forme diverse al livello dei servizi di basso livello in Figura 1). Questi servizi di basso livello possono essere composti per fornire servizi di alto livello (il secondo livello in Figura 1). Tutti i servizi, non importa se di alto o basso livello, sono pubblicati attraverso il registro dei servizi e il repository (il componente superiore nella Figura 1).

  • Servizi hardware di base: questo tipo di servizi svolge un ruolo di risorse hardware di base. Alcuni esempi sono un Core Processor Service che funziona come il nucleo del sistema, esegue la diagnosi di base e controlla vari servizi al fine di completare compiti specifici; un Sonar Sensor Service inizializza il driver del sensore sonar e calcola la distanza del sensore da un ostacolo di fronte ad esso; un Touch Sensor Service, che genera un evento quando il sensore touch viene toccato o ha incontrato un ostacolo; un Motor Driver Service, che continua a leggere un pool di comandi gestiti e recupera il comando dalla lista dei comandi e lo esegue.
  • Servizi applicativi: i servizi applicativi registrati nel broker di servizi sono principalmente servizi relativi ai compiti, come Patrol Service (che guida il robot ad eseguire il compito di pattugliamento e di rilevamento degli oggetti in modo autonomo), Intruder Detection Service (che aiuta il robot a rilevare la presenza di intrusi), Bomb Detection Service (che assiste il robot a rilevare potenziali bombe in un ambiente pericoloso), e così via.
  • Servizi comuni: i servizi comuni rappresentano diversi algoritmi classici e funzioni comunemente usate. Per esempio, un algoritmo di navigazione è richiesto dalla maggior parte dei robot mobili, e un algoritmo di riconoscimento dei volti umani è anche usato da varie applicazioni di robotica che hanno bisogno di riconoscere diverse persone dai loro volti.

Poiché è possibile recuperare i servizi utilizzabili esistenti, gli sviluppatori sono in grado di riutilizzare i componenti appropriati e combinarli secondo i requisiti, il che facilita notevolmente lo sviluppo delle applicazioni.

[...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2799 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend