upravljanje robotom

Embed Size (px)

DESCRIPTION

j

Citation preview

  • Zavod za robotiku i automatizaciju proizvodnih sustava

    Katedra za strojarsku automatiku

    SEMINARSKI RAD IZ KOLEGIJA:

    OPCA TEORIJA SUSTAVA

    Upravljanje mobilnim robotom s prednjimzakretnim kotacima

    Nositelj kolegija: Student:

    Prof. dr. sc. Branko Novakovic Sven Savic

    Zagreb, 2008

  • Sadrzaj

    1 Uvod 2

    2 Struktura mobilnog robota 3

    2.1 Kinematicke jednadzbe . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    2.2 Ulancana forma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    3 Regulacija mobilnog robota

    u okolini s preprekama 8

    3.1 Metoda potencijalnih polja . . . . . . . . . . . . . . . . . . . . . . . . 8

    3.2 Pracenje referentne trajektorije . . . . . . . . . . . . . . . . . . . . . 11

    3.3 Simulacijski rezultati . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    3.3.1 Normiranje referentnih velicina . . . . . . . . . . . . . . . . . 17

    4 Matlab kodovi 21

    4.1 Metoda potencijalnih polja . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.1.1 Trajektorija bez lokalnih minimuma . . . . . . . . . . . . . . . 21

    4.1.2 Trajektorija s lokalnim minimumom . . . . . . . . . . . . . . . 23

    4.2 Priblizna linearizacija . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    4.3 Priblizna linearizacija - normirane velicine . . . . . . . . . . . . . . . 28

    Bibliografija 34

  • 1 Uvod

    Kod upravljanja mobilnim robotom uporabom potencijalnih polja, koriste se tri

    stupnja upravljanja. Prvo se generira trajektorija koja izbjegava repulzivne poten-

    cijale i tezi dolasku ka atraktivnom potencijalu. Zatim se ta putanja rasclanjuje

    i aproksimira ostvarivim segmentima koji zadovoljavaju ogranicenja sustava. I na

    kraju se uz pomoc direktne linearizacije podesavaju upravljacke velicine, koje rezul-

    tiraju pracenjem ostvarive putanje.

    Da bi se moglo upravljati mobilnim robotom bez mrtvog vremena, u kojem robot

    proracunava trajektoriju i upravaljcke velicine, kinematicki model robota potrebno

    je prevesti u lancanu formu.

    2

  • 2 Struktura mobilnog robota

    U ovom seminaru koristen je model robota baziran na RC monster truck modelu

    Tamiya Twin Detonator, ali je modificiran tako da ima obe zakretne osovine uprav-

    ljive servo motorima (slike 1 i 2).

    Model je pogonjen pomocu dva DC motora, ali preko zajednickog kontrolera (H-

    most) sto nam daje samo jednu upravljacku velicinu.

    Slika 1: 3D model mobilnog robota. Slika 2: Tlocrt mobilnog robota.

    Kinematicke velicine mobilnog robota prikazane su na slici 3 prema [6]. Model

    mobilnog robota sa slike 3 mozemo pojednostaviti, tako da ne gledamo posebno

    zakret svakog kotaca iako postoji razlika izmedu kutova. Zbog razloga sto su oba

    kotaca preko osovine spojena na motor koji daje kutni zakret, mozemo par kotaca

    zamijeniti s jednim kotacem, te model promatrati kao motocikl sa oba zakretna

    kotaca, prikazan na slici 4, prema [4].

    2.1 Kinematicke jednadzbe

    Ako uzmemo x y ravninu kao ravninu po kojoj se robot krece, mozemo zapisatidvije jednadzbe pozicije mobilnog robota prema [6, 7]

    x = v1 cos( + 1) (1)

    y = v1 sin( + 1) (2)

    gdje v1 oznacava linearnu brzinu mobilnog robota u x-y koordinatnoj ravnini, je

    kutni zakret mobilnog robota u odnosu na x koordinatnu os, a 1 je zakret osovine

    3

  • Slika 3: Prikaz kinematickih velicina. Slika 4: Pojednostavljeni prikaz robota.

    kotaca s obzirom na uzduznu os mobilnog robota. Slijedecu jednadzbu dobivamo iz

    zakreta mobilnog robota u x-y koordinatnoj ravnini.

    =v1l

    sin(1 2)cos 2

    (3)

    oznacava kutnu brzinu kojom se robot zakrece u x-y koordinatnoj ravnini, l je

    meduosovinski razmak izrazen u metrima, 1 i 2 su zakreti osovine kotaca. 1 je

    kut izmedu kotaca prednje osovine i uzduzne osi robota i pozitivan kut je u smjeru

    kazaljke na satu, a 2 je kut izmedu kotaca straznje osovine i uzduzne osi robota i

    pozitivan kut je u smjeru suprotnom od smjera kazaljke na satu. Nadalje imamo jos

    dvije upravljacke velicine koje predstavljaju kutne brzine zakreta prednje i zadnje

    osovine mobilnog robota.

    1 = v2 (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 ra-

    zlicite 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 odgo-

    vara kinematickom modelu automobila pa se jos naziva i car-like robot. Konfi-

    guracija robota je predstavljena pozicijom i orijentacijom tijela robota u ravnini i

    4

  • kutom zakreta kotaca.

    x = v1 cos (6)

    y = v1 sin (7)

    =v1 tan

    l(8)

    = v2 (9)

    2.2 Ulancana forma

    Postojanje kanonske forme kinematickog modela nonholonomic robota je neophodna

    za sistematican razvoj open-loop i closed-loop strategija upravljanja. Najvise upotre-

    bljavana kanonska struktura je ulancana forma. Za upravljacki sustav s dva ulaza,

    ulancana forma prikazana je jednadzbom (10) prema [6, 1].

    x1 = u1

    x2 = u2

    x3 = x2u1 (10)

    ...

    xn = xn1u1

    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 (15) sadrzi tri upravljackevelicine v1 v3, te ukoliko ga zelimo zapisati u ulancanoj formi koja sadrzi samodvije upravljacke velicine, potrebno je promatrati pojednostavljeni model prikazan

    jednadzbama (6 9). Ulancanu formu oblika (10), dobivamo na nacin da pret-postavimo da su x1 = x i x4 = y iz cega slijedi

    x1 = x (11)

    Uvrstimo li u jednadzbu (11) izraz (6) slijedi jednadzba

    u1 = v1 cos (12)

    iz koje slijedi izraz za transformaciju v1.

    v1 =u1

    cos (13)

    5

  • Izraz za x3 dobivamo na slijedeci nacin

    x4 = y (14)

    uvrstimo li u gornju jednadzbu izraz (7) i izraz za x4 prema (10), slijedi

    x3u1 = v1 sin (15)

    uz transformaciju (13) dobivamo slijedeci izraz

    x3u1 = u1sin

    cos (16)

    koji nakon sredivanja dobiva oblik

    x3 = tan (17)

    Raspisemo li totalni diferencijal dobivenog izraza (17), slijedi

    x3 = 1cos2

    (18)

    uvrstimo li izraz za x3 prema jednadzbi (10), slijedi

    x2u1 = 1cos2

    (19)

    nakon sredivanja dobivamo izraz

    x2 = 1u1 cos2

    (20)

    Uvrstavanjem jednadzbi (8) i (12) u jednadzbu (20), dobivamo slijedeci izraz

    x2 =v1 tan

    l 1v1 cos

    1cos2

    (21)

    iz kojeg nakon sredivanja slijedi izraz za x2

    x2 =tan

    l cos3 (22)

    Raspisemo li totalni diferencijal izraza (22) dobivamo izraz

    x2 =1

    l

    1cos2 cos3 + 3 cos2 sin tan cos6

    (23)nakon uvrstavanja izraza (9) i (8) u gornju jednadzbu i sredivanja, slijedi

    u2 =1

    l

    v2 1cos2 cos3

    + 1l

    3 v1 cos2 sin cos cos tan l tan cos6

    (24)6

  • daljnjim sredivanjem, slijedi

    u2 =v2

    l cos2 cos3 +3

    l2v1 tan tan2

    cos3 (25)

    nakon sto izraz svedemo na zajednicki nazivnik, dobivamo

    u2 =l v2 cos + 3 u1 tan sin2

    l2 cos2 cos4 (26)

    pomnozimo li jednadzbu s nazivnikom, slijedi

    u2 l2 cos2 cos4 = l v2 cos + 3 u1 tan sin2 (27)

    nakon sredivanja dobivamo izraz za transformaciju upravljacke velicine v2

    v2 = u2 l cos2 cos3 3 u1 sin sin2

    l cos2 (28)

    Radi preglednosti, navode se promjene koordinata (29) - (32)

    x1 = x (29)

    x2 =tan

    l cos2 (30)x3 = tan (31)

    x4 = y (32)

    i ulazne transformacije (33) - (34)

    v1 =u1

    cos (33)

    v2 = u2 l cos2 cos3 3 u1 sin sin2

    l cos2 (34)

    Iz jednadzbi (29) - (32) vidljivo je da transformacija nije definirana za orijentaciju

    robota = pi/2 kpi, k N . Promjene koordinata (29) - (32) moguce je general-izirati za nonholonomic sustave viseg reda, kao sto su roboti s N prikolica. Opcenito,

    x1 i xn koordinate moguce je uvijek odabrati kao x i y koordinate sredista osovine

    kotaca zadnje prikolice.

    7

  • 3 Regulacija mobilnog robota

    u okolini s preprekama

    Kod upravljanja mobilnim robotom koriste se tri stupnja upravljanja. Prvo se

    generira trajektorija koja izbjegava prepreke. Zatim se ta putanja rasclanjuje i

    aproksimira ostvarivim segmentima koji zadovoljavaju ogranicenja sustava. I na

    kraju se podesavaju upravljacke velicine, koje rezultiraju pracenjem ostvarive putanje.

    Da bi se moglo upravljati mobilnim robotom on-line1, kinematicki model robota

    potrebno je prevesti u ulancanu formu. Kao metodu generiranja trajektorije ko-

    risti se metoda potencijalnih polja, dok se upravljanje vrsi pribliznom linearizacijom

    sistemskih jednadzbi oko zadane trajektorije, prema [2, 3].

    3.1 Metoda potencijalnih polja

    Kod gibanja robota s n stupnjeva slobode u m dimenzionalnom kartezijevom koordi-

    natnom 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.

    Slika 5: Atraktivni potencijal. Slika 6: Repulzivni potencijal.

    1Kod on-line metode upravljanja, upravljacke velicine proracunavaju se tijekom kretanja robota

    i to za jedan korak unaprijed

    8

  • Metoda potencijalnih polja sastoji se od izmjene topologije radnog prostora rob-

    ota 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)

    Slika 7: Radni prostor robota. Slika 8: Ukupno potencijalno polje.

    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), atrak-

    tivni potencijal iznosi, prema [5]

    Ua(p) =1

    2

    [(x xG)2 + (y yG)2

    ](35)

    gdje su x, y pozicija centra mase mobilnog robota, a xG, yG pozicija cilja u fiksnom

    koordinatnom sustavu. Standardni oblik repulzivnog potencijala prikazuje se na

    slijedeci nacin

    Ur(p) = exp

    ( 1

    2

    [(x xR,j)2 + (y yR,j)2

    ])(36)

    gdje je xR,j, yR,j pozicija prepreka, j = 0, 1, . . . N gdje je N broj prepreka.

    Zeljeni zakon gibanja mobilnog robota prikazan je na slijedeci nacin

    xd = a1Uax

    +Nj=0

    (b1Ur

    x+ b2

    Ury

    )(37)

    yd = a1Uay

    +Nj=0

    (b1Ur

    y b2Ur

    x

    )(38)

    9

  • gdje je a1 pozitivna konstanta koja oznacava jakost atraktivnog potencijalnog polja,

    b1 pozitivna konstanta koja oznacava jakost repulzivnog potencijalnog polja, a b2

    pozitivna konstanta koja oznacava brzinu vrtloga oko repulzivnog potencijalnog

    polja.

    Vektorski prikaz zakona gibanja za slucaj jedne prepreke izgleda

    pd = a1pUa(p, pA) + b1pUr(p, pR) b2JpUr(p, pR) (39)

    uz

    p = [x y]T , p [

    x

    y

    ]T, J =

    [0 1

    1 0

    ](40)

    gdje je p vektor diferencijalnih operatora, a J matrica predznaka.Metodom potencijalnih polja generirana je trajektorija prikazana slikom 9 gdje

    su prepreke prikazana uz pomoc kruznih potencijala radijusa 0.5m razmjestene po

    radnom prostoru robota, a tocka cilja se nalazi na poziciji pG(9, 9).

    0 2 4 6 8 101

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    X, m

    Y, m

    Slika 9: Trajektorija generirana metodom potencijalnih polja.

    Prikazana trajektorija uspjesno izbjegava prepreke i zavrsava u tocki cilja.

    Tipicno ogranicenje metode potencijalnih polja je nastajanje prividnog lokalnog min-

    imuma u ukupnom potencijalnom polju, koje moze dovesti do prekida izvrsavanja

    10

  • algoritma planiranja putanje.

    Primjer zaglavljivanja prikazan je na slici 10 gdje je radnom polju robota iz prethodnog

    primjera dodano jos sest prepreka u L formi. Metoda izbjegavanja stvaranja lokalnog

    0 2 4 6 8 101

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    X, m

    Y, m

    Slika 10: Trajektorija generirana metodom potencijalnih polja (primjer lokalnog

    minimuma).

    minimuma, je metoda vrtloznih polja. Repulzivno djelovanje zamijenjeno je brzi-

    nom toka koja tangira konturu (prepreku) tako da je robot prisiljen zaokrenuti oko

    prepreke, sto dovodi do konvergencije algoritma planiranja putanje.

    3.2 Pracenje referentne trajektorije

    Odabrana je metoda pracenja trajektorije bazirana na teoriji standardnog linearnog

    upravljanja. Temelji se na pribliznoj linearizaciji jednadzbi sustava oko zeljene tra-

    jektorije, prema [3]. Za male perturbacije oko nekog referentnog stanja, nelinearne

    jednadzbe

    x(t) = f(x(t), u(t)) (41)

    moguce je linearizirati, ako je funkcija f(x, u) kontinuirana i diferencijabilna u okolini

    zeljene trajektorije po svakoj varijabli x i u. Oznacimo li male promjene stanja i

    11

  • 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)

    u(t) = ud(t) + u(t) (43)

    iz cega slijedi jednadzba stanja nelinearnog sustava

    xd + x(t) = f(xd(t) + x(t), ud(t) + u(t)) (44)

    Gore navedeni izraz moguce je prikazati na slijedeci nacin, s obzirom da je funkcija

    f kontinuirana i diferencijabilna po svim svojim argumentima

    x =f

    xx+

    f

    uu+ h(x, u) (45)

    gdje su parcijalne derivacije funkcije referentnog stanja i upravljanja, a h predstavlja

    clanove viseg reda. Kod malih odstupanja od referentne vrijednosti, jednadzbu (45)

    mozemo prikazati u matricnoj formi

    x = A(t)x(t) +B(t)u(t) (46)

    gdje su Jacobiani A(t) i B(t) definirani kao

    A(t) =

    f1x1

    f1x2

    f1xn

    f2x1

    f2x2

    f2xn

    ......

    . . ....

    fnx1

    fnx2

    fnxn

    , B(t) =

    f1u1

    f1u2

    f1un

    f2u1

    f2u2

    f2un

    ......

    . . ....

    fnu1

    fnu2

    fnun

    (47)Izraz (46) predstavlja linearni vremenski-varijabilni sustav, koji priblizno opisuje

    dinamiku sustava prikazanog jednadzbom (41) u okolini referentne trajektorije.

    Uz pomoc metode potencijalnih polja generirana je trajektorija oblika

    xd = xd(t), yd = yd(t), t t0 (48)

    Iz generirane trajektorije (48) i promjene koordinata (29) - (32) dobivamo jednadzbe

    stanja koje generiraju zeljenu trajektoriju u ulancanoj formi

    xd1(t) = xd(t) (49)

    xd2(t) = [yd(t)xd(t) yd(t)xd(t)]/x3d(t) (50)xd3(t) = yd(t)/xd(t) (51)

    xd4(t) = yd(t) (52)

    (53)

    12

  • i transformacije ulaza

    ud1(t) = xd(t) (54)

    ud2(t) = [...y d(t)x

    2d(t)

    ...x d(t)yd(t)xd(t) 3yd(t)xd(t)xd(t) + 3yd(t)x2d(t)]/x4d(t) (55)

    U gornjim izrazima pojavljuju se druge i trece derivacije referentnih pozicija xref

    i yref za cije estimacije su koristeni filteri drugog odnosno treceg reda prikazani

    slijedecim izrazima

    f (x) f(x+ x) f(x)x

    (56)

    f (x) f(x+ x) 2f(x) + f(xx)x2

    (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)

    Slijedi da su nelinearne jednadzbe greske

    x1 = u1 (59)

    x2 = u2 (60)

    x3 = xd2ud1 x2u1 (61)x4 = xd3ud1 x3u1 (62)

    Linearizacija oko zeljene trajektorije dovodi do slijedeceg linearnog vremenski zav-

    isnog sustava

    x =

    0 0 0 0

    0 0 0 0

    0 ud1(t) 0 0

    0 0 ud1(t) 0

    x+

    1 0

    0 1

    xd2(t) 0

    xd3(t) 0

    u = A(t)x+B(t)u (63)

    Gdje je pogreska transformacije upravljackih velicina prikazana kao linearni vremen-

    ski zavisan zakon

    u1 = k1x1 (64)

    u2 = k2x2 k3ud1

    x3 k4u2d1

    x4 (65)

    13

  • Da bi sustav bio stabilan mora biti zadovoljeno k1 > 0, a jednadzba (66) mora biti

    Hurwitzov polinomu.

    3 + k22 + k3+ k4 (66)

    Hurwitzov kriterij kazuje da je nuzan i dovoljan uvjet da svi korijeni karakteristicne

    jednadzbe imaju realne negativne dijelove, ako su svi koeficijenti ai diferencijalne

    jednadzbe i sve dijagonalne subdeterminante Hi vece od nule., prema [8].

    Raspisemo li sada subdeterminante za nas slucaj

    H1 = k2, H2 =

    k2 k41 k3 , H3 =

    k2 k4 0

    1 k3 0

    0 0 k4

    iz cega slijedi da ce sustav biti stabilan ukoliko odabrani koeficijenti zadovoljavaju

    slijedece uvjete

    H1 = k2 > 0 (67)

    H2 = k2 k3 k4 > 0 (68)H3 = H2 k4 > 0 (69)

    Odabrani parametri sustava prikazani su tablicom 1

    Tablica 1: Koeficijenti karakteristicne jednadzbe

    Varijable vrijednost

    k1 10

    k2 5

    k3 15

    k4 17

    Za takav odabir konstanti sistemska matrica A, kao sto je prikazano jednadzbom

    (70), u slucaju zatvorene petlje ima konstantne svojstvene vrijednosti s negativnim

    realnim dijelovima.

    Avl(t) =

    k1 0 0 0

    0 k2 k3/ud1(t) k4/u2d1(t)k1xd2(t) ud1(t) 0 0k1xd3(t) 0 ud1(t) 0

    (70)

    14

  • Za zakon upravljanja prikazan jednadzbama (64) i (65) ne postoji opca analiza

    stabilnosti, te se ne moze garantirati asimptotska stabilnost vremenski zavisnog

    zatvorenog sustava. Medutim, za specificne vrijednosti ud1(t) (razlicitih od nule)

    i ud2(t), moguce je koristiti rezultate na sporo promjenjivim linearnim sustavima

    kako bi se dokazala asimptotska stabilnost. Polozaj svojstvenih vrijednosti zatvorene

    petlje u otvorenoj lijevoj poluravnini moze biti odabran prema opcem principu za

    dobivanje brze konvergencije greske pracenja ka nuli uz prihvatljive napore upravl-

    janja.

    Da bismo odredili dvije realne negativne svojstvene vrijednosti 1 i 2 i dvijekompleksne svojstvene vrijednosti sa negativnim realnim dijelom, modul n i ko-

    eficijent prigusenja (0 < 1), pojacanja ki trebaju biti odabrana na slijedecinacin

    k1 = 1, k2 = 2 + 2n, k3 = 2n + 2n2, k4 =

    2n2 (71)

    Cjelokupna ulazna transformacija prikazana u ulancanoj formi je

    u = ud + u

    gdje je ud referentna velicina, a u odstupanje od referentne vrijednosti. Da bi se

    izracunala stvarna upravljacka velicina v za car-like robota, potrebno je koristiti

    ulaznu transformaciju prema jednadzbama (33) i (34). Kao rezultat dobivamo brz-

    inu gibanja robota i kutnu brzinu zakreta robota u x-y ravnini kao nelinearne zakone

    upravljanja. Za odabir druge upravljacke velicine (jednadzba 65) zahtjeva se da je

    ud1 6= 0. Vidljivo je da postavljanjem svojstvenih vrijednosti na konstantnim pozici-jama ce zahtijevati veca pojacanja kako se varijabla x1 priblizava nuli. To ogranicenje

    moguce je zaobici tako da se svojstvene vrijednosti postavljaju kao funkcije ulaza

    ud1. Na nacin

    u2 = 3|ud1|x2 32ud1x3 3|ud1|x4 (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

    Primjenom metode potencijalnih polja generirano je nekoliko razlicitih konfiguracija

    radnog prostora robota, te robot treba iz zadane pocetne pozicije do tocke cilja

    izbjegavajuci pritom prepreke. Za ne podesene parametre jakosti atraktivnog i re-

    pulzivnog potencijala (a1, b1 i b2) iz jednadzbe (39), mobilni robot ne uspijeva zaobici

    prepreku koja mu se nalazi na putanji prema tocki cilja (slika 11). Nakon nekoliko

    1 0 1 2 3 4 5 6 7 8 9 101

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    X, m

    Y, m

    Referentna trajektorijaTrajektorija robotaPrepreka

    Slika 11: Pracenje trajektorije standardnom linearizacijom - ne podesena jakost

    potencijala

    iteracija podesavanja parametara, dobiveni su slijedece vrijednosti prikazane tabli-

    com 2

    Tablica 2: Vrijednosti parametara jakosti potencijala

    Varijable vrijednost

    a1 6

    b1 15

    b2 5

    cime je dobivena trajektorija koja uspjesno izbjegava prepreke.

    16

  • Slika 12 prikazuje malo odstupanje stvarne trajektorije od referentne. U pocetnom

    trenutku orijentacija robota je u smjeru osi x, te se ne poklapa s vektorom smjera

    referentne trajektorije. Kada se putanja mobilnog robota poklopi s referentnom

    trajektorijom, nema vecih odstupanja, te se moze konstatirati da robot dobro prati

    zeljenu trajektoriju.

    1 0 1 2 3 4 5 6 7 8 9 101

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    X, m

    Y, m

    Referentna trajektorijaTrajektorija robotaPrepreka

    Slika 12: Pracenje trajektorije standardnom linearizacijom - konfiguracija 1

    3.3.1 Normiranje referentnih velicina

    Da bi smo mogli primjeniti gore navedenu metodu vodenja mobilnog robota u re-

    alnim 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

  • nosti U biti definirane samo unutar intervala Vmax

    pd = Vmaxa tanh(a1pUa(p, pA)) + Vmaxb1 tanh(b1pUr(p, pR))++ Vmaxb2 tanh(b2JpUr(p, pR)) (73)

    Postavljanjem vrijednosti koeficijenata brzina polja na iznose prikazane tablicom 3

    Tablica 3: Koeficijenti brzina polja

    Varijable vrijednost

    Vmaxa 0.7

    Vmaxb1 0.7

    Vmaxb2 0.6

    dobivamo slijedece upravljacke modele.

    1 0 1 2 3 4 5 6 7 8 9 101

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    X, m

    Y, m

    Referentna trajektorijaTrajektorija robotaPrepreka

    Slika 13: Pracenje trajektorije

    18

  • Slika 13 prikazuje referentnu trajektoriju i putanju mobilnog robota nakon normi-

    ranja 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.

    0 10 20 30 401

    0

    1

    2

    t, s

    dXre

    f, m

    /s

    0 10 20 30 400.5

    0

    0.5

    1

    1.5

    t, s

    dYre

    f, m

    /s

    0 10 20 30 405

    0

    5

    10

    15

    t, s

    ddXr

    ef, m

    /s2

    0 10 20 30 405

    0

    5

    10

    15

    t, s

    ddYr

    ef, m

    /s2

    Slika 14: Brzine i ubrzanja mobilnog robota

    19

  • Nakon nekoliko podesavanja koeficijenata, dobivamo ubrzanja od oko 6ms2 ali

    se i vrijeme simulacije produzilo na preko 40 sekundi, sto je vidljivo slikom 15.

    0 20 40 600.5

    0

    0.5

    1

    t, s

    dXre

    f, m

    /s

    0 20 40 600.2

    0

    0.2

    0.4

    0.6

    t, sdY

    ref,

    m/s

    0 20 40 602

    0

    2

    4

    6

    t, s

    ddXr

    ef, m

    /s2

    0 20 40 602

    0

    2

    4

    6

    t, s

    ddYr

    ef, m

    /s2

    Slika 15: Brzine i ubrzanja mobilnog robota

    Vrijednosti koeficijenata brzina polja prikazani su tablicom 4 Prepravljeni matlab

    Tablica 4: Koeficijenti brzina polja

    Varijable vrijednost

    Vmaxa 0.3

    Vmaxb1 0.3

    Vmaxb2 0.2

    kod nalazi se u prilogu.

    20

  • 4 Matlab kodovi

    U prilogu su sadrzani matlab kodovi koji se odnose na obradeni zadatak, te su

    pojedini odlomci referencirani u tekstu. Kodovi koji se odnose na isti problem ali

    uz neke manje izmjene, biti ce navedene samo izmjene i linija na koju se ta izmjena

    odnosi.

    4.1 Metoda potencijalnih polja

    U ovom odjeljku nalaze se matlab kodovi za generiranje trajektorije metodom um-

    jetnih potencijalnih polja.

    4.1.1 Trajektorija bez lokalnih minimuma

    Glavna datoteka u kojoj se inicijaliziraju varijable i nakon provodenja numerickog

    rjesavanja diferencijalne jednadzbe, ispis rezultata obrade.

    clear;

    clc;

    axis(equal); % set equal scale on axes per pixel

    T=40.0; %vrijeme simulacije

    DT=0.01; %korak integracije

    %--------------------------------------------------------------%

    %Globalne varijable

    global b xa ya x0 y0 j1 j2 j3

    b=2;

    R=0.5;

    xa=9;

    ya=9;

    j1=1;

    j2=5;

    j3=2;

    tT = 0:DT:T;

    %--------------------------------------------------------------%

    %pozicije prepreka

    x0 = [2 3 4 5 6 7 5.5 4];

    y0 = [2 3 1 2.5 5.5 3.5 3.5 4];

    %pocetni uvjeti

    21

  • 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

  • dVr_dY = (dVr_dY - b*(y1-y0(i))*exp(-b*r0_2(i)));

    end

    %ukupni potencijal

    dy(1) = -j1*dVa_dX - j2*dVr_dX + j3*dVr_dY;

    dy(2) = -j1*dVa_dY - j2*dVr_dY - j3*dVr_dX;

    %--------------------------------------------------------------%

    4.1.2 Trajektorija s lokalnim minimumom

    Datoteka koja sadrzi funkciju s diferencijalnim jednadzbama ostaje u nepromi-

    jenjenom obliku prema odjeljku [4.1.1], dok se u glavnoj datoteci mijenja vektor

    prepreka na slijedeci nacin

    %...

    %pozicije prepreka

    x0 = [2 3 4 5 6 7 5.5 4 8 8 8 8 7 6];

    y0 = [2 3 1 2.5 5.5 3.5 3.5 4 5 6 7 8 8 8];

    %...

    oznaka %... pokazuje da se prije i poslije navedenog koda nalazi nepromijenjeni

    ostatak koda datoteke.

    4.2 Priblizna linearizacija

    clear;

    clc;

    axis(equal); % set equal scale on axes per pixel

    T=15.0; %vrijeme simulacije

    DT=0.01; %korak integracije

    %--------------------------------------------------------------%

    %Globalne varijable

    global A w k1 k2 k3 k4 b j1 j2 j3 x0 y0 xa ya KK eps

    A = 1;

    w = pi;

    23

  • 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 podeseni 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];

    y0 = [3 1.7 5.1 9];

    xa=9;

    ya=9;

    xx0 = zeros(10, 1);

    %--------------------------------------------------------------%

    % numerika

    options = odeset(RelTol,1e-5,AbsTol,1e-5);

    [t,y] = ode45(MobRobot,tT,xx0,options);

    %--------------------------------------------------------------%

    X1_tilda = y(1) - y(7);

    X4_tilda = y(2) - y(10);

    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

    dXref = -j1*dVa_dX - j2*dVr_dX + j3*dVr_dY;

    dYref = -j1*dVa_dY - j2*dVr_dY - j3*dVr_dX;

    %--------------------------------------------------------------%

    %---Estimacija druge derivacije--------------------------------%

    ddXref = -KK*(y(3) - dXref);

    ddYref = -KK*(y(4) - dYref);

    %--------------------------------------------------------------%

    %---Estimacija trece derivacije--------------------------------%

    26

  • dddXref = -KK*(y(5) - ddXref);

    dddYref = -KK*(y(6) - ddYref);

    %--------------------------------------------------------------%

    %---Referentni sustav------------------------------------------%

    U1_ref = dXref;

    U2_ref = (dddYref*dXref^2-dddXref*dYref*dXref...

    -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)...

    *sign(dXref);

    X3_ref = dYref/(eps+abs(dXref))*sign(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)*sign(U1_ref)...

    -(k4*X4_tilda/(eps+U1_ref^2));

    U1 = U1_ref - U1_tilda;

    U2 = U2_ref - U2_tilda;

    %--------------------------------------------------------------%

    %---Diferencijalne jednadzbe-----------------------------------%

    dy(1) = dXref;

    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 Priblizna linearizacija - normirane velicine

    clear;

    clc;

    axis(equal); % set equal scale on axes per pixel

    T=50.0; %vrijeme simulacije

    DT=0.01; %korak integracije

    %--------------------------------------------------------------%

    %Globalne varijable

    global A w k1 k2 k3 k4 b j1 j2 j3 x0 y0 xa ya KK eps Vmaxa Vmaxr1 ...

    Vmaxr2

    A = 1;

    w = pi;

    L = 0.29;

    lambda1=12;

    lambda2=12;

    omegan=5;

    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];

    y0 = [3 1.7 5.1 9];

    xa=9;

    ya=9;

    xx0 = zeros(10, 1);

    %--------------------------------------------------------------%

    % numerika

    options = odeset(RelTol,1e-5,AbsTol,1e-5);

    [t,y] = ode45(MobRobot,tT,xx0,options);

    %--------------------------------------------------------------%

    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

    global A w k1 k2 k3 k4 b j1 j2 j3 x0 y0 xa ya KK eps Vmaxa Vmaxr1 ...

    Vmaxr2

    %----- Referentna trajektorija generirana PFM ----------------%

    x1=y(1); y1=y(2);

    ra_2=(x1-xa)^2+(y1-ya)^2;

    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 jednadzbe-----------------------------------%

    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

    sistemima i procesima. Skolska knjiga, Zagreb, 1990.

    [3] B.Novakovic. Regulacijski sistemi. Sveucilisna naklada d.o.o., Zagreb, 1990.

    [4] Jean-Claude Habumuremyi. Models of a wheeled robot named robudem and

    design of a state feedback controller for its posture tracking. ISMCR05, 08(10),

    November 2005.

    [5] D. Majetic B. Novakovic J. Kasac, D. Brezak. Mobile robot path planing using

    gauss potential functions and neural network. pages 287298, 2002.

    [6] A. De Luca, G. Oriolo, and C. Samson. Robot Motion Planning and Control,

    volume 229, chapter Feedback control of a nonholonomic car-like robot, pages

    171253. Springer, Berlin / Heidelberg, 1998.

    [7] Illah R. Nourbakhsh R.Siegwart. Introduction to Autonomous Mobile Robots.

    The MIT Press, Massachusetts Institute of Technology Cambridge, 2004.

    [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

    UvodStruktura mobilnog robotaKinematicke jednadbeUlancana forma

    Regulacija mobilnog robota u okolini s preprekamaMetoda potencijalnih poljaPracenje referentne trajektorijeSimulacijski rezultatiNormiranje referentnih velicina

    Matlab kodoviMetoda potencijalnih poljaTrajektorija bez lokalnih minimumaTrajektorija s lokalnim minimumom

    Priblina linearizacijaPriblina linearizacija - normirane velicine

    Bibliografija