# Robotica

La robotica è la disciplina dell'ingegneria che studia e sviluppa metodi che permettano a un robot di eseguire dei compiti specifici riproducendo in modo automatico il lavoro umano. Anche se la robotica è una branca dell'ingegneria, più precisamente della meccatronica, in essa confluiscono approcci di molte discipline sia di natura umanistica, come linguistica, sia scientifica come biologia, fisiologia, psicologia, elettronica, fisica, informatica, matematica e meccanica.

## Origini del termine

La progettazione di automi e macchine meccaniche è una tradizione antica che risale all'antichità. Non è possibile identificare un unico individuo come il primo a pensare ad un uomo meccanico. Ci sono esempi di macchine automatizzate e meccanismi avanzati nella mitologia greca e romana, nell'arte e nella scienza cinese e islamica. Ad esempio nella mitologia greca si parla di Talos, un gigante di bronzo meccanico creato da Efesto per la protezione dell'isola di Creta. Anche nella mitologia romana si parla di il robot di bronzo che si chiamava Talos. Questi sono solo alcuni esempi di come l'idea di un uomo meccanico è presente nella cultura antica.
La parola robotica proviene dal ceco robota, che ha il significato di "lavoro pesante" o "lavoro forzato". Questo termine è stato introdotto dallo scrittore ceco Karel Čapek, nel 1920 nel suo racconto R.U.R. (Rossum's Universal Robots). Il termine inglese derivato robotics, secondo l'Oxford English Dictionary, compare per la prima volta in un racconto di fantascienza dello scrittore Isaac Asimov intitolato Bugiardo! (Liar!, 1941). Sempre ad Asimov si deve anche l'invenzione delle famose Tre Leggi della Robotica enunciate interamente nel racconto Circolo vizioso (Runaround, 1942); entrambi i racconti fanno parte dell'antologia Io, Robot.

## Campi di utilizzo

* Arte robotica: riguarda robot utilizzati sia per creare nuove forme di espressione artistica, sia per imitare e riprodurre le forme artistiche già esistenti. Ne sono un esempio i robot progettati per dipingere o per suonare uno strumento musicale leggendo in tempo reale uno spartito.
* Domotica: ha come obiettivo l'automazione applicata all'ambiente domestico. Tra gli sviluppi a breve termine più interessanti ci sono le tecnologie di aiuto ai portatori di handicap mentali o fisici nella vita quotidiana in casa.
* Microrobotica: si occupa dello studio e della diffusione di piccoli robot a basso costo utilizzati per scopi educativi o ludici.
* Robotica biomedica: è un ramo della robotica molto vasto che comprende diversi tipi di robot; robot capaci di assistere il chirurgo durante le operazioni, radioterapia robotica, robot telecontrollati con tecnologie dette di telepresenza che permettono al chirurgo di operare a distanza. Rientrano nella categoria anche le sofisticate apparecchiature per analisi biologiche utilizzate nei laboratori.
* Robotica degli sciami.
* Robotica di intrattenimento: si occupa delle tecnologie utilizzate nei parchi tematici, nei musei o negli effetti speciali cinematografici per intrattenere ed educare grandi quantità di pubblico; un esempio di utilizzo sono gli audioanimatroni spesso utilizzati per riprodurre le fattezze di personaggi fantastici o di specie animali oggi estinte come i dinosauri.
* Robotica evoluzionistica: è una disciplina che, attraverso lo studio di algoritmi evolutivi, tenta di realizzare robot sempre più versatili in modo da rendere meno essenziale il supporto umano.
* Robotica industriale: si riferisce a macchine che sostituiscono l'uomo in operazioni ripetitive. Il campo industriale è sicuramente quello in cui i robot hanno trovato maggiore diffusione: il loro impiego nelle catene di montaggio ha permesso alle aziende di abbattere notevolmente i costi accelerando e migliorando la produzione. Fra i robot più utilizzati dall'industria vi è il braccio robotico o robot manipolatore, costruito a imitazione del braccio umano, ma spesso dotato di più gradi di libertà: è una macchina molto versatile che si presta a svariate mansioni tra cui verniciatura, saldatura o montaggio. Interessante notare come questo tipo di macchine sia spesso utilizzata per produrre altri robot simili rendendo le speculazioni fatte dalla fantascienza sulle macchine autoreplicanti un discorso molto più vicino alla nostra quotidianità.
* Robotica marina: si tratta di una branca in via di espansione per le numerose applicazioni di tipo industriale, principalmente legate al settore petrolifero oppure scientifico, archeologico e militare.
* Robotica militare: si riferisce in genere a robot utilizzati a scopi ispettivi. Anche se la fantascienza è ricca di riferimenti a robot utilizzati in ambito militare, attualmente questi sono utilizzati più che altro con scopi di ricognizione e vigilanza. Un esempio di queste applicazioni è quello degli aerei privi di equipaggio detti droni. Questo tipo di veicoli è sì controllato a distanza da personale apposito, ma in caso di emergenza può anche compiere diversi compiti in totale autonomia permettendo la ricognizione di teatri di guerra pesantemente difesi senza mettere a repentaglio vite umane. Altro esempio di robotica militare sono i robot artificieri che sono in grado, grazie al numeroso set di strumenti di cui sono muniti, di compiere analisi su un ordigno esplosivo ed eventualmente neutralizzarlo a distanza riducendo drasticamente i rischi per gli artificieri.
* Robotica sociale: si propone di sviluppare tecnologie che rendano i robot sempre più capaci di interagire e comunicare con gli esseri umani in modo autonomo.
* Robotica spaziale: è relativa alle applicazioni e all'impiego di robot fuori dall'atmosfera terrestre. Nonostante ciò, questo settore della robotica ha avuto ricadute e risultati utili anche in campi che esulano dalla ricerca spaziale. Esempi di questi robot sono le sonde esplorative impiegate in diverse missioni sui pianeti del sistema solare o il famoso braccio manipolatore dello Space Shuttle o quello di sembianze umane destinato alla ISS che verrà utilizzato in sostituzione degli astronauti nelle attività extraveicolari.
* Robotica umanoide: si riferisce allo sviluppo e alla costruzione di robot con sembianze umane.
* Telerobotica.
* Competizioni robotiche: comprende tutte quelle applicazioni ludiche in cui dei robot vengono sviluppati e utilizzati per effettuare competizioni di qualunque tipo, per esempio giocare a calcio o effettuare una corsa automobilistica.
* Robotica di controllo ed ispezione nel campo aeronautico per la verifica manutentiva degli aeromobili.

## Modellistica

La realizzazione di un qualsiasi compito da parte di un robot è subordinata all'esecuzione di un movimento specifico che necessita di essere pianificato. L'esecuzione corretta di tale movimento è affidata a un'unità di controllo che invia un insieme opportuno di comandi sulla base del tipo di moto desiderato. Un sistema robotico presenta una struttura meccanica articolata ed è fondamentale schematizzarne il comportamento mediante un modello matematico che individui i legami di causa-effetto tra gli organi costituenti.

### Analisi cinematica

L'analisi cinematica di un robot concerne la descrizione del suo moto prescindendo dalle considerazioni sulle forze e i momenti che lo provocano. Essa si divide in:
* Cinematica: si occupa del legame tra i parametri interni del robot (che nel caso di robot industriali sono variabili associate ai giunti) e la posa da esso assunta (cioè la sua posizione e il suo orientamento).
* Cinematica differenziale: definisce delle relazioni analoghe a quelle identificate dalla cinematica riferite alle velocità dei componenti del sistema.
L'individuazione di tali legami consente di formulare il problema cinematico inverso che consiste nel ricavare i valori da attribuire ai parametri interni del robot per inseguire una determinata specifica di moto.

### Analisi dinamica

Modellare la dinamica di un robot è indispensabile per progettarne il sistema di controllo. Di fatto il moto di un sistema robotico è assicurato da un sistema di attuazione che ha il compito di fornire la potenza necessaria ai compiti da svolgere trasformandola da una forma all'altra in base alle esigenze. Anche qui occorre distinguere tra dinamica e dinamica inversa: la prima si occupa del calcolo delle accelerazioni dei componenti del robot in funzione delle forze di attuazione ed è utile in simulazione, la seconda ricerca metodi per determinare le forze di attuazione da dare per ottenere le accelerazioni desiderate.

## Pianificazione del sistema

Un problema cruciale risiede nella specifica dei movimenti da imporre al robot per svolgere i compiti ad esso affidati. Compito della pianificazione di traiettorie è quello di generare leggi orarie per le variabili caratteristiche del sistema, partendo da una descrizione informale del tipo di moto che si vuole ottenere. In particolare bisogna evitare le collisioni con i possibili ostacoli presenti nell'ambiente di lavoro attraverso strumenti di natura algoritmica quali i diagrammi di Voronoi o il metodo dei potenziali artificiali.

## Controllo

Le traiettorie generate nella fase di pianificazione costituiscono l'ingresso di riferimento del sistema di controllo del robot. Quest'ultimo è un sistema di estrema complessità, e ogni suo modello risulta inadeguato a causa della presenza di numerosi effetti dinamici imprevisti, tra i quali gli attriti e gli accoppiamenti tra i componenti. È dunque necessario introdurre un certo numero di anelli di retroazione, senza i quali risulterebbe impossibile garantire il soddisfacimento dei requisiti di precisione desiderati. Affinché il robot possa monitorare istante per istante di quanto il suo comportamento si scosti da quello pianificato, deve essere dotato di sensori in grado di misurare grandezze quali posizione, velocità, forze scambiate con l'ambiente.

### Sensori

I sensori si dividono in due grandi categorie:
* Sensori propriocettivi: misurano variabili interne al robot come la velocità delle ruote o il livello di carica della batteria.
* Sensori esterocettivi: misurano variabili esterne come la distanza dagli ostacoli o la posizione degli oggetti sui quali svolgere un compito.

#### Encoder

Gli encoder sono sensori propriocettivi in grado di effettuare la trasduzione della posizione angolare dei giunti del robot. Rivestono un ruolo essenziale nell'ambito della robotica industriale. Ne esistono due tipi.
* L'encoder assoluto è un disco di vetro ottico sul quale sono presenti delle tracce concentriche. Ciascuna traccia è caratterizzata da una sequenza di settori opachi e trasparenti. Sulla base dell'alternanza di tali settori, sfruttando un raggio di luce captato da un fototransistor, è possibile individuare univocamente una stringa di bit che esprime in forma digitale lo spostamento angolare dei giunti.
* L'encoder incrementale riporta due tracce i cui settori opachi e trasparenti sono in quadratura tra loro. Consente di ricavare, oltre alla variazione della posizione angolare, anche il verso della rotazione effettuata. Essendo un sensore incrementale, è necessario effettuare un azzeramento, solitamente raggiungendo una posizione nota all'accensione.

#### Distanza

Tra i sensori in grado di valutare la distanza degli oggetti nelle vicinanze vi sono i SONAR che utilizzano impulsi acustici dei quali viene misurato il tempo di volo sensore-ostacolo-sensore. Conoscendo la velocità di propagazione del suono è possibile calcolare la distanza dall'ostacolo. Nelle applicazioni di robotica sottomarina e negli ambienti con scarsa visibilità sono spesso l'unica soluzione attuabile. Un'ulteriore possibilità è costituita dal LASER, la cui efficacia è però limitata dal minimo intervallo di tempo osservabile in quanto l'elevatissimo valore della velocità della luce rende il tempo di volo generalmente impercettibile.

#### Visione

Un altro strumento utile al robot per orientarsi nell'ambiente in cui opera è la telecamera. Essa sfrutta l'intensità luminosa riflessa dagli oggetti per ricostruirne l'aspetto. Conoscendo i parametri caratteristici della lente è possibile risalire dalla rappresentazione dell'oggetto nel piano immagine alle sue dimensioni reali e alla sua distanza. Spesso i robot impiegano un sistema di telecamere multiplo che consente di valutare la profondità dell'ambiente tramite la stereoscopia.

### Attuazione

Sulla base dell'errore di inseguimento tra i riferimenti e i valori misurati delle grandezze di interesse del robot, il controllore del sistema deve effettuare un'azione correttiva volta a modificare i parametri correnti del moto della struttura. A tale scopo occorrerà aumentare o ridurre la potenza fornita ai motori che si occupano di convertire l'energia ricevuta dalla fonte di alimentazione in energia meccanica. Ne esistono vari tipi:
* Motore elettrico: sfrutta l'energia elettrica generata tramite un flusso magnetico variabile ed è tipicamente usato laddove servono grandi velocità e basse forze;
* Motore idraulico: sfrutta la variazione di volume dovuta a un fluido in pressione, usato nelle applicazioni in cui servono grandi forze e basse velocità;
* Motore pneumatico: utilizza l'energia pneumatica fornita da un compressore.

## Architettura software

L'unità di controllo di un sistema robotico ha il compito di gestire le operazioni che devono essere effettuate sulla base di un modello interno del robot e dei dati forniti dai sensori. Per ottenere un'organizzazione flessibile in grado di separare le attività ad alto livello da quelle più elementari, è opportuno che l'architettura di controllo sia ripartita in livelli gerarchici. In particolare, sul gradino più alto vi è la decomposizione del compito da svolgere in attività ad un elevato grado di astrazione, mentre alla base della piramide vi sono gli algoritmi che determinano i segnali forniti ai motori. Ciascun livello invia il risultato della propria computazione al livello sottostante, dal quale è retroattivamente influenzato.

### Programmazione

Vi sono tre approcci principali alla programmazione di un robot.
* Teaching-by-showing: il robot viene guidato lungo un percorso e apprende le posizioni raggiunte grazie ai sensori; in seguito, si limita a replicare quella sequenza di posizioni;
* Robot-oriented: vi è un linguaggio di programmazione ad alto livello con strutture dati complesse, variabili, routine;
* Object-oriented: come nel precedente, solo che il linguaggio è orientato agli oggetti.

## Statistiche

Secondo il World Robotica 2023, il 2022 è stato il secondo anno consecutivo che ha visto più di 500.000 nuovi robot installati. L'Asia assorbe il 73% della produzione e la sola Cina più della metà delle nuove installazioni. L'Italia è il sesto mercato al mondo.