7 Przykład 3. Platforma mobilna sterowana różnicowo
Figure
Figure 3: Schemat kinematyki robota mobilnego sterowanego różnicowo.
7.1 Kinematyka we współrzędnych uogólnionych
Tworzenie modelu kinematyki należy rozpocząć od zdefiniowania wektora stanu q, który w rozpatrywanym przykładzie przybiera postać
q = | ⎛ ⎜ ⎜ ⎜ ⎜ ⎜
⎜ ⎜ ⎜ ⎜ ⎝
|
| ⎞ ⎟ ⎟ ⎟ ⎟ ⎟
⎟ ⎟ ⎟ ⎟ ⎠
|
, |
| (97) |
gdzie:
- x,y - współrzędne położenia,
- θ - orientacja,
- φ1, φ2, φ3, φ4 - kąty obrotu poszczególnych kół.
Kolejnym krokiem jest wybranie ograniczeń, które ma spełniać opisywany model. Oczywistym jest, że przy zmianie orientacji platformy, któreś z kół będzie wpadać w poślizg poprzeczny, tak więc tego ograniczenia nie można narzucić. Sensowne natomiast jest wprowadzenie ograniczeń o braku poślizgu wzdłużnego kół, które w formie ogólnej przyjmuje postać
W takim wypadku kąty obrotu kół 1 i 3 muszą być sobie równe, podobnie jak kąty obrotu kół 2 i 4, co modyfikuje zaproponowany wektor q do postaci
q = | ⎛ ⎜ ⎜ ⎜
⎜ ⎜ ⎜ ⎝
|
| ⎞ ⎟ ⎟ ⎟
⎟ ⎟ ⎟ ⎠
|
, |
| (99) |
gdzie φ
L, φ
P to kąty obrotu odpowiednio lewych (koło 2 i 4) i prawych (koło 1 i 3) kół.
Zakładając, że v
1, v
2, v
3, v
4 to prędkości poszczególnych kół, oraz że promienie kół R
1 = R
2 = R
3 = R
4 = R, to postać równań ograniczenia braku poślizgu wzdłużnego dla tego modelu jest następująca
Uwzględniając zależności trygonometryczne widoczne na rysunku prędkości v
1, v
2, v
3 oraz v
4 zapisywane są w następujący sposób
|
v1 = |
⋅
x
|
1
|
cosθ+ |
⋅
y
|
1
|
sinθ, |
|
v2 = |
⋅
x
|
2
|
cosθ+ |
⋅
y
|
2
|
sinθ, |
|
v3 = |
⋅
x
|
3
|
cosθ+ |
⋅
y
|
3
|
sinθ, |
|
v4 = |
⋅
x
|
4
|
cosθ+ |
⋅
y
|
4
|
sinθ. |
|
|
|
| (101) |
Zgodnie z zależnościami trygonometrycznymi widocznymi na wykresie wartości
· x
1 −
· x
4,
· y
1 −
· y
4 można zapisać jako
|
| |
|
⋅
x
|
1
|
= |
⋅
x
|
+ |
⋅
θ
|
l sinθ+ |
⋅
θ
|
d cosθ, |
|
| |
|
⋅
y
|
1
|
= |
⋅
y
|
− |
⋅
θ
|
l cosθ+ |
⋅
θ
|
d sinθ, |
|
|
| |
|
⋅
x
|
2
|
= |
⋅
x
|
+ |
⋅
θ
|
l sinθ− |
⋅
θ
|
d cosθ, |
|
| |
|
⋅
y
|
2
|
= |
⋅
y
|
− |
⋅
θ
|
l cosθ− |
⋅
θ
|
d sinθ, |
|
|
| |
|
⋅
x
|
3
|
= |
⋅
x
|
− |
⋅
θ
|
l sinθ+ |
⋅
θ
|
d cosθ, |
|
| |
|
⋅
y
|
3
|
= |
⋅
y
|
+ |
⋅
θ
|
l cosθ+ |
⋅
θ
|
d sinθ, |
|
|
| |
|
⋅
x
|
4
|
= |
⋅
x
|
− |
⋅
θ
|
l sinθ− |
⋅
θ
|
d cosθ, |
|
| |
|
⋅
y
|
4
|
= |
⋅
y
|
+ |
⋅
θ
|
l cosθ− |
⋅
θ
|
d sinθ. |
|
|
|
| (102) |
Używając tych wyrażeń można ograniczenia fazowe (
101) wyrazić w następujący sposób
|
|
⋅
x
|
cosθ+ |
⋅
y
|
sinθ+ d |
⋅
θ
|
− |
⋅
φ
|
P
|
R = 0, |
|
|
⋅
x
|
cosθ+ |
⋅
y
|
sinθ− d |
⋅
θ
|
− |
⋅
φ
|
L
|
R = 0. |
|
|
|
| (103) |
Zgodnie z postacią (
104) poszukiwana macierz A(q) przybiera postać
7.2 Kinematyka we współrzędnych pomocniczych
W tym przypadku równania kinematyki przyjmują postać
Jest to bezdryfowy układ sterowania, spełniający pewne warunki:
- A(q) gi = 0,
- gi ≠ 0,
- i ∈ {1,2,...,m}, przy czym m = n − l, gdzie:
- n - wymiar przestrzeni (liczba współrzędnych wektora q),
- l - liczba ograniczeń (liczba wektorów macierzy A(q)).
W rozpatrywanym przypadku m = 5− 2 = 3.
Należy również pamiętać, żeby wybierane wektory były jak najprostsze.
Zgodnie z powyższymi kryteriami dobrano trzy wektory g macierzy G(q).
g1 = | ⎛ ⎜ ⎜ ⎜
⎜ ⎜ ⎜ ⎝
|
| ⎞ ⎟ ⎟ ⎟
⎟ ⎟ ⎟ ⎠
|
, g2 = | ⎛ ⎜ ⎜ ⎜
⎜ ⎜ ⎜ ⎝
|
| ⎞ ⎟ ⎟ ⎟
⎟ ⎟ ⎟ ⎠
|
, g3 = | ⎛ ⎜ ⎜ ⎜
⎜ ⎜ ⎜ ⎝
|
| ⎞ ⎟ ⎟ ⎟
⎟ ⎟ ⎟ ⎠
|
. |
| (106) |
Uwzględniając wektory z (
106) macierz G(q) przyjmuje postać
G(q) = | ⎡ ⎢ ⎢ ⎢
⎢ ⎢ ⎢ ⎣
|
| ⎤ ⎥ ⎥ ⎥
⎥ ⎥ ⎥ ⎦
|
. |
| (107) |
8 Przykład 3. Platforma mobilna sterowana różnicowo
8.1 Model dynamiki
Figure
Figure 4: Układy współrzędnych stowarzyszone z kołami robota mobilnego sterowanego różnicowo
Wektor stanu jest równy
q = | ⎛ ⎜ ⎜ ⎜
⎜ ⎜ ⎜ ⎝
|
| ⎞ ⎟ ⎟ ⎟
⎟ ⎟ ⎟ ⎠
|
. |
| (108) |
Aby wyprowadzić model dynamiki należy zdefiniować funkcję Lagrange'a, zwaną lagranżjanem, postaci
L(q, |
⋅
q
|
) = EK(q, |
⋅
q
|
) − EP(q), |
| (109) |
gdzie:
- EK - energia kinetyczna robota,
- EP - energia potencjalna robota.
Ponieważ rozpatrywana platforma mobilna porusza się jedynie po płaszczyźnie, to jej energia potencjalna jest stała (E
P(q) = const).
8.1.1 Energia kinetyczna platformy
Energia kinetyczna pojazdu jest równa sumie energii kinetycznej platformy i wszystkich kół.
Energia kinetyczna platformy wyrażana jest wzorem (pozycja [])
EKP = |
1
2
|
Iz |
⋅
θ
|
2
|
+ |
1
2
|
MP( |
⋅
x
|
2
|
+ |
⋅
y
|
2
|
), |
| (110) |
gdzie:
- Iz - moment bezwładności platformy liczony względem lokalnej osi Z,
- MP - masa platformy.
8.1.2 Energia kinetyczna kół
W dalszych obliczeniach będą obowiązywać następujące założenia:
- MK1 = MK2 = MK3 = MK4 = MK - masa koła,
- Ixx1 = Ixx2 = Ixx3 = Ixx4 = Ixx - moment bezwładności pojedynczego koła względem lokalnej osi X,
- Izz1 = Izz2 = Izz3 = Izz4 = Izz - moment bezwładności pojedynczego koła względem lokalnej osi Z.
Transformację układu współrzędnych od układu bazowego X
0,Y
0 do układu i-tego koła wyprowadza się korzystając ze wzoru
A0Ki = A0P(x,y,θ) ·Rot(Z,αi) ·Trans(X,li) ·Rot(Z,βi) ·Trans(X,di) ·Rot(Z,γi) ·Rot(X,ϕ), |
| (111) |
gdzie A
0P(x,y,θ) - transformacja bazowego układu współrzędnych do układu platformy X
P,Y
P.
Zgodnie z rysunkiem
4, wyprowadzono transformacje opisujące układy poszczególnych kół względem układu bazowego.
Transformacja układu platformy względem bazowego układu współrzędnych
A0P = Trans(X,x) ·Trans(Y,y) ·Rot(Z,θ). |
| (112) |
Transformacja układu 1 koła względem układu bazowego
A0K1 = A0P ·Trans(X,−l) ·Rot(Z,− |
π
2
|
) ·Trans(X,d) ·Rot(X,φP). |
| (113) |
Transformacja układu 2 koła względem układu bazowego
A0K2 = A0P ·Trans(X,−l) ·Rot(Z, |
π
2
|
) ·Trans(X,d) ·Rot(X,φL). |
| (114) |
Transformacja układu 3 koła względem układu bazowego
A0K3 = A0P ·Trans(X,l) ·Rot(Z,− |
π
2
|
) ·Trans(X,d) ·Rot(X,φP). |
| (115) |
Transformacja układu 4 koła względem układu bazowego
A0K4 = A0P ·Trans(X,l) ·Rot(Z, |
π
2
|
) ·Trans(X,d) ·Rot(X,φL). |
| (116) |
Zgodnie z (
22) oraz obowiązującymi założeniami, energie kinetyczne kół wynoszą
EKK1 = |
1
2
|
Ixx |
⋅
ϕ
|
2 P
|
+ |
1
2
|
Izz |
⋅
θ
|
2
|
+ |
1
2
|
MK | ⎧ ⎨
⎩
|
⋅
x
|
2
|
+ |
⋅
y
|
2
|
+ d2 |
⋅
θ
|
2
|
+ l2 |
⋅
θ
|
2
|
+ 2 d |
⋅
θ
|
| ⎡ ⎣
|
⋅
y
|
sinθ+ |
⋅
x
|
cosθ | ⎤ ⎦
|
− 2 l |
⋅
θ
|
| ⎡ ⎣
|
⋅
y
|
cosθ− |
⋅
x
|
sinθ | ⎤ ⎦
| ⎫ ⎬
⎭
|
, |
| (117) |
EKK2 = |
1
2
|
Ixx |
⋅
ϕ
|
2 L
|
+ |
1
2
|
Izz |
⋅
θ
|
2
|
+ |
1
2
|
MK | ⎧ ⎨
⎩
|
⋅
x
|
2
|
+ |
⋅
y
|
2
|
+ d2 |
⋅
θ
|
2
|
+ l2 |
⋅
θ
|
2
|
+ 2 d |
⋅
θ
|
| ⎡ ⎣
|
− |
⋅
y
|
sinθ− |
⋅
x
|
cosθ | ⎤ ⎦
|
− 2 l |
⋅
θ
|
| ⎡ ⎣
|
⋅
y
|
cosθ− |
⋅
x
|
sinθ | ⎤ ⎦
| ⎫ ⎬
⎭
|
, |
| (118) |
EKK3 = |
1
2
|
Ixx |
⋅
ϕ
|
2 P
|
+ |
1
2
|
Izz |
⋅
θ
|
2
|
+ |
1
2
|
MK | ⎧ ⎨
⎩
|
⋅
x
|
2
|
+ |
⋅
y
|
2
|
+ d2 |
⋅
θ
|
2
|
+ l2 |
⋅
θ
|
2
|
+ 2 d |
⋅
θ
|
| ⎡ ⎣
|
⋅
y
|
sinθ+ |
⋅
x
|
cosθ | ⎤ ⎦
|
+ 2 l |
⋅
θ
|
| ⎡ ⎣
|
⋅
y
|
cosθ− |
⋅
x
|
sinθ | ⎤ ⎦
| ⎫ ⎬
⎭
|
, |
| (119) |
EKK4 = |
1
2
|
Ixx |
⋅
ϕ
|
2 L
|
+ |
1
2
|
Izz |
⋅
θ
|
2
|
+ |
1
2
|
MK | ⎧ ⎨
⎩
|
⋅
x
|
2
|
+ |
⋅
y
|
2
|
+ d2 |
⋅
θ
|
2
|
+ l2 |
⋅
θ
|
2
|
+ 2 d |
⋅
θ
|
| ⎡ ⎣
|
− |
⋅
y
|
sinθ− |
⋅
x
|
cosθ | ⎤ ⎦
|
+ 2 l |
⋅
θ
|
| ⎡ ⎣
|
⋅
y
|
cosθ− |
⋅
x
|
sinθ | ⎤ ⎦
| ⎫ ⎬
⎭
|
. |
| (120) |
8.1.3 Energia kinetyczna całego układu
Po zsumowaniu wyliczonych energii składowych energia kinetyczna pojazdu jest równa
EK(q, |
⋅
q
|
) = |
1
2
|
| ⎧ ⎨
⎩
|
(MP+4MK) MC
|
|
⋅
x
|
2
|
+ |
(MP+4MK) MC
|
|
⋅
y
|
2
|
+ |
[Iz + 4Izz + 4MK(d2 + l2)] IP
|
|
⋅
θ
|
+ 2Ixx |
⋅
ϕ
|
2 L
|
+ 2Ixx |
⋅
ϕ
|
2 P
| ⎫ ⎬
⎭
|
, |
| (121) |
gdzie:
- MC - całkowita masa robota,
- IP - moment bezwładności robota.
8.1.4 Równania dynamiki we współrzędnych uogólnionych
Korzystając z () widać, że macierz bezwładności wygląda następująco
M(q) = | ⎡ ⎢ ⎢ ⎢
⎢ ⎢ ⎢ ⎣
|
| ⎤ ⎥ ⎥ ⎥
⎥ ⎥ ⎥ ⎦
|
. |
| (122) |
Elementy macierzy sił Coriolisa można wyliczyć używając symboli Cristoffela, jednak w rozpatrywanym przykładzie (ponieważ wszystkie składniki macierzy
M(q) są niezależne) wszystkie z nich są zerowe, więc
Wektor sił grawitacji można wyliczyć z zależności
W rozpatrywanym przykładzie E
P(q) = const, więc D(q) = 0.
8.1.5 Dynamika we współrzędnych pomocniczych
Aby otrzymać model dynamiki we współrzędnych pomocniczych wykorzystuje się wyprowadzony wcześniej bezdryfowy układ sterowania
Należy dokonać podstawienia równania (
125) do modelu (
23)
M(q) · | ⎛ ⎝
|
⋅
G
|
(q)η+ G(q) |
⋅
η
| ⎞ ⎠
|
= B ·u + AT(q) ·λ. |
| (126) |
W celu otrzymania macierzy kwadratowej całość mnoży się lewostronnie przez G
T(q)
|
GT(q)M(q)G(q) M(q)*
|
|
⋅
η
|
+ |
C(q,· q)*
|
η = |
GT(q)B(q) B(q)*
|
u + |
GT(q)AT(q) 0
|
·λ |
| (127) |
Zgodnie z powyższym, model dynamiki we współrzędnych pomocniczych dla modelu pojazdu sterowanego różniocowo przyjmuje postać
M(q)* |
⋅
η
|
+ C(q, |
⋅
q
|
)* η = B(q)* u |
| (128) |
Nowa macierz bezwładności wygląda następująco
Macierz sił Coriolisa przybiera postać
Macierz sterowań zmienia postać z B na B
*
B = | ⎡ ⎢ ⎢ ⎢
⎢ ⎢ ⎢ ⎣
|
| ⎤ ⎥ ⎥ ⎥
⎥ ⎥ ⎥ ⎦
|
, |
| (131) |