Fondamenti di Geometria nello spazio 3D -...

30
Corso di Robotica Prof. Davide Brugali Università degli Studi di Bergamo Fondamenti di Geometria nello spazio 3D

Transcript of Fondamenti di Geometria nello spazio 3D -...

  • Corso di Robotica

    Prof. Davide Brugali

    Università degli Studi di Bergamo

    Fondamenti di Geometria

    nello spazio 3D

  • Geometria delle traslazioni

    11

    0

    0QTQ

    Semplice traslazione

    00

    1

    1QTQ

    x0

    y0

    z0

    x1

    y1

    z1 Q

    T

    1

    1

    1

    0

    0

    0

    qz

    qy

    qx

    c

    b

    a

    qz

    qy

    qx

    1

    0

    0

    1TT

    2 Robotica - UNIBG - Prof. Brugali

  • Geometria delle rotazioni

    Rotazione rispetto all’asse z

    x

    y

    (Px,Py)

    θ ρ

    Px = ρ cos(θ)

    Py = ρ sin(θ)

    22pypx

    px

    pyarctan

    Qx = ρ cos(θ+φ)

    Qy = ρ sin(θ+φ)

    Qx = ρ cos(θ)cos(φ) - ρ sen(θ)sen(φ)

    Qy = ρ cos(θ)sin(φ) + ρ sen(θ)cos(φ)

    Qx = Px cos(φ) – Py sen(φ)

    Qy = Px sin(φ) + Py cos(φ)

    φ (Qx,Qy)

    (Px,Py)

    x

    y

    θ ρ

    3 Robotica - UNIBG - Prof. Brugali

  • Geometria delle rotazioni

    y

    x

    y

    x

    P

    P

    Q

    Q*

    cossin

    sincos

    01

    0

    0PRQ

    φ (Qx,Qy)

    (Px,Py)

    x

    y

    θ ρ

    Qx = Px cos(φ) – Py sen(φ)

    Qy = Px sin(φ) + Py cos(φ)

    Q = R * P

    x0

    y0

    P φ

    x1

    Q

    y1

    01PQ

    11

    0

    0QRQ

    00

    1

    1QRQ

    4

    Rotazione rispetto all’asse z

    Robotica - UNIBG - Prof. Brugali

  • Geometria delle rotazioni

    Fornisce l’orientamento di una terna di coordinate rispetto ad

    un’altra. I vettori colonna sono i coseni direttori degli assi della terna

    ruotata rispetto alla terna di riferimento.

    Rappresenta una trasformazione di coordinate che mette in relazione

    le coordinate di un punto in due terne differenti con origine comune

    p = Rp. Inoltre in virtù della proprietà di ortogonalità della matrice

    R, la trasformazione inversa si scrive

    p = RTp

    La matrice di rotazione R rappresenta l’operatore che permette di

    ruotare un vettore (nella stessa terna), di un angolo prefissato, attorno

    ad un generico asse di rotazione nello spazio.

    5 Robotica - UNIBG - Prof. Brugali

  • Geometria delle rotazioni

    Rotazione dirette e inverse rispetto agli assi x,y,z

    100

    0cossin

    0sincos

    1

    0

    Rz

    100

    0cossin

    0sincos

    0

    1

    Rz

    cos0sin

    010

    sin0cos

    0

    1Ry

    cos0sin

    010

    sin0cos

    1

    0Ry

    cossin0

    sincos0

    001

    1

    0Rx

    cossin0

    sincos0

    001

    0

    1Rx

    T

    RR1

    0

    0

    1 Se R-1 = RT allora R è ortogonale

    det(R) = 1

    6 Robotica - UNIBG - Prof. Brugali

  • Geometria delle rotazioni

    Regola della mano destra

    7 Robotica - UNIBG - Prof. Brugali

  • Importanza dell’ordine delle rotazioni

    8 Robotica - UNIBG - Prof. Brugali

  • Rotazioni successive rispetto alla terna corrente

    La rotazione complessiva è espressa come successione di rotazioni

    parziali, ciascuna delle quali è definita rispetto alla rotazione

    precedente. La terna rispetto alla quale avviene la rotazione in atto è

    definita terna corrente.

    La composizione di rotazioni successive rispetto alla terna corrente si

    ottiene per moltiplicazione da sinistra verso destra le matrici delle

    singole rotazioni, nell’ordine della rotazione.

    9

    1

    2

    0

    1

    0

    2RRR

    Robotica - UNIBG - Prof. Brugali

  • Importanza dell’ordine delle rotazioni

    10 Robotica - UNIBG - Prof. Brugali

  • Rotazioni successive rispetto ad una terna fissa

    0

    1

    1

    2

    0

    2RRR

    La composizione di rotazioni successive rispetto ad una terna

    fissa si ottiene moltiplicando da destra verso sinistra le

    singole matrici di rotazione nell’ordine delle rotazioni.

    11 Robotica - UNIBG - Prof. Brugali

  • Angoli di Roll / Pitch / Yaw

    12

    X

    Y

    Z

    yaw

    pitch

    roll

    Robotica - UNIBG - Prof. Brugali

  • Angoli RPY

    Tale rappresentazione trae origine da una descrizione delle rotazioni usate

    frequentemente in aeronautica.

    In particolare RPY indicano rispettivamente il rollio (Roll) il beccheggio (Pitch)

    e l’imbardata (Yaw) di uno scafo.

    In questo caso la terna di parametri rappresenta rotazioni definite rispetto ad una

    terna fissa solidale al baricentro dello scafo.

    13 Robotica - UNIBG - Prof. Brugali

  • Angoli RPY

    Si ruota la terna origine dell’angolo

    intorno all’asse x (imbardata); tale rotazione è descritta dalla matrice di

    rotazione

    Si ruota la terna originale

    dell’angolo intorno all’asse y (beccheggio); tale rotazione è

    rappresentata dalla matrice

    Si ruota la terna originale

    dell’angolo intorno all’asse z (rollio); tale rotazione è

    rappresentata dalla matrice:

    cos0sen0

    sencos0

    001

    )(x

    R

    cos0sen

    010

    sen0cos

    )(y

    R

    100

    0cossen

    0sencos

    )(

    z

    R

    14 Robotica - UNIBG - Prof. Brugali

  • Angoli RPY

    La rotazione globale della terna, essendo ottenuta per composizione rispetto ad una

    terna fissa è:

    ccscs

    sccssccssscs

    sscsccsssccc

    RRRRxyzRPY

    )()()(

    Problema inverso

    333231

    232221

    131211

    rrr

    rrr

    rrr

    R

    3332

    2

    33

    2

    3231

    1121

    ,2tan

    ,2tan

    ,2tan

    rrA

    rrrA

    rrA

    appartenete all’intervallo (/2, 3/2)

    3332

    2

    33

    2

    3231

    1121

    ,2tan

    ,2tan

    ,2tan

    rrA

    rrrA

    rrA

    15 Robotica - UNIBG - Prof. Brugali

  • Rappresentazione con angoli di Eulero

    T ,,

    Relazione di ortogonalità R RT = I

    solo 3 parametri indipendenti

    R fornisce una rappresentazione ridondante

    Rappresentazione minima

    16

    Euler Angle I Euler Angle II Roll-Pitch-Yaw

    Sequence about OZ axis about OZ axis about OX axis

    of about OX’ axis about OY’ axis about OY axis

    Rotations about OZ’’ axis about OZ’’ axis about OZ axis

    Robotica - UNIBG - Prof. Brugali

  • Rappresentazione con angoli di Eulero

    '''

    1

    0 zxzRRRR

    Metodo di Eulero I:

    si ruota la terna origine dell'angolo φ intorno all'asse z: tale rotazione è descritta dalla matrice di rotazione Rz(φ)

    si ruota la terna dell'angolo θ intorno all'asse x’ corrente: tale rotazione è descritta dalla matrice di rotazione Rx1(θ).

    si ruota la terna dell'angolo ψ attorno all'asse z’’ corrente: tale rotazione è descritta dalla matrice di rotazione Rz’’ (ψ)

    17 Robotica - UNIBG - Prof. Brugali

  • Angoli di Eulero I

    x

    y

    z

    u'

    v'

    v "

    w"

    w'=

    =u"

    v'"

    u'"

    w'"=

    18 Robotica - UNIBG - Prof. Brugali

  • Angoli di Eulero I

    cossin0

    sincos0

    001

    ,

    100

    0cossin

    0sincos

    'xzRR

    100

    0cossin

    0sincos

    ''

    zR

    cossincossinsin

    sincos

    coscoscos

    sinsin

    cossincos

    cossin

    sinsincoscossin

    sincos

    cossinsin

    coscos

    ''' zxzRRRR

    19 Robotica - UNIBG - Prof. Brugali

  • Rappresentazione con angoli di Eulero

    '''

    1

    0 zyzRRRR

    Metodo di Eulero II:

    si ruota la terna origine dell'angolo φ intorno all'asse z: tale rotazione è descritta dalla matrice di rotazione Rz(φ)

    si ruota la terna dell'angolo θ intorno all'asse y’ corrente: tale rotazione è descritta dalla matrice di rotazione Ry1(θ).

    si ruota la terna dell'angolo ψ attorno all'asse z’’ corrente: tale rotazione è descritta dalla matrice di rotazione Rz’’ (ψ)

    20 Robotica - UNIBG - Prof. Brugali

  • Angoli di Eulero II

    x

    y

    z

    u'

    v' =v"

    w"

    w'=

    u"

    v"'

    u"'

    w"'=

    21 Robotica - UNIBG - Prof. Brugali

  • Angoli di Eulero II

    cossinsincossin

    sinsin

    coscos

    sincossin

    sincos

    coscossin

    sincoscossin

    sincoscos

    sinsin

    coscoscos

    22 Robotica - UNIBG - Prof. Brugali

  • Angoli di Eulero: Problema inverso

    333231

    232221

    131211

    rrr

    rrr

    rrr

    R

    csscs

    ssccscsscccs

    sccssccssccc

    REUL

    3132

    33

    2

    23

    2

    13

    1323

    ,2tan

    ,2tan

    ,2tan

    rrA

    rrrA

    rrA

    Si possono ricavare due soluzioni,

    equivalenti (per gli effetti prodotti),

    scegliendo appartenente all’intervallo

    (0, ) oppure (-, 0)

    Le due soluzioni ricavate degenerano

    quando s = 0; in questo caso è

    possibile determinare soltanto la

    somma o la differenza di e . Infatti,

    se = 0, , le rotazioni successive di

    e sono effettuate intorno ad assi di

    terna corrente paralleli fra di loro,

    fornendo così effetti di rotazione

    equivalenti.

    3132

    33

    2

    23

    2

    13

    1323

    ,2tan

    ,2tan

    ,2tan

    rrA

    rrrA

    rrA

    23 Robotica - UNIBG - Prof. Brugali

  • Coordinate omogenee

    1

    0

    11

    0

    0TQRQ

    Rototraslazione

    1

    *10

    1

    1

    1

    1

    1

    0

    1

    0

    0

    0

    0

    qz

    qy

    qx

    TR

    qz

    qy

    qxx0

    y0

    z0

    x1

    y1

    z1 Q

    T

    11

    0

    0QHQ

    24 Robotica - UNIBG - Prof. Brugali

  • Coordinate omogenee

    11000

    100

    010

    001

    1

    1

    1

    1

    0

    0

    0

    qz

    qy

    qx

    c

    b

    a

    qz

    qy

    qx Pura traslazione

    11000

    0

    0

    0

    1

    1

    1

    1

    222120

    121110

    020100

    0

    0

    0

    qz

    qy

    qx

    rrr

    rrr

    rrr

    qz

    qy

    qx

    Pura rotazione

    Attenzione: La matrice di trasformazione omogenea non gode della

    proprietà di ortogonalità!

    25 Robotica - UNIBG - Prof. Brugali

  • Traslazione lungo l’asse z

    x

    y

    z

    P

    u

    v

    w

    O, O’

    x

    y

    z P

    u

    v

    w

    O, O’ h

    1000

    100

    0010

    0001

    ),(h

    hzTrans

    11

    *

    1000

    100

    0010

    0001

    1

    hp

    p

    p

    p

    p

    p

    hz

    y

    x

    w

    v

    u

    w

    v

    u

    26 Robotica - UNIBG - Prof. Brugali

  • Rotazione attorno all’asse x

    1000

    00

    00

    0001

    ),(

    CS

    SCxRot

    x

    z

    y

    v

    w

    P

    u

    11000

    00

    00

    0001

    1

    w

    v

    u

    p

    p

    p

    CS

    SC

    z

    y

    x

    27 Robotica - UNIBG - Prof. Brugali

  • Composizione di rototraslazioni

    x

    z

    y

    v

    w

    P

    u

    Una sequenza di trasformazioni

    regole:

    Se il sistema di riferimento O-U-V-W ruota

    attorno ad un asse principale del sistema di

    riferimento O-X-Y-Z, allora usare la Pre-

    moltiplicazione

    Se il sistema di riferimento O-X-Y-Z ruota

    attorno ad un asse principale del sistema di

    riferimento O-U-V-W, allora usare la Post-

    moltiplicazione

    28 Robotica - UNIBG - Prof. Brugali

  • Esempio

    Rotazione di attorno all’asse OX

    Traslazione di a lungo all’asse OX

    Traslazione di d lungo all’asse OZ

    Rotazione di attorno all’asse OZ

    ,,,, xaxdzz RTTRH

    1000

    00

    00

    0001

    *

    1000

    0100

    0010

    001

    *

    1000

    100

    0010

    0001

    *

    1000

    0100

    00

    00

    CS

    SC

    a

    d

    CS

    SC

    29 Robotica - UNIBG - Prof. Brugali

  • Composizione di trasformazioni

    2

    1

    1

    0

    2

    0HHH

    0x

    0z

    0y

    1

    0H

    2

    1H

    1x

    1z

    1y 2

    x

    2z

    2y

    ?

    30 Robotica - UNIBG - Prof. Brugali