t 0 - elka.pw

Transkrypt

t 0 - elka.pw
1
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
Jakobiany
Kinematykę we współrzędnych możemy potraktować jako operator przekształcający funkcje czasu
(∀ t > 0) z(t) = k(x(t))
Ponieważ funkcje w powyższym równaniu są różniczkowalne, to
ż(t) =
∂k
(x(t))ẋ(t)
∂x
zwane równaniem kinematyki różniczkowej (kinematyki na prędkości).
Macierz Jacobiego (w robotyce zwana jakobianem)
J A(x) =
∂k
(x)
∂x
nazywamy jakobianem analitycznym manipulatora. Równanie kinematyki różniczkowej można zapisać
jako
ż = J A(x)ẋ
Postać jakobianu analitycznego zależy od wyboru układu współrzędnych (parametryzacji) dla określenia
odwzorowania k.
2
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
Przykład 1:
Jakobian analityczny dla płaskiego manipulatora 3R. Kinematyka tego manipulatora we współrzędnych ma
postać


 
L1 c1 + L2 c12 
z1 


 










z = z2 =  L1s1 + L2s12 
z3
x1 + x2 + x3


Bezpośrednio różniczkując prawą stronę powyższego równania obliczamy jakobian analityczny dla tego
manipulatora


−L1 s1 − L2 s12 −L2 s12 0


J A(x) =  L1c1 + L2c12



1

L2c12 0
1


1
3
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
Jakobian manipulatora można zdefiniować bez odwoływania się do układów współrzędnych. Wprowadza
się pojęcie jakobianu geometrycznego rozumianego jako przekształcenie prędkości ruchu w przegubach w
wektor prędkości końcówki manipulatora w przestrzeni






ν 
ω
= J(q)q̇


gdzie ν = [ν1, ν2, ν3]T – wektor prędkości liniowej, ω = [ω1, ω2, ω3]T – wektor prędkości kątowej końcówki,
a q = [q1, . . . , qn]T – wektor współrzędnych konfiguracyjnych.
Występuje, ponadto pojęcie jakobianu manipulatora rozumianego jako przekształcenie prędkości ruchu w
przegubach w wektor prędkości końcówki manipulatora w układzie bazowym robota


0 
ṗ

n


ω


= J M (q)q̇
Związek między jakobianem geometrycznym a jakobianem manipulatora jest następujący
J M ((q)) =

gdzie [p×] =








0
0
n pz
−0npy
−0npz
0
0
n px

I3




0

0
n [p×]



I3
J(q)

0
n py 


0 
−npx

jest macierzą skośniesymetryczną stowarzyszoną z wektorem 0np, który
0
opisuje położenie końcówki w układzie bazowym.

4
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
Przestrzeń robocza manipulatora
Przestrzeń robocza manipulatora jest to zbiór punktów, które końcówka robocza może osiągnąć. Aby
istniało rozwiązanie OZK zadany punkt docelowy dla końcówki musi należeć do przestrzeni roboczej.
Można wyróżnić dwa rodzaje przestrzeni roboczej:
• manipulacyjna przestrzeń robocza – jest to część przestrzeni roboczej, którą końcówka robocza
może osiągnąć z dowolną orientacją,
• osiągalna przestrzeń robocza – jest to część przestrzeni roboczej, którą końcówka robocza może
osiągnąć z co najmniej jedną orientacją.
Przykład 2: Przestrzeń robocza dla płaskiego manipulatora 2R:
q2
y0
L1+L2
L2
L1
q1
x0
|L1-L2|
5
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
Odwrotne zadanie kinematyki (OZK) manipulatora
Odwrotne zadanie kinematyki: Mając dane położenie i orientację efektora manipulatora w układzie bazowym
należy znaleźć odpowiadające im współrzędne przegubowe (konfiguracyjne).
Dla danego manipulatora o n stopniach swobody z przestrzenią przegubową Q oraz przestrzenią zadaniową
Z ∈ SE(3) odwrotne zadanie kinematyki można wyrazić symbolicznie jako
k −1 : SE(3) ⊃ Z ∋ z → q = k −1(z) ∈ Q
(1)
Jednakże, odwzorowanie odwrotne k −1 może nie istnieć lub być niejednoznacznie określone.
Rozwiązanie odwrotnego zadania kinematyki:
Dane są wartości liczbowe elementów macierzy przekształcenia jednorodnego H
H=






R d 
0 1


opisujących położenie i orientację końcówki w układzie bazowym związanym z nieruchomą podstawą robota.
Należy znaleźć rozwiązanie (jedno lub wszystkie) równania macierzowego
0
n T (q1 , . . . , qn )
=H
(2)
równanie to daje 12 nieliniowych równań z n niewiadomymi
tij (q1, . . . , qn) = hij ;
i = 1, 2, 3; j = 1, 2, 3, 4
gdzie tij oraz hij 12 nietrywialnych elementów macierzy 0nT i H.
6
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
Wartość ai Liczba rozwiązań
a1 = a3 = a5 = 0
þ4
a3 = a5 = 0
þ8
v a3 = 0
þ 16
∀ ai Ó= 0
þ 16
Istnienie rozwiązania OZK:
• Dla robota o 6 stopniach swobody mamy 6 niewiadomych oraz 12 równań. Jednak tylko 3 równania z
9 wynikających z porównania elementów macierzy orientacji jest niezależnych, mamy zatem układ 6
równań z 6 niewiadomymi.
• Równania te są nieliniowe i przestępne.
• Brak jest ogólnych metod rozwiązywania układów równań nieliniowych.
• Może istnieć wiele rozwiązań dla danego położenia i orientacji (rozwiązania wielokrotne). W szczególnych
przypadkach (w punktach osobliwych) może być nieskończenie wiele rozwiązań.
• Liczba rozwiązań zależy od liczby przegubów, wartości parametrów D-H i dopuszczalnych zakresów
ruchu w przegubach.
• Na ogół im więcej niezerowych parametrów D-H tym więcej rozwiązań. Przykładowo dla robota 6R
zależność liczby rozwiązań od parametru ai jest następująca:
7
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
Strategie rozwiązywania OZK:
• rozwiązania w postaci jawnej
• rozwiązania numeryczne (iteracyjne)
Wyróżnia się dwa podstawowe podejścia do rozwiązania OZK w postaci jawnej:
• metody algebraiczne
• metody geometryczne
Przykład 3: Rozwiązać OZK dla płaskiego manipulatora trójczłonowego pokazanego na rys.1.
y3
y2
y0
y1
q1
x3
q3
q2 L2
x2
x1
L1
x0
{0}
Rysunek 1: Manipulator płaski typu 3R
8
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
Rozwiązanie PZK dla manipulatora płaskiego typu 3R:

0
3T
=













c123 −s123 0 L1c1 + L2c12
s123 c123 0 L1s1 + L2s12
0
0
1
0
0
0
0
1














(3)
Rozwiązanie algebraiczne OZK
Zadaną pozycję końcówki manipulatora można zapisać w postaci macierzy

H=














cϕ −sϕ 0 x 
sϕ cϕ 0 y
0
0
1 0
0
0
0 1











(4)
Porównując prawe strony równań (3) i (4) otrzymujemy układ 4 równań z 3 niewiadomymi θ1, θ2, θ3:
cϕ = c123
sϕ = s123
x = L1c1 + L2c12
y = L1s1 + L2s12
(5)
(6)
(7)
(8)
9
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
Podnosimy do kwadratu równania (7) i (8) i dodajemy stronami
x2 + y 2 = L21 + L22 + 2L1L2c2
(9)
stąd
x2 + y 2 − L21 − L22
(10)
2L1L2
Prawa strona równania (10) musi zawierać się w przedziale [−1, 1], aby punkt docelowy należał do przestrzeni
roboczej, wtedy
ò
s2 = ± 1 − c22
(11)
c2 =
Kąt θ2 obliczamy jako
θ2 = atan2(s2, c2)
(12)
Mając obliczone θ2 można rozwiązać (7) i (8) względem θ1:
x = m1 c1 − m 2 s1
y = m1 s1 + m2 c1
(13)
(14)
gdzie
m 1 = L1 + L2 c 2
m 2 = L2 s 2
10
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
Dokonujemy zamiany zmiennych
ò
r = + m21 + m22
γ = atan2(m2, m1)
to m1 = r cos γ, m2 = r sin γ. Równania (13) i (14) można zapisać jako
x
= cos γ cos θ1 − sin γ sin θ1
r
y
= cos γ sin θ1 + sin γ cos θ1
r
lub
x
cos(γ + θ1) =
r
y
sin(γ + θ1) =
r
stąd
y x
γ + θ1 = atan2( , ) = atan2(y, x)
r r
czyli
θ1 = atan2(y, x) − atan2(m2, m1)
Jeśli x = y = 0 to (22) staje się nieokreślone i θ1 może przyjąć dowolną wartość.
Ostatecznie z (5) i (6) można znaleźć
θ1 + θ2 + θ3 = atan2(sϕ, cϕ) = ϕ
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
11
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
stąd
θ 3 = ϕ − θ1 − θ 2
(23)
Rozwiązanie geometryczne:
y0
q2
y
L2 O3
a
L1
b
y
O1
{0}
x
x0
Rysunek 2: Rozwiązanie geometryczne OZK dla płaskiego manipulatora 3R
Kąt α = π − (−θ2) = π + θ2. Z twierdzenia kosinusów obliczamy θ2
x2 + y 2 = L21 + L22 − 2L1L2 cos(π + θ2)
ponieważ cos(π + θ2) = − cos θ2, mamy
cos θ2 = c2 =
x2 + y 2 − L21 − L22
2L1L2
12
c
Wstęp do Robotyki – ¥W.
Szynkiewicz, 2009
√
s2 = ± 1 − c2
stąd θ2
θ2 = atan2(s2, c2)
′
Drugie rozwiązanie jest dla θ2 = −θ2.
Aby wyznaczyć θ1 należy wyznaczyć kąty β i ψ
β = atan2(y, x)
Stosując powtórnie twierdzenie kosinusów obliczamy
cos ψ =
x2 + y 2 + L21 − L22
√
2L1 x2 + y 2
gdzie arccos() musi być takie aby dla 0 6 ψ 6 π zachować relacje geometryczne. Kąt θ1





θ1 = 

Kąt θ3 obliczamy


β + ψ gdy θ2 < 0
β − ψ gdy θ2 > 0
θ1 + θ 2 + θ 3 = ϕ ⇒ θ 3 = ϕ − θ1 − θ 2

Podobne dokumenty