[Robotica] Proprietà derivata matrice di rotazione S(w)

alfonso878
Buongiorno,
Sto studiando Robotica e spesso uso la seguente formula:

$ R_b^a S( omega_{a b}^b) (R_b^a)^T = S( R_b^a omega_{a b}^b) = S( omega_{a b}^a) $

che in pratica lega la velocità angolare del frame $b$ rispetto al frame $ a$, vista dal frame $b$, con la velocità del frame $b$ rispetto al frame $a$ vista nel frame $a$.

però non trovo la dimostrazione da nessuna parte, sto provando a farlo io da un po' di tempo ma non riesco. Qualcuno può aiutarmi?

Risposte
Cla1608
Considera che il tutto viene fuori da questa legge (si chiama di Eulero se non ricordo male) che a sua volta dipende da quella di Poisson (derivata di un vettore).

Se considero un sistema di riferimento fisso e un corpo in moto roto-traslatorio allora:

$vec(OB)=vec(OA)+vec(AB)$

Dove A e B sono due punti generici del corpo e O l origine del sistema di riferimento.

Derivando rispetto al tempo avrò:
$vec(V_(B))=vec(V_(A))+omega^^vec(AB)$

Nel tuo caso se consideriamo che A coincide con l'origine avrò:
$vec(V_(B))=omega^^vec(AB)$

Che scritto in forma matriciale diventa:
$vec(V_(B))=[omega]vec(AB)$ dove $[omega]$ è la matrice velocità angolare

Nel tuo caso dovresti fare la stessa cosa:
- esprimi il punto P nel riferimento B nel riferimento A tramite la matrice rotazione $P_(A)=[R]P_(B)$
- derivi rispetto al tempo $vec(V_(P_(A)))=dot([R])P_(B)$ è un corpo rigido quindi derivi solo $[R]$
- per esprimere la veltocità di P completamente rispetto a A puoi fare così: $vec(V_(P_(A)))=(dot([R])[R]^-1) ([R]P_(B))=P_(A)$ dove $$ in pratica è quella che prima ho chiamato $[omega]$

($[R]^-1=[R]^T$)

spero di non averti fatto confusione

alfonso878
Ciao, grazie della risposta
non ho capito come si può usare quello che hai scritto per dimostrare la proprietà che dicevo sopra.
Da quanto ho capito mi hai spiegato che cos'è la matrice S, dicendomi che il suo significato fisico è il prodotto vettoriale tra $omega$ ed una distanza $r$ che rappresenta il contributo sulla velocità lineare, dovuto a una rotazione $omega$.
Però, sempre se ho capito bene eh :)
non dimostra quella identità, che alla fine indica che per passare da una rappresentazione matriciale di $omega$ (quindi $S$) in un frame A ad un altra in un frame B, non basta semplicemente trovare una matrice di rotazione dal frame $R_A^B$ come per un qualsiasi vettore, ma bisogna anche post moltiplicare per la stessa matrice di rotazione però trasposta $(R_A^B)^T$

Cla1608
in teoria tu per esprimere la velocità rispetto a 2 frame non necessariamente dovresti usare la trasposta, infatti $vec(V_(P_(A)))=dot([R])P_(B)$ però per ricondurti alla matrice velocità angolare devi applicare questa $vec(V_(P_(A)))=(dot([R])[R]^-1) ([R]P_(B))=P_(A)$ (in pratica è la prima relazione in cui si è moltiplicato "al centro" per $[R]^-1 [R]= $ dove $ $ la matrice identità che come ben sai non comporta cambiamenti al risultato finale)

alfonso878
Ciao,
e grazie che mi hai risposto di nuovo,volevo dirti che non ti seguo molto. Quella velocità, che calcoli così:
$ vec(V_(P_(A)))=dot([R])P_(B) $
per come l'hai scritta è una velocità lineare, quindi anche se mi trovo con i tuoi passaggi, la formula che vorrei dimostrare eguaglia due matrici di rotazione che esprimono una velocità angolare rispetto a due frame diversi, mentre appunto, tutti i tuoi ragionamenti sono su velocità lineari.
Ci ho pensato molto prima di rispondere, magari mi sbaglio però veramente non riesco a trovare un legame con la formula che ho scritto all'inizio.
Nel caso in cui sia io che non ci arrivo, che è possibile, potresti fare i passaggi necessari per arrivare a quella formula?

gtx1
E' la classica formula di cambiamento di coordinate per la rappresentazione di tensori del secondo ordine

Cla1608
"Alfonso96":
Ciao,
e grazie che mi hai risposto di nuovo,volevo dirti che non ti seguo molto. Quella velocità, che calcoli così:
$ vec(V_(P_(A)))=dot([R])P_(B) $
per come l'hai scritta è una velocità lineare, quindi anche se mi trovo con i tuoi passaggi, la formula che vorrei dimostrare eguaglia due matrici di rotazione che esprimono una velocità angolare rispetto a due frame diversi, mentre appunto, tutti i tuoi ragionamenti sono su velocità lineari.
Ci ho pensato molto prima di rispondere, magari mi sbaglio però veramente non riesco a trovare un legame con la formula che ho scritto all'inizio.
Nel caso in cui sia io che non ci arrivo, che è possibile, potresti fare i passaggi necessari per arrivare a quella formula?


La matrice velocità angolare espressa in A ha senso se la applichi a $P_(A)$ e sarebbe la matrice $$, non vorrei aver capito male la notazione che hai usato ma in pratica è la tua $S( omega_{a b}^a)$. Se vuoi esprimere la matrice velocità angolare nel frame B non devi far altro che scrivere la solita formula di Eulero $vec(V_(B))=omega_(B)^^(B-O')$ in forma matriciale (dove con O' ho indicato l'origine del frame B)

alfonso878
con questa notazione $S( omega_{a b}^a)$ intendo la velocità angolare del frame B rispetto al frame A calcolata nel frame A, comunque ancora non vedo il collegamento con questa formula:
$ R_b^a S( omega_{a b}^b) (R_b^a)^T = S( R_b^a omega_{a b}^b) = S( omega_{a b}^a) $
Puoi essere più chiaro e fare tutti i passaggi fino ad arrivare all'enunciato che ho riscritto qui?

Cla1608
$vec(V_(P_(A)))=(dot([R])[R]^-1) ([R]P_(B))=P_(A)$

i passaggi sono questi, quelli indicati nel messaggio sopra, utilizza la notazione che vuoi ma il concetto è questo, considera che la matrice inversa è anche la trasposta

alfonso878
Va bene, grazie lo stesso, continui a rispondermi sempre con la stessa formula anche se ti dico che non capisco come arrivi a dimostrare la relazione che ti ho scritto sopra. Fai ragionamenti su velocità lineari per dimostrare l'uguaglianza tra velocità angolari. Potrebbe anche essere giusto quello che scrivi! (Anche se mi viene il dubbio che non hai capito la domanda :lol:) .Comunque per quanto ne so potrebbe anche essere la dimostrazione che sto cercando, ma non riesci a farmi capire.
Grazie lo stesso per averci provato :)

Cla1608
le terne A e B hanno lo stesso polo, concettualmente è la stessa cosa che dici tu, scusami se non so essere più chiaro ... in pratica basta moltiplicare per la trasposta (o l inversa) della matrice rotazione e la matrice rotazione per ottenere tutta quella dicitura super pesante che indichi tu

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.