x
y
1
tan
−
=
β
θ
(14)
A następnie skorzystamy z twierdzenia sinusów, postaci
R
c
b
a
2
sin
sin
sin
=
=
=
γ
β
α
(15)
w wyniku czego moŜemy napisać, Ŝe
2
2
2
2
2
2
2
2
sin
)
sin(
sin
y
x
a
y
x
a
+
=
+
−
=
θ
θ
π
θ
α
(16)
Wykonując następnie proste przekształcenia, otrzymujemy następujące zaleŜności
2
2
2
2
2
2
2
sin
cos
y
x
a
y
x
+
−
−
±
=
θ
θ
α
(17)
2
2
2
2
2
2
2
2
sin
sin
tg
θ
θ
θ
α
a
y
x
a
−
+
±
=
(18)
Jeśli teraz poniŜszą zaleŜność
x
2
+ y
2
= a
1
2
+ a
2
2
+ 2a
1
a
2
cos
θ
2
(19)
podstawimy do wzoru (18), wówczas otrzymamy
2
2
2
1
2
2
2
2
2
2
2
2
1
2
2
2
1
2
2
)
cos
(
sin
sin
cos
2
sin
tg
θ
θ
θ
θ
θ
θ
α
a
a
a
a
a
a
a
a
a
+
±
=
−
+
+
±
=
(20)
a zatem
2
2
1
2
2
1
-
cos
sin
tg
θ
θ
θ
α
a
a
a
+
=
(21)
Podstawiając teraz zaleŜności (14) i (21) do wzoru (13) otrzymamy zaleŜności na wartość
kąta
θ
1
, określoną wzorem
2
2
1
2
2
1
-
1
cos
sin
tg
arctg
θ
θ
θ
θ
θ
α
β
a
a
a
x
y
+
−
=
−
=
(22)
Na zakończenie powyŜszych rozwaŜań zauwaŜmy jeszcze, Ŝe kąt
θ
1
zaleŜy od kąta
θ
2
.
Ma to znaczenie fizyczne, gdyŜ oczekujemy róŜnych wartości kąta
θ
1
w zaleŜności od tego,
które rozwiązanie wybierzemy dla kąta
θ
2
.
3. Pozostałe kwestie związane ze sterowaniem manipulatorem
3.1. Kinematyka prędkości
W celu śledzenia konturu ze stałą prędkością lub z określoną daną prędkością musimy
znać zaleŜności między prędkością narzędzia a prędkościami przegubowymi. Po
zróŜniczkowaniu równań (1) i (2) otrzymujemy
)
)(
sin(
sin
2
1
2
1
2
1
1
1
θ
θ
θ
θ
θ
θ
&
&
&
&
+
+
−
⋅
−
=
a
a
x
(23)
)
)(
cos(
cos
2
1
2
1
2
1
1
1
θ
θ
θ
θ
θ
θ
&
&
&
&
+
+
−
⋅
=
a
a
y
(24)
Zastosowanie zapisu wektorowego
=
y
x
x
i
=
2
1
θ
θ
θ
pozwala przedstawić
te zaleŜności w
postaci wyraŜonej zapisem
θ
J
cos(
)
cos(
cos
)
sin(
)
sin(
sin
x
2
1
2
1
2
2
1
2
1
1
2
1
2
2
1
2
1
1
&
&
&
&
=
⋅
+
+
+
+
−
+
−
−
=
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
a
a
a
a
a
a
(25)
Macierz
J zdefiniowana w równaniu (25) jest nazywana jakobianem manipulatora i
jest podstawowym obiektem określanym dla kaŜdego manipulatora.
Wyznaczenie prędkości przegubowych na podstawie prędkości końcówki roboczej jest
koncepcyjnie proste, poniewaŜ mamy tu zaleŜność liniową. Zatem prędkości przegubowe
obliczamy z prędkości końcówki roboczej, stosując odwrotność jakobianu
x
J
θ
-1
&
&=
(26)
W celu wyznaczenia macierzy odwrotnej do macierzy Jacobiego skorzystamy ze
wzoru
T
D
)
J
(
J
det
1
J
1
-
=
(27)
Po wykonaniu prostych, otrzymujemy
det
J = a1 a2 sin
θ
2
(28)
oraz
+
−
−
+
+
−
−
+
=
)
sin(
sin
)
sin(
)
cos(
cos
)
cos(
J
2
1
2
1
1
2
1
2
2
1
2
1
1
2
1
2
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
a
a
a
a
a
a
D
(29)
A zatem podstawiając zaleŜność (28) i (29) – po transponowaniu, do wzoru (27) otrzymujemy
⋅
+
−
−
+
−
−
+
+
=
y
x
a
a
a
a
a
a
a
a
&
&
&
&
)
sin(
sin
)
cos(
cos
)
sin(
)
cos(
sin
1
2
1
2
1
1
2
1
2
1
1
2
1
2
2
1
2
2
2
1
2
1
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
(30)
ZauwaŜmy, Ŝe jeśli wyznacznik det
J jakobianu z wzoru (25) jest równy a1 a2 sin
θ
2
.
Jakobian nie będzie więc miał odwrotności, gdy
θ
2
= 0 lub
θ
2
=
π
.
W takim przypadku mówi
się, Ŝe manipulator ma
konfigurację osobliwą, taką jak pokazano na rys. 27 dla
θ
2
= 0.
Rys. 27. konfiguracja osobliwa manipulatora
Wyznaczenie konfiguracji osobliwych jest waŜne z kilku powodów. W konfiguracji
osobliwej mamy do czynienia z pewnymi nieskończenie małymi ruchami, które są
niewykonalne. Oznacza to, Ŝe końcówka robocza manipulatora nie moŜe wykonywać ruchów
w pewnych kierunkach. W przedstawionym przykładzie końcówka robocza nie moŜe
poruszać się z konfiguracji osobliwej w kierunku równoległym do
a
1
. Konfiguracje osobliwe
są takŜe związane z niejednoznacznością rozwiązań kinematyki odwrotnej. W omawianym
przykładzie dla danej pozycji końcówki roboczej, mamy w ogólności dwa moŜliwe
rozwiązania. ZauwaŜmy, Ŝe konfiguracja osobliwa oddziela te dwa rozwiązania w takim
sensie, Ŝe manipulator nie moŜe przejść z jednej konfiguracji do drugiej bez przejścia przez
osobliwość. Dlatego w wielu zastosowaniach bardzo waŜne jest takie zaplanowanie ruchów
manipulatora, które pozwala ominąć konfiguracje osobliwe.
3.2. Problem dynamiki
Manipulator robota jest przede wszystkim urządzeniem pozycjonującym. Jeśli chcemy
sterować pozycją, to musimy znać w
ł
aściwości dynamic
z
ne manipulatora, Ŝeby wiedzieć, jak
duŜą siłę naleŜy wywrzeć w celu spowodowania ruchu. Gdy sita ta będzie za mała,
manipulator będzie zbyt wolny. Po przyłoŜeniu za duŜej siły moŜe nastąpić zderzenie z
obiektem lub oscylowanie wokół zadanej pozycji.
Wyprowadzenie dynamicznych równań ruchu dla robota nie jest zadaniem łatwym z
powodu duŜej liczby stopni swobody i występujących w układzie nieliniowości. W celu
realizacji tego zagadnienia (wyprowadzenia równań ruchu takiego syst
e
mu) stosuje się tzw.
metodykę wykorzystującą równania dynamiczne Lagrange'a. Dodatkowo dla członów
sztywnych pełny opis dynamiki robota obejmuje dynamikę silników, które są źródłem sił i
momentów, oraz dynamikę zespołów napędowych, które przenoszą moc z silnika do członu
manipulatora. Dlatego teŜ zagadnienia dynamiki silników i zespołów napędowych oraz ich
wpływ na problemy sterowania nie mogą zostać pominięte.
3.3. Zagadnienie sterowania pozycyjnego
Do zaprojektowania algorytmów sterowania w celu wykonania zaprogramowanego
zadania wykorzystuje się niejednokrotnie teorię sterowania. Problem sterowania ruchem
składa się z problemu śledzenia i tłumienia zakłóceń. Polega on na określeniu wejścia
sterującego potrzebnego do śledzenia trajektorii, która została zaplanowana dla manipulatora,
przy równoczesnym tłumieniu zakłóceń, spowodowanych niemoŜliwymi do modelowania
zjawiskami dynamicznymi, takimi jak tarcie i szum. Standardowe podejścia do sterowania
robota oparte są na metodzie analizy częstotliwościowej. Istotnymi zagadnieniami
dotyczącymi tych kwestii są takŜe pojęcia sterowania wyprzedzającego oraz techniki
obliczanego momentu dynamiki odwrotnej w celu uproszczenia złoŜonych nieliniowych sił
oddziaływania między członami manipulatora. Ponadto przy uŜyciu drugiej metody
Lapunowa korzysta się często z tzw. sterowania krzepkiego. inne dodatkowe zaawansowane
metody nieliniowej teorii sterowania, są niejednokrotnie przydatne do sterowania robotów o
duŜych moŜliwościach funkcjonalnych.
3.4. Sterowanie siłą
Gdy manipulator raz osiągnie pozycję B, musi odtwarzać kontur powierzchni S, zapewniając
stałą siłę prostopadłą do powierzchni. MoŜliwe jest, Ŝe znając lokalizację obiektu i kształt
konturu, rozwiąŜemy to zadanie tylko za pomocą sterowania pozycyjnego. W praktyce trudno
to jednak zrealizować. PoniewaŜ sam manipulator ma duŜą sztywność, kaŜdy błąd pozycji
spowodowany nieznajomością dokładnej lokalizacji powierzchni lub narzędzia moŜe
wywołać na końcówce roboczej wzrost sił do wartości ekstremalnych, które mogą zniszczyć
narzędzie, powierzchnię lub robota. Lepszym rozwiązaniem jest bezpośredni pomiar
działających sił i wykorzystanie schematu sterowania sitowego. W celu realizacji zagadnienia
sterowania siłą powszechnie stosowane są dwa rozwiązania: sterowanie hybrydowe i
sterowanie impedancyjne.
4. Ruchy sztywne i przekształcenie jednorodne
4.1. Wprowadzenie
Znaczna część kinematyki robota jest poświęcona róŜnym układom współrzędnych,
potrzebnym do przedstawienia połoŜeń i orientacji obiektów sztywnych, oraz
przekształceniom tych układów współrzędnych. Rzeczywiście, geometria przestrzeni
trójwymiarowej i ruchów sztywnych odgrywa główną rolę we wszystkich aspektach
manipulacji robota. W tej części wykładu omówimy obroty (rotacje) i przesunięcia
(translacje) oraz wprowadzimy pojęcie przekształceń jednorodnych. Przekształcenie
jednorodne moŜna traktować jako operację, wyraŜającą jednocześnie obroty i przesunięcia za
pomocą jednej macierzy. W dalszej części wykładów zostanie to wykorzystane do
wyprowadzenia tzw. równań kinematyki prostej manipulatorów sztywnych.
4.2. Obroty
Rozpatrzmy zatem następującą sytuację: rys. 28 przedstawia sztywny obiekt S, do
którego przyłoŜono układ współrzędnych Ox
1
y
1
z
1
.
Rys. 28. Układ współrzędnych związany z ciałem sztywnym
ZałóŜmy, Ŝe chcemy znaleźć zaleŜność pomiędzy współrzędnymi punktu P na
obiekcie S w układzie współrzędnych Ox
1
y
1
z
1
a współrzędnymi tego punktu w stałym (nie
obróconym) układzie odniesienia Ox
0
y
0
z
0
. Niech {i
0
, j
0
, k
0
} oznacza standardową bazę
ortonormalną w układzie Ox
0
y
0
z
0
; wówczas i
0
, j
0
, k
0
są wektorami jednostkowymi
odpowiednio wzdłuŜ osi x
0
,
y
0
,
z
0
.
Podobnie niech {i
1
, j
1
, k
1
} będzie standardową bazą
ortonormalną w układzie Ox
1
y
1
z
1
. Wektor od wspólnego początku O obu układów do punktu
P na obiekcie moŜe być przedstawiony w układzie Ox
0
y
0
z
0
jako
p
0
= p
0x
i
0
+ p
0y
j
0
+ p
0z
k
0
(31)
albo w układzie Ox
1
y
1
z
1
jako
p
1
= p
1x
i
1
+ p
1y
j
1
+ p
1z
k
1
(32)
PoniewaŜ p
0
i p
1
są reprezentacjami tego samego wektora p, więc związki między
składowymi wektora p w obu układach współrzędnych moŜna zapisać w postaci
p
0x
= p
0
i
0
= p
1
i
0
= p
1x
i
1
i
0
+ p
1y
j
1
i
0
+ p
1z
k
1
i
0
(33)
p
0y
= p
0
j
0
= p
1
j
0
= p
1x
i
1
j
0
+ p
1y
j
1
j
0
+ p
1z
k
1
j
0
(34)
p
0z
= p
0
k
0
= p
1
k
0
= p
1x
i
1
k
0
+ p
1y
j
1
k
0
+ p
1z
k
1
k
0
(35)
Jeśli przyjąć
=
z
y
x
p
p
p
0
0
0
0
p
i
=
z
y
x
p
p
p
1
1
1
1
p
, to równania (33) – (35) moŜemy zapisać jako równanie
wektorowe
p
0
=
R
0
1
p
1
,
(36)
w którym
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
=
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
k
k
k
j
k
i
j
k
j
j
j
i
i
k
i
j
i
i
R
(37)
Macierz 3 x 3 reprezentuje przekształcenie punktu P ze współrzędnych w układzie
Ox
1
y
1
z
1
na współrzędne w układzie Ox
0
y
0
z
0
. JeŜeli punkt w układzie Ox
1
y
1
z
1
jest określony za
pomocą wektora
p
1
, wówczas
R
0
1
p
1
reprezentuje ten sam wektor w układzie współrzędnych
Ox
0
y
0
z
0
.
Podobnie moŜemy napisać
p
1x
=
p
1
i
1
=
p
0
i
1
= p
0x
i
0
i
1
+ p
0y
j
0
i
1
+ p
0z
k
0
i
1
(38)
p
1y
=
p
1
j
1
=
p
0
j
1
= p
0x
i
0
j
1
+ p
0y
j
0
j
1
+ p
0z
k
0
j
1
(39)
p
1z
=
p
1
k
1
=
p
0
k
1
= p
0x
i
0
k
1
+ p
0y
j
0
k
1
+ p
0z
k
0
k
1
(40)
gdzie
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
=
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
k
k
k
j
k
i
j
k
j
j
j
i
i
k
i
j
i
i
R
(41)
Macierz
R
1
0
reprezentuje przekształcenie odwrotne do przekształcenia
R
0
1
.
PoniewaŜ iloczyn
skalamy jest przemienny, tzn.
i
0
j
0
=
j
0
i
0
itd., więc
T
R
R
R
)
(
)
(
1
0
1
1
0
0
1
=
=
−
(42)
Taka macierz, której odwrotność jest macierzą transponowaną, nazywa się macierzą
ortogonalną. Wektory kolumnowe macierzy
R
0
1
mają długość jednostkową i są wzajemnie
ortogonalne. MoŜna takŜe pokazać, Ŝe det
R
0
1
= ±1. JeŜeli ograniczymy się natomiast do
prawoskrętnego układu współrzędnych (rys. 29), wtedy det
R
0
1
= +1.
Macierze ortogonalne o wyznaczniku +1 są nazywane macierzami obrotów lub
rotacji. Zbiór wszystkich macierzy obrotów o wymiarze 3x3 określa się symbolem SO(3).
Rys. 29. Prawoskrętny układ współrzędnych
Przykład 1.
ZałóŜmy, Ŝe układ Ox
1
y
1
z
1
obrócono o kąt
θ
wokół osi z
0
(rys. 30). Chcemy znaleźć
macierz R
0
1
tego przekształcenia. Zwróćmy uwagę, Ŝe (zgodnie z konwencją) dodatni
kierunek kąta
θ
jest określony regułą prawej ręki, tzn. dodatni obrót o kąt
θ
wokół osi z dałby
przesunięcie śruby prawoskrętnej wzdłuŜ dodatniego kierunku osi z.
Rys. 30. Obrót wokół osi z
0
Z rys. 30 widać, Ŝe
i
0
i
1
= cos
θ
(43)
j
1
i
0
= -sin
θ
(44)
j
0
j
1
= cos
θ
(45)
i
1
j
0
= sin
θ
(46)
k
0
k
1
= 1
(47)
a wszystkie pozostałe iloczyny są równe 0. Wówczas to przekształcenie R
0
1
jest postaci
x
y
z
θ
=
1
0
0
0
cos
sin
0
sin
-
cos
R
1
0
θ
θ
θ
θ
(48)
Macierz (48) jest nazywana
podstawową macierzą obrotu lub rotacji (wokół osi z). W
takim przypadku bardziej przydatny jest opisowy zapis
R
z,
θ
zamiast R
0
1
do oznaczenia tej
macierzy. Łatwo sprawdzić, Ŝe podstawowa macierz obrotu
R
z,
θ
ma następujące własności
R
z,0
=
I
(49)
R
z,
θ
R
z,
φ
= R
z,
θ
+
φ
(50)
z czego wynika kolejna własność
R
z,
θ
-1
= R
z,-
θ
(51)
Podobnie podstawowe macierze obrotów reprezentujące obroty wokół osi
x i y są równe
=
=
θ
θ
θ
θ
θ
cos
sin
0
sin
-
cos
0
0
0
1
R
R
,
1
0
x
(52)
=
=
θ
θ
θ
θ
θ
cos
0
sin
-
0
1
0
sin
0
cos
R
R
,
1
0
y
(53)
i spełniają własności analogiczne do wyraŜonych wzorami (49) – (51).
MoŜemy takŜe interpretować daną macierz obrotu jako macierz wyznaczającą
orientację układu współrzędnych
Ox
1
y
1
z
1
względem układu
Ox
0
y
0
z
0
. Rzeczywiście, kolumny
macierzy
R
0
1
są cosinusami kierunkowymi osi układu
Ox
1
y
1
z
1
w stosunku do osi układu
Ox
0
y
0
z
0
. Na przykład pierwsza kolumna (i
1
i
0
,
i
1
j
0
,
i
1
k
0
)
T
macierzy
R
0
1
opisuje kierunek osi
x
1
względem układu
Ox
0
y
0
z
0
.
Przykład 2.
RozwaŜmy układy
Ox
0
y
0
z
0
i
Ox
1
y
1
z
1
pokazane na rys. 31.
Rys. 31. określenie wzajemnej orientacji dwóch układów współrzędnych
Rzutowanie wektorów jednostkowych
i
1
,
j
1
,
k
1
na
i
0
,
j
0
,
k
0
daje współrzędne wektorów
i
1
,
j
1
,
k
1
w układzie
Ox
0
y
0
z
0
. Widzimy, Ŝe współrzędne wektora i
1
są równe (l/
2
, 0, l/
2
)
T
,
współrzędne wektora j
1
są równe (l/
2
, 0, -l/
2
)
T
i współrzędne wektora k
1
są równe (0, 1,
0)
T
. Macierz obrotu R
0
1
określająca orientację układu Ox
1
y
1
z
1
względem układu Ox
0
y
0
z
0
zawiera te współrzędne jako kolumny, tzn.
−
=
0
2
1
2
1
1
0
0
0
2
1
2
1
R
1
0
(54)
W trzeciej interpretacji macierz obrotu R
∈
SO(3) jest operatorem działającym na
wektory w ustalonym układzie współrzędnych
Ox
0
y
0
z
0
. Inaczej mówiąc, zamiast odnoszenia
współrzędnych ustalonego wektora do dwóch róŜnych układów współrzędnych, wyraŜenie
(41) moŜe reprezentować współrzędne punktu
P
1
w układzie
Ox
0
y
0
z
0
otrzymanego z punktu
P
0
przez dany obrót.
Przykład 3.
Obracamy wektor p
0
= (l, l, 0)
T
wokół osi
y
0
o kąt
π
/2, jak pokazano na rys. 32.
Rys. 32. Obrót wektora wokół osi
Otrzymany wektor
p
1
jest dany wzorem
−
=
⋅
=
⋅
=
1
1
0
0
1
1
0
0
1
-
0
1
0
1
0
0
p
R
p
0
2
/
,
1
π
y
(55)
Podsumowanie:
W tym dziale zobaczyliśmy, Ŝe macierz obrotu
R
∈
SO(3) moŜe być interpretowana na
trzy róŜne sposoby:
1) reprezentuje przekształcenie współrzędnych punktu
P w dwóch róŜnych układach,
2) wyznacza orientację przekształconego układu współrzędnych w odniesieniu do ustalonego
układu współrzędnych,
3) jest operatorem przekształcającym wektor p przez obrót w nowy wektor
Rp w tym samym
układzie współrzędnych.
Konkretna interpretacja danej macierzy obrotu
R zastosowanej w problemie musi być
sprecyzowana w kontekście tego problemu.
4.3. Składanie obrotów
W tym rozdziale omówimy składanie obrotów. Dla zrozumienia treści następnych
wykładów waŜne jest, aby Czytelnik dobrze przyswoił sobie materiał z tej części, przed
przejściem dalej. Przypomnijmy, Ŝe macierz R
0
1
w równaniu (36) reprezentuje obrót między
układami współrzędnych Ox
0
y
0
z
0
i Ox
1
y
1
z
1
. ZałóŜmy, Ŝe dokładamy trzeci układ
współrzędnych Ox
2
y
2
z
2
powiązany z układami Ox
0
y
0
z
0
i Ox
1
y
1
z
1
przez obroty. Dany punkt P
moŜe być wtedy reprezentowany na trzy sposoby przez wektory: p
0
, p
1
, p
2
w trzech układach
współrzędnych. Związki między tymi trzema reprezentacjami punktu P są następujące
p
0
= R
0
1
p
1
(56)
p
1
= R
0
2
p
2
(57)
p
1
= R
1
2
p
2
(58)
gdzie kaŜda macierz R
i
j
jest macierzą obrotu. ZauwaŜmy, Ŝe macierze R
0
1
i R
0
2
reprezentują
obroty względem osi układu Ox
0
y
0
z
0
, podczas gdy R
1
2
reprezentuje obrót względem układu
Ox
1
y
1
z
1
. Jeśli podstawimy wzór (58) do równości (56), to otrzymamy
p
0
= R
0
1
R
1
2
p
2
(59)
a po porównaniu zaleŜności (57) i (59) dostajemy równość
R
0
2
= R
0
1
R
1
2
(60)
Równanie (60) jest prawem składania dla obrotów. Oznacza, Ŝe aby przekształcić
współrzędne punktu P z jego reprezentacji p
2
w układzie Ox
2
y
2
z
2
na reprezentację p
0
w
układzie Ox
0
y
0
z
0
, moŜemy ją najpierw przekształcić na jego reprezentację p
1
, w układzie
Ox
1
y
1
z
1
, uŜywając macierzy R
1
2
, a potem przekształcić p
1
na p
0
uŜywając macierzy R
0
1
.
Natomiast równanie (59) moŜemy interpretować następująco. ZałóŜmy początkowo,
Ŝe wszystkie trzy układy pokrywają się. Najpierw obracamy układ Ox
1
y
1
z
1
względem układu
Ox
0
y
0
z
0
zgodnie z przekształceniem R
0
1
.
Potem, przy pokrywających się układach Ox
1
y
1
z
1
i
Ox
2
y
2
z
2
obracamy układ Ox
2
y
2
z
2
względem Ox
1
y
1
z
1
zgodnie z przekształceniem R
1
2
. W
kaŜdym przypadku układ, względem którego odbywa się obrót, nazywamy układem
bieŜącym.
Uwaga! Odtąd dla wygody będziemy stosować skrócone zapisy funkcji
trygonometrycznych: c
θ
= cos
θ
,
S
θ
= sin
θ
.
Przykład 4.
ZałóŜmy, Ŝe macierz R reprezentuje obrót o kąt
φ
wokół bieŜącej osi y z następnym
obrotem o kąt
θ
wokół bieŜącej osi z. Wówczas macierz R jest określona wzorem
⋅
⋅
⋅
−
⋅
=
⋅
−
=
⋅
=
φ
θ
φ
θ
φ
θ
θ
φ
θ
φ
θ
φ
θ
θ
θ
θ
φ
φ
φ
φ
θ
φ
c
s
s
c
s
-
0
c
s
s
s
c
c
c
1
0
0
0
c
s
0
s
-
c
c
0
s
0
1
0
s
0
c
R
R
R
,
,
z
y
(61)
NaleŜy pamiętać, Ŝe kolejność wykonywania obrotów, a co za tym idzie kolejność
mnoŜenia macierzy obrotów, jest decydująca. Obrót, w przeciwieństwie do połoŜenia, nie jest
wielkością wektorową i nie podlega prawu dodawania wektorów, wobec tego składanie
obrotów na ogół nie jest przemienne.
Przykład 5.
ZałóŜmy, Ŝe poprzednio opisane obroty są wykonywane w odwrotnej kolejności, tzn.
najpierw obrót wokół bieŜącej osi
z, potem obrót wokół bieŜącej osi y.
Wówczas macierz obrotu jest określona wzorem
⋅
⋅
⋅
−
⋅
=
−
⋅
=
⋅
=
φ
φ
φ
θ
θ
φ
θ
θ
φ
θ
θ
φ
φ
φ
φ
φ
θ
θ
θ
θ
φ
θ
c
0
s
-
s
s
c
c
s
c
s
s
c
c
c
0
s
0
1
0
s
0
c
1
0
0
0
c
s
0
s
-
c
R
R
R
,
,
'
y
z
(62)
Po porównaniu wzorów (61) i (62) wyraźnie widać, Ŝe
R ≠ R'.
Często jest poŜądane wykonanie raczej ciągu obrotów, kaŜdego wokół danego
ustalonego układu współrzędnych, niŜ wokół kolejnych bieŜących układów. Przykładowo
moŜemy chcieć dokonać obrotu wokół osi
X
0
,
a następnie obrotu wokół osi
y
0
(nie zaś
y
1
).
Wtedy układ
Ox
0
y
0
z
0
jest tzw.
układem ustalonym. W tym przypadku wcześniej określone
prawo składania nie jest prawdziwe, natomiast właściwym prawem składania jest po prostu
mnoŜenie kolejnych macierzy obrotów w kolejności odwrotnej do podanej wzorem (60).
ZauwaŜmy, Ŝe same obroty nie są wykonywane w odwrotnej kolejności. Raczej są one
wykonywane wokół układu ustalonego niŜ wokół bieŜącego.
Przykład 6.
ZałóŜmy, Ŝe macierz obrotu
R reprezentuje obrót o kąt
φ
wokół osi
y
0
, a następnie
obrót o kąt
θ
wokół ustalonej osi
Z
0
.
Odnieśmy to do rys. 33. Niech
p
0
,
p
1
i
p
2
będą
reprezentacjami wektora
p.
Rys. 33. Składanie obrotów
Początkowo osie ustalone i bieŜące są te same, mianowicie
Ox
0
y
0
z
0
, i dlatego moŜemy
napisać jak poprzednio
p
0
=
R
y,
φ
p
1
(63)
gdzie
R
y,
φ
jest podstawową macierzą obrotu wokół osi
y. Teraz, poniewaŜ drugi obrót odbywa
się wokół ustalonego układu
Ox
0
y
0
z
0
, a nie bieŜącego układu
Ox
1
y
1
z
1
, nie moŜemy stwierdzić,
czy
p
1
=
R
z,
θ
p
2
(64)
poniewaŜ to wymagałoby interpretacji
R
z,
θ
jako obrotu wokół osi
z
1
. Aby móc uŜyć naszego
wcześniejszego prawa składania, musimy mieć układy: ustalony i bieŜący. W tym przypadku
osie
z
0
i
z
1
nałoŜone na siebie. Dlatego trzeba najpierw „cofnąć" poprzedni obrót, następnie
wykonać obrót wokół osi
z
0
i na koniec przywrócić wyjściowe przekształcenie, czyli
p
1
=
R
y,-
φ
R
z,
θ
R
y,
φ
p
2
(65)
To jest właściwe wyraŜenie, a nie zaleŜność (64). Teraz podstawiając je do wzoru (63),
otrzymujemy
P
0
=
R
y,
φ
p
1
=
R
y,
φ
R
y,-
φ
R
z,
θ
R
y,
φ
p
2
(66)
Nie musimy pamiętać powyŜszego wyprowadzenia; wystarczy zauwaŜyć przez
porównanie wzorów (61) i (66), Ŝe otrzymujemy te same podstawowe macierze obrotów w
odwrotnej kolejności.
Prawo składania obrotów moŜemy podsumować następującą obserwacją. Dla danego
układu ustalonego Ox
0
y
0
z
0
, układu bieŜącego Ox
1
y
1
z
1
i macierzy obrotu R
0
1
wiąŜącej te
układy, jeŜeli trzeci układ Ox
2
y
2
z
2
jest otrzymany przez obrót R
1
2
wykonany względem
układu bieŜącego, to aby otrzymać obrót R
0
2
mnoŜymy prawostronnie macierz R
0
1
przez R
1
2
,
czyli
R
0
2
= R
0
1
R
1
2
(67)
JeŜeli drugi obrót ma być wykonany względem układu ustalonego, to mnoŜymy
lewostronnie macierz R
0
1
przez R
1
2
, i otrzymujemy
R
0
2
= R
1
2
R
0
1
(68)
W kaŜdym przypadku macierz R
0
2
reprezentuje przekształcenie między układami Ox
0
y
0
z
0
i
Ox
2
y
2
z
2
. JednakŜe układ, który powstaje z zaleŜności (67), będzie inny od powstałego z
zaleŜności (68).
4.4. Obrót wokół dowolnej osi
Obroty nie zawsze są wykonywane wokół osi układu współrzędnych. Często jesteśmy
zainteresowani obrotem wokół dowolnej osi w przestrzeni. Niech k = (k
x
, k
y
, k
z
)
T
będzie
wyraŜonym w układzie Ox
0
y
0
z
0
wektorem jednostkowym, definiującym pewną oś. Chcemy
wyprowadzić macierz obrotu R
k,
θ
reprezentującą obrót o kąt
θ
wokół tej osi (rys. 34).
Rys. 34. Obrót wokół dowolnej osi
Istnieje kilka sposobów otrzymania macierzy R
k,
θ
. Najłatwiejszym jest obrócenie
wektora k na jedną z osi układu, np. z
0
, potem obrócenie wokół osi z
0
o kąt
θ
i wreszcie
obrócenie wektora k z powrotem do jego wyjściowego połoŜenia. Na rys. 34 pokazano, Ŝe
moŜemy obrócić wektor k na oś z
0
,
obracając najpierw wokół osi z
0
o kąt -
α
, potem zaś
obracając wokół osi y
0
o kąt -
β
. PoniewaŜ wszystkie obroty są wykonywane względem
ustalonego układu Ox
0
y
0
z
0,
więc macierz R
k,
θ
otrzymamy jako złoŜenie
R
k,
θ
= R
z,
α
R
y,
β
R
z,
θ
R
y,-
β
R
z,-
α
(69)
Na podstawie rys. 34 widzimy, Ŝe jeśli k jest wektorem jednostkowym, to
2
2
sin
y
x
y
k
k
k
+
=
α
(70)
2
2
cos
y
x
x
k
k
k
+
=
α
(71)
2
2
sin
y
x
k
k
+
=
β
(72)
cos
β
= k
z
(73)
Po podstawieniu równań (70)-(73) do zaleŜności (69) i dość długich lecz niezbyt
złoŜonych obliczeniach otrzymujemy
+
−
−
−
+
+
+
−
+
=
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
cos
sin
sin
sin
cos
sin
sin
sin
cos
R
2
2
2
v
k
k
v
k
k
k
v
k
k
k
v
k
k
v
k
k
v
k
k
k
v
k
k
k
v
k
k
v
k
z
x
z
y
y
z
x
x
z
y
y
z
y
x
y
z
x
z
y
x
x
k,
(74)
Gdzie v
θ
= 1 – cos
θ
.
4.4. Dalsze własności obrotów
Dziewięć elementów r
ij
dowolnej macierzy obrotów
R jak we wzorze (37) nie jest
wielkościami niezaleŜnymi. Rzeczywiście, ciało sztywne ma co najwyŜej trzy obrotowe
stopnie swobody i dlatego co najwyŜej trzy wielkości są potrzebne do wyznaczenia jego
orientacji. W tej części wykładu omówimy trzy sposoby reprezentacji dowolnego obrotu przy
uŜyciu tylko trzech niezaleŜnych wielkości. Pierwszym jest tzw. reprezentacja „os-kąt” Drugi
to reprezentacja za pomocą kątów Eulera, a trzeci – reprezentacja „obrót-nachylenie-
odchylenie".
Reprezentacja „oś-kąt”
Macierz obrotu
R
∈
SO(3) moŜna zawsze przedstawić w postaci pojedynczego obrotu
wokół odpowiedniej osi o odpowiedni kąt jako
R = R
k,
θ
(75)
gdzie
k jest wektorem jednostkowym definiującym oś obrotu, a
θ
jest kątem obrotu wokół tej
osi. Równanie (75) jest nazywane reprezentacją „oś-kąt” macierzy
R. Jeśli zatem mamy
dowolną macierz obrotu
R o elementach (r
ij
), to kąt
θ
i oś wektora
k odpowiadające tej
macierzy są dane wyraŜeniami
−
+
+
=
−
=
−
−
2
1
cos
2
1
)
R
(
cos
33
22
11
1
1
r
r
r
Tr
θ
(76)
Gdzie Tr(
R) oznacza ślad macierzy R oraz
−
−
−
=
12
21
31
13
23
32
2sin
1
k
r
r
r
r
r
r
θ
(77)
Reprezentacja „oś-kąt" nie jest jednoznaczna, poniewaŜ obrót o kąt -
θ
wokół osi wektora – k
jest taki sam, jak obrót o kąt
θ
wokół osi wektora k, tzn.
R
k,
θ
= R
-k,-
θ
(78)
JeŜeli
θ
=
0, to R jest macierzą jednostkową, a oś obrotu nie jest określona.
Przykład 7.
ZałóŜmy, Ŝe macierz R została utworzona przez obrót o 90° wokół osi z
0
,
następnie
przez obrót o 30° wokół osi y
0
, a w końcu przez obrót o 60° wokół osi x
0
. Wówczas
−
−
−
=
°
°
°
−
°
⋅
⋅
°
°
−
°
°
⋅
°
°
°
−
°
=
=
4
3
4
1
2
3
4
3
4
3
2
1
2
1
2
3
0
1
0
0
0
90
cos
90
sin
0
90
sin
90
cos
30
cos
0
30
sin
0
1
0
30
sin
0
30
cos
60
cos
60
sin
0
60
sin
60
cos
0
0
0
1
R
R
R
R
90
,
30
,
60
,
z
y
x
(79)
Widzimy, Ŝe Tr(
R) = 0 i stąd odpowiedni kąt ze wzoru (76) jest równy
°
=
−
=
−
120
)
2
1
(
cos
1
θ
(80)
Natomiast z wzoru (77) oś jest określona przez wektor
T
+
−
=
2
1
3
2
1
,
2
1
3
2
1
,
3
3
k
(81)
PowyŜsza reprezentacja „
oś-kąt" charakteryzuje dany obrót za pomocą czterech
wielkości, a mianowicie trzech składowych osi wektora
k oraz kąta
θ
. Jednak, poniewaŜ oś
wektora
k jest wyznaczona przez wektor jednostkowy, tylko dwie z jej składowych są
niezaleŜne. Trzecia jest narzucona przez warunek, Ŝe wektor
k ma długość jednostkową.
Dlatego tylko trzy niezaleŜne wielkości są wymagane w tej reprezentacji obrotu
R. MoŜemy
przedstawić reprezentację „
kąt-oś" za pomocą pojedynczego wektora r postaci
T
z
y
x
T
z
y
x
k
k
k
r
r
r
r
)
,
,
(
)
,
,
(
⋅
⋅
⋅
=
=
θ
θ
θ
(82)
ZauwaŜmy, Ŝe poniewaŜ
k jest wektorem jednostkowym, więc długość wektora r jest równa
mierze kąta
θ
, a kierunek jest ten sam co osi k.
Kąty Eulera
Bardziej ogólną metodą wyznaczania macierzy obrotu w zaleŜności od trzech
niezaleŜnych wielkości jest uŜycie tzw.
kątów Eulera. RozwaŜmy ponownie ustalony układ
współrzędnych
Ox
0
y
0
z
0
i układ obrócony
Ox
1
y
1
z
1
pokazane na rys. 35. MoŜemy wówczas
określić orientację układu
Ox
1
y
1
z
1
względem układu
Ox
0
y
0
z
0
za pomocą trzech kątów (
θ
,
φ
,
ψ
)
znanych jako
kąty Eulera, a otrzymanych przez trzy kolejne, następujące obroty: najpierw
obrót wokół osi
z o kąt
φ
, następnie obrót wokół bieŜącej osi
y o kąt
θ
, na końcu zaś obrót
wokół bieŜącej osi
z o kąt
ψ
.
Rys. 35. Reprezentacja kątów Eulera
W terminologii podstawowych macierzy obrotów wynikowy obrót R
0
1
moŜe być
otrzymany jako iloczyn
−
+
−
+
−
−
−
=
=
−
⋅
−
⋅
−
=
⋅
⋅
=
θ
ψ
θ
ψ
θ
θ
φ
ψ
φ
ψ
θ
φ
ψ
φ
ψ
θ
φ
θ
φ
ψ
φ
ψ
θ
φ
ψ
φ
ψ
θ
φ
ψ
ψ
ψ
ψ
θ
θ
θ
θ
φ
φ
φ
φ
ψ
θ
φ
cos
sin
sin
cos
sin
sin
sin
cos
cos
sin
cos
sin
sin
cos
cos
cos
sin
sin
cos
cos
sin
sin
cos
cos
sin
sin
cos
cos
cos
1
0
0
0
cos
sin
0
sin
cos
cos
0
sin
0
1
0
sin
0
cos
1
0
0
0
cos
sin
0
sin
cos
R
R
R
R
z,
y,
z,
1
0
(83)
Kąty obrotu, nachylenia i odchylenia
Macierz obrotu
R moŜe takŜe być określona jako iloczyn kolejnych obrotów wokół osi
układu współrzędnych
x
0,
y
0,
z
0
wziętych w określonej kolejności. Obroty te określają tzw.
kąty
obrotu, nachylenia i odchylenia
,
które moŜemy takŜe zapisać jako
φ
,
θ
,
ψ
. Zilustrowano je na
rys. 36.
Rys. 36. Kąty obrotu, nachylenia, odchylenia (RPY – Roll, Pitch, Yaw)
Określamy kolejność obrotów jako x-y-z, innymi słowy najpierw odchylenie wokół osi
x
0
o kąt
ψ
, potem nachylenie wokół osi y
0
o kąt
θ
i ostatecznie obrót wokół osi
Z
0
kąt
φ
.
PoniewaŜ kolejne obroty są odnoszone do układu ustalonego, wynikowa macierz
przekształcenia jest dana przez iloczyn
−
+
−
+
+
+
−
=
=
−
⋅
−
⋅
−
=
⋅
⋅
=
ψ
θ
ψ
θ
θ
ψ
θ
φ
ψ
φ
ψ
θ
φ
ψ
φ
θ
φ
ψ
θ
φ
ψ
φ
ψ
θ
φ
ψ
φ
θ
φ
ψ
ψ
ψ
ψ
θ
θ
θ
θ
φ
φ
φ
φ
ψ
θ
φ
cos
cos
sin
cos
sin
cos
sin
sin
sin
cos
sin
sin
sin
sin
cos
cos
sin
cos
sin
cos
sin
sin
sin
sin
cos
cos
sin
cos
cos
cos
sin
0
sin
cos
0
0
0
1
cos
0
sin
0
1
0
sin
0
cos
1
0
0
0
cos
sin
0
sin
cos
R
R
R
R
x,
y,
z,
1
0
(84)
Oczywiście zamiast odchylenia-nachylenia-obrotu względem układów ustalonych
moŜemy takŜe interpretować powyŜsze przekształcenie jako obrót-nachylenie-odchylenie, w
tej kolejności, rozpatrując kaŜde w stosunku do układu bieŜącego. Końcowym rezultatem jest
ta sama macierz (84).