Controllo del moto e robotica industriale Dinamica del manipolatore Prof. Paolo Rocco ([email protected]) Energia cinetica Consideriamo un punto materiale di massa m, la cui posizione sia descritta dal vettore p rispetto ad una terna xyz. Definiamo energia cinetica del punto la quantità: 1 T = mp T p 2 Analogamente, per un sistema di punti materiali: 1 T= 2 z P x n ∑ mi piT pi z i =1 Consideriamo ora un corpo rigido, di massa m, volume V e densità ρ. L’energia cinetica è definita come: T= 1 2 y O ∫ pT pρdV P O dV y x V Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [2] Energia potenziale Un sistema di forze posizionali (cioè dipendenti solo dalle posizioni dei punti d’applicazione) si dice conservativo se il lavoro compiuto da ciascuna forza non dipende dalla traiettoria seguita dal punto di applicazione ma solo dalla sua posizione iniziale e finale. In questo caso il lavoro elementare coincide con il differenziale, cambiato di segno, di una funzione che prende il nome di energia potenziale: dW = − dU Un esempio di sistema di forze conservativo è la forza gravitazionale. Per un punto materiale avremo l’energia potenziale: U = − mg 0T p dove g0 è il vettore accelerazione di gravità. Per un corpo rigido: U =− ∫ V g 0T pρdV = − mg 0T pl con pl posizione del baricentro. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [3] Sistemi di corpi Si consideri ora un sistema di r corpi rigidi (quali, per esempio, i bracci di un robot). Se tutti i corpi sono liberi di muoversi nello spazio, il moto del sistema è ad ogni istante descrivibile per mezzo di 6r coordinate x. Supponiamo ora che esistano delle limitazioni al moto dei corpi che costituiscono il sistema (quali quelle indotte dalla connessione di un braccio con il successivo tramite un giunto, che elimina cinque su sei gradi di mobilità relativi tra i due bracci). Diciamo che sul moto dei corpi esiste un vincolo, che esprimeremo con la relazione: h( x ) = 0 Un vincolo rappresentato da un’equazione di questo tipo si dice olonomo (perché dipende solo dalle coordinate di posizione e non dalle velocità) e stazionario (perché non dipende dal tempo). Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [4] Coordinate libere h( x ) = 0 Se il vincolo h è costituito da s componenti scalari e tutte sono continue e differenziabili con continuità, è possibile, per mezzo del vincolo, eliminare s coordinate dalle equazioni del sistema. Le rimanenti n=6r – s coordinate prendono il nome di coordinate libere, o lagrangiane, o generalizzate, e n è il numero di gradi di libertà del sistema meccanico. Per esempio, in un robot a 6 giunti, delle 36 coordinate originarie, se ne eliminano 30 in virtù dei vincoli imposti dai 6 giunti e ne rimangono 6 che costituiscono le coordinate lagrangiane: tipicamente si scelgono le coordinate di giunto (l’angolo ϑ o la distanza d, rispettivamente per giunto rotazionale o prismatico). Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [5] Equazioni di Lagrange Sia dato quindi un sistema di corpi rigidi, le posizioni ed orientamenti dei quali si possano esprimere per mezzo di n coordinate generalizzate qi. Definiamo lagrangiana del sistema meccanico la quantità: L = T −U essendo T e U rispettivamente l’energia cinetica e l’energia potenziale del sistema. Siano poi ξi le forze generalizzate associate alle coordinate generalizzate qi. Il lavoro elementare compiuto dalle forze agenti sul sistema si può esprimere come: n dW = ∑ ξ dq i i i =1 Si può dimostrare che la dinamica del sistema di corpi è retta dalle seguenti equazioni di Lagrange: d ∂L ∂L − = ξ i , i = 1, …, n dt ∂qi ∂qi Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [6] Esempio Consideriamo un sistema costituito da un motore rigidamente connesso ad un carico soggetto a forza gravitazionale. Siano Im e I i momenti di inerzia di motore e carico rispetto all’asse del motore, m la massa del carico, l la distanza del baricentro del carico dall’asse del motore. Energia cinetica del motore y C l ϑ x τ mg 1 Tm = I m ϑ 2 2 Energia cinetica del carico Tc = 1 2 Iϑ 2 Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [7] Esempio ϑ l τ mg Lagrangiana: Energia potenziale gravitazionale: ⎡l cos ϑ⎤ U = −mg 0T pl = −m[0 − g ]⎢ = mgl sin ϑ ⎥ ⎣ l sin ϑ ⎦ L = Tm + Tc − U = 1 (I m + I )ϑ2 − mgl sin ϑ 2 Equazione di Lagrange: d ∂L ∂L d (I + I m )ϑ + mgl cos ϑ = τ − =τ ⇒ dt ∂ϑ ∂ϑ dt ( ) Pertanto: (I + I m )ϑ + mgl cos ϑ = τ L’equazione si lascia facilmente interpretare come l’equilibrio dei momenti rispetto all’asse di rotazione. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [8] Energia cinetica di un braccio Il contributo di energia cinetica di un singolo braccio di un manipolatore si può calcolare per mezzo dell’integrale: 1 *T * Ti = pi pi ρdV V 2 i pi* punto generico sul link ∫ Posizione del baricentro: pli = 1 mi ∫ Vi pi*ρdV * Velocità del generico punto: pi = pli + ω i × ri = pli + S (ω i )ri dove: ⎡ 0 S (ω i ) = ⎢ ωiz ⎢ ⎢⎣− ωiy − ωiz 0 ωix ωiy ⎤ − ωix ⎥ ⎥ 0 ⎥⎦ (matrice antisimmetrica). Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [9] Energia cinetica di un braccio Contributo traslazionale: 1 2 ∫ Vi pli T pli ρdV = 1 mi pli T pli 2 Contributo mutuo: ∫ Vi ∫ (p pli T S (ω i )ri ρdV = pli T S (ω i ) Vi * i ) − pli ρdV = 0 Contributo rotazionale: 1 2 ∫ Vi riT S T 1 T⎛ (ωi )S (ωi )ri ρdV = ωi ⎜ S T (ri )S (ri )ρdV ⎞⎟ωi = 2 ⎠ ⎝ Vi 1 = ωTi I i ω i 2 ∫ N.B. S (ω i )ri = − S (ri )ω i Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [10] Tensore di inerzia Definiamo il tensore di inerzia: ∫( ) ⎡ r 2 + r 2 ρdV ⎢ iy iz * Ii = ⎢ ⎢ ⎢ * ⎢⎣ ∫ − rix riy ρdV ∫ (r 2 ix ) + riz2 ρdV * − rix riz ρdV ⎤ ⎥ ⎡ I ixx − riy riz ρdV ⎥ = ⎢⎢ * ⎥ ⎢ rix2 + riy2 ρdV ⎥ ⎣ * ⎥⎦ ∫( ∫ ∫ ) − I ixy I iyy * − I ixz ⎤ − I iyz ⎥⎥ I izz ⎥⎦ (matrice simmetrica) Il tensore di inerzia, espresso in terna base, dipende dalla configurazione del manipolatore. Se la velocità angolare è espressa rispetto ad una terna solidale al braccio i (per esempio la terna DH), ovvero: ω ii = RiT ω i e il tensore di inerzia rispetto a tale terna è costante. Risulta inoltre: I i = Ri I ii RiT Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [11] Somma dei contributi Sommiamo il contributo traslazionale con quello rotazionale: 1 1 T T Ti = mi pli pli + ω i Ri I ii RiT ω i 2 2 Velocità lineare: (li ) pli = j P(l1i )q1 + … + j Pi qi = J P(li )q Velocità angolare: (li ) ω i = jO(l1i )q1 + … + jOi qi = J O(li )q Colonne dello Jacobiano: [ (li ) j Pi 0 0 ] [ (li ) jOi 0 0 ] J P(li ) = j P(l1i ) J O(li ) = jO(l1i ) ⎧⎡ z j −1 ⎤ ⎪⎢ ⎥ ⎪ ( ) l ⎢⎣ 0 ⎥⎦ ⎡ j Pji ⎤ ⎪ ⎢ ⎥=⎨ ( ) l ⎢j i ⎥ ⎪ ⎡ z j −1 × pli − p j −1 ⎣ Oj ⎦ ⎪⎢ ⎪⎢ z j −1 ⎩⎣ ( giunto prismatico )⎤ ⎥ ⎥⎦ giunto rotoidale Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [12] Matrice di inerzia Sviluppando le velocità lineari ed angolari: 1 1 T (li )T T (li )T (li ) Ti = mi q J P J P q + q J O Ri I ii RiT J O(li )q 2 2 Sommando i contributi di tutti i bracci si ottiene l’espressione dell’energia cinetica dell’intero manipolatore: 1 T= 2 n n ∑∑ bij (q )qi q j = i =1 j =1 1 T q B (q )q 2 dove: B (q ) = ( ) ( ) ( ) ( m J J + J RI R ∑ n i li T P li P li T O i i i T (li ) i JO i =1 è la matrice di inerzia del manipolatore. ) ⎧ simmetrica ⎪⎪ ⎨ definita positiva ⎪ ⎪⎩ dipendente da q Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [13] Energia potenziale L’energia potenziale di un braccio rigido è dovuta solo alla forza peso: Ui = − ∫ V g 0T pi*ρdV = − mi g 0T pli dove g0 è il vettore dell’accelerazione di gravità espresso in terna base. L’energia potenziale dell’intero manipolatore è semplicemente la somma dei contributi relativi ai singoli link: n n U= ∑ i =1 Ui = − ∑ i =1 mi g 0T pli Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [14] Equazioni del moto Lagrangiana del manipolatore: n n 1 L(q, q ) = T (q, q ) − U (q ) = bij (q )qi q j + 2 i =1 j =1 ∑∑ n ∑ mi g 0T pli (q ) i =1 Deriviamo la lagrangiana: d ⎛ ∂L ⎜ dt ⎜⎝ ∂qi ⎞ n bij (q )q j ⎟ = bij (q )q j + ⎟ j =1 ⎠ j =1 n ⎡ n n ∂bij (q ) ⎤ bij (q )q j + qk ⎥ q j = ⎢ ⎥⎦ j =1 ⎢ j =1 ⎣ k =1 ∂q k ⎞ d ⎛ ∂T ⎟= ⎜ ⎟ dt ⎜ ∂q ⎠ ⎝ i ∑ ⎞ d ⎛⎜ ⎟= ⎟ dt ⎜ ⎠ ⎝ n ∑ ∑ n ∑ dbij (q ) j =1 dt qj = ∑∑ Inoltre: ∂T 1 n n ∂b jk (q ) = ∑∑ qk q j ∂qi 2 j =1k =1 ∂qi n n ∂plj ∂U (l ) T = − m j g0 = − m j g 0T j P j (q ) = g i (q ) i ∂qi ∂qi j =1 j =1 ∑ ∑ Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [15] Equazioni del moto Dalle equazioni di Lagrange otteniamo n n n ∑ b (q )q + ∑∑ h ij j =1 dove: ijk j (q )qk q j + g i (q ) = ξ i i = 1,… , n j =1 k =1 hijk ∂bij 1 ∂b jk = − ∂q k 2 ∂qi termine gravitazionale dipendente solo dalla configurazione Termini di accelerazione: bii : momento di inerzia visto all’asse del giunto i bij : effetto dell’accelerazione del giunto j sul giunto i Termini quadratici in velocità: . hijjqj2 : effetto centrifugo indotto al giunto i dalla velocità del giunto j .. hijkqjqk : effetto di Coriolis indotto al giunto i dalle velocità dei giunti j e k hiii = 0 Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [16] Forze non conservative Oltre alle forze gravitazionali conservative, sul manipolatore agiscono: τ • coppie di attuazione • coppie di attrito viscoso − Fv q • coppie di attrito statico − f s (q, q ) T • coppie che equilibrano le forze di contatto − J (q )h Fv matrice diagonale di coefficienti di attrito viscoso f s (q, q ) funzione che modella l’attrito statico al giunto h forze e momenti al contatto Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [17] Modello dinamico completo In termini vettoriali il modello matematico del manipolatore si esprime: B (q )q + C (q, q )q + Fv q + f s (q, q ) + g (q ) = τ − J T (q )h dove C è un’opportuna matrice n×n i cui elementi soddisfano la relazione: n n n ∑ c q = ∑∑ h ij j =1 ijk q k q j j j =1 k =1 Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [18] Calcolo degli elementi di C La scelta della matrice C non è univoca. Una possibilità è la seguente: n n n n ∑ c q = ∑∑ h ij ijk q k q j j j =1 1 = 2 = j =1 k =1 n n ∑∑ j =1 1 qk q j + 2 ∂q k k =1 ∑∑ j =1 ∂bij n ⎛ ∂bij 1 ∂b jk ⎞ ⎜ ⎟ ⎜ ∂q − 2 ∂q ⎟q k q j = k i ⎠ k =1 ⎝ ⎛ ∂bik ∂b jk ⎜ − ⎜ ∂q j ∂qi k =1 ⎝ n ∑∑ j =1 n ⎞ ⎟q k q j ⎟ ⎠ Il generico elemento di C risulta: n cij = ∑c ijk q k k =1 dove: cijk 1 ⎛⎜ ∂bij ∂bik ∂b jk = + − ⎜ 2 ⎝ ∂q k ∂q j ∂qi ⎞ ⎟ ⎟ ⎠ Simboli di Christoffel del primo tipo Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [19] . Anti-simmetria di B−2C La precedente scelta della matrice C consente di dimostrare un’importante proprietà del modello dinamico del manipolatore. Definita la matrice: N (q, q ) = B (q ) − 2C (q, q ) essa risulta anti-simmetrica: w T N (q, q )w = 0, ∀w Infatti: ⎛ ∂bik ∂b jk ⎜ − ⎜ ∂q j ∂qi k =1 ⎝ n ⎛ ∂bik ∂b jk ⎞⎟ 1 1 ⎜ qk = bij + − ⎜ ⎟ 2 2 k =1 ⎝ ∂q j ∂qi ⎠ 1 cij = 2 n ∂bij 1 qk + 2 ∂q k k =1 ∑ n ∑ ⎞ ⎟qk = ⎟ ⎠ ∑ Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [20] . Anti-simmetria di B−2C Ne consegue: ⎛ ∂b jk ∂bik ⎜ nij = bij − 2cij = − ⎜ ∂qi ∂q j k =1 ⎝ n ∑ ⎞ ⎟q k ⎟ ⎠ e quindi: nij = − n ji ovvero la matrice è anti-simmetrica. . Ponendo w = q si ottiene, in particolare: q T N (q, q )q = 0 Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [21] Principio di conservazione dell’energia L’equazione: q T N (q, q )q = 0 (caso particolare della precedente) è tuttavia valida qualunque sia la scelta della matrice C. Infatti, dal principio di conservazione dell’energia, la derivata dell’energia cinetica bilancia la potenza generata da tutte le forze agenti ai giunti del manipolatore: ( ) ( ) ( ) 1 d T q B (q )q = q T τ − Fv q − f s (q, q ) − g (q ) − J T (q )h 2 dt eseguendo la derivata a primo membro, ed utilizzando l’equazione del modello: ( ) 1 d T 1 1 q B (q )q = q T B (q )q + q T B (q )q = q T B (q ) − 2C (q, q ) q 2 dt 2 2 + q T τ − Fv q − f s (q, q ) − g (q ) − J T (q )h ( ) da cui l’equazione cercata. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [22] Linearità nei parametri dinamici Se si assume per la funzione che definisce l’attrito statico un’espressione semplificata: f s (q, q ) = Fs sgn (q ) è possibile dimostrare che il modello dinamico del manipolatore risulta lineare rispetto ad un insieme opportuno di parametri dinamici (masse, momenti primi di inerzia, momenti di inerzia). Si può in altre parole scrivere: τ = Y (q, q, q )π π: vettore di p parametri costanti Y: matrice n×p funzione di posizioni, velocità ed accelerazioni dei giunti (regressore) Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [23] Manipolatore cartesiano a due bracci d2 m2 z1 m1 ⎡d ⎤ q = ⎢ 1⎥ ⎣d 2 ⎦ z0 x0 d1 Consideriamo un manipolatore cartesiano a due bracci, caratterizzati dalle masse m1 e m2. Il vettore delle coordinate generalizzate risulta: Gli Jacobiani necessari per il calcolo della matrice di inerzia sono i seguenti: (l1 ) JP ⎡0 0 ⎤ = ⎢0 0 ⎥ ⎢⎣1 0⎥⎦ (l2 ) JP ⎡0 1 ⎤ = ⎢0 0 ⎥ ⎢⎣1 0⎥⎦ mentre non ci sono contributi dovuti a velocità angolare. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [24] Manipolatore cartesiano a due bracci Calcolando la matrice di inerzia con la formula generale, si ottiene: ⎡ m + m2 B = m1J P(l1 )T J P(l1 ) + m2 J P(l2 )T J P(l2 ) = ⎢ 1 ⎣ 0 0⎤ m2 ⎥⎦ Si osservi che B è costante. Ne consegue che C=0, ovvero non ci sono contributi centrifughi e di Coriolis. Inoltre, poiché: ⎡ 0 ⎤ g0 = ⎢ 0 ⎥ ⎢⎣− g ⎥⎦ il vettore dei termini gravitazionali risulta: ⎡(m + m2 )g ⎤ g=⎢ 1 ⎥⎦ 0 ⎣ Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [25] Manipolatore cartesiano a due bracci In assenza di attriti e forze all’end effector, le equazioni del moto sono le seguenti: (m1 + m2 )d1 + (m1 + m2 )g = f1 m2 d 2 = f 2 f1 e f2: forze agenti lungo le coordinate generalizzate Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [26] Manipolatore planare a due bracci m2, I2 y0 l2 m1, I1 l1 Consideriamo un manipolatore planare a due bracci, caratterizzati da: • masse: m1 e m2 • lunghezze: a1 e a2 • distanze dei baricentri dagli assi dei giunti: l1 e l2 • momenti di inerzia baricentrali intorno a z0: I1 e I2 a2 ϑ2 a1 ϑ1 x0 ⎡ ϑ1 ⎤ q = Coordinate generalizzate: ⎢⎣ϑ 2 ⎥⎦ Gli Jacobiani necessari per il calcolo della matrice di inerzia sono i seguenti: ⎡− l1s1 0⎤ J P(l1 ) = ⎢ l1c1 0⎥ ⎢ 0 0⎥⎦ ⎣ (l1 ) JO ⎡0 0 ⎤ = ⎢0 0 ⎥ ⎢⎣1 0⎥⎦ ⎡− a1s1 − l 2 s12 J P(l2 ) = ⎢ a1c1 + l 2 c12 ⎢ 0 ⎣ (l2 ) JO − l 2 s12 ⎤ l 2 c12 ⎥ 0 ⎥⎦ ⎡0 0 ⎤ = ⎢0 0 ⎥ ⎢⎣1 1⎥⎦ Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [27] Manipolatore planare a due bracci Tenendo conto che i vettori velocità angolare ω1 e ω2 sono allineati con z0 le matrici di rotazione Ri sono irrilevanti, per cui il calcolo della matrice di inerzia conduce a: (l1 )T (l1 ) B (q ) = m1J P (l2 )T (l2 ) J P + m2 J P ( (l1 )T (l1 ) J P + I1 J O (l2 )T (l2 ) JO + I2JO JO ⎡ b11 (ϑ) b12 (ϑ)⎤ =⎢ ⎥ ( ) b b ϑ 22 ⎦ ⎣ 21 ) b11 = m1l12 + I1 + m2 a12 + l 22 + 2a1l 2 c2 + I 2 ( ) b12 = b21 = m2 l 22 + a1l 2 c2 + I 2 b22 = m2 l 22 + I 2 Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [28] Manipolatore planare a due bracci Dalla matrice di inerzia ricaviamo i simboli di Christoffel: c111 = 1 ∂b11 =0 2 ∂q1 c112 = c121 = 1 ∂b11 = − m2 a1l 2 s 2 = h 2 ∂q 2 c122 = ∂b12 1 ∂b22 − = − m2 a1l 2 s 2 = h ∂q 2 2 ∂q1 c211 = ∂b21 1 ∂b11 = m2 a1l 2 s 2 = −h − ∂q1 2 ∂q 2 c212 = c221 c222 = h = − m2 a1l 2 s 2 1 ∂b22 = =0 2 ∂q1 1 ∂b22 =0 2 ∂q 2 Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [29] Manipolatore planare a due bracci L’espressione della matrice C è quindi: ⎡ hϑ 2 C (q, q ) = ⎢ ⎣− hϑ1 ( ) h ϑ1 + ϑ 2 ⎤ ⎡− m2 a1l 2 s 2 ϑ 2 ⎥=⎢ 0 ⎦ ⎣ m2 a1l 2 s 2 ϑ1 ( ) − m2 a1l 2 s 2 ϑ1 + ϑ 2 ⎤ ⎥ 0 ⎦ Verifichiamo l’anti-simmetria della matrice N: ⎡ 2 hϑ 2 N (q, q ) = B (q ) − 2C (q, q ) = ⎢ ⎣ hϑ 2 ⎡ 0 =⎢ ⎣2hϑ1 + hϑ 2 hϑ 2 ⎤ ⎡ hϑ 2 ⎥ − 2⎢ 0 ⎦ ⎣− hϑ1 ( ) h ϑ1 + ϑ 2 ⎤ ⎥= 0 ⎦ − 2hϑ1 − hϑ 2 ⎤ T (q, q ) N = − ⎥ 0 ⎦ Inoltre, poiché g0 = [0 −g 0]T, il vettore dei termini gravitazionali risulta: ⎡(m l + m2 a1 )gc1 + m2 gl 2 c12 ⎤ g =⎢ 11 ⎥⎦ m2 gl 2 c12 ⎣ Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [30] Manipolatore planare a due bracci In assenza di attriti e forze all’end effector, le equazioni del moto sono le seguenti: (m l 2 11 ( ) ) ( ( ) ) + I1 + m2 a12 + l 22 + 2a1l 2 c2 + I 2 ϑ1 + m2 l 22 + a1l 2 c2 + I 2 ϑ 2 + − 2m2 a1l 2 s 2 ϑ1ϑ 2 − m2 a1l 2 s 2 ϑ 22 + + (m1l1 + m2 a1 )gc1 + m2 gl 2 c12 = τ1 (m (l 2 2 2 ) ) ( ) + a1l 2 c2 + I 2 ϑ1 + m2 l 22 + I 2 ϑ 2 + + m2 a1l 2 s 2 ϑ12 + m2 l 2 gc12 = τ 2 τi : coppie applicate ai due giunti Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [31] Manipolatore planare a due bracci Per ispezione delle equazioni, possiamo ricavare i parametri dinamici rispetto a cui il modello è lineare, ovvero rispetto ai quali si può scrivere: τ = Y (q, q, q )π Risulta: π = [π1 π2 π3 π4 π 5 ]T π1 = m1l1 π 2 = I1 + m1l12 π 3 = m2 π 4 = m2 l 2 π 5 = I 2 + m2 l 22 Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [32] Manipolatore planare a due bracci ⎡y Y (q, q, q ) = ⎢ 11 ⎣ 0 y12 0 y13 0 y14 y 24 y15 ⎤ y 25 ⎥⎦ y11 = gc1 y12 = ϑ1 y13 = a12 ϑ1 + a1 gc1 y14 = 2a1c2 ϑ1 + a1c2 ϑ 2 − 2a1s 2 ϑ1ϑ 2 − a1s 2 ϑ 22 + gc12 y15 = ϑ1 + ϑ 2 y 24 = a1c2 ϑ1 + a1s 2 ϑ12 + gc12 y 25 = ϑ1 + ϑ 2 I coefficienti di Y dipendono da ϑ1, ϑ2, dalle loro derivate prime e seconde, da g e da a1. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [33] Identificazione dei parametri dinamici La proprietà di linearità del modello dinamico rispetto ai parametri dinamici: τ = Y (q, q, q )π consente di impiegare una procedura per l’identificazione sperimentale dei parametri stessi, di norma sconosciuti o incerti. Si eseguono opportune traiettorie di moto lungo le quali si misurano le posizioni dei giunti q, si misurano o si ricavano per derivazione le velocità q. e si ricavano .. per derivazione filtrata le accelerazioni q. Si misurano anche le coppie τ, direttamente (con opportuni sensori) o indirettamente dalle misure di corrente nei motori. Si supponga di avere le misure (dirette o indirette) di tutte le variabili negli istanti di tempo t1, …, tN. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [34] Identificazione dei parametri dinamici Con N insiemi di misure: ⎡ τ (t1 ) ⎤ ⎡ Y (t1 ) ⎤ ⎥=⎢ ⎥π = Y π τ = ⎢⎢ ⎥ ⎢ ⎥ ⎢⎣ τ (t N )⎥⎦ ⎢⎣Y (t N )⎥⎦ Risolvendo con una tecnica ai minimi quadrati: ( π= Y Y T ) −1 Y τ T − Matrice pseudo-inversa sinistra di Y Sono identificabili solo gli elementi di π la cui corrispondente colonna di Y non è nulla. Inoltre alcuni parametri potrebbero essere identificabili solo in combinazione lineare con altri. Le traiettorie da utilizzare devono essere sufficientemente ricche (buon − − condizionamento di YTY) ma non tali da eccitare dinamiche non modellate. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [35] Formulazione di Newton-Eulero Una strada alternativa per la formulazione del modello dinamico del manipolatore è quella che va sotto il nome di metodo di Newton-Eulero. Si tratta di scrivere i bilanci di forze e momenti agenti sul singolo braccio, mettendo in evidenza le interazioni con i bracci contigui nella catena cinematica. f mo orze me nti acc veloc ele ità raz io n i Si ottiene un sistema di equazioni che possono essere risolte in modo ricorsivo, propagando le velocità ed accelerazioni dalla base verso l’organo terminale, e le forze ed i momenti in senso opposto: La ricorsività rende l’algoritmo di Newton-Eulero computazionalmente efficiente. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [36] Definizione dei parametri Consideriamo il generico braccio i della catena cinematica: Il disegno è tratto dal testo: L.Sciavicco, B.Siciliano Robotica industriale – Modellistica e controllo di robot manipolatori (2a ed.) Mc Graw-Hill, 2000 Definiamo i parametri: mi e Ii: massa e tensore di inerzia del braccio ri−1,Ci vettore dall’origine della terna (i−1) al baricentro Ci ri,Ci vettore dall’origine della terna i al baricentro Ci ri−1, i vettore dall’origine della terna (i−1) all’origine della terna i Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [37] Definizione delle variabili . pCi velocità lineare del baricentro Ci . pi velocità lineare dell’origine della terna i ω .. i velocità angolare del braccio pCi accelerazione lineare del baricentro Ci .. pi accelerazione lineare dell’origine della terna i . ωi accelerazione angolare del braccio g0 accelerazione di gravità fi forza esercitata dal braccio i−1 sul braccio i −fi+1 forza esercitata dal braccio i+1 sul braccio i µi momento esercitato dal braccio i−1 sul braccio i rispetto all’origine della terna i−1 −µi+1 momento esercitato dal braccio i+1 sul braccio i rispetto all’origine della terna i Tutti i vettori si intendono espressi in terna base. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [38] Equazioni di Newton e Eulero Equazione di Newton (moto traslazionale baricentro) f i − f i +1 + mi g 0 = mi pCi Equazione di Eulero (moto rotazionale) µ i + f i × ri −1,Ci − µ i +1 − f i +1 × ri ,Ci si dimostra effetto giroscopico d = (I i ω i ) = I i ω i + ω i × (I i ω i ) dt Forza generalizzata al giunto i: ⎧⎪ f iT z i −1 giunto prismatico τi = ⎨ T ⎪⎩µ i z i −1 giunto rotoidale Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [39] Accelerazioni di un braccio Propagazione delle velocità: giunto prismatico ⎧ω ω i = ⎨ i −1 ⎩ω i −1 + ϑi z i −1 giunto rotoidale ⎧⎪ pi −1 + d i z i −1 + ω i × ri −1,i pi = ⎨ ⎪⎩ pi −1 + ω i × ri −1,i giunto prismatico giunto rotoidale Propagazione delle accelerazioni: giunto prismatico ⎧ω i −1 ωi = ⎨ ⎩ω i −1 + ϑi z i −1 + ϑi ω i −1 × z i −1 giunto rotoidale ⎧⎪ pi −1 + d i z i −1 + 2d i ω i × z i −1 + ω i × ri −1,i + ω i × (ω i × ri −1,i ) giunto prismatico pi = ⎨ giunto rotoidale ⎪⎩ pi −1 + ω i × ri −1,i + ω i × (ω i × ri −1,i ) ( pCi = pi + ω i × ri ,Ci + ω i × ω i × ri ,Ci ) baricentro Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [40] Algoritmo ricorsivo . .. .. • calcolo di ωi, ωi, pi, pCi Si effettua una ricorsione all’indietro di forze e momenti: • condizioni terminali su fn+1 e µn+1 • calcolo di: f i = f i +1 + mi pCi ( f mo orze me nti acc vel oc ele ità raz ion i Si effettua una ricorsione in avanti di velocità ed accelerazione: .. . • condizioni iniziali su ω0, p0−g0, ω0 ) µ i = − f i × ri −1,i + ri ,Ci + µ i +1 + f i +1 × ri ,Ci + I i ω i + ω i × (I i ω i ) Si calcola la forza generalizzata al giunto i: ⎧⎪ f iT z i −1 + Fvi d i + f si τi = ⎨ T ⎪⎩µ i z i −1 + Fvi ϑi + f si contributi di attrito giunto prismatico giunto rotoidale Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [41] Sistemi di riferimento locali Finora si è supposto che tutti i vettori fossero riferiti alla terna base. In realtà risulta più conveniente riferire i vettori alla terna di coordinate corrente sul braccio i. In questo modo infatti i vettori ri−1,i e ri,Ci ed il tensore di inerzia Ii sono costanti, il che rende l’algoritmo computazionalmente più efficiente. Le equazioni risultano modificate in alcuni termini (occorre moltiplicare i vettori per opportune matrici di rotazione) ma non cambia la natura del metodo. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [42] Manipolatore planare a due bracci m2, I2 y0 l2 m1, I1 l1 a2 ϑ2 a1 ϑ1 x0 Consideriamo nuovamente un manipolatore planare a due bracci con giunti rotoidali, il cui modello è già stato ricavato con il metodo di Lagrange: • masse: m1 e m2 • lunghezze: a1 e a2 • distanze dei baricentri dagli assi dei giunti: l1 e l2 • momenti di inerzia baricentrali intorno a z0: I1 e I2 Condizioni iniziali per la ricorsione di velocità ed accelerazioni: p00 − g 00 = [0 g 0]T , ω 00 = ω 00 = 0 Condizioni iniziali per la ricorsione di forze e momenti: f 33 = 0, µ 33 = 0 Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [43] Definizione vettori e matrici Riferiamo tutte le quantità alla terna corrente sul braccio. Si hanno i seguenti vettori costanti: r11,C1 ⎡l1 − a1 ⎤ ⎡a1 ⎤ ⎡l 2 − a2 ⎤ ⎡a 2 ⎤ = ⎢⎢ 0 ⎥⎥, r01,1 = ⎢⎢ 0 ⎥⎥, r22,C2 = ⎢⎢ 0 ⎥⎥, r12, 2 = ⎢⎢ 0 ⎥⎥ ⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦ Le matrici di rotazione sono: ⎡c1 R10 = ⎢⎢ s1 ⎢⎣ 0 − s1 0⎤ ⎡c 2 c1 0⎥⎥, R12 = ⎢⎢ s 2 ⎢⎣ 0 0 1⎥⎦ − s2 c2 0 0⎤ ⎡1 0 0⎤ 0⎥⎥, R32 = ⎢⎢0 1 0⎥⎥ ⎢⎣0 0 1⎥⎦ 1⎥⎦ Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [44] Ricorsione in avanti: braccio 1 ⎡0⎤ ω 0 + ϑ1 z 0 = ⎢⎢ 0 ⎥⎥ ⎢⎣ϑ1 ⎥⎦ ω11 = R10T ( ) ω11 = R10T ⎡0⎤ ω 0 + ϑ1 z 0 + ϑ1ω 0 × z 0 = ⎢⎢ 0 ⎥⎥ ⎢⎣ϑ1 ⎥⎦ ( ) ( p11 = R10T p0 + ω11 × r01,1 + ω11 × ω11 × r01,1 ( p1C1 = p11 + ω11 × r11,C1 + ω11 × ω11 × r11,C1 ) ) ⎡− a1ϑ12 + gs1 ⎤ ⎢ ⎥ = ⎢ a1ϑ1 + gc1 ⎥ ⎢ ⎥ 0 ⎣ ⎦ ⎡− l1ϑ12 + gs1 ⎤ ⎢ ⎥ = ⎢ l1ϑ1 + gc1 ⎥ ⎢ ⎥ 0 ⎣ ⎦ Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [45] Ricorsione in avanti: braccio 2 ⎡ 0 ⎤ ω11 + ϑ 2 z 0 = ⎢⎢ 0 ⎥⎥ ⎢⎣ϑ1 + ϑ 2 ⎥⎦ ω 22 = R12T ( ) ω 22 = R12T ⎡ 0 ⎤ ω11 + ϑ 2 z 0 + ϑ 2 ω11 × z 0 = ⎢⎢ 0 ⎥⎥ ⎢⎣ϑ1 + ϑ 2 ⎥⎦ ( ) ( p22 = R12T p11 + ω 22 × r12, 2 + ω 22 × ω 22 × r12, 2 ( pC2 2 = p22 + ω 22 × r22,C2 + ω 22 × ω 22 × r22,C2 ) ( ) ) ( ) ) ⎡a s ϑ − a c ϑ 2 − a ϑ + ϑ 2 + gs ⎤ 2 1 2 12 ⎥ ⎢ 1 2 1 1 2 1 = ⎢ a1c2 ϑ1 + a 2 ϑ1 + ϑ 2 + a1s 2 ϑ12 + gc12 ⎥ ⎢ ⎥ 0 ⎢⎣ ⎥⎦ ) ( ⎡a s ϑ − a c ϑ 2 − l ϑ + ϑ 2 + gs ⎤ 2 12 ⎥ ⎢ 1 2 1 1 2 1 2 1 = ⎢ a1c2 ϑ1 + l 2 ϑ1 + ϑ 2 + a1s 2 ϑ12 + gc12 ⎥ ⎢ ⎥ 0 ⎢⎣ ⎥⎦ ( Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [46] Ricorsione all’indietro: braccio 2 f 22 = R32 f 33 + m2 pC2 2 = m2 pC2 2 ( ( ) ) ⎡m ⎛ a s ϑ − a c ϑ 2 − l ϑ + ϑ 2 + gs ⎞⎤ 2 12 ⎟ ⎥ ⎢ 2 ⎜⎝ 1 2 1 1 2 1 2 1 ⎠ ⎢ ⎥ 2 = ⎢ m2 a1c2 ϑ1 + l 2 ϑ1 + ϑ 2 + a1s 2 ϑ1 + gc12 ⎥ ⎢ ⎥ 0 ⎢⎣ ⎥⎦ ( ( ) ( ) ) µ 22 = − f 22 × r12, 2 + r22,C2 + R32 µ 33 + R32 f 33 × r22,C2 + I 22 ω 22 + ω 22 × I 22 ω 22 = ∗ ⎡ ⎤ ⎥ = ⎢⎢ ∗ ⎥ 2 2 ⎢⎣ I 2 + m2 l 2 ϑ1 + ϑ 2 + m2 a1l 2 c2 ϑ1 + m2 a1l 2 s 2 ϑ1 + m2 l 2 gc12 ⎥⎦ ( )( τ 2 = µ 22T R12T z 0 = ( ( ) )) ( ) = I 2 + m2 l 22 + a1l 2 c2 ϑ1 + I 2 + m2 l 22 ϑ 2 + m2 a1l 2 s 2 ϑ12 + m2 l 2 gc12 (coincidente con quanto trovato con il metodo di Lagrange). Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [47] Ricorsione all’indietro: braccio 1 ( f11 = R12 f 22 + m2 p1C1 ( ) ( ) ⎡− m l s ϑ + ϑ − m l ϑ 2 − m a ϑ 2 − m l c ϑ + ϑ 2 + (m + m )gs ⎤ 2 11 1 2 1 1 2 2 2 1 2 1 2 1⎥ ⎢ 22 2 1 2 = ⎢ (m1l1 + m2 a1 )ϑ1 + m2 l 2 c2 ϑ1 + ϑ 2 − m2 l 2 s 2 ϑ1 + ϑ 2 + (m1 + m2 )gc1 ⎥ ⎥ ⎢ 0 ⎥⎦ ⎢⎣ ( ) ) ( ( ) ) µ11 = − f11 × r01,1 + r11,C1 + R12 µ 22 + R12 f 22 × r11,C1 + I11ω11 + ω11 × I11ω11 = ⎡ ⎢ ∗ ⎢ =⎢ ∗ 2 2 ⎢ I + m a + m l + m a l c ϑ + I + m a l c + m l2 ϑ + ϑ 2 1 11 2 1 2 2 1 2 2 1 2 2 2 2 1 2 ⎢ 1 ⎢+ m a l s ϑ 2 − m a l s ϑ + ϑ 2 + (m l + m a )gc + m l gc 2 1 2 2 1 2 1 2 2 1 2 11 2 1 1 2 2 12 ⎣ ( τ1 = µ11T R10T z 0 = ( ( ( ) ( )( ) )) ( ( ) ⎤ ⎥ ⎥ ⎥ +⎥ ⎥ ⎥ ⎦ )) = I1 + m1l12 + I 2 + m2 a12 + l 22 + 2a1l 2 c2 ϑ1 + I 2 + m2 l 22 + a1l 2 c2 ϑ 2 − 2m2 a1l 2 s 2 ϑ1ϑ 2 − m2 a1l 2 s 2 ϑ 22 + (m1l1 + m2 a1 )gc1 + m2 l 2 gc12 (coincidente con quanto trovato con il metodo di Lagrange). Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [48] Lagrange vs. Newton-Eulero Formulazione di Lagrange • è sistematica e più facilmente comprensibile • fornisce le equazioni del moto in forma analitica compatta, mettendo in evidenza la matrice di inerzia, i termini centrifughi e di Coriolis, ed i termini gravitazionali. Questi elementi sono utili ai fini del progetto di un controllore basato sul modello. • si presta all’introduzione nel modello di effetti dinamici più complessi (deformabilità ai giunti o nei link) Formulazione di Newton-Eulero • è un metodo ricorsivo, efficiente dal punto di vista computazionale Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [49] Dinamica diretta ed inversa B (q )q + C (q, q )q + g (q ) + Fv q + f s (q, q ) = τ Dinamica diretta .. Assegnate le coppie ai giunti τ(t), determinare le accelerazioni ai giunti q(t) e, . note le posizioni iniziali q(t0) e le velocità iniziali q(t0), le posizioni q(t) e le . velocità q(t). • Problema la cui soluzione è utile per la simulazione numerica della dinamica • È risolubile sia con l’approccio di Lagrange sia con l’approccio di NewtonEulero Dinamica inversa .. . Assegnate le accelerazioni q(t), le velocità q(t) e le posizioni q(t) determinare le coppie ai giunti τ(t) necessarie alla generazione del movimento. • Problema la cui soluzione è utile per la pianificazione della traiettoria e per il controllo basato sul modello. • Si può risolvere efficientemente con l’approccio di Newton-Eulero Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [50] Calcolo della dinamica diretta ed inversa Il calcolo della dinamica inversa si conduce facilmente sia con il metodo di Lagrange sia con quello di Newton-Eulero. Per quanto riguarda il calcolo della dinamica diretta, riscriviamo il modello dinamico del manipolatore in questi termini: B (q )q + n(q, q ) = τ dove: n(q, q ) = C (q, q )q + g (q ) + Fv q + f s (q, q ) Si tratta pertanto di integrare numericamente il sistema di equazioni differenziali esplicito: q = B (q )−1 (τ − n(q, q )) in cui tutti gli elementi necessari per costruire il sistema sono direttamente calcolati dal metodo di Lagrange. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [51] Calcolo della dinamica diretta ed inversa Come calcolare la dinamica diretta con il metodo di Newton-Eulero? . Con i valori correnti di q e q, si esegue una prima iterazione del metodo ponendo .. q = 0. In questo modo le coppie τ calcolate dal metodo forniscono direttamente il vettore n. . Successivamente si pone g0 = 0 (per eliminare gli effetti gravitazionali) e q = 0 (per eliminare gli effetti di Coriolis, centrifughi e di attrito). Si eseguono quindi n .. .. iterazioni del metodo con qi = 1 e qj = 0, j≠i. In questo modo si costruisce, per colonne, la matrice B e si hanno tutti gli elementi per costruire il sistema di equazioni. In alternativa si può utilizzare un solutore numerico in grado di integrare sistemi di equazioni differenziali impliciti o, più in generale, sistemi di equazioni DAE (equazioni algebrico-differenziali). Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [52] Modello dinamico nello spazio operativo Può essere di interesse formulare il modello dinamico del manipolatore nello spazio operativo, anziché nello spazio dei giunti. Faremo riferimento ad un manipolatore a sei gradi di libertà, in configurazione non singolare. Trascurando gli attriti, dal modello dinamico nello spazio dei giunti otteniamo: [ q = B (q )−1 − C (q, q )q − g (q ) + τ − J T (q )h ] Derivando la relazione cinematica differenziale: x = J A (q )q si ottiene: x = J A (q )q + J A (q, q )q Poniamo inoltre: τ = J TA (q )γ A , J T (q )h = J TA (q )hA γA: forze e momenti equivalenti all’organo terminale Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [53] Modello dinamico nello spazio operativo .. .. Sostituendo in x l’espressione di q: x = − J A B −1Cq − J A B −1 g + J A q + J A B −1J TA (γ A − hA ) Poniamo ora: ( B A = J A B −1J TA ) −1 = J A−T BJ A−1 C A x = B A J A B −1Cq − B A J A q = J A−T Cq − B A J A q g A = J A−T g Il modello dinamico nello spazio operativo è il seguente: B A ( x )x + C A ( x , x )x + g A ( x ) = γ A − h A Il modello risulta formalmente valido anche per un manipolatore ridondante: in questo caso però le x non costituiscono un insieme di coordinate generalizzate. Controllo del moto e robotica industriale - Dinamica del manipolatore- P. Rocco [54]