Ruch ciała sztywnego w przestrzeni euklidesowej
Transkrypt
Ruch ciała sztywnego w przestrzeni euklidesowej
Podstawy robotyki Wykład II Ruch ciała sztywnego w przestrzeni euklidesowej Robert Muszyński Janusz Jakubiak Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Preliminaria matematyczne 1 I przestrzeń euklidesowa (R3 , h·, ·i) x, y ∈ R3 , hx, yi = 3 X xi yi i=1 x = [x1 , x2 , x3 ]T I y = [y1 , y2 , y3 ]T iloczyn skalarny (h·, ·i) hαx1 + βx2 , yi = αhx1 , yi + βhx2 , yi hx, yi = hy, xi hx, xi 0 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Preliminaria matematyczne 2 I norma (długość wektora) (k · k) 1 kxk = hx, xi 2 kxk 0 kxk = 0 ⇔ x=0 kαxk = |α|kxk kx + yk ¬ kxk + kyk hx, yi = kxkkyk cos ^(x, y) Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Preliminaria matematyczne 2 I norma (długość wektora) (k · k) 1 kxk = hx, xi 2 kxk 0 kxk = 0 ⇔ x=0 kαxk = |α|kxk kx + yk ¬ kxk + kyk hx, yi = kxkkyk cos ^(x, y) I metryka euklidesowa (odległość) (ρ(·, ·)) ρ(x, y) = kx − yk ρ(x, y) = 0 ⇔ x=y ρ(x, y) = ρ(y, x) ρ(x, y) + ρ(y, z) ρ(x, z) Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Preliminaria matematyczne 3 I iloczyn wektorowy ( · × · ) x = [x1 ,x2 , x3 ]T i x × y = det x1 y1 y = [y1 , y2 , y3 ]T j x2 y2 k x3 = y3 = (x2 y3 − x3 y2 )i + (x3 y1 − x1 y3 )j+ (x1 y2 − x2 y1 )k ✕ kx × yk = kxkkyk sin ^(x, y) Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Ruch w R 3 I translacja I rotacja Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna translacja 1 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna translacja 1 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna translacja 2 p1 = p1x i1 + p1y j1 + p1z k1 p0 = p0x i0 + p0y j0 + p0z k0 1 1 1 1 d0 = d0x i0 + d0y j0 + d0z k0 p0 = p1 + d10 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna rotacja 1 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna rotacja 1 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna rotacja 1 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna rotacja 2 p0x = p0 i0 = p1 i0 = p1x i1 i0 + p1y j1 i0 + p1z k1 i0 p0y = p0 j0 = p1 j0 = p1x i1 j0 + p1y j1 j0 + p1z k1 j0 p = p k = p k = p i k +p j k +p k k 0z 0 0 1 0 1x 1 0 1y 1 0 1z 1 0 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna rotacja 3 p0x = p0 i0 = p1 i0 = p1x i1 i0 + p1y j1 i0 + p1z k1 i0 p =p j =p j =p i j +p j j +p k j 0y 0 0 1 0 1x 1 0 1y 1 0 1z 1 0 p = p k = p k = p i k +p j k +p k k 0z 0 0 1 0 1x 1 0 1y 1 0 1z 1 0 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna rotacja 3 p0x = p0 i0 = p1 i0 = p1x i1 i0 + p1y j1 i0 + p1z k1 i0 p =p j =p j =p i j +p j j +p k j 0y 0 0 1 0 1x 1 0 1y 1 0 1z 1 0 p = p k = p k = p i k +p j k +p k k 0z 0 0 1 0 1x 1 0 1y 1 0 1z 1 0 p0 = R01 p1 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna rotacja 3 p0x = p0 i0 = p1 i0 = p1x i1 i0 + p1y j1 i0 + p1z k1 i0 p =p j =p j =p i j +p j j +p k j 0y 0 0 1 0 1x 1 0 1y 1 0 1z 1 0 p = p k = p k = p i k +p j k +p k k 0z 0 0 1 0 1x 1 0 1y 1 0 1z 1 0 p0 = R01 p1 gdzie i1 i0 j1 i0 k1 i0 1 R0 = i1 j0 j1 j0 k1 j0 i1 k0 j1 k0 k1 k0 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna rotacja 4 Analogicznie p1x = p1 i1 = p0 i1 = p0x i0 i1 + p0y j0 i1 + p0z k0 i1 p1y = p1 j1 = p0 j1 = p0x i0 j1 + p0y j0 j1 + p0z k0 j1 p1z = p1 k1 = p0 k1 = p0x i0 k1 + p0y j0 k1 + p0z k0 k1 p1 = R10 p0 gdzie i0 i1 j0 i1 k0 i1 R10 = i0 j1 j0 j1 k0 j1 i0 k1 j0 k1 k0 k1 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Elementarna rotacja 5 Biorąc pod uwagę, że i1 i0 j1 i0 k1 i0 1 R0 = i1 j0 j1 j0 k1 j0 i1 k0 j1 k0 k1 k0 Podstawy robotyki – wykład II i0 i1 j0 i1 k0 i1 0 R1 = i0 j1 j0 j1 k0 j1 i0 k1 j0 k1 k0 k1 Ruch ciała sztywnego w R 3 Elementarna rotacja 5 Biorąc pod uwagę, że i1 i0 j1 i0 k1 i0 1 R0 = i1 j0 j1 j0 k1 j0 i1 k0 j1 k0 k1 k0 mamy R10 = (R01 )−1 = (R01 )T det R01 = ±1, Podstawy robotyki – wykład II i0 i1 j0 i1 k0 i1 0 R1 = i0 j1 j0 j1 k0 j1 i0 k1 j0 k1 k0 k1 R01 ∈ SO(3) Ruch ciała sztywnego w R 3 Rotacje wokół osi układu współrzędnych I wokół osi Z i1 i0 = cos θ i1 j0 = sin θ i1 k0 = 0 j1 i0 = − sin θ j1 j0 = cos θ j1 k0 = 0 θ RZ,θ k1 i0 = 0 k1 j0 = 0 k1 k0 = 1 cos θ − sin θ 0 = sin θ cos θ 0 0 0 1 θ RZ,θ1 RZ,θ2 = RZ,θ1 +θ2 RZ,0 = I3 , −1 RZ,θ = RZ,−θ Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Rotacje wokół osi układu współrzędnych I wokół osi X RX ,θ I wokół osi Y RY,θ 1 0 0 = 0 cos θ − sin θ 0 sin θ cos θ cos θ 0 sin θ 1 0 = 0 − sin θ 0 cos θ Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Złożenia 1 I złożenie translacji d10 d21 0x0 y0 z0 =⇒ 0x1 y1 z1 =⇒ 0x2 y2 z2 p0 p0 = d10 + p1 p1 p0 = d20 + p2 p2 p1 = d21 + p2 p0 = d10 + d21 + p2 d20 = d10 + d21 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Złożenia 2 I złożenie rotacji 0x0 y0 z0 R01 R12 =⇒ 0x1 y1 z1 =⇒ 0x2 y2 z2 p0 p0 = R01 p1 p1 p0 = R02 p2 p2 p1 = R12 p2 p0 = R01 R12 p2 R02 = R01 R12 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Reprezentacje macierzy rotacji 1 r11 r12 r13 h i R = r21 r22 r23 = R1 R2 R3 r31 r32 r33 Ograniczenia na kolumny macierzy R kR1 k = kR2 k = kR3 k = 1 R1 R2 = 0 R2 R3 = 0 R1 R3 = 0 9 zmiennych – 6 równań = 3 zmienne niezależne Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Reprezentacje macierzy rotacji 2 I kąty Eulera ZYZ (φ, θ, ψ) R01 = RZ,φ 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θ 0 ¬ φ < 2π I 0¬θ<π 0 ¬ ψ < 2π π π ¬θ< 2 2 0 ¬ ψ < 2π kąty Roll–Pitch–Yaw (φ, θ, ψ) R01 = RZ,φ RY,θ RX ,ψ 0 ¬ φ < 2π Podstawy robotyki – wykład II − Ruch ciała sztywnego w R 3 Transformacje jednorodne Definicja Przekształcenie p0 = R01 p1 + d10 nazywamy ruchem ciała sztywnego, gdy macierz R jest ortogonalna. Załóżmy, że mamy dwa ruchy p0 = R01 p1 + d10 p1 = R12 p2 + d21 wówczas ich złożenie p0 = R01 R12 p2 + R01 d21 + d10 = R02 p2 + d20 Porównując otrzymujemy R02 = R01 R12 Podstawy robotyki – wykład II d20 = d10 + R01 d21 Ruch ciała sztywnego w R 3 Transformacje jednorodne 2 " R01 d10 0 1 #" # " R 1 R 2 R01 d21 + d10 R12 d21 = 0 1 0 1 0 1 # Ruch ciała sztywnego może być reprezentowany przez transformację " R d T = 0 1 # " R ∈ SO(3) T −1 RT = 0 −R T d 1 # zwaną transformacją jednorodną. Po rozszerzeniu reprezentacji punktów p o dodatkową składową " # P= p 1 mamy P0 = T01 P1 Podstawy robotyki – wykład II T01 ∈ SE (3) Ruch ciała sztywnego w R 3 Bazowe macierze jednorodne generujące SE (3) (translacja) 0 1 0 0 0 0 1 0 a 0 0 1 0 1 0 0 0 0 1 0 0 b 0 1 0 1 0 0 0 0 1 0 0 0 c 1 1 0 Trans(x, a) = 0 0 1 0 Trans(y , b) = 0 0 1 0 Trans(z, c) = 0 0 Podstawy robotyki – wykład II Ruch ciała sztywnego w R 3 Bazowe macierze jednorodne generujące SE (3) (rotacja) 1 0 Rot(x, α) = 0 0 0 cos α sin α 0 cos β 0 Rot(y , β) = − sin β 0 cos γ sin γ Rot(z, γ) = 0 0 nx ny 1 T0 = nz 0 Podstawy robotyki – wykład II ox oy oz 0 0 1 0 0 0 0 0 1 sin β 0 cos β 0 0 0 0 1 − sin γ cos γ 0 0 ax ay az 0 0 − sin α cos α 0 0 0 1 0 0 0 0 1 dx dy dz 1 Ruch ciała sztywnego w R 3