Professional Documents
Culture Documents
Nositelj kolegija:
Student:
Sven Savic
Zagreb, 2008
Sadr
zaj
1 Uvod
2.1
Kinematicke jednadzbe . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Ulancana forma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1
3.2
3.3
Simulacijski rezultati . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.1
4 Matlab kodovi
4.1
21
4.1.2
4.2
Priblizna linearizacija . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3
Bibliografija
34
Uvod
2.1
Kinemati
cke jednad
zbe
Ako uzmemo x y ravninu kao ravninu po kojoj se robot krece, mozemo zapisati
dvije jednadzbe pozicije mobilnog robota prema [6, 7]
x = v1 cos( + 1 )
(1)
y = v1 sin( + 1 )
(2)
(3)
(4)
2 = v3
(5)
Time smo dobili sustav pet diferencijalnih jednadzbi sa tri upravljacke velicine
v1 v3 . Cime
je potpuno definirana kinematika mobilnog robota.
Radi nemogucnosti dobivanja jedinstvenog rjesenja pri zakretu obje osovine (za razlicite kombinacije kutove 1 i 2 moguce je dobiti jednake rezultate), pri rjesavanju
standardne linearizacije, model je pojednostavljen na nacin da je zakocena zadnja
osovina 1 = 0.
Nakon pojednostavljenja, dobivamo slijedece jednadzbe za zadani model koji odgovara kinematickom modelu automobila pa se jos naziva i car-like robot. Konfiguracija robota je predstavljena pozicijom i orijentacijom tijela robota u ravnini i
2.2
x = v1 cos
(6)
y = v1 sin
v1 tan
=
l
= v2
(7)
(8)
(9)
Ulan
cana forma
(10)
x n = xn1 u1
Mnogi kinematicki problemi mobilnih robota s kotacima mogu se prikazati u toj
formi. Ulancana forma (10) ima temeljnu linearnu strukturu koja se moze pokazati u
slucaju kada je u1 funkcija vremena i vise se ne promatra kao upravljacka varijabla. U
tom slucaju sustav jednadzbi (10) postaje jednovarijabilni vremenski ovisan linearni
sustav. Kinematicki model robota opisan jednadzbama (1 5) sadrzi tri upravljacke
velicine v1 v3 , te ukoliko ga zelimo zapisati u ulancanoj formi koja sadrzi samo
dvije upravljacke velicine, potrebno je promatrati pojednostavljeni model prikazan
jednadzbama (6 9). Ulancanu formu oblika (10), dobivamo na nacin da pretpostavimo da su x1 = x i x4 = y iz cega slijedi
x 1 = x
(11)
(12)
u1
cos
5
(13)
(14)
(15)
sin
cos
(16)
(17)
1
cos2
(18)
(19)
1
u1 cos2
(20)
x2 u1 =
nakon sredivanja dobivamo izraz
x2 =
v1 tan
1
1
l
v1 cos cos2
(21)
tan
l cos3
x 2 = cos
l
cos6
nakon uvrstavanja izraza (9) i (8) u gornju jednadzbu i sredivanja, slijedi
1
sin cos tan
2
tan
1 v2 cos2 1 3 v1 cos
cos
l
u2 =
+
l
cos3
l
cos6
(22)
(23)
(24)
v2
3 v1 tan tan2
+
l cos2 cos3 l2
cos3
(25)
(26)
(27)
3 u1 sin sin2
l cos2
(28)
x4 = y
(29)
(30)
(31)
(32)
u1
cos
(33)
3 u1 sin sin2
v2 = u2 l cos cos
l cos2
2
(34)
3.1
Kod gibanja robota s n stupnjeva slobode u m dimenzionalnom kartezijevom koordinatnom sustavu s preprekama, planiranje putanje formulirano je na slijedeci nacin,
prema [9]:
zadana je pocetna pozicija S i pozicija cilja G u Rm , potrebno je pronaci putanju u
konfiguracijskom prostoru Rn omogucujuci putanju bez sudara od tocke S do tocke
G.
Kod on-line metode upravljanja, upravljacke velicine proracunavaju se tijekom kretanja robota
Metoda potencijalnih polja sastoji se od izmjene topologije radnog prostora robota radi planiranja njegove putanje. Dodavanjem atraktivnih dolina (Slika 5) i
repulzivnih vrhova (Slika 6) dobivamo ukupno potencijalno polje (Slika 8).
Radi pojednostavljenja, uzima se 2-dimenzijski kartezijev koordinatni sustav (m=2)
prikazan slikom 7. Cilj se oznacava s jednom tockom u prostoru kao atraktivni kruzni
potencijal pG = (xG , yG ).
Opcenito za tocku p u radnom prostoru robota s koordinatama p = (x, y), atraktivni potencijal iznosi, prema [5]
Ua (p) =
1
(x xG )2 + (y yG )2
2
(35)
(36)
Zeljeni
zakon gibanja mobilnog robota prikazan je na slijedeci nacin
N
Ua X
Ur
Ur
xd = a1
+
b1
+ b2
x
x
y
j=0
N
Ua X
Ur
Ur
yd = a1
+
b1
b2
y
y
x
j=0
9
(37)
(38)
(39)
uz
p = [x y] , p
x y
T
"
T
,
J=
#
(40)
1 0
10
9
8
7
Y, m
6
5
4
3
2
1
0
1
4
X, m
10
10
9
8
7
Y, m
6
5
4
3
2
1
0
1
4
X, m
10
3.2
Pra
cenje referentne trajektorije
= f (x(t), u(t))
(41)
ulaza oko referentnog vektora stanja i ulaza s x(t) i u(t) tada se stanje sustava i
ulaz mogu prikazati jednadzbama
x(t) = xd (t) + x(t)
(42)
(43)
(44)
f
f
x +
u + h(x, u)
x
u
(45)
f1
f1
f1
f1
xn
x1 x2
u1
f2 f2 f2
f2
x1 x2
xn
A(t) = .
,
B(t) = u. 1
..
..
..
..
..
.
.
.
fn
fn
fn
fn
xn
x1
x2
u1
(46)
f1
u2
f2
u2
fn
u2
..
.
..
.
f1
un
f2
un
..
.
fn
un
(47)
yd = yd (t),
t t0
(48)
(49)
xd2 (t) = [
yd (t)x d (t) y d (t)
xd (t)]/x 3d (t)
(50)
(51)
(52)
(53)
12
i transformacije ulaza
ud1 (t) = x d (t)
(54)
...
...
ud2 (t) = [ y d (t)x 2d (t) x d (t)y d (t)x d (t) 3
yd (t)x d (t)
xd (t) + 3y d (t)
x2d (t)]/x 4d (t) (55)
U gornjim izrazima pojavljuju se druge i trece derivacije referentnih pozicija xr ef
i yr ef za cije estimacije su koristeni filteri drugog odnosno treceg reda prikazani
slijedecim izrazima
f (x + x) f (x)
x
f
(x
+
x)
2f (x) + f (x x)
f 00 (x)
x2
f 0 (x)
(56)
(57)
Ako nas sustav prikazemo u ulancanoj formi (10). Naznacimo greske stanja i ulaza
kao
xi = xdi xi , i = 1, ..., 4,
uj = udj uj , j = 1, 2
(58)
(59)
x 2 = u2
(60)
x 3 = xd2 ud1 x2 u1
(61)
x 4 = xd3 ud1 x3 u1
(62)
Linearizacija oko zeljene trajektorije dovodi do slijedeceg linearnog vremenski zavisnog sustava
0
0
0
1
x + 0
u = A(t)
x = 0
x + B(t)
u
0 u (t)
0
0
xd2 (t) 0
d1
0
0
ud1 (t) 0
xd3 (t) 0
(63)
Gdje je pogreska transformacije upravljackih velicina prikazana kao linearni vremenski zavisan zakon
u1 = k1 x1
(64)
u2 = k2 x2
k3
k4
x3 2 x4
ud1
u d1
13
(65)
Da bi sustav bio stabilan mora biti zadovoljeno k1 > 0, a jednadzba (66) mora biti
Hurwitzov polinomu.
3 + k2 2 + k3 + k4
(66)
(67)
H2 = k2 k3 k4 > 0
(68)
H3 = H2 k4 > 0
(69)
vrijednost
k1
10
k2
k3
15
k4
17
k1
0
k2 k3 /ud1 (t) k4 /u2 d1 (t)
Avl (t) =
k x (t) u (t)
0
0
1 d2
d1
k1 xd3 (t)
0
ud1 (t)
0
14
(70)
(71)
(72)
gdje je > 0. Uz pomoc ovakve input scaling procedure, druga upravljacka velicina
priblizava se nuli kako se zeljena trajektorija xd1 zaustavlja. Za upravljacke zakone
dane jednadzbama (65) i (72) moguce je izvesti Lyapunovljevu analizu asimptotske
stabilnosti.
15
3.3
Simulacijski rezultati
10
Referentna trajektorija
Trajektorija robota
Prepreka
9
8
7
Y, m
6
5
4
3
2
1
0
1
1
4
5
X, m
10
vrijednost
a1
b1
15
b2
10
9
8
7
Y, m
6
5
4
3
2
1
Referentna trajektorija
Trajektorija robota
Prepreka
0
1
1
4
5
X, m
10
3.3.1
Da bi smo mogli primjeniti gore navedenu metodu vodenja mobilnog robota u realnim primjenama, potrebno je normirati vrijednosti referentnih brzina dobivenih
metodom potencijalnih polja na iznose ostvarive ugradenim aktuatorima. U ovom
trenutku nije toliko bitan gornji iznos ostvarivih brzina nego nacin na koji se one
ogranicavaju.
Ako se u jednadzbu 39 uvrste ogranicenja oblika Vmax tanh(U ) vidimo da ce vrijed-
17
(73)
vrijednost
Vmaxa
0.7
Vmaxb1
0.7
Vmaxb2
0.6
10
9
Referentna trajektorija
Trajektorija robota
Prepreka
8
7
Y, m
6
5
4
3
2
1
0
1
1
4
5
X, m
18
10
Slika 13 prikazuje referentnu trajektoriju i putanju mobilnog robota nakon normiranja vrijednosti maksimalnih iznosa brzina atraktivnog i repulzivnih potencijala, a
time i ukupnu linearnu brzinu gibanja. Vidljivo je da se normiranjem ne gubi tocnost
pracenja trajektorije, sto je bilo i za ocekivati. No smanjenjem brzine produljit ce
se vrijeme trajanja simulacije.
Na slici 14 prikazane su normirane brzine i ubrzanja. Vidljivo je da su maksimalni
iznosi brzina oko 2ms1 sto je lako ostvarivo s prosjecnim elektromotorom, ali su
ubrzanja u kratkom pocetnom periodu oko 13ms2 sto bi vec moglo biti problem
ostvariti. Proracunskom modelu je potrebno oko 20 sekundi da dostigne tocku cilja.
dYref, m/s
ddXref, m/s2
1.5
0.5
0
10
20
t, s
30
40
0.5
15
15
10
10
ddYref, m/s2
dXref, m/s
5
0
5
10
20
t, s
30
40
10
20
t, s
30
40
10
20
t, s
30
40
5
0
5
19
0.6
0.5
0.5
0.4
dYref, m/s
dXref, m/s
0.2
0
20
40
0.2
60
20
2
0
2
20
40
60
40
60
t, s
ddYref, m/s2
ddXref, m/s2
t, s
40
2
0
2
60
20
t, s
t, s
vrijednost
Vmaxa
0.3
Vmaxb1
0.3
Vmaxb2
0.2
20
Matlab kodovi
4.1
U ovom odjeljku nalaze se matlab kodovi za generiranje trajektorije metodom umjetnih potencijalnih polja.
4.1.1
5.5 4];
xx0 = [0 0];
%--------------------------------------------------------------%
% numerika
options = odeset(RelTol,1e-5,AbsTol,1e-5);
[t,y] = ode45(mobilac,tT,xx0,options);
%--------------------------------------------------------------%
%ispis
figure(1)
hold on
plot(y(:,1),y(:,2), r);xlabel(X);ylabel(Y)
for z=1:length(x0)
[xx1, yy1] = circle (x0(z), y0(z), R);
plot(xx1, yy1, r)
end
Datoteka u kojoj su definirane diferencijalne jednadzbe koja se poziva iz glavne
datoteke iz funkcije ode45.
function dy = MobRobot(t,y)
dy = zeros(2,1);
% a column vector
global b xa ya x0 y0 j1 j2 j3
%--------------------------------------------------------------%
x1=y(1); y1=y(2);
ra_2=(x1-xa)^2+(y1-ya)^2;
for i=1:length(x0)
r0_2(i)=(x1-x0(i))^2 + (y1-y0(i))^2;
end
%atraktivni potencijal
dVa_dX = tanh(5*(x1-xa));
dVa_dY = tanh(5*(y1-ya));
%ukupni repulzivni potencijal
dVr_dX = 0;
dVr_dY = 0;
for i=1:length(x0)
dVr_dX = (dVr_dX - b*(x1-x0(i))*exp(-b*r0_2(i)));
22
4.1.2
Datoteka koja sadrzi funkciju s diferencijalnim jednadzbama ostaje u nepromijenjenom obliku prema odjeljku [4.1.1], dok se u glavnoj datoteci mijenja vektor
prepreka na slijedeci nacin
%...
%pozicije prepreka
x0 = [2 3 4 5
5.5 4 8 8 8 8 7 6];
4.2
Pribli
zna linearizacija
clear;
clc;
axis(equal);
L = 0.29;
%
lambda1=5;
lambda2=5;
omegan=5;
zeta=1;
k1=lambda1;
k2=lambda2+2*zeta*omegan;
k3=omegan^2+2*zeta*omegan*lambda2;
k4=omegan^2*lambda2;
KK=50;
%std_control 1 - ne pode
seni parametri
j1=6;
j2=15;
j3=5;
b=2;
% eps=0.0001;
eps=0.000001;
R=0.5;
%--------------------------------------------------------------%
tT = 0:DT:T;
%std_control 2
% x0 = [4 6 7];
% y0 = [5 4 6.5];
% xa=9;
% ya=9;
% x0 = [2 5 7];
% y0 = [2 3 2.9];
24
% xa=9;
% ya=9;
x0 = [3 4
6.6 8.3];
figure(1)
hold on
plot(y(:,1),y(:,2),b, linewidth,1.2), xlabel(X, m),...
ylabel(Y, m), axis([-1 10
-1
10])
xlabel(X)
ylabel(Y)
plot(y(:,7),y(:,10), g)
for z=1:length(x0)
[xx1, yy1] = circle (x0(z), y0(z), R);
plot(xx1, yy1, r),
end
legend(Referentna trajektorija, Trajektorija robota,...
Prepreka,4)
25
function dy = MobRobot(t,y)
dy = zeros(10,1);
% a column vector
global A w k1 k2 k3 k4 b j1 j2 j3 x0 y0 xa ya KK eps
%----- Referentna trajektorija generirana PFM ----------------%
x1=y(1); y1=y(2);
ra_2=(x1-xa)^2+(y1-ya)^2;
for i=1:length(x0)
r0_2(i)=(x1-x0(i))^2 + (y1-y0(i))^2;
end
dVa_dX = tanh((x1-xa));
dVa_dY = tanh((y1-ya));
dVr_dX = 0;
dVr_dY = 0;
for i=1:length(x0)
dVr_dX = (dVr_dX - b*(x1-x0(i))*exp(-b*r0_2(i)));
dVr_dY = (dVr_dY - b*(y1-y0(i))*exp(-b*r0_2(i)));
end
27
dy(2) = dYref;
dy(3) = ddXref;
dy(4) = ddYref;
dy(5) = dddXref;
dy(6) = dddYref;
dy(7) = U1;
dy(8) = U2;
dy(9) = y(8)*U1;
dy(10) = y(9)*U1;
% --------------------------------------------------------------%
4.3
Pribli
zna linearizacija - normirane veli
cine
clear;
clc;
axis(equal);
28
zeta=1;
k1=lambda1;
k2=lambda2+2*zeta*omegan;
k3=omegan^2+2*zeta*omegan*lambda2;
k4=omegan^2*lambda2;
KK=50;
Vmaxa=0.3;
Vmaxr1=0.3;
Vmaxr2=0.2;
j1=2;
j2=3;
j3=4;
b=2;
eps=0.01;
R=0.5;
%--------------------------------------------------------------%
tT = 0:DT:T;
x0 = [3 4
6.6 8.3];
29
figure(1)
hold on
plot(y(:,1),y(:,2),b, linewidth,1.2), xlabel(X, m), ...
ylabel(Y, m), axis([-1 11
-1
11])
xlabel(X)
ylabel(Y)
plot(y(:,7),y(:,10), g)
for z=1:length(x0)
[xx1, yy1] = circle (x0(z), y0(z), R);
plot(xx1, yy1, r),
end
legend(Referentna trajektorija, Trajektorija robota, Prepreka,4)
figure(2)
subplot(2,2,1), plot(t, y(:,3), b), xlabel(t, s), ...
ylabel(dXref, m/s),
subplot(2,2,2), plot(t, y(:,4), b), xlabel(t, s), ...
ylabel(dYref, m/s),
subplot(2,2,3), plot(t, y(:,5), b), xlabel(t, s), ...
ylabel(ddXref, m/s^2),
subplot(2,2,4), plot(t, y(:,6), b), xlabel(t, s), ...
ylabel(ddYref, m/s^2),
function dy = MobRobot(t,y)
dy = zeros(10,1);
% a column vector
30
for i=1:length(x0)
r0_2(i)=(x1-x0(i))^2 + (y1-y0(i))^2;
end
dVa_dX = (x1-xa);
dVa_dY = (y1-ya);
dVr_dX = 0;
dVr_dY = 0;
for i=1:length(x0)
dVr_dX = (dVr_dX - b*(x1-x0(i))*exp(-b*r0_2(i)));
dVr_dY = (dVr_dY - b*(y1-y0(i))*exp(-b*r0_2(i)));
end
dXref = Vmaxa*tanh(-j1*dVa_dX) - Vmaxr1*tanh(j2*dVr_dX) + ...
Vmaxr2*tanh(j3*dVr_dY);
dYref = Vmaxa*tanh(-j1*dVa_dY) - Vmaxr1*tanh(j2*dVr_dY) - ...
Vmaxr2*tanh(j3*dVr_dX);
%--------------------------------------------------------------%
%---Estimacija druge derivacije--------------------------------%
ddXref = -KK*(y(3) - dXref);
ddYref = -KK*(y(4) - dYref);
%--------------------------------------------------------------%
%---Estimacija trece derivacije--------------------------------%
dddXref = -KK*(y(5) - ddXref);
dddYref = -KK*(y(6) - ddYref);
%--------------------------------------------------------------%
%---Referentni sustav------------------------------------------%
U1_ref = dXref;
U2_ref = (dddYref*dXref^2-dddXref*dYref*dXref...
31
-3*ddYref*dXref*ddXref+3*dYref*ddXref^2)/(eps+dXref^4);
X1_ref = y(1);
X2_ref = (ddYref*dXref-dYref*ddXref)/(eps+abs(dXref)^3)*tanh(9*dXref);
X3_ref = dYref/(eps+abs(dXref))*tanh(9*dXref);
X4_ref = y(2);
%--------------------------------------------------------------%
%---Regulacijska pogreska--------------------------------------%
X1_tilda = X1_ref - y(7);
X2_tilda = X2_ref - y(8);
X3_tilda = X3_ref - y(9);
X4_tilda = X4_ref - y(10);
U1_refapp = (abs(U1_ref)+eps);
U1_tilda = -k1*X1_tilda;
U2_tilda = -k2*X2_tilda-(k3*X3_tilda/U1_refapp)*tanh(9*U1_ref)...
-(k4*X4_tilda/(eps+U1_ref^2));
U1 = U1_ref - U1_tilda;
U2 = U2_ref - U2_tilda;
%--------------------------------------------------------------%
%---Diferencijalne jednad
zbe-----------------------------------%
dy(1) = dXref;
dy(2) = dYref;
dy(3) = ddXref;
dy(4) = ddYref;
dy(5) = dddXref;
dy(6) = dddYref;
dy(7) = U1;
dy(8) = U2;
32
dy(9) = y(8)*U1;
dy(10) = y(9)*U1;
% --------------------------------------------------------------%
33
Literatura
[1] J.J. Risler A. Bellaiche, F. Jean. Robot Motion Planning and Control, volume
229, chapter Geometry of nonholonomic systems, pages 5591. Springer, Berlin
/ Heidelberg, 1998.
[2] B.Novakovic. Metode vodenja tehnickih sistema: primjena u robotici, fleksibilnim
[8] T.Surina.
Automatska regulacija. Skolska
knjiga, Zagreb, 1991.
[9] J. Borenstein Y. Koren. Potential field methods and their inherent limitations
for mobile robot navigation. In Proc. of the IEEE Int. Conf. on Robotics and
Automation, pages 13981404, 1991.
34