Home
Metodologia
Multibody
MATLAB
 



Loop

Risoluzione del loop che conferisce il DoF aggiuntivo

Fino ad ora abbiamo visto come l'utilizzo combinato di due Haptic Masters possa facilmente garantire alla piattaforma end effector 5 gradi di libertà (DoF), ovvero le tre coordinate della posizione e la rotazione attorno agli assi z e x.

Il cinematismo posto all'estremità dei due bracci robotici ha lo scopo di conferire all'end effector il sesto ed ultimo DoF, consentendo la rotazione attorno all'asse y.
Ciò viene garantito attraverso un loop (ciclo chiuso) che lega l'inclinazione della piattaforma rispetto all'asse y alla distanza tra le estremità dei due Haptic Masters. Sarà quindi la distanza tra i due bracci robotici a determinare la posizione finale dell'end effector, che sarà dotato di tutti i DoF di un corpo libero nello spazio.

Nella figura seguente viene schematicamente illustrato il funzionamento del cinematismo con loop:
 

Se c'è un avvicinamento tra le estremità degli Haptic Masters, il componente 1 si avvicina al componente 2. Affinché in questa situazione venga rispettato il vincolo imposto dai due giunti sferici collegati (3) - in sostanza la loro distanza deve rimanere costante - la piattaforma end effector è costretta a ruotare in senso orario attorno all'asse y; ovviamente un allontanamento tra i due bracci robotici produrrà l'effetto opposto.

Come può essere descritto questo cinematismo utilizzando le matrici di trasformazione?

Il nostro problema è Il seguente: nota la posizione e l'orientazione della terna mobile solidale all'end effector, come determinare l'angolo α di rotazione dell'end effector attorno all'asse y di tale terna? Tale angolo è l'unico in grado di rispettare il vincolo di distanza tra i due giunti sferici sopra evidenziati.
Per loop come questo non è possibile scrivere una soluzione in forma chiusa. Siamo però in grado di individuare un metodo iterativo che, sfruttando le capacità computazionali dei calcolatori, permetta di trovare rapidamente un'approssimazione prossima a piacere a tale angolo.

Verrà di seguito illustrata in maniera estremamente sintetica la procedura seguita per individuare l'algoritmo solutivo del problema.

Nella figura seguente sono indicati gli angoli, i punti e le terne di interesse ai fini del nostro calcolo:
 

 

La posizione e l'orientazione della terna A sono note; in tale sistema di riferimento è facile determinare la posizione del punto P (sede del primo dei due giunti sferici collegati).
Si parte con un α di tentativo qualsiasi e si scrive la matrice di rotazione di tale angolo in senso orario attorno all'asse y. Si scrive poi la matrice di traslazione che collega la terna A e la terna D (in pratica tale traslazione è data dalle dimensioni del componente 1 evidenziato nella prima figura di questa pagina). Con queste due matrici si premoltiplicano le coordinate del punto P, ottenendo infine la sua posizione rispetto alla terna D.
Rispetto alla terna D è facile determinare la posizione del punto R, che sarà ruotato di un certo angolo δ per mantenere costante la lunghezza del segmento RP. Tale lunghezza è nota, ed è proprio essa che si va a imporre per risalire all'angolo δ a partire dall'α iniziale di tentativo.
Noti gli angoli α e δ in questa situazione e le dimensioni del pezzo 2, è facile risalire alla terna posta alla sua base. A questo punto, considerando per semplicità tale terna posta esattamente al termine dell'Haptic Master, si verifica che il suo asse z sia perpendicolare al braccio robotico. Tale verifica viene eseguita con il prodotto scalare: se esso è maggiore di un ε piccolo a piacere, il ciclo si ripete con un piccolo incremento di α.
Ovviamente piccoli incrementi di α rallenteranno il ciclo ma consentiranno una migliore precisione.
Il ciclo verrà poi ripetuto decrementando α, e alla fine verrà scelto l'angolo minore in modulo.


Per qualsiasi chiarimento e per l'analisi dettagliata della routine in MATLAB, si rimanda all'esposizione orale del progetto.

 

Progetto a cura di Federico Parietti  ---  Corso: Laboratorio Progettuale di Disegno Assistito dal Calcolatore  ----  Prof. U. Cugini  ---  A.A. 2007/2008