Ricorda:

Definiamo la grasp matrix come:Dove la matrice di grasp contiene tante colonne, quanti sono i punti di contatto diversi ():Dove:

  • è un punto di contatto sull’oggetto.
  • è la sua screw matrix.

~Esempio: Definiamo:Calcoliamo la grasp matrix:

Data la grasp matrix di un oggetto, e le forze che imponiamo ai contact points, avremo che, il wrench che otterremo è dato da:Dove:

  • di solito viene definito come .
    Questo per non confondere il momento torcente dell’oggetto (di solito chiamato ), con i momenti torcenti dei joints (di solito chiamati ).
    Size: .
  • : matrice di grasp definita precedentemente.
    Size: . ( : numero di contact points)
  • chiamato anche : vettore di forze di ogni contact point o vettore di forze di contatto.
    Size: . ( : numero di contact points)

Definiamo adesso ovvero il nullspace della matrice di grasp , avremo che sarà una matrice , che contiene tutti i vettori , tale per cui:Ovvero, tutti i vettori appartenti a corrispondono a forze che non apportano modifiche al wrench dell’oggetto, ovvero applicata una forzaEssendo una matrice, questo vale anche per tutti i vettori che sono combinazioni lineari delle righe della matrice, ovvero, dato un qualsiasi vettore , scelto arbitrariamente avermo che:Dove:

  • : ha le stesse dimensioni di , ovvero: .
  • Il fatto che queste forze comportino un wrench nullo, non vuol dire che non hanno utilità, in quanto possano aiutare ad umentare la presa, l’attrito, per esempio stringendo più forte l’oggetto possiamo aumentare il cono d’attrito.

Per trovare le forze necessarie ad ottenere un certo wrench , possiamo applicare la seguente formula inversa:Dove:

  • : è la pseudoinversa della matrice di grasp.
  • Consiglio:NOT_SURE_ABOUT_THIS Conclusioni personali
    1. Prima di tutto trovare la soluzione .
    2. Dopodichè trovare un vettore tale per cui le forze rientrino nei rispettivi coni d’attrito di ogni contact point.
    3. Le formula finale sarà la stessa, ma almeno non dobbiamo tirare del tutto a caso la definizione del vettore .

==Se il sistema non ha un nullspace, allora esso ha una sola soluzione, e le forze devono trovarsi necessariamente nel cono d’attrito per fare presa==, se non lo fossero, non si potrebbe intervenire artificalmente. Dunque per esseri sicuri di poter afferrare un oggetto, è necessario che ci siano infinite soluzioni, cioè:Inoltre, se è a rango massimo (ed il rango massimo è uguale a ), si ha un grasp che può muovere l’oggetto in ogni direzione.

Dopo aver trovato le forze dei contatti necessarie da applicare ) tale per cui si abbia un certo wrench , dobbiamo assicurarci che il manipolatore possa applicare queste forze, per verificarlo andremo a controllare la Jacobiana della mano , dopo averla calcolata calcoleremo i momenti torcenti dei joints, utilizzando la seguente formula:Possiamo racchiudere wrench, momenti torcenti, matrice di grasp, Jacobiana della mano e forze di contatto in un unico sistema:Dove:

  • : è il numero di joints (riferimento a ).
  • : è in numero di contact points (riferimento a ).
  • : è la Jacobiana della mano.
  • Inoltre ricordiamo che per far avere una soluzione a questo sistema, è necessario che ci siano più equazioni che variabili, cioè:

Come si è visto nel grasping alle forze applicate all’oggetto si contrappongono le forze vincolari di esso. Si studia ora il problema dal punto di vista dell'oggetto. La matrice di grasp, permette di stabilire, a partire dalle forze di contatto, l’effetto complessivo in termini di movimento. ==Si considera da ora come sistema di riferimento o quello fissato nel baricentro dell’oggetto==. Lo spostamento in termini di traslazione e di rotazione può essere stabilito attraverso:Le quali definiscono la dinamica dell’oggetto. Si consideri la prima equazione, innanzitutto esistono 3 tipi di forze:

  1. Forze di contatto.
  2. Forze di gravità.
  3. Forze ambientali.
    (*Quest’ultimo non verrà considerato.)

Si consideri il seguente esempio:
Codice python per questo esempio
Dove:La forza totale:Ed in questo caso:Per quanto riguarda la seconda equazione, è possible generare una rotazione (planare) sia tramite due o più forze, sia tramite l’applicazione di un momento torcente, ma per trasmettere questo è necessario che l’end effector sia una superficie piatta, dunque si considerano solo le forze.

Si consideri il seguente esempio:
Unendo i due risultati si ottiene che:Dove la matrice di grasp contiene tante colonne, quanti sono i punti di contatto diversi ():


Seguendo il seguente esempio:
Codice python per questo esempio
Definiamo: Calcoliamo la grasp matrix:In generale la dinamica dell’oggetto è descritta come:Dove:E specificatamente:NOT_SURE_ABOUT_THIS conclusioni personali

  • rappresenta la massa dell’oggetto: .
  • è la matrice di inerzia.

Tornando alla definizione della grasp matrix del primo esempio, si vogliono trovare ora i kernel di , nel caso di applicazione di due forze su un oggetto quadrato di lato :In forma di sistema:I kernel (del primo esempio con soli due punti di ccontatto) hanno forma:In questo caso, non c’è alcun movimento dell’oggeto, ma ciò è preceduto al grasp, cioè le forze applicate devono avere modulo e direzione tali che l’oggetto non scivoli e che ci sia sufficente attrito statico da mantenere la presa, anche in caso di forze esterne. In termini vettoriali si deve far in modo che le risultanti delle forze ai punti di contatto rientrino sempre nel cono d’attrito:
Se una forza esterna tenta di portare via l’oggetto e se le forze della presa non aumentano, la presa viene persa. In generale per risolvere questo problema è necessario conoscere la direzione normale nei punti di contatto ed il coefficiente di attrito. La forza esterna che si tratterà principalmente è quella di gravità e con si indica il vettore:Il probema può essere formulato come:Dove le forze di contatto sono le incognite, dunque:Dove:

  • : sono i componenti tangenti della forza/wrench esterno .
  • : sono i componenti normali della forza/wrench esterno .NOT_SURE_ABOUT_THIS queste due definizioni di compononenti normali e tangenti l'ho trovate nelle soluzioni dell'2017 non so sono corrette
  • HCR - Spiegazione Formula per il Bilanciamento delle Forze Esterne (ChatGPT)
    • fornisce una soluzione particolare che bilancia le forze esterne.
    • rappresenta una componente aggiuntiva che può essere regolata senza influenzare la forza totale applicata sull’oggetto.
  • NOT_SURE_ABOUT_THIS potrebbe essere il coefficiente di attrito, od un vettore che lo rappresenta. MOOOLTO probabile che sia una cazzata

Se continuiamo con il caso del primo esmpio con 2 soli punti di contatto, applicando la formula precendente con (NOT_SURE_ABOUT_THIS Non ho idea di cosa potrebbe essere ), troveremo:Ma le forze non possono essere dirette parallelamente a quella di gravità perché non si avrebbe attrito con l'oggetto e scivolerebbe. Dunque a queste forze ( o ), vanno sommate forze dirette verso l’interno () in modo che: Dove, ripeto per chiarezza:NOT_SURE_ABOUT_THIS conclusioni personali

  • forze dei contact points trovate con la formula: , quindi, se guardiamo il risultato dell’esempio:
  • forze dirette internamente all’oggetto, o anche forze normali rispetto al piano/triangolo su cui si posano le dita, quindi se usiamo come esempio lo stesso (esempio dei due contact points avremo): . Ovvero due forze direzionate lungo l’asse .

Le forze “verso l’interno” , sono forze che devono essere aggiunte solo se il kernel della matrice non è nullo, ovvero se non è di rango massimo: #NOT_SURE_ABOUT_THIS rielaborazione/conclusione personale Vogliamo inoltre che le forze applicate rientrino nel cono di attrito, per ottenere questo è necessario applicare il giusto momento torcente, con le due equazioni:

  1. : che invertita permette di stabilire la forza al contatto da applicare per il grasp.
  2. : che permette di stabilire il momento torcente necesarrio per applicare .

Nel grasping, però è importatnte avere misure in feedback delle forze applicate, conoscendo il momento torcente applicato. Per avere queste informazione, dato il seguente sistema:Dove:

  • : è il numero di joints (riferimento a ).
  • : è in numero di contact points (riferimento a ).
  • : è la Jacobiana della mano.

È necessario che ci siano più equazioni che variabili, cioè:Nel caso raffigurato di enveloping grasping:

È importante valutare le forze, infatti si hanno equazioni e variabili, ma non è rivelante che esse siano nel cono d’attrito, dal momento che l’oggetto è bloccato dalla presa.

==Se il sistema non ha un nullspace, allora esso ha una sola soluzione, e le forze devono trovarsi necessariamente nel cono d’attrito per fare presa==, se non lo fossero, non si potrebbe intervenire artificalmente. Dunque è necessario che ci siano infinite soluzioni, cioè:Inoltre, se è a rango massimo (ed il rango massimo è uguale a ), si ha un grasp che può muovere l’oggetto in ogni direzione. #IMPORTANTE Una matrice con nullspace nullo, ha rango massimo. #IMPORTANTE Un nullspace nullo, non comporta però una matrice a rango massimo.

  • N.B.: Riprendendo i due esempi con 2 punti di contatto e 3 punti di contatto, abbiamo che:
    • Per il problema dei 2 punti di contatto, la matrice di grasp non ha rango massimo.
    • Per il problema dei 3 punti di contatto, la matrice di grasp ha rango massimo.
    • Entrambe le matrici di grasp dei due problemi hanno un nullspace non nullo.
  • Infatti se prendiamo un cubo con due dita (per esempio due dita di mani diverse), avremo che possiamo spostare il cubo in tutte e 3 le dimensioni, ma possiamo rotarlo solo in 2.
    Mentre se lo prendiamo con 3 dita, come nel problema relativo (quindi ha rango massimo) possiamo spostare e rotare lo stesso cubo in tutte le direzioni.