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 :
.