Introduzione
Il controllo visuale del braccio robotico permette di avere sostanziali vantaggi in
tutte le applicazioni in cui gli oggetti con il quali il robot deve interagire occupano
una posizione imprecisate e non nota a priori. Per questa ragione, ove sia possibile,
si impiega un sistema di visione come unico sensore di misura. L’asservimento visi-
vo è infatti in grado di ricostruire la posizione di un oggetto utilizzando le immagini
riprese da una o più telecamere, e con queste informazioni consente di riuscire ad
impartire al robot i comandi per raggiungere l’oggetto prefissato. Lo schema di con-
trollo considerato in questa tesi, denominato position based visual servoing, è stato
implementato attraverso la realizzazione di un sistema eye-in-hand, caratterizzato
dal posizionamento della telecamera direttamente sull’organo di presa del braccio
robotico. Nelle tecniche tradizionali di asservimento visivo viene invece spesso ef-
fettuata la misura diretta della posizione del manipolatore fornita dalla telecamera,
per migliorare l’accuratezza del posizionamento della pinza. I dati derivanti dal-
la telecamera, in questo caso, incrementano la precisione delle informazioni fornite
dall’apparato meccanico del robot, in quanto non risultano affetti dai tipici errori do-
vuti ad un’imprecisa conoscenza dei parametri fisici del manipolatore, che risultano
particolarmente evidenti nel caso in cui si debba considerare anche la flessibilità
della struttura.
Nella progettazione del position based visual servoing è stato necessario uti-
lizzare algoritmi di elaborazione dell’immagine, in modo da ottenere la posizione
dell’oggetto in coordinate cartesiane. L’utilizzo di un sistema di visione consente,
in generale, di aumentare l’autonomia del sistema. Ad esempio, il controllo effi-
ciente di pezzi meccanici in ambito industriale può richiedere l’osservazione del
prodotto da posizioni diverse con un controllo continuo dell’illuminazione e dell’o-
rientamento del pezzo rispetto alla telecamera. In questo caso un manipolatore può
essere utilizzato per spostare il pezzo intorno ad uno o più sistemi di visione, oppure
la telecamera ed il sistema di illuminazione possono essere movimentati mediante
un braccio robotico.
Uno degli aspetti cruciali della visione robotica è legato al dover affrontare pro-
blemi di interpretazione delle scene del mondo reale: le immagini prese in conside-
razione sono tratte dal mondo circostante e, quindi, presentano tutte le anomalie e
le irregolarità degli oggetti reali, diversamente da quello che avviene con immagini
sintetiche o acquisite in condizioni completamente controllate. Inoltre, un’appli-
3
Introduzione
cazione robotica necessita dell’utilizzo di tecniche non troppo costose in termini
computazionali, che consentano di eseguire delle elaborazioni in tempo reale.
L’ambiente, in cui si muove il robot, possiede alcune caratteristiche che inevita-
bilmente influenzano il processo di comprensione della scena. Nei sistemi robotici
dotati di sensori di visione vengono spesso applicate le seguenti ipotesi:
• il robot, oggetto di studio, deve essere un agente autonomo, per cui non è
possibile alcun intervento esterno per controllarlo;
• gli oggetti da riconoscere presenti nell’immagine devono essere fortemente
caratterizzati;
• le condizioni di illuminazione della scena sono in genere fortemente variabili,
questo influisce molto sul riconoscimento degli oggetti;
• le occlusioni, rendono impossibile, tranne in rari casi, il riconoscimento degli
oggetti basandosi sull’analisi della loro forma.
Tutti questi aspetti hanno come effetto la richiesta di una necessaria, efficiente
e scientifica fase di sperimentazione delle soluzioni adottate: teoricamente alcune
tecniche potrebbero produrre risultati accettabili, ma, una volta testate e valutate,
potrebbero rivelarsi inefficaci.
Questa tesi si inquadra proprio nel filone della nella robotica di servizio consi-
derando lo studio di un possibile controllo per il manipolatore Manus. Il Manus è un
manipolatore posizionabile su sedia a rotelle (vedi figura 1), che consente di aiuta-
re utenti con deficit motori nello svolgimento degli All-Day-Living task. Il Manus,
realizzato dall’azienda olandese Exact Dynamics, è un manipolatore a bassa im-
pedenza meccanica, con sei gradi di libertà, appositamente progettato per compiti
di assistenza, ed impiegato presso il Dipartimento di Ingegneria dell’Informazione
con finalità di ricerca. In particolare, lo studio proposto è incentrato sull’introdu-
zione di un meccanismo di visione all’interno del sistema di controllo, in modo da
rendere più versatile l’utilizzo della piattaforma anche in ambienti non strutturati.
Il sistema di controllo, sviluppato in lavori precedenti, permette di far compiere al
manipolatore dei movimenti programmati, tramite un algoritmo di pianificazione
della traiettoria con punti definibili sia nello spazio operativo che nello spazio dei
4
Introduzione
giunti e mediante l’uso di un sistema di attuazione retroazionato. Tale architettura
ha rappresentato la base di partenza per lo sviluppo della tecnica di controllo tramite
asservimento visivo.
Figura 1: Manus su una sedia a rotelle
Il progetto sviluppato ha permesso di integrare delle tecniche di visione arti-
ficiale applicate all’ambiente reale nel controllo del movimento del manipolatore.
L’aumento delle capacità sensoriali ha permesso di incrementare sia l’autonomia
delle funzionalità del robot, sia il livello di sicurezza nell’interazione con il brac-
cio robotico attraverso l’unione di due campi di ricerca distinti, come la robotica e
la visione. Ai fini del controllo visivo la telecamera acquisisce delle immagini per
l’identificazione della posizione di un target assegnato nello spazio di lavoro del
sistema robotico. La gestione del controllo è implementato nell’ambiente real-time
YARA, framework che consente lo sviluppo di applicazioni per la robotica secondo
uno schema behaviour-based. Durante la fase sperimentale sono stati valutati i vin-
coli temporali necessari per la gestione dei processi di controllo, sia periodici che
aperiodici, da parte dell’algoritmo di scheduling. È necessaria infatti un’adeguata
sincronizzazione tra i task di controllo per l’esecuzione di un compito in tempo
reale, come la presa di un’oggetto. Ogni task è caratterizzato da un istante di tempo
5
Introduzione
entro il quale deve essere eseguito (deadline), e il rispetto di questo vincolo consente
la correttezza dei calcoli per la determinazione della traiettoria di moto. Un’ultima
analisi che è stata affrontata riguarda la possibilità di aggiornare la traiettoria se-
guita dal braccio robotico in tempo reale durante il moto, anche in questo caso il
rispetto delle condizioni temporali ha assunto la massima importanza.
La stesura della tesi è suddivisa in una prima parte in cui vengono introdotte
delle nozioni teoriche riguardanti la meccanica del braccio robotico e le tecniche di
controllo, ed in seguito sono illustrate gli aspetti più tecnici.
Nel primo capitolo della tesi viene presentata l’architettura del manipolatore
Manus, attraverso la descrizione delle caratteristiche meccaniche del robot. Lo stu-
dio della cinematica diretta ed inversa del manipolatore antropomorfo è realizzato
tramite l’applicazione della convenzione di Denavit-Hartemberg, che permette di
assegnare le terne di riferimento sui bracci. In questa parte viene illustrata anche
la teoria su cui si basa il moto del braccio robotico. In particolare viene descritta
la pianificazione della traiettoria e il controllo robot, realizzato mediante regolatori
PID.
Nel secondo capitolo vengono descritte le diverse tecniche di utilizzo della vi-
sione nei sistemi di controllo dei robot. I differenti approcci noti nella letteratura ro-
botica vengono classificati in base agli aspetti più caratterizzanti. In questa sezione
viene proposta una panoramica sull’architettura hardware e software preesistente,
su cui ci si è basati per sviluppare il sistema di asservimento visivo.
Nel terzo capitolo viene presentato in dettaglio il software necessario l’ese-
cuzione del visual servoing. La struttura di base del software, realizzata in modo
modulare attraverso l’uso del framework Yara, è stata modificata per consentire la
gestione del sensore per la visione. In questo capitolo viene decritta la libreria di
visione ARToolkit, utilizzata per l’elaborazione delle immagini e le modifiche ad
essa introdotte per adattarlo alle finalità di controllo.
Nel quarto capitolo vengono riassunti i risultati sperimentali ottenuti .
6
Capitolo 1
Architettura del manipolatore Manus
In questo capitolo viene illustrata una descrizione delle caratteristiche meccani-
che del robot e la modalità secondo cui sono fissate le terne sui giunti secondo la
convenzione di Denavit-Hartemberg. E viene proposta una breve descrizione sulla
pianificazione delle traiettorie e sul controllo realizzato attraverso il regolotore PID.
1.1 Il manipolatore Manus
Il Manus, chiamato anche ARM (Assistive Robotic Manipulator), prodotto dalla
azienda olandese Exact Dynamics [1] , è un robot in grado di assistere le persone
disabili con handicap agli arti superiori. La possibilità di installazione su una base
mobile o su una sedia a rotelle consente al Manus di sostituire l’utilizzo di braccio
e mano. La sicurezza dell’utente disabile durante l’utilizzo del robot deve essere
garantita, e per questo motivo nella progettazione della piattaforma robotica è stato
studiato, oltre che l’andamento delle forze esercitate dal robot, anche un sistema di
sicurezza che permetta di fermare il robot al verificarsi di qualsiasi tipo di problema.
Il robot Manus può essere utilizzato in modo operativo e non automatico. Sono
disponibili infatti un tastierino e un joystick che consentono l’azionamento del robot
in modo manuale, come si può vedere in figura 1.1. Il keypad dispone anche di un
display che consente di visualizzare lo stato in cui si trova il robot. Nel caso in cui
si verifichi una configurazione non sicura viene visualizzato un simbolo di errore
ed emesso un segnale acustico. In questa modalità di utilizzo l’utente disabile è in
7
Architettura del manipolatore Manus
grado di controllare direttamente il sistema, decidendo la posizione e l’orientamento
da raggiungere. Nella progettazione del robot sono quindi stati perseguiti oltre che
gli obiettivi di efficienza ed efficacia, anche la sicurezza dell’utente.
Figura 1.1: Robot Manus con input device (joystick, keypad), box per invio dei
comandi, e LED matrix display per visualizzare lo stato
Figura 1.2: Robot Manus disponibile nel Dipartimento di Ingegneria dell’Informa-
zione
1.2 Le caratteristiche meccaniche e la cinematica
Il manipolatore antropomorfo Manus possiede sei gradi di libertà, dovuti ai sei giun-
ti rotoidali, ai quali può essere aggiunto un grado di libertà dovuto al gripper, l’or-
gano di presa posto all’estremità robot, che può essere aperto e chiuso. È possibile
8
Architettura del manipolatore Manus
considerare anche un’ulteriore grado di libertà introdotto dal supporto mobile in
grado di variare l’altezza della base del manipolatore. La possibilità di poter posi-
zionare ed orientare il Manus in modo arbitrario all’interno del suo spazio di lavoro,
rappresentato da una sfera di raggio pari a 80 cm, è consentita dai sei gradi di liber-
tà. La geometria del sistema meccanico è mostrata dalla figura 1.4 e nella tabella
1.1 vengono elencati le principali caratteristiche dimensionali e di funzionamento.
La piattaforma robotica è stata progettata in modo da potere essere installata su
una sedia a rotelle predisposta o in alternativa su una base mobile. In entrambi i
casi è stato necessario garantire un basso ingombro ed un peso limitato. A questo
scopo è stata scelta come collocazione per i motori l’interno della base principale,
e sono state usate delle cinghie collegate direttamente ai motori per il trasferimento
del moto sui giunti. Se da un lato ciò a consentito di non appensantire la struttura
del braccio robotico, portando il peso totale a circa 13 Kg, dall’altro l’utilizzo di
cinghie ha introdotto dei giochi e delle non linearità nella catena cinematica. Inoltre
il massimo carico trasportabile attraverso l’organo di presa è limiato a 1.5 Kg.
DOF: 6 + 1 (gripper) + 1 (lift, optional)
Dimensions: Reach: 80 cm Weight: 14.3 kg Payload: 1.5 kg
Max. velocity 9.9 cm/s
Max. rot. vel 30◦/s (0.52 rad/s)
Power supply 24V DC, 1.5A (nominal), 3A (peak)
Grasp force 20N
Max. opening 9 cm
Operating conditions Temperature: -5◦C to 50◦C Humidity <90%
Tabella 1.1: Caratteristiche meccaniche
L’impiego di cinghie evita la presenza di cablaggi all’interno dei bracci, e con-
sente di far compiere ai giunti più di un giro completo attorno al proprio asse di
rotazione. Un’altro vantaggio è l’incremento di sicurezza, infatti grazie allo slitta-
mento delle cinghie è possibile controllare la massima forza di rotazione applicata
su ciascun giunto. Le imprecisioni di movimento sono proprio dovute alle cinghie
e non sono da sottovalutare perchè non consentono misure precise sugli angoli di
rotazione dei giunti, creando problemi al sistema di controllo. Dal punto di vista
della potenza elettrica richiesta, la riduzione del peso ha permesso l’uso di motori
9
Architettura del manipolatore Manus
elettrici più piccoli, leggeri e a basso consumo energetico, consentendo una maggior
durata delle batterie che alimentano il sistema.
All’estremità del manipolatore, si trova il gripper che consente di afferrare og-
getti ed interagire attivamente con l’ambiente circostante. Le due estremità sono
state progettate in modo da muoversi in parallelo fra loro, così da garantire una
presa costante. L’apertura e la chiusura del gripper sono realizzate da un attuatore
collocato come tutti gli altri nella base del manipolatore, e sempre collegato tramite
una cinghia. Per lo svolgimento di questa tesi, sulla pinza del gripper é stata instal-
lata una piccola telecamera, per la realizzazione di un sistema eye in hand, descritto
nel capitolo 2.
1.2.1 Cinematica diretta
Il problema cinematico diretto consiste nel determinare la posizione e l’orientamen-
to dell’end effector del manipolatore, a partire dalle coordinate di giunto. A questo
scopo vengono definiti le relazioni tra gli assi di giunto e di braccio attraverso un
sistema di riferimento solidale con i bracci del robot usando delle matrici di trasfor-
mazione omogenea. La definizione del sistema di riferimento per ogni giunto viene
specificata attraverso l’applicazione della convenzione di Denavit-Hartemberg (per
maggiori dettagli in merito vedasi l’ appendice A). Nella tabella 1.2 vengono elecati
i parametri della convenzione di Denavit-Hartemberg per il robot Manus, utilizzabili
per il calcolo delle matrici di trasformazione, riportate in appendice A.
Il Manus è caratterizzato da sei gradi di libertà conferiti da sei giunti rotoidali.
Tali giunti non sono perfettamente indipendenti in quanto esiste una relazione fra
il moto del secondo e quello del terzo giunto: ad una rotazione di ∆θ2 gradi da
parte del secondo giunto, il sistema fa compiere una rotazione di −∆θ2 gradi al
terzo giunto in modo da mantenere costante la direzione dell’asse del terzo braccio.
Per poter considerare effettivamente indipendenti i sei giunti del manipolatore viene
compensata questa dipendenza sommando al valore restituito dall’encoder del terzo
giunto il valore dell’angolo del secondo giunto:
θ3 = θ3 + θ2 (1.1)
11
Architettura del manipolatore Manus
i ai αi di θi
1 0 −90 0 θ1
2 L2 0 L1 θ2
3 0 90 0 θ3
4 0 −90 L3 θ4
5 0 90 0 θ5
6 0 0 L4 θ6
Tabella 1.2: Parametri cinematici di DH
L1 105
L2 400
L3 320
L4 160
Tabella 1.3: Lunghezze Manus espresse in mm
L’indipendenza dei giunti è una caratteristica importante del manipolatore in quan-
to permette la risoluzione del problema cinematico inverso in forma chiusa trami-
te disaccoppiamento. Le terne di riferimento e i parametri cinematici consentono
di ricavare facilmente, per ciascuna coppia di bracci adiacenti, la trasformazione
geometrica che lega la terna i alla terna i + 1, applicando la teoria esposta nel pa-
ragrafo A.1. Si ottengono sei matrici di trasformazione che vengono usate per il
calcolo della soluzione del problema cinematico diretto. Nel paragrafo A.2 dell’ap-
pendice sono riportati in dettaglio tutti i passaggi per l’ottenimento della matrice di
trasformazione complessiva, la cui forma è mostrata in tabella 1.2.
T 06 = A01A12A23A34A45A56 =
r11 r12 r13 x
r21 r22 r23 y
r31 r32 r33 z
0 0 0 1
(1.2)
12
Architettura del manipolatore Manus
Figura 1.4: Posizionamento terne di riferimento secondo Denavit-Hartemberg
13
Architettura del manipolatore Manus
1.2.2 Cinematica inversa
Il problema cinematico inverso consiste nel determinare le coordinate di giunto cor-
rispondenti ad una data posizione ed orientamento dell’end effector del manipolato-
re che si vuole raggiungere. In genarale, non esiste una soluzione univoca a questo
problema. La cinematica inversa utilizza come dati di partenza i valori degli elemen-
ti della matrice, mostrata nella 1.2, da cui vengono ricavati i valori delle variabili di
giunto corrispondenti. Il problema cinematico inverso, a differenza di quello diretto,
può per particolari posizioni dell’estremità, non ammettere soluzione. L’insieme di
tutti i punti in cui il problema cinematico inverso ammette soluzione coincide con
la porzione di piano raggiungibile dall’estremità del sistema e definisce la sua area
di lavoro.
La struttura del robot Manus, avente sei gradi di libertà e tre assi di rotazione
di tre giunti rotoidali consecutivi che si incontrano in uno stesso punto, consente
di risolvere il problema di cinematica inversa. In generale tutte le strutture che uti-
lizzano un polso sferico si trovano in questa condizione e ciò spiega la loro ampia
diffusione in ambito industriale.
Il problema cinematico inverso per il robot Manus viene scomposto in due parti.
Nella prima fase si trovano i valori delle variabili di giunto relative ai primi tre
giunti, scegliendo tra le quattro soluzioni possibili quella che minimizza la norma
della differenza tra la posizione corrente e quella desiderata, consentendo quindi di
effettuare uno spostamento minimo. Questo soluzioni sono riportate nel seguito (per
maggiori dettagli riguardo al calcolo vengono riportati in appendice nel paragrafo
A.3).
θ˜1 = 2arctan
(−xw ±
√
x2w + y2w − L21
yw + L1
)
θ˜2 = Atan2(s2, c2)
θ˜3 = pi − arcsin
(x2w + y2w + z2w − L21 − L22 − L23
2L2L3
)
Anche per le ultime tre variabili di giunto esistono due possibili configurazioni
rappresentata dalle equazioni e per ognuna viene calcolata la soluzione riportata
nell’equazione A.12 dell’appendice,nel caso in cui θˆ5 = 0 o θˆ5 = pi. Viene scelta
14
Architettura del manipolatore Manus
anche in questo caso la soluzione che minimizza la norma della differenza della
posizione corrente con la posizione desiderata.
θˆ5 = 0 θˆ5 = pi
θˆ6(t) = ˆθ5(t− 1) θˆ6(t) = ˆθ5(t− 1)
θˆ4 = Atan2(r21, r11)− θˆ6 θˆ4 = Atan2(−r21,−r11) + θˆ6
La soluzione delle cinematica inversa consite nel vettore descritto dalla seguente
espressione:
θ =
(
θ˜
θ̂
)
=
(
θ1 θ2 θ3 θ4 θ5 θ6
)T
1.3 Il movimento del robot
I sistemi robotici sono generalmente soggetti a numerose sorgenti di errore di tipo
ripetitivo e/o causale che non consentono di posizionare il robot in un determina-
to modo accurato. L’approssimazione nella generazione del movimento richiesto
può essere causata da imperfezioni costruttive, che determinano errori geometrici
o giochi, deformazioni termiche ed elastiche o infine imprecisioni del sistema di
controllo. La posizione e l’orientamento del robot può essere definita in modo fisso
rispetto all’ambiente in cui è installato il robot, o può essere mobile e solidale con
gli elementi del robot. In generale esistono due modalità differenti per il controllo
del robot. La prima detta posa a posa è caratterizzata dalla specifica della posa da
raggiungere ed eventualmente della velocità di moto. Questo metodo può causare
che il movimento dei diversi assi del robot avvenga in modo simultaneo o conse-
cutivo e non coordinato tra loro. L’altro schema di controllo è definito continuo in
traiettoria ed implica che i diversi assi del robot vengano comandati in modo coor-
dinato affinchè il dispositivo di estremità raggiunga la posa comandata seguendo
la traiettoria richiesta e rispettando anche la velocità di esecuzione della traiettoria.
Nello svolgimento di questa tesi è stato scelto l’approccio continuo in traiettoria, in
quanto consentono di guidare con continuità il movimeto del gripper agevolando il
lavoro del sistema di visione.
15
Architettura del manipolatore Manus
1.3.1 La pianificazione della traiettoria
La pianificazione della traiettoria stabilisce la modalità con cui si evolve il mo-
vimento del manipolatore, da una postura iniziale ad una postura finale. Si tratta
di definire sia il percorso geometrico sia la legge di moto da realizzare (ossia la
sequenza temporale di posizioni, velocità ed accelerazioni)
Per lo svolgimento di questa tesi è stato utilizzato un algorimo di calcolo del-
la traiettoria [2], suddivisibile in tre parti fondamentali: definizione dei punti di
passaggio, analisi e calcolo della traiettoria.
Specifica dei punti di passaggio
Il percorso che il manipolatore dovrà eseguire viene specificato all’interno di un
file di testo come una sequenza di “Via Point”, ovvero punti di passaggio. Nella
versione precedente del software non integrato con il sistema di visione, il nome del
file di testo veniva definito come argomento di riga al momento dell’esecuzione del
programma. Nel file i punti vengono specificati nello spazio cartesiano o in quello
dei giunti, inoltre all’interno dello stesso file si possono alternare punti nello spazio
dei giunti e punti specificati nello spazio cartesiano. L’unica limitazione di cui si
deve tener conto è che non devono essere specificati dei via point nello spazio dei
giunti relativi rispetto al punto precedente nel caso in cui quest’ultimo fosse stato
specificato nello spazio cartesiano. Il formato del file di specifica dei via points è
mostrato in tabella1.4 se espressi nello spazio operativo oppure in quella mostrata
in tabella 1.5 se espressi nello spazio dei giunti.
Nel caso di definizione nello spazio dei giunti i primi tre campi verranno speci-
ficati i valori delle rotazioni, espresse in gradi, che si desidera far compiere ai primi
tre giunti, nei seguenti tre campi si potranno indicare le velocità, espresse in gradi/s,
relative ai primi tre giunti, poi ancora si indicheranno le rotazioni da far compiere
agli altri tre giunti (il quarto, il quinto e il sesto) e le relative velocità.
Nel caso in cui invece i punti vengano specificati nello spazio cartesiano, i primi
tre campi indicheranno la posizione (x, y e z) dell’organo terminale espressa in me-
tri, i seguenti tre campi le velocità relative lungo i tre assi in m/s che tuttavia anche
in questo caso saranno solitamente poste a zero, poi ancora si indicherà l’orientazio-
16