Dispense del corso di Robotica con Laboratorio
Transcript
Dispense del corso di Robotica con Laboratorio
Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December 17, 2002 Contents 1 Nozioni preliminari 1.1 Operazioni sui vettori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Basi e coordinate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Traslazioni e rotazioni 2.1 Traslazione . . . . . . . . . . . . . . . . . . . 2.2 Rotazione . . . . . . . . . . . . . . . . . . . . 2.2.1 Matrici di rotazione fondamentali . . . 2.2.2 Composizione di matrici di rotazione . 2.2.3 Rotazione intorno ad un asse qualsiasi 3 Coordinate e trasformazioni omogenee 3.1 Rototraslazioni e rappresentazioni minime 3.1.1 Angoli di Eulero . . . . . . . . . . 3.1.2 Angoli di RPY . . . . . . . . . . . 3.2 Coordinate omogenee . . . . . . . . . . . . . . . . . . . . 4 Cinematica diretta dei robot 4.1 Segmenti, giunti e loro parametri . . . . . . . 4.2 Rappresentazione di Denavit-Hartenberg . . . 4.3 Trasformazione omogenea associata ad un link 4.4 Spazio dei giunti e spazio operativo . . . . . . 4.5 Esempi e esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 . . . . . 5 6 6 8 9 11 . . . . 14 14 15 16 18 . . . . . 24 24 26 28 29 30 5 Cinematica inversa dei robot 34 6 Cenni sulla dinamica dei motori in corrente 6.1 Le equazioni elettriche . . . . . . . . . . . . 6.2 Le equazioni meccaniche . . . . . . . . . . . 6.3 Motoriduttori e motori a presa diretta . . . 6.4 Diagramma a blocchi del motore CC . . . . 7 Funzionamento degli encoder incrementali 1 continua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 36 36 37 39 1 Nozioni preliminari 1.1 Operazioni sui vettori Dato l’insieme di tutti i vettori nello spazio tridimensionale R 3 (questo insieme è in effetti uno spazio vettoriale), ogni vettore appartenente a tale insieme (o spazio) ~u ∈ R 3 è caratterizzato da tre numeri u1 , u2 e u3 , denominati componenti del vettore, e si indica con ~u = (u1 , u2 , u3 ). Nello spazio vettoriale R3 , sono definite le seguenti operazioni: 1. Prodotto con i reali: R × R3 → R3 , definito come: a ~u = a (u1 , u2 , u3 ) := (a u1 , a u2 , a u3 ), ∀a ∈ R, ∀~u ∈ R3 . 2. Prodotto scalare: R3 × R3 → R, definito come: <~u, ~v > = < (u1 , u2 , u3 ), (v1 , v2 , v3 ) > := u1 v1 + u2 v2 + u3 v3 , ∀~u, ~v ∈ R3 . 3. Norma: R3 → R, definita come: |~u| = |(u1 , u2 , u3 )| p := <~u, ~u > q = u21 + u22 + u23 , ∀~u ∈ R3 . 4. Somma: R3 × R3 → R3 , definita come: ~u + ~u = (u1 , u2 , u3 ) + (v1 , v2 , v3 ) := (u1 + v1 , u2 + v2 , u3 + v3 ), ∀~u, ~v ∈ R3 . 5. Prodotto vettoriale: R3 × R3 → R3 , definito come: ~u × ~v = (u1 , u2 , u3 ) × (v1 , v2 , v3 ) := (u2 v3 − u3 v2 , u3 v1 − u1 v3 , u1 v2 − u2 v1 ), ∀~u, ~v ∈ R3 . Geometricamente, le cinque operazioni sopra elencate si possono interpretare come segue (si osservi anche la rappresentazione in Figura 1): 1. Il prodotto con i reali corrisponde alla espansione (o contrazione, se |a| < 1) del vettore, senza cambiarne la direzione (eventualmente cambiandone il verso, se a < 0). Il vettore risultante ha norma (o lunghezza) scalata di un fattore pari ad a (questo è verificabile con una semplice sostituzione). 2. Si considerino due vettori ~u e ~v e un piano su cui giacciono entrambi. Sia θ l’angolo descritto sul piano da uno dei due vettori per arrivare a sovrapporsi all’altro. Allora, sussiste la relazione: <~u, ~v >= |~u||~v | cos θ. 2 (1) Figure 1: Moltiplicazione per uno scalare, somma e prodotto vettoriale. 3. La norma corrisponde alla lunghezza geometrica del vettore nello spazio (questa proprietà deriva direttamente dal teorema di Pitagora). 4. La somma di due vettori corrisponde al vettore risultatnte dall’applicazione del primo vettore sul punto terminale del secondo (e viceversa). 5. Si considerino due vettori ~u e ~v e un piano su cui giacciono entrambi. Il vettore ~u × ~v è perpendicolare al piano 1 con verso assegnato secondo la regola della mano destra (si veda Figura 3). Sia θ l’angolo descritto sul piano da uno dei due vettori per arrivare a sovrapporsi all’altro, allora la norma di ~u × ~v è pari a |~u × ~v | = |~u||~v || sin θ|. (2) Si osservi che l’equazione (1) implica che, dati due vettori non nulli ~u e ~v , il loro prodotto scalare • è pari a |~u||~v | se e solo se i vettori sono paralleli • è pari a 0 se e solo se i vettori sono perpendicolari. Analogamente, l’equazione (2) implica che, dati due vettori non nulli ~u e ~v , il modulo del loro prodotto vettoriale • è pari a |~u||~v | se e solo se i vettori sono perpendicolari • è pari a 0 se e solo se i vettori sono paralleli. 1.2 Basi e coordinate In questo paragrafo si intende chiarire come i vettori appartenenti allo spazio R 3 possano essere utilizzati per la descrizione della configurazione spaziale di oggetti tridimensionali. A tale scopo si fa riferimento al concetto di punto P come elemento caratterizzante una specifica posizione nello spazio. A titolo di esempio, in Figura 2 sono rappresentati alcuni corpi ed alcuni punti materiali P1 , P2 . L’individuazione dei punti nello spazio è evidentemente subordinata alla specificazione del punto di vista dell’osservatore, ovvero alla definizione di un sistema di riferimento che può essere formalizzata come segue (un esempio è riportato in Figura 2): 1 Se ~u e ~v sono paralleli, allora ~u × ~v è il vettore nullo. 3 Figure 2: Corpi nello spazio tridimensionale, punti e terna di riferimento. Definizione 1.1 Una base ortonormale (o, ~ex , ~ey , ~ez ) è un sistema (o una terna) di riferimento ortonormale in R3 costituito da tre vettori ~ex , ~ey , ~ez , detti versori, applicati ad un punto o, l’origine, mutuamente ortogonali, cioè tali che <~ex , ~ey >= 0, <~ex , ~ez >= 0, <~ey , ~ez >= 0, e di lunghezza unitaria, cioè: |~ex | = 1, |~ey | = 1, |~ez | = 1. Un sistema di riferimento ortonormale si dice destrorso se ~ex × ~ey = ~ez . In queste dispense, a meno che non sia specificato diversamente, tutti i sistemi di riferimento si intenderanno implicitamente destrorsi. Osservazione 1.1 Per i sistemi di riferimento destrorsi, vale la regola mnemonica cosiddetta “della mano destra,” secondo cui, allineando le direzioni di ~e x , ~ey ed ~ez , rispettivamente, con il pollice, l’indice e il medio, l’orientamento della terna destrorsa coincide con quello della mano destra posizionata come in Figura 3. ◦ ~ , che individua Dato un punto P ed il centro o di una base (o, ~ex , ~ey , ~ez ), il vettore ~u := oP il punto P in funzione di tale base, è esprimibile in modo univoco come combinazione lineare dei versori vecex , ~ey ed ~ez della base, come segue: ~u = <~u, ~ex > ~ex + <~u, ~ey > ~ey + <~u, ~ez > ~ez , = x~ex + y~ey + z~ez , (3) ed è quindi individuato da tre numeri reali (x, y, z) := (< ~u, ~e x >, < ~u, ~ey >, < ~u, ~ez > ) che costituiscono le sue componenti rispetto alla base scelta. Qualsiasi punto P nello 4 Figure 3: La “regola della mano destra” per sistemi di riferimento destrorsi. ~ ed individuato dalle componenti spazio tridimensionale è rappresentato dal vettore oP ~ rispetto alla base ortonormale (o, ~ex , ~ey , ~ez ) che chiameremo coordinate q := [x y z]T di oP del punto P . I gradi di libertà di un punto P , corrispondenti al numero di coordinate indipendenti che ne individuano la configurazione, è dunque pari a 3. Dati due sistemi di riferimento (o1 , ~ex1 , ~ey1 , ~ez1 ) e (o2 , ~ex2 , ~ey2 , ~ez2 ), le coordinate di un punto P nei due riferimenti verranno indicate da q1 = [x1 y1 z1 ]T e q2 = [x2 y2 z2 ]T , rispettivamente. 2 Traslazioni e rotazioni Definizione 2.1 Un corpo rigido è un insieme di punti Pk nello spazio tridimensionale vincolati dalle relazioni |Pi (t) − Pj (t)| = rij = cost, ∀i, j, (4) che impongono che la distanza tra due punti qualsiasi appartenenti al corpo sia costante nel tempo. La configurazione di un corpo rigido nello spazio tridimensionale è univocamente determinata dalla posizione di almeno tre punti non allineati. 2 Considerando i vincoli di rigidità, dei nove parametri che caratterizzano la posizione dei tre punti, solo sei sono indipendenti tra di loro: l’invarianza della mutua distanza (corrispondente all’equazione (4)) impone infatti tre condizioni scalari che devono essere soddisfatte dai nove parametri. Si dice quindi che un corpo rigido libero di assumere qualsiasi configurazione nello spazio tridimensionale possiede sei gradi di libertà. Più convenientemente, la configurazione di un corpo rigido è individuata dalla posizione e dall’orientamento di una terna di riferimento solidale con il corpo rispetto ad una terna di riferimento fissa. Si vedrà più avanti come possono essere rappresentati la posizione e l’orientamento di una terna di riferimento mobile rispetto ad una fissa. 2 Si dimostra facilmente che specificando la posizione di più di 3 punti (non allineati), i vincoli (4) impongono delle relazioni di congruenza che riducono comunque i gradi di libertà a 9. 5 Uno spostamento rigido (ovvero, di un corpo rigido) su dice traslatorio, o traslazione, se lascia invariati gli orientamenti degli assi della terna di riferimento solidale con il corpo rigido. Uno spostamento rigido si dice sferico se lascia invariata la posizione di un punto, chiamato centro. Uno spostamento rigido si dice rotatorio, o rotazione, se lascia invariata la posizione di tuttii punti appartenenti ad una retta, chiamata asse di rotazione. 2.1 Traslazione Si considerino dapprima due sistemi di riferimento (o 1 , ~ex1 , ~ey1 , ~ez1 ) e (o2 , ~ex2 , ~ey2 , ~ez2 ) tali che i vettori (~ex1 , ~ey1 , ~ez1 ) siano rispettivamente paralleli a (~ex2 , ~ey2 , ~ez2 ) ed il punto o2 abbia coordinate d = [dx dy dz ]T nel primo sistema di riferimento (vedi Figura 4). Un generico punto P ha coordinate q1 = [x1 y1 z1 ]T e q2 = [x2 y2 z2 ]T nei due sistemi di riferimento. Tra le due rappresentazioni sussiste la relazione x1 = x 2 + d x y1 = y 2 + d y z1 = z 2 + d z (5) esprimibile in forma vettoriale come: ~ o1~P = o2~P + d. Figure 4: Due sistemi di riferimento traslati l’uno rispetto all’altro. 2.2 Rotazione Consideriamo ora due sistemi di riferimento (o1 , ~ex1 , ~ey1 , ~ez1 ) e (o2 , ~ex2 , ~ey2 , ~ez2 ) aventi le origini coincidenti, come in Figura 5. Si vuole determinare la relazione tra le coordinate di un generico punto P nei due riferimenti, cioè la relazione tra q 1 = [x1 y1 z1 ]T e q2 = [x2 y2 z2 ]T , rispettivamente. In base all’equazione (3), nel riferimento (o 1 , ~ex1 , ~ey1 , ~ez1 ), i vettori ~ex2 , ~ey2 6 ed ~ez2 sono espressi e~x2 e~y2 e~z2 dalle relazioni = <~ex2 , ~ex1 > ~ex1 + <~ex2 , ~ey1 > ~ey1 + <~ex2 , ~ez1 > ~ez1 = <~ey2 , ~ex1 > ~ex1 + <~ey2 , ~ey1 > ~ey1 + <~ey2 , ~ez1 > ~ez1 = <~ez2 , ~ex1 > ~ex1 + <~ez2 , ~ey1 > ~ey1 + <~ez2 , ~ez1 > ~ez1 . Figure 5: Due sistemi di riferimento ruotati l’uno rispetto all’altro. Sostituendo tali espressioni nel vettore o2~P espresso rispetto al sistema di coordinate (o2 , ~ex2 , ~ey2 , ~ez2 ): o2~P = x2 e~x2 + y2 e~y2 + z2 e~z2 si ottiene il vettore o1~P espresso nel sistema di coordinate (o1 , ~ex1 , ~ey1 , ~ez1 ): o1~P = x1 e~x1 + y1 e~y1 + z1 e~z1 dove, raccogliendo i fattori che moltiplicano ~ex1 , ~ey1 e ~ez1 , si possono esprimere le coordinate (x1 , y1 , z1 ) in funzione delle coordinate (x2 , y2 , z2 ) come segue: <~ex2 , ~ex1 > <~ey2 , ~ex1 > <~ez2 , ~ex1 > x2 x1 q1 = y1 = <~ex2 , ~ey1 > <~ey2 , ~ey1 > <~ez2 , ~ey1 > y2 (6) z2 z1 <~ex2 , ~ez1 > <~ey2 , ~ez1 > <~ez2 , ~ez1 > =: B q2 . In modo del tutto analogo, si ricava x2 x1 <~ex1 , ~ex2 > <~ey1 , ~ex2 > <~ez1 , ~ex2 > q2 = y2 = <~ex1 , ~ey2 > <~ey1 , ~ey2 > <~ez1 , ~ey2 > y1 z2 <~ex1 , ~ez2 > <~ey1 , ~ez2 > <~ez1 , ~ez2 > z1 =: A q1 . (7) Le matrici A e B sono dette matrici di rotazione. Le matrici di rotazione godono di proprietà particolari, come evidenziato di seguito. 7 Definizione 2.2 Una matrice quadrata Q con elementi reali, si dice ortogonale se QT Q = I, ovvero, se Q è invertibile e Q−1 = QT . Teorema 2.1 Le matrici di rotazione sono ortogonali. Dimostrazione. Si considerino le equazioni (6), (7). Poiché il prodotto scalare è commutativo, cioè, dati due vettori ~u e ~v , <~u, ~v >=<~v , ~u >, ne segue che B = A T e B T = A. D’altra parte, poiché q 0 = ABq 0 , necessariamente, AB = I, cioè A = B −1 , e quindi B T = B −1 . La matrice B è dunque ortogonale. Data la generalità della trasformazione (6), (7), il teorema è dimostrato. • 2.2.1 Matrici di rotazione fondamentali Si consideri il caso in cui due sistemi di riferimento (o 1 , ~ex1 , ~ey1 , ~ez1 ) e (o2 , ~ex2 , ~ey2 , ~ez2 ) hanno le origini e i versori ~ez1 ed ~ez2 coincidenti. Si supponga inoltre che il versore ~ex1 debba compiere una rotazione antioraria di un angolo θ per sovrapporsi al versore ~e x2 . In questo caso, rappresentato in Figura 6.a, la matrice di rotazione R z,θ tale che, q1 = Rz,θ q2 , detta matrice di rotazione fondamentale intorno all’asse z, in base all’equazione (7) come cos θ − sin θ 0 Rz,θ := sin θ cos θ 0 . 0 0 1 (8) 3 si può calcolare esplicitamente (9a) Osservazione 2.1 Se l’orientamento degli angoli di rotazione viene sempre tracciato in senso antiorario, allora una utile regola mnemonica per la scrittura corretta della relazione tra sistemi di riferimento ruotati l’uno rispetto all’altro è la seguente. Se le coordinate che si trovano a sinistra del segno di uguaglianza sono quelle rispetto al sistema di riferimento da cui l’angolo di rotazione parte (cioè, dal lato opposto della freccia), allora la matrice di rotazione da scrivere è quella fondamentale. In caso contrario, la matrice di rotazione da scrivere è quella fondamentale trasposta (il motivo di questo, che sarà più chiaro di seguito, è legato al Teorema 2.1). Ad esempio, nell’equazione (8), poiché q 1 è a sinistra dell’uguale, e in Figura 6.a l’angolo parte da un asse del primo riferimento, allora la matrice di rotazione scritta nella (8) è quella fondamentale. Nel caso opposto, si sarebbe scritta la trasposta; in T altre parole, vale la relazione q2 = Rz,θ q1 . ◦ 3 In altre parole, Rx,θ è la matrice che trasforma le coordinate rispetto al riferimento (o2 , ~ex2 , ~ey2 , ~ez2 ) in coordinate rispetto al secondo riferimento (o1 , ~ex1 , ~ey1 , ~ez1 ). 8 Figure 6: Le tre rotazioni fondamentali. Analogamente, la matrice di rotazione fondamentale intorno all’asse x, corrispondente al caso rappresentato in Figura 6.b, è data dalla relazione 1 0 0 (9b) Rx,θ := 0 cos θ − sin θ , 0 sin θ cos θ e la matrice di rotazione fondamentale intorno tato in Figura 6.c, è data dalla relazione cos θ 0 Ry,θ := − sin θ all’asse y, corrispondente al caso rappresen 0 sin θ 1 0 . 0 cos θ (9c) Esercizio 2.1 Si calcolino le coordinate dei punti q10 = [4 3 2]T , q100 = [6 2 4]T , in un sistema di riferimento ruotato di 60 gradi intorno all’asse z rispetto al precedente. R. q20 = [4.6 − 1.96 2]T , q200 = [4.73 − 4.2 4]T , ? 2.2.2 Composizione di matrici di rotazione Le matrici di rotazione fondamentali possono essere composte tra loro per costruire nuove matrici di rotazione che consentano la rappresentazione di relazioni più complesse tra sistemi di coordinate con le origini coincidenti. In particolare, si considerino tre sistemi 4 di 4 Per semplicità di notazione, da questo punto in poi, il sistema di riferimento (oi , exi , eyi , ezi ) verrà spesso denotato con (oxyz)i . Inoltre, l’asse passante per exi verrà spesso denotato come asse xi , o, se questo non genera confusione, più semplicemente, asse x. Analogamente sarà fatto per gli assi yi e zi . 9 riferimento (oxyz)0 , (oxyz)1 e (oxyz)2 con le origini coincidenti, e le matrici di rotazione 0 R1 e 1 R2 tali che q0 = 0 R1 q1 , q 1 = 1 R2 q2 . È evidente che la relazione tra il sistema di riferimento (oxyz) 0 e il sistema di riferimento (oxyz)2 è rappresentata dalla matrice di rotazione 0 R2 definita come segue: q0 = = =: 0 R1 q1 , R1 1 R2 q2 0 R2 q2 . 0 In particolare, se un sistema di coordinate (oxyz)2 è ottenuto da una rotazione del sistema di coordinate (oxyz)0 intorno all’asse x di un angolo θ seguita da una rotazione intorno all’asse y di un angolo φ in base alle equazioni relative alle rotazioni fondamentali e alla regola mnemonica descritta nell’Osservazione 2.1, le coordinate q 0 e q2 , sono in relazione secondo la seguente matrice di rotazione: q 0 = 0 R2 q 2 = R x,θ Ry,φ q2 cos φ 0 1 0 0 0 1 0 cos θ − sin θ = − sin φ 0 0 sin θ cos θ cos φ 0 sin φ sin φ sin θ cos θ − cos φ sin θ = − sin φ cos θ sin θ cos φ cos θ sin φ 0 q2 cos φ (10) q2 . Si noti peraltro che, in base al Teorema 2.1, la trasformazione inversa da q 0 a q2 è data dalla matrice 0 R2 := 2 R0T . Questa proprietà tuttavia non è da confondere con la commutatività di due matrici di rotazione, che non sussiste, ad eccezione del caso banale in cui le due rotazioni avvengono intorno allo stesso asse. Per mostrare che Le rotazioni non godono della proprietà di commutatività, 5 si consideri la rotazione commutata rispetto a quella dell’equazione (10), cioè la rotazione di un angolo φ intorno all’asse y seguita da una rotazione di un angolo θ intorno all’asse x. La matrice relativa è data da R := Ry,φ Rx,θ cos φ 0 = − sin φ cos φ 0 = − sin φ 0 sin φ 1 0 0 1 0 0 cos θ − sin θ 0 cos φ 0 sin θ cos θ sin φ sin θ sin φ cos θ cos θ − sin θ , cos φ sin θ cos φ cos θ che, evidentemente è molto diversa dalla matrice nell’equazione (10). 5 Ovvero, rotazioni effettuate secondo un ordine diverso non sono associate allo stesso risultato finale. 10 Osservazione 2.2 Si osservi che mentre come già visto, una rotazione R 2 effettuata in seguito ad una rotazione R1 provoca una rotazione globale pari alla postmoltiplicazione di R2 per R1 : RT OT := R1 R2 , se una rotazione R0 viene effettuata prima di una rotazione R1 , la rotazione complessiva è data dalla premoltiplicazione di R0 per R1 : RT OT := R0 R1 . ◦ 2.2.3 Rotazione intorno ad un asse qualsiasi Sulla base di quanto detto nel precedente paragrafo, sembra naturale sostenere che qualsiasi rotazione di un corpo rigido sia esprimibile tramite una matrice di rotazione. Per dimostrare questa proprietà, in questa sezione si descriverà una tecnica costruttiva per caratterizzare la rotazione di una terna di riferimento intorno ad una asse di rotazione arbitrario. Figure 7: Rotazione intorno ad un asse arbitrario. Con riferimento alla Figura 7, si consideri il caso in cui rispetto alla terna di riferimento 1 (0xyz), l’asse di rotazione abbia coordinate (rx , ry , rz ), con (rx2 + ry2 + rz2 ) 2 = 1. In altre parole, si supponga che il vettore ~r mostrato in Figura 7 sia di fatto un versore. In questo caso, la rotazione di un angolo θ intorno all’asse individuato da ~r può essere descritta dalla composizione di rotazioni elementari come segue: 11 1. rotazione di un angolo −α intorno all’asse z per portare l’asse r sul piano verticale individuato dagli assi gli assi x e z; 2. rotazione di un angolo −β intorno all’asse y per sovrapporre l’asse r all’asse z; 3. rotazione di un angolo θ intorno all’asse z ≡ r; 4. rotazione di un angolo β intorno all’asse y; 5. rotazione di un angolo α intorno all’asse z. Si noti che le ultime due rotazioni vengono eseguite per riportare l’asse r nella posizione originaria. In particolare, poiché la rotazione da rappresentare avviene intorno all’asse r, tutti i punti dello spazio su questo asse non devono subire nessuno spostamento. La procedura sopra elencata può essere descritta in termini di matrici di rotazione fondamentali tramite la formula seguente (si noti che, in relazione all’Osservazione 2.2, tutte le rotazioni sopraelencate sono riferite alla terna fissa dunque corrispondono a matrici di rotazione che vengono via via premoltiplicate): Rr,θ = Rz,α Ry,β Rz,θ Ry,−β Rz,−α , (11) nella quale è utile eliminare la dipendenza da α e β, esprimendola in funzione delle componenti di ~r rispetto al sistema di riferimento (0xyz). In particolare, poiché ~r ha norma unitaria, le seguenti relazioni derivano da semplici argomentazioni geometriche: p p rx = rx2 + ry2 cos α ry = rx2 + ry2 sin α (12) p 2 rx + ry2 = sin β rz = cos β. Dalle relazioni 12, si ricava sostituendo seni e coseni di α e β in (11) e moltiplicando: 6 rx2 (1 − Cθ ) + Cθ rx ry (1 − Cθ ) − rz Sθ rx rz (1 − Cθ ) + ry Sθ ry2 (1 − Cθ ) + Cθ ry rz (1 − Cθ ) − rx Sθ , Rr,θ = rx ry (1 − Cθ ) + rz Sθ (13) 2 rx rz (1 − Cθ ) − ry Sθ ry rz (1 − Cθ ) + rx Sθ rz (1 − Cθ ) + Cθ che rappresenta la rotazione di un angolo θ della terna originaria (0xyz) intorno all’asse arbitrario r. In particolare, si denoti con (0xyz)1 , la terna (0xyz) in seguito alla rotazione, allora vale q = Rr,θ q1 . Osservazione 2.3 Si osservi che l’equazione (12) può anche essere ricavata a partire dalla matrice centrale Rz,θ . In particolare, assumendo in prima istanza che r ≡ z, la rotazione si esprime come Rz,θ . Successivamente, le rotazioni necessarie per riportare l’asse r nella posizione corretta corrispondono a due matrici Rz,α Ry,β che premoltiplicano la matrice di rotazione. Infine, poiché di fatto l’assunzione r ≡ z non è vera in generale, le rotazioni da effettuare per portare r a coincidere con z corrispondono a due matrici R y,−β Rz,−α che postmoltiplicano la matrice di rotazione, dando così luogo alla (12). ◦ 6 Nella (13), la notazione Cθ sta per cos θ e la notazione Sθ sta per sin θ. 12 Esercizio 2.2 Si verifichi che anche per la matrice (13), come per tutte le matrici di roT tazione, vale la relazione Rr,θ Rr,θ = I, dimostrata nel Teorema 2.1. ? Esercizio 2.3 Utilizzando la formula (11), si scrivano le tre matrici relative alle rotazioni di un sistema di riferimento di 60 gradi intorno ai seguenti assi, rispettivamente: 1. l’asse x; 2. l’asse y; 3. la bisettrice del primo quadrante. ? 13 3 3.1 Coordinate e trasformazioni omogenee Rototraslazioni e rappresentazioni minime Come già anticipato nel paragrafo 1.2, il numero di gradi di libertà di un corpo rigido nello spazio è pari a sei. Questa proprietà verrà reinterpretata in questo paragrafo, alla luce della descrizione delle rotazioni e delle traslazioni data nei paragrafi precedenti. Si consideri un sistema di riferimento fisso (ovvero, con posizione ed orientamento costanti nel tempo) e un sistema di riferimento solidale con il corpo rigido e con il centro localizzato su un punto di interesse del corpo rigido (quale, il punto terminale, una cuspide, etc.). Si osservi che, in base all’equazione (5) e all’equazione (7), qualsiasi rototraslazione del corpo rigido nello spazio può essere descritta dalla relazione seguente (corrispondente ad una rotazione seguita da una traslazione): q0 = R q + d, (14) dove il vettore d ∈ R3 rappresenta la posizione del centro del sistema di riferimento solidale con il corpo, mentre la matrice R ne rappresenta l’orientamento, entrambi valutati rispetto al sistema di riferimento fisso. Il fatto che l’equazione (14) sia in grado di rappresentare qualsiasi posizione del corpo rigido nello spazio è stabilito nei seguenti teoremi. Teorema 3.1 (Teorema di Eulero) Un generico spostamento rigido che lascia invariato un punto fisso c (spostamento sferico) è uno spostamento rotatorio con asse di rotazione passante per c. Teorema 3.2 (Teorema di Chasles) Un generico spostamento rigido può essere decomposto in una rotazione attorno ad un asse fisso ed in una traslazione lungo lo stesso asse. In base al teorema di Chasles, per qualsiasi spostamento rigido, esiste un sistema di coordinate tale che lo spostamento è caratterizzato da una lunghezza ` ed un angolo θ ed è esprimibile in tale sistema di coordinate tramite la forma canonica di Chasles: cos θ − sin θ 0 0 q0 = sin θ cos θ 0 q + 0 . 0 0 1 ` Nonostante l’equazione (14) possa rappresentare qualsiasi rototraslazione, essa non ne costituisce una rappresentazione minima. In particolare, mentre il vettore d rappresenta univocamente la posizione del centro del sistema di riferimento solidale con il corpo rigido, la matrice R ne rappresenta l’orientamento con un certo grado di ridondanza. Infatti, dei nove parametri che caratterizzano la matrice R, sei sono vincolati dalla relazione R R T = I, dimostrata nel Teorema 2.1, che corrisponde a 6 relazioni scalari (tre corrispondenti agli elementi sulla diagonale dell’identità e tre corrispondenti agli elementi fuori dalla diagonale). Allo scopo di ottenere una rappresentazione minima dell’orientamento, è necessario stabilire una relazione biunivoca tra i nove coefficienti della matrice R e tre parametri indipendenti, generalmente costituiti da tre angoli, opportunamente selezionati in una varietà di scelte, tutte equivalenti. Di seguito descriveremo due possibili scelte di rappresentazioni minime dell’orientamento. 14 3.1.1 Angoli di Eulero La strategia più diretta per la selezione dei parametri minimi descriventi l’orientamento consiste nel caratterizzare la matrice di rotazione in base alla composizione di tre rotazioni successive intorno a tre assi coordinati. I tre angoli associati alle rotazioni vengono denominati angoli di Eulero. L’arbitrarietà degli angoli di Eulero consiste nel fatto che ciascuna delle tre rotazioni può essere effettuata intorno a un qualsiasi asse coordinato. Tuttavia, condizione necessaria (e sufficiente) perché i tre angoli derivanti da questa caratterizzazione siano indipendenti è che ogni coppia di rotazioni successive avvenga intorno ad assi coordinati diversi. Vi sono dunque 27 possibili combinazioni di rotazioni, corrispondenti a rotazioni successive intorno ad assi coordinati diversi. Per ogni combinazione, la relativa terna di Eulero viene denominata “terna XYZ”, o “terna YXY”, e via di seguito. Si ribadisce che una terna del tipo “XXY” non costituirebbe una rappresentazione minima dell’orientamento perché le prime due rotazioni (entrambe intorno all’asse coordinato x) non sono indipendenti. Nel seguito si fa riferimento alla convenzione associata agli angoli ZYZ caratterizzati dalle seguenti operazioni: 1. Rotazione di un angolo ϕ intorno all’asse z; 2. Rotazione di un angolo ϑ intorno all’asse y (corrente); 3. Rotazione di un angolo ψ intorno all’asse z (corrente); Per convenzione, tali rotazioni vengono via via riferite agli assi trasformati secondo l’ultima rotazione effettuata. In base a quanto illustrato nell’Osservazione 2.2, esse corrispondono dunque a matrici di rotazione che vanno via via a postmoltiplicare le rotazioni precedenti. Considerando dapprima il problema della determinazione della matrice di rotazione RZY Z (ϕ, ϑ, ψ) a partire dai valori dei tre angoli ZYZ ϕ, ϑ e ψ, si può scrivere la seguente relazione: RZY Z (ϕ, ϑ, ψ) = R z,ϕ Ry,ϑ Rz,ψ Cϕ Cϑ Cψ − Sϕ Sψ −Cϕ Cϑ Sψ − Sϕ Cψ Cϕ Sϑ = Sϕ Cϑ Cψ − Cϕ Sψ −Sϕ Cϑ Sψ − Cϕ Cψ Sϕ Sϑ . −Sϑ Cψ Sϑ Sψ Cθ (15) Data una terna ϕ, ϑ, ψ di angoli ZYZ, l’equazione (15) permette di ricavare la matrice di trasformazione corrispondente. Il procedimento inverso (ovvero il calcolo degli angoli ϕ, ϑ, ψ corrispondenti ad un determinato orientamento, in base all’espressione della relativa matrice di rotazione R) è anche di interesse, ma corrisponde ad un problema algebrico più articolato. Per la soluzione di quest’ultimo problema è utile introdurre la funzione (x, y) 7→ atan2(x, y) che associa ad ogni coppia di ingressi x, y un angolo α tale che sin(α) = √ x2 2 e cos(α) = x +y √ y x2 +y 2 . Questa funzione viene anche denominata “arcotangente a 4 quadranti” in quanto, al contrario della classica funzione arcotangente atan(·), non è soggetta all’indeterminazione tra il primo e il terzo (similarmente, il secondo e il quarto) quadrante. Inoltre, i punti di singolarità in π/2+kπ caratterizzanti la funzione classica atan(·) non sono presenti in questo caso, grazie al fatto che atan2(·, ·) è funzione di due argomenti. Le peculiarità essenziali della funzione (x, y) 7→ atan2(x, y) sono le seguenti: 15 • per qualsiasi costante a > 0 e qualsiasi angolo α ∈ [0, 2π), atan2(a sin(α), a cos(α)) = α, • la funzione è indeterminata 7 (16) in (0, 0). Sulla base della funzione atan2(·, ·) si può ora procedere alla determinazione della trasformazione inversa della (15). In particolare, supponiamo che sia nota la matrice R = {r ij } relativa ad un determinato orientamento e che si voglia determinare la terna di angoli (o, più correttamente, una 8 terna di angoli) ϕ, ϑ e ψ tali che R = RZY Z (ϕ, ϑ, ψ). Per procedere alla determinazione di ϕ, ϑ e ψ si considerano dapprima tutte le relazioni di uguaglianza corrispondenti a R = RZY Z (ϕ, ϑ, ψ): r11 r12 r13 Cϕ Cϑ Cψ − Sϕ Sψ −Cϕ Cϑ Sψ − Sϕ Cψ Cϕ Sϑ r21 r22 r23 = Sϕ Cϑ Cψ − Cϕ Sψ −Sϕ Cϑ Sψ − Cϕ Cψ Sϕ Sϑ r31 r32 r33 −Sϑ Cψ Sϑ Sψ Cϑ e successivamente, sfruttando le uguaglianze membro a membro, si procede alla determinazione dei vari angoli facendo uso della funzione atan2(·) sopra definita. Una possibile strategia è la seguente (anche se non è l’unica): p 2 2 + r32 , r33 ). • ϑ = atan2( r31 • Se Sϑ 6= 0, allora 9 – ψ = atan2(r32 , −r31 ). – ϕ = atan2(r23 , r13 ), • Se Sϑ = 0, allora le rotazioni ϕ e ψ avvengono intorno allo stesso asse (eventualmente con verso opposto), quindi si può scegliere arbitrariamente ψ = 0 cosicché sin(ψ) = 0 e cos(ψ) = 1, per poi determinare – ψ = 0 (per definizione). – ϕ = atan2(r21 , r11 ). 3.1.2 Angoli di RPY Una convenzione per la rappresentazione minima dell’orientamento particolarmente adottata in campo aeronautico è la convenzione RPY, dove R sta per rollio (roll), P sta per beccheggio (pitch) e Y sta per imbardata (yaw). Questa convenzione è bene interpretabile facendo riferimento all’assetto di un aereoplano sul quale sia stato fissato un sistema di riferimento il cui asse z è disposto lungo la carlinga, il cui asse y è disposto nella direzione dell’apertura alare e il cui asse x è disposto di conseguenza (vedi Figura 8). 7 Si noti che se la funzione atan2(·, ·) è usata in modo appropriato, i suoi argomenti non sono mai entrambi nulli, in quanto essi devono corrispondere al seno e al coseno di un angolo (eventualmente non normalizzati). La circostanza in cui entrambi i suoi argomenti sono nulli corrisponde generalmente ad un errore di utilizzo della funzione. 8 È immediato constatare che questa terna di angoli è, in generale, non unica, perché ad esempio, RZY Z (ϕ, 0, ψ) = RZY Z (ϕ + α, 0, ψ − α) per p qualsiasi valore dell’angolo α. 9 2 + r 2 > 0, per cui dalla (16), con a = sin ϑ > 0, le espressioni Si osservi che per definizione, sin ϑ = r31 32 proposte per ψ e per ϕ sono corrette. 16 Figure 8: Gli angoli di RPY. Secondo la convenzione RPY, gli angoli di rollio ϕ, di beccheggio ϑ e di imbardata ψ vengono definiti eseguendo tre rotazioni successive, tutte intorno agli assi del sistema di riferimento originale, secondo la sequenza: 1. Rotazione di un angolo ψ intorno all’asse x; 2. Rotazione di un angolo ϑ intorno all’asse y (originale); 3. Rotazione di un angolo ϕ intorno all’asse z (originale). In base a quanto illustrato nell’Osservazione 2.2, le tre rotazioni sopra elencate corrispondono a matrici di rotazione che vanno via via a premoltiplicare le rotazioni precedenti, infatti eseguendo le rotazioni successive rispetto al sistema di riferimento originale, l’effetto è quello che si otterrebbe se la rotazione in oggetto fosse anteposta a quelle già effettuate (questa proprietà sarà più chiara in seguito nell’Esempio 3.2 e nell’Osservazione 3.1). Premoltiplicando, dunque, le matrici di rotazione relative alle trasformazioni sopra elencate, si può procedere alla determinazione della matrice di rotazione RRP Y (ϕ, ϑ, ψ) analoga a quella riportata in equazione (15) per il caso degli angoli ZYZ: RRP Y (ϕ, ϑ, ψ) = R z,ϕ Ry,ϑ Rx,ψ C ϕ C ϑ C ϕ Sϑ Sψ − S ϕ C ψ C ϕ C ϑ C ψ + S ϕ Sψ = Sϕ C ϑ Sϕ Sϑ Sψ − C ϕ C ψ Sϕ Sϑ C ψ − C ϕ Sψ . −Sϑ C ϑ Sψ Cϑ Cψ (17) Si osservi che gli angoli di RPY corrispondono ad una delle 27 possibili scelte per gli angoli di Eulero indicate nel paragrafo precedente. In particolare, essi corrispondono agli angoli di Eulero ZYX. La determinazione della trasformazione inversa alla (17) può essere eseguita in maniera parallela a quanto fatto nel paragrafo precedente per il caso degli angoli ZYZ ed è oggetto del seguemte esercizio. 17 Esercizio 3.1 Data una matrice di rotazione generica R = {rij }, determinare una terna di angoli di RPY ϕ, ϑ e ψ tali che R = RRP Y (ϕ, ϑ, ψ). ? 3.2 Coordinate omogenee Con riferimento alla Figura 9, dato un punto P nello spazio e dati due sistemi di riferimento (0xyz)0 e (0xyz)1 , se le coordinate del punto o1 rispetto al sistema di riferimento (0xyz)0 sono rappresentate dal vettore d, e se q0 e q1 denotano le coordinate del punto P nei due sistemi di riferimento, allora la seguente relazione può essere verificata con semplici considerazioni geometriche di composizione di vettori: q0 = 0 R1 q1 + d, (18) dove 0 R1 è la matrice di rotazione del sistema di riferimento (0xyz) 1 rispetto al sistema di riferimento (0xyz)0 . Si noti che l’equazione (18) coincide con l’equazione (14). Tuttavia, sulla base del Teorema di Eulero 3.1, sappiamo ora che qualunque spostamento rigido può essere caratterizzato dalla (18). Figure 9: Rappresentazione di un punto in diversi sistemi di coordinate. Per rappresentare in maniera più compatta il generico spostamento rigido (18), invece delle coordinate Cartesiane [x y z]T si utilizzano le coordinate omogenee: [wx wy wz w]T , costituite non più da tre ma da quattro componenti, di cui la quarta costituisce il fattore di scala per cui le componenti x, y e z sono moltiplicate e può essere utilizzata per risalire alle coordinate Cartesiane. Sulla base delle coordinate omogenee si definiscono le trasformazioni omogenee, rappresentate da matrici appartenenti allo spazio R 4×4 che consentono la rappresentazione compatta non solo di rotazioni (come avveniva per le matrici nello spazio R 3×3 ) ma anche di traslazioni. La forma più generale per una trasformazione omogenea è data dalla seguente formula: w 1 q1 = w1 R d w 0 q0 , s w0 f 18 (19) dove R ∈ R3×3 è la matrice di rotazione, d ∈ R3 è il vettore di posizione, f ∈ R1×3 è il vettore di trasformazione prospettica e s ∈ R è il fattore di scala. Nelle applicazioni robotiche (e, nel nostro caso, da questo punto in poi), si considera sempre f = [0 0 0] e s = 1, quindi le coordinate omogenee associate ad un punto di coordinate Cartesiane [x y z] T saranno sempre definite come [x y z 1]T (il fattore di scala e il vettore di trasformazione prospettica sono usati, ad esempio, in applicazioni di computer grafica). Sulla base della struttura delle trasformazioni omogenee descritta dall’equazione (19), si possono scrivere le seguenti matrici di rotazioni omogenee fondamentali (corrispondenti rispettivamente alle equazioni (9)): cos θ − sin θ 0 0 sin θ cos θ 0 0 Tz,θ := (20a) 0 0 1 0 0 0 0 1 1 0 0 0 0 cos θ − sin θ 0 (20b) Tx,θ := 0 sin θ cos θ 0 0 0 0 1 cos θ 0 sin θ 0 0 1 0 0 (20c) Ty,θ := − sin θ 0 cos θ 0 , 0 0 0 1 e la matrice di traslazione omogenea fondamentale 1 0 0 dx 0 1 0 dy Ttr,d := 0 0 1 dz , 0 0 0 1 (20d) dove d = [dx dy dz ]T costituisce un generico spostamento traslatorio. Il vantaggio delle coordinate e trasformazioni omogenee sta nel fatto che l’equazione (18), caratterizzante un generico spostamento rigido, può essere descritta in forma matriciale come segue, tramite la trasformazione omogenea 0 T1 : q0 p0 = = 0 T1 p1 1 0 q1 R1 d , = [0 0 0] 1 1 0 R1 q 1 + d = 1 e, analogamente a quanto accadeva per le rotazioni (descritte da matrici in R 3×3 ), gli spostamenti rigidi si possono comporre, consentendo la rappresentazione compatta di catene di sistemi di riferimento in relazione l’uno con l’altro. In particolare, se p 0 = 0 T1 p1 e p1 = 1 T2 p2 , 19 Figure 10: Composizione di spostamenti rigidi per determinare la trasformazione di coordinate complessiva. allora si può sostituire e ottenere p0 = = =: 0 T1 p1 , T1 1 T2 p2 0 T2 p2 . 0 Quindi, con riferimento alla Figura 10, la matrice 0 T4 è data dal seguente prodotto delle trasformazioni da ogni sistema di riferimento al successivo: 0 T4 = 0 T1 1 T2 2 T3 3 T4 . Esercizio 3.2 Si dimostri tramite l’uso delle trasformazioni omogenee che una rotazione lungo un asse ed una traslazione nella direzione dello stesso asse sono trasformazioni che commutano. ? Esempio 3.1 Trovare una matrice di trasformazione omogenea che rappresenti una traslazione di lunghezza d lungo l’asse z seguita da una rotazione di un angolo θ intorno a z, seguita da una rotazione di un angolo α intorno all’asse x, e infine, da una traslazione di lunghezza a lungo x. Soluzione. La soluzione è data dalla composizione delle quattro matrici di trasformazione fondamentali, secondo la regola mnemonica data in Osservazione 2.2: T = Ttr,[0 0 d]T Tz,θ Tx,α Ttr,[a 0 0]T cos θ − sin θ 0 0 sin θ cos θ 0 0 = 0 0 1 0 0 0 0 1 20 1 0 0 0 0 1 0 0 0 0 1 0 0 0 d 1 0 0 0 1 cos θ − cos α sin θ sin α sin θ a cos θ sin θ cos α cos θ − sin α cos θ a sin θ = 0 sin α cos α d 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 a 1 0 0 0 cos α − sin α 0 0 0 sin α cos α 1 0 0 0 ? Esercizio 3.3 Si dimostri che le trasformazioni omogenee non godono della proprietà di ortogonalità come le rotazioni. Inoltre, si verifichi che, data la trasformazione omogenea, 0 R1 d 0 T1 = , [0 0 0] 1 la trasformazione inversa 10 corrisponde a: 0 T R1 −0 R1T d 1 . T0 = [0 0 0] 1 ? Se da un lato la composizione di più trasformazioni omogenee risulta come una banale operazione algebrica, non è altrettanto banale la costruzione della matrice di trasformazione relativa a due basi orientate e centrate in modi diversi. Sulla base del seguente esempio, si può estrapolare una regola mnemonica per la costruzione della matrice di trasformazione corretta. Esempio 3.2 In questo esempio, le coordinate omogenee saranno utilizzate per rappresentare la posizione e l’orientamento del punto termale di un robot planare in base al sistema di coordinate solidale con la base del robot. Con riferimento alla Figura 11, si assuma che i due bracci (spesso indicati come “link” o “segmenti”) del robot siano lunghi rispettivamente a 1 e a2 e che gli angoli dei due giunti, definiti come in figura, siano rispettivamente θ1 e θ2 . Si possono allora definire tre sistemi di riferimento: il sistema fisso (0xyz)0 , solidale con la base; il sistema (0xyz)1 , solidale con il giunto finale del primo link e il sistema (0xyz)2 , collocato sul punto terminale del robot (effettore). A partire da questi tre sistemi di riferimento, per calcolare la trasformazione di coordinate omogenea 0 T2 dal sistema di riferimento di base (0xyz)0 a quello di effettore (0xyz)2 , si possono calcolare le trasformazioni 0 T1 e 1 T2 e comporle tramite la semplice moltiplicazione delle matrici. Per quanto riguarda il calcolo delle due trasformazioni parziali, 10 In base al fatto che tutte le matrici di trasformazione omogenee sono non singolari, si può dimostrare che tale trasformazione è unica. 21 Figure 11: Un robot planare a due link con i sistemi di riferimento. si osservi che in base alla scelta degli angoli e in base alla struttura del robot, le due matrici di trasformazione saranno identiche ma con variabili aventi indici diversi. È dunque sufficiente la determinazione di 0 T1 per arrivare alla trasformazione complessiva. Determinazione di 0 T1 . I sistemi di riferimento (0xyz)0 e (0xyz)1 differiscono per una traslazione di a1 lungo x1 e per una rotazione di θ1 intorno all’asse z0 (o, analogamente, intorno all’asse z1 ). Si osservi tuttavia, che la matrice relativa alla traslazione va postmoltiplicata alla rotazione per avere la trasformazione corretta, infatti l’origine del sistema (0xyz) 1 ha coordinate q0 = [a1 cos θ1 a1 sin θ1 0]T , vettore che effettivamente coincide con il termine d della trasformazione complessiva ottenuta postmoltiplicando la matrice di traslazione a quella di rotazione. In particolare, si ottiene: 0 T1 := T z θ1 Ttr,[a1 0 0]T cos θ1 − sin θ1 sin θ1 cos θ1 = 0 0 0 0 cos θ1 − sin θ1 sin θ1 cos θ1 = 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 a1 cos θ1 a1 sin θ1 0 1 0 1 0 0 0 a1 0 0 1 0 0 1 (21) Sulla base dell’equazione (21), si può ricavare la matrice di trasformazione globale che risulta essere: 0 T2 := 0 T1 1 T2 = Tz θ1 Ttr,[a1 0 0]T Tz θ2 Ttr,[a2 0 0]T cos θ1 − sin θ1 0 a1 cos θ1 sin θ1 cos θ1 0 a1 sin θ1 = 0 0 1 0 0 0 0 1 cos(θ1 + θ2 ) − sin(θ1 + θ2 ) sin(θ1 + θ2 ) cos(θ1 + θ2 ) = 0 0 0 0 22 0 a2 cos θ2 0 a2 sin θ2 1 0 0 1 a2 cos(θ1 + θ2 ) + a1 cos θ1 a2 sin(θ1 + θ2 ) + a1 sin θ1 , 0 1 cos θ2 − sin θ2 sin θ2 cos θ2 0 0 0 0 0 0 1 0 dove l’ultima relazione è stata ottenuta usando le ben note formule di Prostaferesi per le funzioni trigonometriche di somme e differenze di angoli. ? Osservazione 3.1 In base all’esperienza fatta tramite l’Esempio 3.2, si può dare la seguente regola mnemonica. Per esprimere le coordinate rispetto ad una base (0xyz) 0 in funzione di una seconda base (0xyz)1 in posizione arbitraria rispetto alla precedente, bisogna scomporre il movimento dalla base (0xyz)0 alla (0xyz)1 in rotazioni o traslazioni elementari e poi eseguire la seguente procedura: 1. Sovrapporre (0xyz)1 a (0xyz)0 e inizializzare T = I (i due sistemi di riferimento sono coincidenti). 2. Esprimere ordinatamente le rotazioni e traslazioni necessarie per portare (0xyz) 1 nella posizione originaria aggiornando T ad ogni movimento elementare come segue: • se (0xyz)1 ruota (trasla) intorno ad (lungo) un asse fondamentale di (0xyz) 1 , allora si postmoltiplica T per la matrice di trasformazione omogenea elementare corrispondente al movimento; • se (0xyz)1 ruota (trasla) intorno ad (lungo) un asse fondamentale di (0xyz) 0 , allora si premoltiplica T per la matrice di trasformazione omogenea elementare corrispondente al movimento. ◦ Figure 12: Sistema considerato nell’Esercizio 3.4. Esercizio 3.4 Sulla base dell’Esempio 3.2, e della regola mnemonica data nell’Osservazione 3.1, calcolare la matrice di trasformazione tra i sistemi di riferimento di base ed effettore, corrispondente al braccio meccanico rappresentato in Figura 12. ? 23 4 Cinematica diretta dei robot In questa sezione verrà fornito un metodo costruttivo per caratterizzare la posizione del punto terminale di un manipolatore (detto anche effettore) in base alla posizione relativa di ogni segmento (o link) rispetto al precedente segmento, ovvero, in altri termini, in base alla posizione di ogni giunto. 4.1 Segmenti, giunti e loro parametri Un manipolatore meccanico consiste in una sequenza di segmenti rigidi chiamati link, connessi da giunti prismatici o di rotazione (vedi esempio in Figura 13). Ogni coppia giunto-link, rappresenta un grado di libertà. Dunque, per un manipolatore con N gradi di libertà ci sono N coppie giunto-link con il link 0 (non considerato parte del robot) ancorato a una base di appoggio dove di norma è stabilito un sistema di coordinate inerziale; all’ultimo link è collegato un utensile. I giunti e i link sono numerati in successione partendo dalla base; cosı̀ il giunto 1 costituisce il punto di connessione fra il link 1 e la base di supporto. Ogni link è connesso al più a due altri link perché non si formino catene chiuse. Figure 13: Il robot PUMA. In generale, due link sono collegati fra loro con un giunto di prima specie, e di questi, solo i giunti rotazionali e prismatici sono comuni nei manipolatori. I primi sono giunti associati ad uno spostamento angolare dei link adiacenti (ad esempio, il giunto 2 in Figura 13), mentre i secondi sono associati ad uno spostamento lineare dei link adiacenti. 24 L’asse di un giunto si definisce come l’asse di rotazione o di traslazione individuato dal movimento del giunto. Questo asse avrà due normali, una per ogni link. Si faccia riferimento alla Figura 14. Figure 14: Sistemi di coordinate dei link e loro parametri. Un link i è connesso, ripetiamo, al massimo ad altri due (cioè il link i − 1 e il link i + 1); pertanto, sono stabiliti due assi del giunto per ambedue le estremità della connessione. Il significato dei link, considerati in un’ottica cinematica, è che essi mantengono una configurazione fissa tra i loro giunti che può essere caratterizzata da due parametri a i e αi . Il parametro ai rappresenta la distanza più breve misurata lungo la normale comune tra gli assi dei giunti (cioè gli assi zi−1 e zi rispettivamente per i giunti i e i + 1), e αi è l’angolo compreso tra gli assi dei giunti su un piano perpendicolare ad a i . Cosı̀ ai e αi possono essere chiamati, rispettivamente, lunghezza e angolo di twist del link i. Essi sono associati alla struttura del link. Dato l’asse zi , la posizione relativa dei due link adiacenti i − 1 e i è data da d i , che è la distanza misurata lungo l’asse del giunto fra la normale proveniente dall’asse del giunto i − 1 e la normale che va al giunto i + 1 (ovvero, il segmento ai ). L’angolo θi del giunto è l’angolo formato dalle 2 normali, misurato su un piano ortogonale all’asse del giunto. Dunque, d i e θi possono essere chiamati rispettivamente distanza e angolo di giunto, fra due link adiacenti. Essi sono associati alla posizione relativa tra i due link. Riassumendo, a ciascuna coppia giunto/link di un manipolatore sono associati quattro parametri: ai , αi , di e θi . Una volta stabilita una convenzione di segno per ognuno di essi, questi costituiscono un insieme sufficiente a determinare completamente la configurazione cinematica di ciascun anello della catena articolata del braccio. Si enfatizza che questi parametri possono essere considerati a coppie: (ai , αi ), che dipendono dalla struttura del link, e (di , θi ), parametri dei giunti, che dipendono dalla posizione relativa dei link adiacenti. 25 Link/giunto 1 2 a a1 a2 α α1 α2 d d1 d2 θ θ1 θ2 .. . .. . .. . .. . .. . N aN αN dN θN Table 1: Tabella dei parametri ai , αi , di e θi per un robot generico. In base alla caratterizzazione precedente, dato un manipolatore, sulla base dei quattro parametri ai , αi , di e θi , si può compilare una tabella strutturata come la Tabella 1, dove ogni link (e giunto) corrisponde ad una riga su cui sono presenti i parametri caratteristici del link e del giunto i. Questa tabella sarà utile per il calcolo della cinematica diretta del robot, ovvero della funzione che trasforma le coordinate del sistema di effettore (o della mano) nel sistema di coordinate di base. 4.2 Rappresentazione di Denavit-Hartenberg Per descrivere le relazioni di rotazione e traslazione tra link adiacenti, Denavit e Hartenberg [1955] hanno proposto un metodo matriciale per stabilire sistematicamente un sistema di coordinate per ogni link di una catena articolata. La rappresentazione di Denavit-Hartenberg (D-H) consiste in una matrice di trasformazione omogenea i−1 Ti ∈ R4×4 che rappresenta il sistema di coordinate del link i rispetto al riferimento del link precedente i − 1. Pertanto, attraverso trasformazioni sequenziali, l’estremità dell’effettore, espresso nell’ultimo sistema di coordinate, può essere trasformata ed espressa nelle “coordinate di base” che costituiscono il sistema di riferimento inerziale di questo sistema dinamico. Come già accennato, il robot è individuato da un sistema di riferimento inerziale (0xyz) o , detto di base, da un sistema di riferimento di effettore (0xyz) e (anche detto “della mano”) e dai sistemi di riferimento intermedi, ognuno associato ad un link (e ad un giunto). Per ognuno di questi N sistemi di riferimento (dove N sono i gradi di libertà della catena cinematica), si danno di seguito delle regole di tracciamento in termini di: 1) posizione dell’asse zi ; 2) posizione del centro oi ; 3) posizione dell’asse xi . La posizione dell’asse yi è infine determinabile univocamente dalle informazioni precedenti. Procedura per la scelta dei riferimenti A. Sistema di riferimento di base, (0xyz)0 : 1. scegliere l’asse z0 come l’asse del primo giunto; 2. scegliere il centro arbitrariamente (ad esempio, al livello del piano di appoggio); 3. scegliere l’asse x0 arbitrariamente. 26 B. Sistema di riferimento del link 1 ≤ i ≤ N , (0xyz)i : 1. Scegliere l’asse zi come l’asse del giunto i + 1. 2. Scegliere il centro oi come segue: • se gli assi zi−1 e zi sono sghembi, tracciare l’unico segmento ai perpendicolare ad entrambi gli assi (che in effetti costituisce la loro distanza) e scegliere il centro o i come l’intersezione del segmento ai con l’asse zi ; • se gli assi zi−1 e zi sono paralleli, poiché ci sono infiniti segmenti ai di minima distanza tra zi−1 e zi , scegliere il centro oi arbitrariamente (a volte è comodo posizionarlo allineato con oi−1 ); • se gli assi zi−1 e zi sono secanti, scegliere il centro oi al punto di intersezione dei due assi. 3. Scegliere l’asse xi come segue: • se gli assi zi−1 e zi sono sghembi o paralleli, scegliere l’asse xi come il prolungamento del segmento ai dopo il passaggio per il centro oi ; • se gli assi zi−1 e zi sono secanti, scegliere l’asse xi nella direzione perpendicolare al piano individuato da zi e zi−1 , con verso arbitrario. C. Sistema di riferimento d’effettore (della mano), (0xyz)e : 1. Scegliere l’asse ze nella direzione di avvicinamento; 2. Scegliere il centro oe al centro della pinza o sul punto terminale di un utensile (ad esempio, la punta di un trapano); 3. Scegliere l’asse xe nella direzione di apertura della pinza (detta anche scorrimento, o alzo), o arbitrariamente nel caso di utensili più sofisticati. Si osservi che in un certo numero di situazioni, la procedura appena definita non dà indicazioni precise sul posizionamento dei sistemi di riferimento. In particolare, ciò accade nei seguenti casi: • Per la terna 0, poiché solo l’asse z0 è fissato, si può scegliere liberamente sia o0 che x0 . • Per la terna N , poiché non esiste il giunto N + 1, l’asse xN ha il solo vincolo di essere ortogonale all’asse zN −1 , e gli altri parametri sono liberi. • Quando due assi consecutivi sono paralleli o secanti. Nel primo caso, la posizione del centro oN è arbitraria lungo tali assi; nel secondo, il verso di xN è arbitrario. 27 4.3 Trasformazione omogenea associata ad un link Stabilito il sistema di coordinate di D-H per ogni link, si può sviluppare facilmente una matrice di trasformazione omogenea che metta in relazione il sistema di coordinate i-esimo col sistema di il coordinate (i − 1)-esimo. In particolare, con riferimento alla Figura 14, si osservi che, in base alla regola mnemonica data nell’Osservazione 3.1, sovrapponendo il sistema di riferimento (0xyz)i al sistema di riferimento (0xyz)i−1 , bisogna effettuare le seguenti trasformazioni elementari per riportare (0xyz) i nella sua posizione originaria: 1. traslare lungo l’asse zi−1 di una lunghezza pari a di per portare l’origine oi sul punto di intersezione tra il segmento ai e l’asse zi−1 ; 2. ruotare intorno all’asse zi−1 di un angolo θi per allineare l’asse xi con il segmento ai ; 3. traslare lungo l’asse xi di una lunghezza pari ad ai per portare oi nella posizione originaria; 4. ruotare intorno all’asse xi di un angolo pari ad αi per portare l’asse zi nella posizione originaria. Le prime due trasformazioni sono riferite al sistema di riferimento i − 1 e corrispondono dunque alla premoltiplicazione per le matrici T tr,[0 0 di ] e Tz,θi , rispettivamente. Le ultime due trasformazioni, sono invece riferite al sistema di riferimento i e corrispondono alla postmoltiplicazione per le matrici Ttr,[ai 0 0] e Tx,αi , rispettivamente. In sintesi, la trasformazione i−1 Ti si costruisce secondo la seguente sequenza: I → Ttr,[0 0 di ] → Tz,θi Ttr,[0 0 di ] → Tz,θi Ttr,[0 0 di ] Ttr,[ai 0 0] → Tz,θi Ttr,[0 0 di ] Ttr,[ai 0 0] Tx,αi , e risulta essere: i−1 Ti = Tz,θi Ttr,[0 0 di ] Ttr,[ai 0 0] Tx,αi . (22) Si osservi l’analogia tra la trasformazione (22) e l’Esempio 3.1, dove peraltro, la matrice i−1 Ti è calcolata esplicitamente. Poiché la ((22) è di valore generale, essa può essere applicata iterativamente sostituendo i dati della Tabella 1 per ottenere in maniera immediata la matrice 0 Te della cinematica diretta. Il calcolo della cinematica diretta, si scompone in una procedura costituita dai seguenti passi: 1. Si analizza la struttura posizionando tutti i sistemi di riferimento secondo la procedura vista precedentemente; 2. In base alla posizione dei sistemi di riferimento, si ricavano i parametri di D-H, compilando la Tabella 1. 3. Si sostituiscono i valori della riga i-esima della tabella nella corrispettiva matrice di trasformazione i−1 Ti e si semplificano le moltiplicazioni 4. Si moltiplicano tutte le matrici ricavate al punto precedente per ricavare la matrice finale: p0 = = 0 0 Te pe T1 1 T2 · · · i−1 28 Ti · · · N −1 TN N Te pe . (23) Tale procedura presenta un solo punto che può risultare non di immediata facilità, costituito dalla estrapolazione dei parametri di D-H in base alla posizione delle terne di riferimento, che è un’operazione prettamente di tipo geometrico. Si tenga peraltro presente che gli angoli di giunto θi per i giunti rotazionali e gli offset di giunto di per i giunti prismatici, non sono necessariamente coincidenti con gli angoli geometrici scelti per descrivere la configurazione del robot. Dunque, riportare tali angoli nella tabella di D-H senza aver verificato questa coincidenza, può portare ad errori nel calcolo della cinematica globale. Questo concetto è facilmente verificabile riflettendo sul fatto che la definizione delle coordinate geometriche di un robot è arbitraria, e che, necessariamente, scelte diverse degli angoli geometrici, devono corrispondere a opportune differenze nella matrice di cinematica diretta per non modificare il risultato finale (la geometria del robot è sempre la stessa). Nell’osservazione seguente è indicato un possibile metodo pratico per la determinazione dei parametri di D-H. Osservazione 4.1 Date due terne (oxyz)i−1 e (oxyz)i , con riferimento alla Figura 14, una possibile procedura per stimare i parametri D-H è di portare dapprima l’asse z i−1 sull’asse zi per stimare ai e successivamente, ruotarlo intorno a xi per stimare αi . Per la stima di di e θi , conviene, in generale, fare l’operazione inversa, ovvero riportare l’asse z i verso il sistema di riferimento (oxyz)i−1 ruotandolo di −αi e traslandolo di −ai . A questo punto, uno spostamento di −di è necessario per portare oi a coincidere con oi−1 e una rotazione di −θi è necessaria per portare xi a sovrapporsi con xi−1 . La convenienza nel misurare di e θi tornando sul sistema (oxyz)i−1 deriva dal fatto che questi parametri sono relativi al giunto i di cui zi−1 è l’asse. ◦ 4.4 Spazio dei giunti e spazio operativo Come si è visto nei paragrafi precedenti, l’equazione cinematica diretta di un manipolatore consente di esprimere la posizione e l’orientamento della terna utensile di un robot rispetto alla terna di base, in funzione delle variabili di giunto. Nello specificare il compito da far eseguire all’organo terminale del manipolatore sorge la necessità di assegnare posizione e orientamento della terna utensile, eventualmente in funzione del tempo (traiettoria). Mentre per la posizione si può procedere in maniera semplice, specificare l’orientamento mediante una matrice di rotazione risulta difficile in quanto bisogna garantire che le nove componenti soddisfino, istante per istante, i vincoli di ortonormalità. Il problema della descrizione dell’orientamento dell’organo terminale si presta ad una soluzione naturale se invece si fa ricorso ad una delle rappresentazioni minime introdotte nella Sezione 3.1 in quanto, in tal caso, risulta agevole assegnare una legge di moto alla terna di angoli scelta per rappresentare l’orientamento. Si può pertanto individuare la posizione con un numero minimo di coordinate definito dalla geometria della struttura e si può specificare l’orientamento ricorrendo a una rappresentazione minima in termini delle variabili che caratterizzano la rotazione della terna utensile rispetto alla terna base (ad esempio, angoli di Eulero o angoli di RPY). È in tal 29 modo possibile descrivere la postura del manipolatore mediante il vettore p , x= φ dove p ∈ R3 caratterizza la posizione dell’organo terminale e φ il suo orientamento. Tale rappresentazione di posizione e orientamento consente la descrizione del compito assegnato all’organo terminale in termini di un numero di parametri strutturalmente indipendenti tra di loro. Lo spazio in cui è definito il vettore x è quello rispetto al quale viene tipicamente specificata l’operazione richiesta al manipolatore; pertanto esso viene denominato spazio operativo. Con spazio dei giunti (o spazio delle configurazioni), invece, ci si riferisce allo spazio in cui è definito il vettore delle variabili di giunto: q1 q = ... , qn dove qi = θi per un giunto rotazionale e qi = di per un giunto prismatico. Tenendo conto della dipendenza di posizione e orientamento dalle variabili di giunto, l’equazione cinematica diretta può scriversi in una forma alternativa rispetto alla (23), come x = k(q), (24) dove la funzione vettoriale k(·), non lineare in generale, permette il calcolo delle variabili nello spazio operativo a partire dalla conoscenza delle variabili nello spazio dei giunti. È opportuno precisare che la dipendenza delle variabili di orientamento dalle variabili di giunto nella (24), non risulta agevole tranne che in casi semplici. Infatti, nelle ipotesi più generali, di uno spazio operativo esadimensionale, il calcolo delle tre componenti della funzione φ(q) non è attuabile in forma diretta ma passa comunque attraverso il calcolo di una matrice di rotazione. Con riferimento allo spazio operativo, come elemento di valutazione delle prestazioni di un robot, si definisce spazio di lavoro di un manipolatore la regione descritta dall’origine della terna utensile quando ai giunti del manipolatore si fanno eseguire tutti i moti possibili. Sovente si usa distinguere tra spazio di lavoro raggiungibile e spazio di lavoro destro (spazio di destrezza). Il secondo è la regione che l’origine della terna utensile può descrivere assumendo differenti orientamenti, mentre il primo è la regione che l’origine della terna utensile può raggiungere con almeno un orientamento. Ovviamente lo spazio di lavoro destro è un sottoinsieme dello spazio di lavoro raggiungibile. 4.5 Esempi e esercizi In questa sezione vengono forniti alcuni esempi ed esercizi per il calcolo della cinematica diretta di un robot. Esempio 4.1 (Manipolatore SCARA) In questo esempio si procederà a calcolare la trasformazione cinematica diretta per un robot di tipo SCARA. La struttura del robot ed i sistemi 30 Figure 15: Il manipolatore SCARA con i sistemi di riferimento. di riferimento, assegnati seguendo la procedura di Denavit-Hartenberg, sono riportati nella Figura 15. Il vettore delle variabili di giunto è dato da: q = [ θ1 θ2 d3 θ4 ], (25) ed i parametri cinematici che caratterizzano il robot sono: 1 2 3 4 θ θ1 θ2 0 θ4 d d1 0 d3 0 l `1 `2 0 0 α 0 +π 0 0 Le matrici di trasformazione, tenendo conto della cos θ4 − sin θ4 0 sin θ4 cos θ4 0 3 T4 = 0 0 1 0 0 0 1 0 0 0 0 1 0 0 2 T3 = 0 0 1 d3 , 0 0 0 1 31 (22), sono date da: 0 0 , 0 1 (26) (27) 1 T2 0 T1 cos θ2 sin θ2 sin θ2 − cos θ2 = 0 0 0 0 cos θ1 − sin θ1 sin θ1 cos θ1 = 0 0 0 0 0 `2 cos θ2 0 `2 sin θ2 , −1 0 0 1 0 `1 cos θ1 0 `1 sin θ1 . 1 d1 0 1 (28) (29) La matrice di trasformazione mano-base, cioè la 0 T4 , è data da: 0 0 T 1T 2T 3T 1 2 3 4 C12−4 S12−4 0 `1 C1 + `2 C12 S12−4 −C12−4 0 `1 S1 + `2 S12 = 0 0 −1 d 1 − d3 0 0 0 1 T4 = (30) , (31) in cui C12−4 indica la funzione cos(θ1 + θ2 − θ4 ), S12−4 indica la funzione sin(θ1 + θ2 − θ4 ), C1 indica la funzione cos(θ1 ), S1 indica la funzione sin(θ1 ), ed analogamente C12 indica la funzione cos(θ1 + θ2 ), e S12 indica la funzione sin(θ1 + θ2 ). La posizione della mano (ovvero, la posizione dell’origine della terna associata alla mano) espressa nelle coordinate di base è dunque data da: x0 = `1 C1 + `2 C12 , y0 = `1 S1 + `2 S12 , z0 = d 1 − d 3 . ? Esercizio 4.1 Calcolare la matrice di cinematica diretta dello Stanford Robot Arm, e per il robot PUMA, utilizzando i sistemi di riferimento rappresentati in Figura 16 e in Figura 17, rispettivamente. Si scriva dapprima la tabella dei parametri cinematici, calcolando le matrici associate ad ogni link e poi si moltiplichino le matrici per ottenere la trasformazione globale. ? Esercizio 4.2 Si osservi che nell’Esempio 4.1, il posizionamento del centro dei sistemi di riferimento 1, 2 e 3 rispettivamente sui giunti 2, 3 e 4 è arbitrario. Si ricalcoli la cinematica diretta del robot posizionando i centri dei 3 sistemi di riferimento in corrispondenza del piano di appoggio e orientando gli assi z di tutti e tre i sistemi verso l’alto. Successivamente, si verifichi (algebricamente o numericamente) che la matrice di cinematica diretta risultante è la stessa. ? Esercizio 4.3 Collocare i sistemi di riferimento e calcolare la cinematica diretta per i robot rappresentati in Figura 18: il manipolatore sferico e il manipolatore antropomorfo. ? 32 Figure 16: Lo Stanford robot arm con i sistemi di riferimento. Figure 17: Un robot PUMA con i sistemi di riferimento. 33 Figure 18: Manipolatore sferico e manipolatore antropomorfo. 5 Cinematica inversa dei robot Ancora da scrivere 34 6 Cenni sulla dinamica dei motori in corrente continua L’insieme di equazioni riportato di seguito, costituisce un modello matematico per il motore in corrente continua (CC) che può essere rappresentato come un sistema dinamico non lineare. Le principali restrizioni di cui bisogna tenere conto per lo sviluppo di questo modello rispetto ad un motore reale sono 1. l’assunzione che il circuito magnetico sia lineare (questa è un’approssimazione poiché le parti di metallo, non perfettamente omogenee, causano dispersione all’interno del motore; inoltre, a causa della saturazione magnetica, la linearità delle proprietà magnetiche si perde per alti valori di corrente i); 2. l’assunzione che l’attrito meccanico sia funzione lineare della velocità del motore; si assume quindi che nel motore sia presente solamente l’attrito viscoso (è tuttavia noto che nei motori sia generalmente presente anche l’attrito statico). 6.1 Le equazioni elettriche In un motore CC, il flusso magnetico Φ è generato da avvolgimenti collocati sullo statore. Si assumerà che lo statore abbia una sola terminazione polare, caratterizzata da una induttanza Le associata al relativo avvolgimento e da una resistenza Re associata alle dispersioni nel conduttore (vedi Figura 19). L’equazione che descrive questo circuito elettrico è data da ve (t) = Le d ie + R e ie . dt (32) Poiché la relazione (32) è lineare, trasformando le variabili nel dominio di Laplace, si ottiene Ke ie (s) = , ve (s) 1 + τe s (33) 1 Le è il guadagno di statore e τe := è la costante di tempo di statore. Re Re Analogamente, si assume che il rotore abbia una sola terminazione polare caratterizzata da un’induttanza La e da una resistenza Ra (si veda Figura 19). Inoltre, va considerato nel modello elettrico del rotore l’effetto della forza controelettromotrice e, che corrisponde ad una differenza di tensione indotta, proporzionale alla velocità di rotazione. L’equazione associata al relativo circuito elettrico è dove Ke := va (t) = La d ia + Ra ia + e. dt (34) Nuovamente, poiché la relazione (34) è lineare, trasformando nel dominio di Laplace si ottiene: ia (s) Ka = , va (s) − e(s) 1 + τa s 35 (35) Figure 19: Schema elettrico equivalente di un motore CC. La 1 è il guadagno di rotore e τa := è la costante di tempo di rotore. Ra Ra Sulla base delle proprietà fisiche del motore e delle relazioni che caratterizzano l’interazione tra le quantità meccaniche e le quantità elettriche del motore, si può dimostrare che le due seguenti relazioni sussistono. Queste relazioni forniscono un’espressione esplicita della forza controelettromotrice e e della coppia meccanica TM erogata dal motore: dove Ka := T M = K i e ia , e = K ie ω, (36) (37) dove KΦ è una costante che dipende dalla geometria del motore. 6.2 Le equazioni meccaniche Un motore CC alimentato con tensioni di statore e di rotore esercita una coppia sull’albero del motore. Questa coppia agisce sulla struttura meccanica, caratterizzata dall’inerzia di rotore J e dal coefficiente di attrito viscoso F . Inoltre, per considerare un ambito operativo generico, è opportuno tener conto di una coppia di carico esercitata sull’albero del motore. Se TL denota tale coppia di carico, allora si ha la seguente equazione del moto: TM − T L = J dω + F ω. dt (38) Analogamente al caso elettrico, anche per le equazioni meccaniche si può associare una funzione di trasferimento lineare alla relazione (38): Km ω(s) = , TM (s) − TL (s) 1 + τm s dove Km := 6.3 (39) 1 J è il guadagno meccanico e τm := è la costante di tempo meccanica. F F Motoriduttori e motori a presa diretta Spesso (ad esempio in applicazioni di robotica), la velocità richiesta dalla particolare applicazione è troppo bassa se confrontata con la velocità nominale di un motore. 11 In 11 La velocità nominale di un motore corrisponde al picco di massima efficienza del motore stesso. 36 questo caso, vengono tipicamente inseriti degli ingranaggi, detti riduttori, tra il motore e il carico con lo scopo di ridurre la velocità angolare di un fattore n tra l’albero del motore e l’asse del carico. L’insieme di motore + riduttore viene cosı̀ denominato motoriduttore. Oltre all’incremento di attrito viscoso ed inerzia associati alla presenza delle ruote dentate rotanti interne al riduttore, l’accoppiamento meccanico tra il carico e il motore è sensibilmente alterato dalla presenza del riduttore. Per descrivere correttamente gli effetti del riduttore, il primo aspetto da chiarire è legato al fatto che l’attrito e l’inerzia non sono gli stessi se vengono misurati all’ingresso o all’uscita del riduttore (cioè sull’albero del motore o sull’asse del carico, rispettivamente). Poiché siamo interessati ad una caratterizzazione “esterna” dell’intero blocco motoriduttore, si farà riferimento alle quantità in uscita dal riduttore (ovvero, quelle riferite all’asse del carico). Sia dunque FG il coefficiente di attrito viscoso e JG l’inerzia interni al riduttore. Allora, poiché la potenza erogata dal motore è la stessa sia all’ingresso che all’uscita del riduttore, 0 denominando TM e ω 0 la coppia e la velocità all’uscita del riduttore, rispettivamente, si ha 0 TM ω = T M ω0, 0 e poiché ω 0 = ω/n, allora TM = n TM . In sintesi, mentre la velocità in uscita del motoriduttore è n volte minore della velocità dell’albero del motore, la coppia in uscita è invece n volte superiore a quella erogata dal solo blocco motore. Sostituendo le precedenti espressioni nell’equazione (38) e considerando gli incrementi di attrito ed inerzia dovuti alle ruote interne al riduttore, si ottiene 12 0 TM − TL = (JG + n2 J) d ω0 + (FG + n2 F ) ω 0 . dt (40) Confrontando le equazioni (38) e (40) si osserva che la presenza del riduttore aumenta significativamente l’inerzia e l’attrito del motore dal punto di vista del carico. Un effetto importante qui non modellato ma spesso associato alle applicazioni con motoriduttori è il gioco meccanico, causato dagli accoppiamenti tra gli ingranaggi interni del riduttore. Il gioco meccanico impone sul motoriduttore una nonlinearità indesiderata che può a volte portare a fenomeni di instabilità. Per questa ragione, specialmente in sistemi di alta precisione, i motori a presa diretta sono preferibili. Questi motori sono costruiti in maniera da essere in grado di esercitare coppie sufficientemente alte a bassi regimi di velocità, cosı̀ da non richiedere riduttore per poter agire sul carico. Tuttavia i motori CC a presa diretta sono comunque associati a coppie limitate e non possono essere adoperati per applicazioni di alta potenza, in cui le coppie neccessarie sarebbero troppo alte. 6.4 Diagramma a blocchi del motore CC Inserendo le equazioni (32), (34), (36), (37) e (38) in un diagramma a blocchi nonlineare, si ottiene lo schema rappresentato in Figura 20. Nel diagramma, la variabile θ rappresenta la posizione angolare del rotore (cosicché ω = θ̇). Il modello nonlineare corrisponde ad un sistema con due ingressi ed una uscita, avente un ingresso di disturbo corrispondente alla coppia di carico T L e quattro variabili di stato corrispondenti a 12 Si osservi che TL è esercitata dal carico, dunque non deve essere riscalata. 37 ve va + ve = L e die + R e ie dt va = L a ia dia + R a ia dt ie TL TM + K T =J dω + Fω dt - ω R θ K Figure 20: Diagramma a blocchi nonlineare di un motore CC. • l’energia immagazzinata nell’induttanza Le ; • l’energia immagazzinata nell’induttanza La ; • l’energia cinetica del rotore (associata a J); • la posizione θ del rotore. Osservazione 6.1 Si osservi che il modello nonlineare del motore è effettivamente costituito da tre relazioni lineari tra grandezze fisiche. Tali relazioni corrispondono alle funzioni di trasferimento (33), (35) e (39) e sono interconnesse a mezzo di due moltiplicatori, che rappresentano le nonlinearità del sistema. Numerose tecniche di controllo adottabili sul motore sono progettate con lo scopo di linearizzare il diagramma a blocchi, attraverso scelte opportune dei due ingressi va e ve . ◦ Osservazione 6.2 Se lo schema in Figura 20 viene usato per rappresentare un motoriduttore, è necessario inserire un guadagno costante pari ad 1/n prima dell’integratore di ω (cosicché l’integrale sia effettuato su ω 0 ), ed inserire un blocco pari a 1/n in cascata all’ingresso di disturbo TL . Si osservi che il ramo di retroazione è riferito alla velocità ω dell’albero del motore e non alla velocità ω 0 del carico perché il riduttore non cambia le proprietà elettriche del motore. ◦ A titolo di esempio, in Figura 21 è riportato il disegno di un semplice motore a magneti permanenti. Nei motori a magneti permanenti, un magnete va a sostituire gli avvolgimenti statorici, cosı̀ che un flusso magnetico costante sia automaticamente generato all’interno del motore in una soluzione economica. L’energia necessaria per la generazione della coppia viene dunque fornita al motore attraverso gli avvolgimenti rotorici. 38 Figure 21: Struttura di un motore a magneti permanenti. 7 Funzionamento degli encoder incrementali Gli encoder incrementali si basano su un principio di funzionamento geometrico. All’albero del motore, solidale con il rotore, viene collegato un disco opaco con dei fori disposti in posizione radiale, tanto più numerosi quanto maggiore è la risoluzione dell’encoder. Figure 22: Struttura di un encoder incrementale. Da un lato e dall’altro del disco sono inoltre disposte due coppie di sensori, ognuna costituita da un trasmittente e un ricevente, che sono in grado di individuare il passaggio dei fori applicati sul disco. In generale, il trasmittente è costituito da un LED (Light Emitting Diode) e il ricevente è un fototransistore, entrambi operanti nella banda ottica. Il funzionamento è indicato in Figura 22. Generalmente la geometria del disco è del tipo riportato in Figura 22, in modo che le zone opache e le zone trasparenti abbiano la stessa larghezza. Questo accorgimento fa s ì che, posizionando le due coppie di sensori opportunamente, le forme d’onda in uscita dai sensori siano del tipo indicato in Figura 23. Nella parte destra della Figura 22 è indicata un posizionamento dei due sensori che restituisce in uscita le forme d’onda di Figura 23. Si può osservare dalla Figura 23 che a seconda del verso di rotazione del motore, lo stato logico dei due segnali provenienti dai sensori è diverso: in corrispondenza del fronte di salita del segnale A infatti, in un caso il segnale B è alto, nell’altro caso è basso. Questa proprietà permette di decodificare con successo non solo la rotazione ma anche il verso di rotazione, in base alle letture fatte dal sensore. Tale decodifica è in generale effettuata tramite un 39 Figure 23: Segnali dell’encoder incrementale corrispondenti a rotazioni orarie e anti-orarie. semplice contatore UP/DOWN che misura gli spostamenti incrementali del motore (da cui il nome “incrementale” dato a questo tipo di encoders). A causa dell’arbitrarietà della posizione iniziale dell’encoder e dello stato iniziale del contatore di decodifica, tutti i dispositivi dotati di encoder incrementali prevedono la generazione di un segnale, detto di “home” (ovvero, “casa”) che notifica che il dispositivo su cui è montato l’encoder si trova in una posizione di riferimento nota e univoca. In presenza del segnale di home, il contatore di decodifica può essere inizializzato a zero per trasformare il sensore incrementale in un sensore assoluto. La risoluzione di un encoder corrisponde al numero di zone opache presenti nel disco, il che corrisponde da un punto di vista elettrico al numero di impulsi generati in uscita da ogni canale per angolo giro. Tuttavia, nel caso (molto frequente, peraltro) in cui l’encoder è montato sull’albero posteriore di un motore con riduttore, la risoluzione viene moltiplicata per il fattore di riduzione N , consentendo di avere misure ad alta precisione con dispositivi di costo relativamente basso. In numerose applicazioni, la lettura incrementale del movimento dell’encoder viene fatta tramite un circuito logico più complesso di un semplice contatore, che è in grado di rilevare tutti i fronti (sia di salita che di discesa) delle forme d’onda in Figura 23. Conseguentemente, la risoluzione dell’encoder viene quadruplicata, con evidenti vantaggi commerciali e implementativi. 40