Capitolo 3 Il Grasping
Il Grasping , dall’inglese to grasp , ‘afferrare’ , è la procedura che permette ad un robot di determinare il sistema di presa di un oggetto e di portarne a termine la manipolazione . In ambienti strutturati , dove gli oggetti hanno sempre la stessa forma e si trovano sempre nella stessa posizione , questa operazione non presenta particolari difficoltà e può essere pianificata offline una volta per tutte per poi essere eseguita ripetitivamente . Se invece la posizione e/o il modello dell’oggetto non sono noti a priori esiste in letteratura una lunga serie di studi , che vanno sotto il nome di teoria del grasping , volti a determinare delle tecniche di presa efficienti anche in ambienti non strutturati .
Ciascuna di queste tecniche è in grado di funzionare in determinate condizioni operative ed è compito del progettista scegliere quella che meglio si adatta alle proprie esigenze . E’ necessario considerare ad esempio :
la conoscenza o meno della forma dell’oggetto , in modo da distinguere fra approccio con modello noto o approccio unknown object ;
la natura dell’oggetto : se vi sono particolari simmetrie che permettono di ridurre la teoria ad un problema di geometria piana si parla di grasping 2D , mentre nel caso generale si ha il grasping 3D . Esempi di simmetrie che riducono i gradi di libertà del problema sono quella piana e quella cilindrica [2] ;
il tipo di sensore eterocettivo utilizzato per determinare la forma e/o la localizzazione dell’oggetto : sistemi di visione , sensori ottici di tipo on/off , sensori tattili puntiformi , sensori tattili a rilevazione di forma ;
In questa tesi si prenderà in esame il problema del grasping assistito da visione artificiale di un oggetto non noto a simmetria planare , così da ricondursi ad un problema 2D per quanto detto nel capitolo 2 a proposito del sistema di visione adottato . Si ipotizza inoltre che l’oggetto sia smooth , cioè non presenti cuspidi e punti angolosi ; è dimostrato in letteratura che questa ipotesi consente di realizzare una presa force closure anche con una pinza a due dita , quale è quella del MANUS . La condizione di force closure , letteralmente a chiusura di forza , impone che vi sia equilibrio statico fra le forze e le coppie applicate esternamente all’oggetto ( causate ad esempio dalla gravità ) e quelle esercitate dalla pinza , in modo da evitare lo scivolamento dell’oggetto stesso.
La natura bidimensionale del problema permette di
esprimere il contorno dell’oggetto come una curva
nel piano e di calcolarne i punti di contatto con la pinza , come le
ascisse curvilinee
ed
indicate in figura 3.1 .
Figura 3.1 : I coni di frizione per il calcolo dei
punti di grasp
Il metodo adottato per determinare le ascisse
viene detto dei coni di frizione , perché definisce gli angoli
di frizione
e
come gli angoli fra le normali alla curva in
ed
e il segmento
. Su questi angoli sono imposte le condizioni :
(3.1)
(3.2)
(3.3)
dove
è il coefficiente di attrito fra la pinza e l’oggetto .
L’algoritmo proposto in [2] e qui riadattato sceglie , fra
tutte le prese force closure , quella che minimizza un funzionale di
costo ottenuto combinando due diverse esigenze :
la necessità di avere una larghezza di
grasp
sufficientemente piccola , per poter realizzare fisicamente la presa
anche con pinze ad apertura limitata . Per soddisfare questa
esigenza converrebbe scegliere come funzionale
(3.4) ;
la necessità di mantenere limitata la distanza fra l’asse di presa , definito come il segmento congiungente i due punti di grasp , e il baricentro dell’oggetto. Uscendo dal piano e considerando l’estensione dell’oggetto planare nello spazio , questo è soggetto a rotazioni durante la manipolazione tanto più probabili quanto più è grande questa distanza . Per soddisfare questa esigenza converrebbe scegliere
(3.5) .

Figura 3.2 : Esempi di prese coi due funzionali descritti
Si tratta di due esigenze contrastanti , come
mostrato nell’esempio di figura 3.2 : scegliendo il primo
criterio si otterrebbe un asse di presa troppo lontano dal baricentro
e quindi a forte rischio di rotazione , con il secondo criterio si
avrebbe una larghezza di grasp troppo grande per l’apertura
della pinza . Per questo motivo si ricorre ad un funzionale ottenuto
come somma pesata di
e
:
(3.6) .
Il primo passo per il calcolo della presa ottima
descritta nel paragrafo precedente consiste nell’estrazione del
contorno
dell’oggetto ; a partire dall’immagine binaria fornita
dal sistema di visione , la prima elaborazione consiste
nell’applicazione della funzione di riempimento bwfill.m
, che permette di ottenere la sagoma descritta in figura 3.3a . A
questo punto vengono estratti i pixel più esterni con
l’operatore di Sobel implementato dalla funzione edge.m
, ottenendo il contorno in figura 3.3b .
|
|
|
Figura 3.3 a,b : la sagoma dell’oggetto ed il contorno estratto
Detto n il numero di pixel sulla curva così
estratta , i grasping possibili andrebbero valutati a partire da
ciascuna coppia di punti , ma questo darebbe luogo ad
calcoli del versore tangente , del versore normale , dell’angolo
di frizione e del funzionale di costo , con conseguente aumento dei
tempi di calcolo . Per questo si preferisce scegliere un numero di
punti
![]()
fra loro equidistanti lungo il contorno : in figura 3.4a sono
riportati i grasping valutati nel caso di
,
e
. In rosso è evidenziato il baricentro dell’oggetto che
permette di calcolare il funzionale
. In figura 3.4b la presa ottima è evidenziata nella stessa
immagine binaria fornita dal sistema di visione : si può
notare che la presenza di porzioni non connesse vengono eliminate
nella fase di estrazione del contorno dalla funzione bwfill e
non perturbano quindi il calcolo dei punti di grasp.
|
|
|
Figura 3.4 a,b : le prese considerate e quella ottima
3.2 Il grasping nella terna base del robot
L’algoritmo grasp2d5.m sviluppato in
[2] e riportato per completezza in appendice B restituisce le
coordinate
e
dei due punti di grasp espresse in pixel : si tratta ora di ottenere
il punto in cui va posizionata la pinza e l’orientamento che
questa deve tenere rispetto alla terna base del robot . La
trasformazione dal sistema standard della telecamera alla terna base
del robot perché si conosce la
per quanto detto nel capitolo 2 . Pertanto è sufficiente
esprimere la posizione e l’orientamento della pinza rispetto al
sistema di riferimento della telecamera : bisogna riportare i punti
e
nelle coordinate metriche
e
![]()
per determinare il punto di presa

e l’angolo
indicati in figura 3.5 .

Si è supposto di inquadrare oggetti planari
con l’asse ottico della telecamera ortogonale al piano di
appoggio degli oggetti , pertanto l’asse z della terna utensile
sarà parallelo all’asse
e con verso opposto . La matrice che esprime la posizione e
l’orientamento della pinza rispetto alla telecamera si può
ricavare notando che per sovrapporre la terna
alla terna utensile è necessario effettuare una rotazione di
attorno all’asse
.

Una volta nota
è nota anche la trasformazione che deve realizzare la pinza
per afferrare l’oggetto :
.