27
4. RAJAPLAANIMINE JA TRAJEKTOORI PLAANIMINE Rajaplaanimise ja trajektoori plaanimise üldprobleemid. Tõkked ja nende vältimine. Keskkonna tuvastamine. Rajaplaanimise strateegiad ja navigatsioon tõketega keskkonnas. Manipulaatori tööorgani liikumise plaanimine ja liikumisdiagrammid. 4.1. Rajaplaanimise- ja trajektoori plaanimise üldprobleemid Robotite loomisel on üks peamisi eesmärke saavutada inimesega võrreldav paindlikkus. Inimese tegevus on aga väga paindlik, mille jäljendamisega on robotil palju probleeme. Kahe punkti vahel liikumisel tuleb robotil lahendada liikumise juhtimise probleem, vältida kokkupõrkeid ning arvestada mitmesuguseid füüsikalisi piiranguid. Selle ülesande lahendamiseks on palju võimalusi, kuid need võimalused vajavad üldistamist. Vastupidisel juhul suureneks lahenduste arv sedavõrd, et mõistliku lahenduse leidmine (selekteerimine) muutub võimatuks. Roboti liikumise juhtimisel eristatakse rajaleidmise (path finding) või rajaplaanimise (path planning) ülesandeid ja trajektoori plaanimise ülesandeid. Trajektoor on raja osa ja trajektoori plaanimisega (trajectory planning) on tegemist juhul, kui teatud raja osa läbitakse vahepeatuseta. Robotite juhtimisülesandeid saab liigitada mitmeti. Tulenevalt probleemi olemusest saab rajaplaanimisel rakendada erinevaid strateegiaid. On olemas kahte liiki piirangud, mida rajaplaanimisel tuleb arvestada. Ühelt poolt võivad liikumist takistada tõkked, siis on tegemist tõkkepiirangutega (obstacle constraint), ja teiselt poolt võivad olla ette antud tingimused raja kohta ehk rajapiirangud (path constraint). Tõkkepiirangu meetodi puhul eeldatakse, et mõned punktid ruumis on hõivatud ning neid ei saa vabalt roboti rajaplaanimisel kasutada. Rajapiirangu puhul on tegemist kindlate punktidega, mida rada peab tingimata läbima. Rajaplaanimisel saab eristada järgmisi strateegiaid: rajapiirangutega kokkupõrgeteta vallasrajaplaanimine (off-line) ja sidus (on-line) märkrajaläbimine rajapiiranguteta positsioonjuhtimine sidustõkketuvastusega (kokkupõrgeteta) rajapiirangutega kokkupõrkevõimalik vallasrajaplaanimine ja sidus märkrajaläbimine rajapiiranguteta positsioonjuhtimine (kokkupõrkevõimalik). Need strateegiad sobivad enamiku robotitehnika ülesannete lahendamiseks. Positsioonjuhtimise all mõeldakse lülide interpoleeritud liikumist või punktist punkti liikumist. Märkrajaläbimise all mõeldakse rajal eelnevalt etteantud punktide läbimist. Roboti rajaplaanimise tüüpülesanded on järgmised: 105

4. RAJAPLAANIMINE JA TRAJEKTOORI PLAANIMINE...Hulknurgad Joonis 4.6. Robotit ümbritseva keskkonna kirjeldamine 111 Hulknurgad sobivad kujundite kirjeldamiseks ja lähendamiseks. Kui

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

  • 4. RAJAPLAANIMINE JA TRAJEKTOORI PLAANIMINE

    Rajaplaanimise ja trajektoori plaanimise üldprobleemid. Tõkked ja nende vältimine. Keskkonna tuvastamine. Rajaplaanimise strateegiad ja navigatsioon tõketega keskkonnas. Manipulaatori tööorgani liikumise plaanimine ja liikumisdiagrammid.

    4.1. Rajaplaanimise- ja trajektoori plaanimise üldprobleemid Robotite loomisel on üks peamisi eesmärke saavutada inimesega võrreldav paindlikkus. Inimese tegevus on aga väga paindlik, mille jäljendamisega on robotil palju probleeme. Kahe punkti vahel liikumisel tuleb robotil lahendada liikumise juhtimise probleem, vältida kokkupõrkeid ning arvestada mitmesuguseid füüsikalisi piiranguid. Selle ülesande lahendamiseks on palju võimalusi, kuid need võimalused vajavad üldistamist. Vastupidisel juhul suureneks lahenduste arv sedavõrd, et mõistliku lahenduse leidmine (selekteerimine) muutub võimatuks. Roboti liikumise juhtimisel eristatakse rajaleidmise (path finding) või rajaplaanimise (path planning) ülesandeid ja trajektoori plaanimise ülesandeid. Trajektoor on raja osa ja trajektoori plaanimisega (trajectory planning) on tegemist juhul, kui teatud raja osa läbitakse vahepeatuseta. Robotite juhtimisülesandeid saab liigitada mitmeti. Tulenevalt probleemi olemusest saab rajaplaanimisel rakendada erinevaid strateegiaid. On olemas kahte liiki piirangud, mida rajaplaanimisel tuleb arvestada. Ühelt poolt võivad liikumist takistada tõkked, siis on tegemist tõkkepiirangutega (obstacle constraint), ja teiselt poolt võivad olla ette antud tingimused raja kohta ehk rajapiirangud (path constraint). Tõkkepiirangu meetodi puhul eeldatakse, et mõned punktid ruumis on hõivatud ning neid ei saa vabalt roboti rajaplaanimisel kasutada. Rajapiirangu puhul on tegemist kindlate punktidega, mida rada peab tingimata läbima. Rajaplaanimisel saab eristada järgmisi strateegiaid:

    • rajapiirangutega kokkupõrgeteta vallasrajaplaanimine (off-line) ja sidus (on-line) märkrajaläbimine

    • rajapiiranguteta positsioonjuhtimine sidustõkketuvastusega (kokkupõrgeteta) • rajapiirangutega kokkupõrkevõimalik vallasrajaplaanimine ja sidus märkrajaläbimine • rajapiiranguteta positsioonjuhtimine (kokkupõrkevõimalik).

    Need strateegiad sobivad enamiku robotitehnika ülesannete lahendamiseks. Positsioonjuhtimise all mõeldakse lülide interpoleeritud liikumist või punktist punkti liikumist. Märkrajaläbimise all mõeldakse rajal eelnevalt etteantud punktide läbimist. Roboti rajaplaanimise tüüpülesanded on järgmised:

    105

  • • esemete haaramine ja vabastamine • punktist punkti liikumine • etteantud raja järgimine • liikuvate objektide järgimine • koostöö teiste robotite või liikuvate masinatega • toimejõu või -momendi tekitamine (nt tõmbamine, lükkamine, väänamine, hoidmine) • andmehõive • tööriista kasutamine.

    Roboti piiratud mehaanilised võimalused. Robotid on masinad, mille kohta kehtivad kõik masinaehituse tavapärased piirangutingimused. Tuleb arvestada lülide ja tööorgani asendi, kiiruse, kiirenduse ja tõuke liikumispiiranguid. Roboti iga liigutuse, kiirenduse, pidurduse või esemete hoidmise jaoks vajatakse energiat. Roboti olulisteks tehnilisteks näitajateks on

    • trajektoori või raja läbimise aeg • manipulaatori lülide või tööorgani liikumise kiirus • liikumiseks kasutatav energia • manipulaatori tõstevõime, rakendatav jõud või moment • tõkete lähedus.

    Roboti manipulaatori mehaanilisteks piiranguteks on

    • lülide piiratud asendid, kiirused, kiirendused ja tõuked • piirangud staatilistele ja dünaamilistele jõududele • manipulaatori kinemaatilised piirangud (sh singulaarsused) • piirangud tõketega kokkupõrke vältimiseks • reageerimisaeg juhul, kui töö toimub liikuvate tõketega keskkonnas.

    Roboti trajektoori või raja läbimise iseärasused:

    • trajektoori ruumiline mõõde ehk dimensioon (2D, 2.5D, 3D) • kokkupõrgete vältimine (funktsioon puudub, kontaktituvastus, lähedusarvutus) • manipulaatori lülide arv • teisaldatava koormuse või mobiilroboti pööramise vajadus • tööruumis liikuva takistuse olemasolu • mitme roboti töö koordineerimine (Multi Robot Coordination) • automatiseerituse tase (käsitsi või automaatne rajaplaanimine).

    Lähteinformatsiooni allikas:

    • informatsiooni allikas (eelteadmistepõhine, anduripõhine) • ümbruse (keskkonna) modelleerimine (maailma mudel).

    Juhtimismeetodid ja nende hindamine:

    • rajaplaanimise või trajektoori plaanimise strateegia (nt hierarhiline) • rajaplaanimise või trajektoori plaanimise meetod (trajektoori plaanimise algoritmid) • raja või trajektoori robotisisene esitusviis • minimeerimine (optimeerimine), optimeerimiskriteerium (hinnangufunktsioon) • piirangud (missuguseid piiranguid arvestatakse?)

    106

  • • lahendi liik (roboti baaskoordinaadistik, lülide koordinaadistik, ruumi ristkoordinaadistik, sirgliikumine, liikumine läbi vahepunktide (via points) koos pööretega, splainiga kirjeldatud trajektoor või rada).

    Rakendamisega seotud probleemide hindamine:

    • rakendamiseks kuluv aeg, roboti tüüp, programmeerimiskeel • kontrollimine, testimine (missugused on katse tulemused?).

    Rajaplaanijate optimeerimine. Kõigi nende mõjurite arvestamisel saab sõnastada klassikalise optimeerimisprobleemi. Optimeerimisülesande lahendamisel kerkib piiranguna esile ka arvuti (mikroprotsessorjuhtseadme) arvutusjõudlus. Vallastalitluses simuleerimisel pole see piirang oluline. Roboti vahetul juhtimisel tuleb aga juhtseadme piisava töökiiruse huvides juhtimisalgoritme oluliselt lihtsustada. Roboti liikumisi tuleks ühelt poolt optimeerida maksimaalse tööjõudluse seisukohalt (maksimaalne toimekiirus). Teisalt tuleks roboti liikumisi optimeerida energiatarbe seisukohalt, s.t töö tuleb teha minimaalse energiakuluga. Rajaplaanimisest saab lugeda ka veebilehelt http://claymore.engineer.gvsu.edu/~jackh/eod/mechtron/mechtron-453.html 4.2. Tõkked ja nende vältimine Roboti töökeskkonnas esinevad peaaegu alati teised seadmed, masinad, konstruktsioonid, mida üldjuhul võib lugeda tõketeks, mis muudavad roboti liikumise plaanimise tülikaks. Kui robot liigub tasandil ja tõkete mõõtmed on määratud 2 mõõtmega, siis on tegemist 2mõõtmelise tõkkega ja vastava rajaplaanimisega. Üldjuhul võib tõkkeid liigitada tõkete dimensioonide järgi.

    2D – liikumine tasandil ümber tõkke (tavaülesanne, mille jaoks lahendid enamikul juhtudel olemas)

    2,5D – liikumine ruumis üle etteantud kõrgusega tõkke (2D tavaülesande edasiarendus)

    3D – liikumine läbi tõketes olevate avade (uut liiki ülesanne, mis nõuab mitme lisatingimuse arvestamist, nagu roboti ja avade mõõtmete ja kuju vastavus, pööramine avades).

    Tõkkeid on illustreeritud joonisel 4.1.

    2D 2,5D 3D Joonis 4.1. Tõkete dimensioonid

    107

    http://claymore.engineer.gvsu.edu/%7Ejackh/eod/mechtron/mechtron-453.html

  • Tõkete vältimine 2D ja 2,5D ruumis Tõkete vältimisel on tuntud nn klaveriteisaldajate probleem ehk kuidas teisaldada suurte mõõtmetega objekti kitsastes oludes ilma klaverit maast lahti tõstmata. Ülesande lihtsustatud lahendamisel loetakse tõkked lõpmata kõrgeks, kuigi neist võib üle näha. Meetod sobib roboti manipulaatori jaoks, kui robot töötab vabas tööruumis (clear workspace) ja täidab võta ja pane (pick and place) tüüpi operatsioone. Niisugune 2D rajaleidmise (path finding) meetod annab suhteliselt kiire lahenduse. Kui tõkke kõrgus on teada, siis on tegemist 2,5D ruumiga ehk juhtumiga, mil näeme tõkkeid nurga all. On võimalik leida algoritme tõkete ületamiseks või tõketest möödumiseks. Võta ja pane tüüpi ülesannete puhul tuleb tagada, et teisaldatav ese ja manipulaatori lülid oleksid ülalpool võimaliku kokkupõrke kõrgust. Seda meetodit kasutab (eelistab) tavaliselt ka inimene. (Nt esemete tõstmine laudade kohal, selle asemel et otsida läbipääsu laudade vahel.) Tõkete vältimine 3D ruumis. Mõnikord saab 3D vaate asemel rakendada 2D vaadet ja 2D rajaleidmise meetodit. Kui tööruumis 2D vaade näitab rajaleidmise võimalust, võib see tegelikult eksisteerida ka 3D ruumis. Võimaluse kasutamine aitab vältida keerukaid 3D rajaleidmise arvutusi. Mõnikord saab liikuvat objekti kujutada kasti või silindrina ning jätta nende ümber kokkupõrgete vältimiseks vajalik vaba ruum.

    3D vaade 2D vaade Joonis 4.2. Tõkete vältimine 3D ruumis 2D vaate järgi Kokkupõrke vältimine (collision avoidance). Kokkupõrke vältimine on rajaplaanimise oluline osa. Ilma kokkupõrgete automaatse vältimiseta peab roboti töökoht (workcell) olema kokkupõrkevaba või peab operaator kõik trajektoorid eelnevalt programmeerima. Kokkupõrke lokaalne vältimine on oluline töötamisel tundmatus keskkonnas või liikumisel läbi tundmatu keskkonna. Andurid annavad rajaplaanijale tagasisidesignaale tõkete kohta. Globaalset kokkupõrgete vältimist kasutatakse juhul, kui ohutuse tagamiseks on vajalik küllalt suur vahemaa liikuva objekti ja tõkke vahel. Roboti lülide suur arv (liikuvusastmete arv), lülide erinev paiknemine (poos) ja teisaldatavate esemete erinevad kujud muudavad ülesande keerukaks. Kui manipulaatoril on 6 liikuvusastet, jõuab ta igasse ruumipunkti igas võimalikus asendis. Tehnoloogilist ülesannet saab sageli

    108

  • lihtsustada nii, et on vaja ainult 3 või 4 liikuvusastet (esemete eelneva suunistamisega). Sel juhul on rajaplaanimine lihtsam ja vähem aeganõudev.

    Algasend

    Lõppasend

    Kokkupõrge

    Algasend

    Lõppasend

    Kokkupõrge

    Algasend

    Lõppasend

    Kokkupõrke vältimine puudub Kokkupõrke lokaalne vältimine Kokkupõrke globaalne vältimine

    Joonis 4.3. Kokkupõrke vältimine Kui ümbrus on risustatud (sihtkohale ligipääs raskendatud), võib keskkonnas esemele läbipääsuks vaja minna enam kui kuut liikuvusastet. Et enamiku algoritmide keerukus suureneb astmeliselt koos liikuvusastmete arvuga, on soovitav valida roboti liikuvusastmete arv täpselt vastavalt sooritatavale ülesandele. Probleemi keerukust aitab lihtsustada liikumisraja taandamine ühele tasandile. Teisaldatavat eset võib rajaplaanimisel mitte arvestada või lugeda selle asendi muutumatuks (fikseeritud haaratsis). Kõik see aitab lihtsustada rajaplaanimist. Teiseks võimaluseks on jätta roboti ümber kokkupõrgete vältimiseks piisavalt vaba ruumi. Teisaldatava eseme (kui see on väike ja sümmeetriline) võib lugeda roboti osaks. Sellega väheneb süsteemi liikuvusastmete arv ning probleemi lahendamine lihtsustub. Paljulülilistel manipulaatoritel on palju eri konfiguratsioone. Igale robotile sobib kindel koordinaadistik, milles on rajaleidmise ülesannet optimaalne lahendada

    • ristkoordinaadistikus (s.t x-, y-, z-koordinaadistikus) • silindrilises koordinaadistikus • sfäärilises koordinaadistikus (Stanford Manipulator) • sfäärilises nurkkoordinaadistikus (liigendkäega manipulaator) • silindrilises nurkkoordinaadistikus (SCARA).

    Robotite konfiguratsioonid erinevad. Töökoht tuleb korraldada vastavalt roboti koordinaadistikule, et liikuda oleks võimalikult lihtne. Rajad ja trajektoorid peaksid olema manipulaatorile vastavad (manipulator specific). See tagab rajaleidmise ülesande kiireima lahenduse. Ülesannet võib lahendada lülide koordinaadistikus (joint space, manipulator space), ruumi ristkoordinaadistikus (cartesian space, task space) või neis mõlemas. Pööramise probleemid Robot liigub tõkete vahel ühest kohast teise kolmel eri viisil (joonis 4.4):

    • pööramata, s.t tasaparalleelselt • pööramisega diskreetsetes pöördepunktides • pideva pööramisega.

    109

  • Neist kolmest võimalusest on viimane kõige paindlikum, kuid eeldab ka täiuslikumat juhtimist. Tõkete liikumine Omaette probleem on roboti töö keskkonnas, milles on liikuvaid tõkkeid. Sõltuvalt tõkete liikumise iseloomust saab eristada järgmisi juhtumeid:

    • tõkked ei liigu • tõkete liikumine on varem plaanitud (nt konveier, teine robot) • tõkete liikumine on juhuslik (nt inimene või loom roboti töötsoonis).

    Liikumatute või plaanitud liikumisega tõkete puhul saab roboti tööd juhtida eelnevalt koostatud programmi järgi. Juhuslikult liikuvate tõkete puhul peab robotil olema teatav ümbrusetaju, mis võimaldab tõkke tuvastamisel korrigeerida tema liikumist.

    Algpunkt

    Lõpp-punkt Trajektoor

    Algpunkt

    Lõpp-punktTrajektoor

    Pöördepunkt

    Algpunkt

    Lõpp-punktTrajektoor

    Tasaparalleelne liikumine Pööramine kindlates punktides Pidev pööramine Joonis 4.4. Roboti pööramisega seotud liikumise iseärasused Robotite töö koordineerimine Robotite töötsoonid lõikuvad (kahel või enamal robotil on ühine töötsoon). Kui kaks robotit on teineteisele väga lähedal, siis peavad nad vältima ka omavahelist kokkupõrget. Kahe roboti koostöö korral on vajalik nende ühine liikumis- ja koostööstrateegia. Selleks on omakorda vajalik nende ühise olekumälu ehk olekulingi (status link) olemasolu.

    Joonis 4.5. Robotite ühine tööruum

    110

  • Teise roboti oleku tundmiseks peab olema teada ka selle rajaplaanimise strateegia determineeritud ümbruses. Vastava algoritmiga realiseeritakse esmalt liikuva takistuse rajaplaanimine ning seda arvestades roboti enda liikumine. Roboti töökeskkonna korrastamisel (juhuslikkuse kõrvaldamisel) saab vältida keerukaid koordineerimisalgoritme. Kui kahel või enamal robotil on ühine töötsoon, rakendatakse

    • liikumiste koordineerimist • ühist olekumälu • ühist rajaplaanimise strateegiat, mis arvestab teist robotit.

    Robotite koostöö (kooseksisteerimise) probleemi on eriti keerukas lahendada juhul, kui robotid on vastandlike huvidega, s.t toimub robotite võistlus. 4.3. Keskkonna tuvastamine ja modelleerimine Keskkonna- ehk ümbritseva maailma mudelid. Rajaplaanimise seisukohalt on oluline, mil viisil on koostatud keskkonna ehk ümbritseva maailma mudel (world model). Üheks eelduseks on näiteks see, et tõkked on tahked ja jäigad, mis tähendab, et kokkupõrke puhul elastseid deformatsioone ei teki. Objektide kujutamiseks kasutatakse lihtsustatud kujundeid (joonis 4.6), nt hulknurki, hulktahukaid, ellipseid, punktisülemeid, analüütiliselt kirjeldatud pindu, maatrikseid, astmelisi neliplokke Oct-trees (3D), neliruute Quad-trees (2D), konstruktiivgeomeetriat (Constructive Solid Geometry, CSG) ja tasakaalustatud nelinurki (Balanced Trees). Valitud meetod võib keelata kasutada keerukamaid kujundeid. Mõni meetod on eriti sobiv andmehõiveks andurite või CAD-süsteemide kaudu. Konstruktiivgeomeetria põhineb lihtsate kujundite asendi loogilisel kirjeldamisel ja vastaval keskkonna kirjeldamise keelel.

    Keskkond ja objekt Maatrikskirjeldus Astmeline maatriks (4,8)

    Muud ristkülikud

    Plokk

    Ava

    Liikumine

    Keskkonna kirjeldamise keel

    Hulknurgad

    Joonis 4.6. Robotit ümbritseva keskkonna kirjeldamine

    111

  • Hulknurgad sobivad kujundite kirjeldamiseks ja lähendamiseks. Kui punkt on väljaspool hulknurga ühte külge, siis on ta väljaspool kogu hulknurka. Nõgusaid hulknurki ei lubata, sest need raskendavad arvutusi. Selle asemel kasutatakse nõgusa kujundi kirjeldamiseks ülekattuvaid kumeraid hulknurki. Tõkete modelleerimiseks saab kasutada selle servadel moodustuvat näivat potentsiaalivälja ja kahemõõtmelise Gaussi funktsiooni Laplace’i operaatorit (2D Laplacian of Gaussian). Niisugusel juhul saab pildlikult rääkida navigatsioonist Mehhiko kübara (sombreero) järgi, sest Gaussi funktsiooni Laplace’i operaator kirjeldab kübarataolist ruumilist kujundit (joonis 4.7). Funktsiooni on kasutatud tõkete modelleerimiseks seoses tehisnägemise tekkega. Üldjuhul kasutatakse tõkete modelleerimiseks ka muid funktsioone.

    Joonis 4.7. Gaussi funktsiooni Laplace’i operaatori poolt kirjeldatav 3D kujund Tõkete (nurkade, servade) tuvastamiseks saab kasutada ohuväljade jaotusfunktsioonide superpositsiooni. Tipu ümber asuvate nõgude kaugus vastab sõiduki (roboti) ohutule kaugusele tõkkest möödumiseks, mis arvestab sõiduki enda laiust. Kui mitu tõket asuvad üksteise lähedal, siis nende väljad kattuvad ning moodustub ühine nõgu, mille järgi sõiduk saab ohutult navigeerida. Kübara kuju moodustub tõkke kuju järgi. Sõiduk (nt robot) valib tõketest möödumiseks ohutu kauguse, mis arvestab tema enda laiust. Tõkete ümber moodustub ohuväli. Roboti navigatsioon Gaussi funktsiooni Laplace’i operaatoriga kirjeldatud tõkete korral on joonisel 4.8 (joonise on esitanud Virginia Ülikooli teadur James Mentez Internetis).

    Joonis 4.8. Roboti navigatsioon Gaussi funktsiooni Laplace’i operaatoriga kirjeldatud tõkete puhul

    112

  • 4.4. Automaatne rajaplaanimine Raja ja trajektoori erinevus. Rada on kogu teekond algpunktist lõpp-punkti, rada koosneb rajalõikudest. Kui see lõik on pidev (seisupunktideta ja teravate nurkadeta), siis nimetatakse seda trajektooriks. Vahet teha on oluline, kui rajalõigu ehk trajektoori optimeerimine läheb vastuollu kogu raja optimeerimisega. Trajektoori plaanida on lihtsam, kuid see annab kogu raja jaoks suboptimaalse tulemuse. Tööstusrobotite tarkvara võimaldab kasutajal ehk operaatoril plaanida roboti rada ja trajektoori. See teostatakse 1) spetsiaalsete graafikaprogrammide abil (interaktiivne programmeerimine) või 2) roboti tööorgani liigutamisega mööda soovitud rada ning rajapunktide salvestamisega mällu (õpetamisega programmeerimine). Need meetodid on läbi proovitud ja töötavad, kuid on vähetõhusad (aeganõudvad), raskesti ümbersätitavad ning põhjustavad kergesti vigu. Uue raja leidmiseks tuleb robot peatada ja ümber programmeerida, mis vähendab seisaku tõttu tootmise efektiivsust. Operaator võib optimaalse lahenduse ka mitte leida. Seepärast tuleks eelistada automaatset rajaplaanimist. Infoallikal, mida rajaplaanija kasutab, on määrav tähtsus rajaplaanimise meetodi valikul. Keskkonna tuvastamine Keskkonda saab tuvastada kas enne raja läbimist või raja läbimise ajal. Seega võivad andmeteks olla teadaoleva asukohaga tõkete koordinaadid või info kontakti olemasolu kohta tõkkega. Vastavalt sellele saab eristada

    • kokkupõrke tuvastamisel põhinevaid lokaalse rajaplaanimise meetodeid (Collision Detection and Local or Trajectory Path Planners) ja

    • tuvastatud tõkete asendiinfol põhinevaid rajaplaanimise meetodeid (Obstacle Information Global Path Planners).

    Rajaplaanija saab luua mitmel viisil. Kõige ilmsem on raja vahetu plaanimine ja täitmine. Siinkohal vaadeldakse rajaplaanimise kõige üldisemaid strateegiaid. Rajaplaanijaid võib liigitada järgmiselt:

    • eelteadmisel põhinev lihtne rajaplaanija • eelteadmisel põhinev hübriidne rajaplaanija • järelteadmisel põhinev rajaplaanija • staatiline hierarhiline eel- ja järelteadmisel põhinev rajaplaanija • dünaamiline eel- ja järelteadmisel põhinev rajaplaanija • vallasprogrammeerimisega (off-line programming) rajaplaanija • sidusprogrammeerimisega (on-line programming) rajaplaanija.

    Teadmistepõhine rajaplaanimine Rajaplaanimise probleemi on lihtne lahendada, kui kogu vajalik info on varem täpselt teada. Niisugust rajaplaanimise viisi nimetatakse ka eelteadmisel põhinevaks rajaplaanimiseks ehk rajaplaanimiseks a priori. Robotite puhul võime rajaplaanimise läbi viia enne raja läbimist juhul, kui meil on teave keskkonna kohta. Siis on tegemist pimeliikumisega, mille puhul usaldatakse olemasolevat keskkonnainfot (joonis 4.9). Eelnev rajaplaanimine võimaldab

    113

  • suuremat toimekiirust, lühemat raja pikkust ja vältida kokkupõrkeid. Vajalik teave keskkonna kohta võidakse saada keskkonna eelneva mõõtmisega, videosüsteemidega, laser-skaneerimisega või CADi programmide vahendusel. Eelteadmistel põhinevat rajaplaanimist saab rakendada ka liikuvate tõkete puhul, kui tõkete liikumine on ajas ja ruumis determineeritud. Juhuslikult liikuvate (random motion) tõkete puhul seda meetodit kasutada ei saa. Eelteadmistel põhinevat rajaplaanimist saab teostada modelleerimispakettide või keerukate (high level sensors) ümbrusetaju andurite (nt laserskannerite) abil. Tavaliselt töötavad need aeglaselt ning keskkonna modelleerimine toimub vallastalitluses (off-line programmer). Siia kuuluvad ka videosüsteemid, mis tulevikus võivad olla robotite põhilised ümbrusetajuseadmed. Keskkonna ehk ümbritseva maailma mudel peab olema varem koostatud. Mudelis võib olla vigu, mis selguvad liikumise käigus. Eelteadmisel põhinev lihtne rajaplaanija Tavaliselt kasutavad rajaplaanijad keskkonnainfot ning liikumise alg- ja lõpp-punkti koordinaate (tingimusi). Algoritmilise protsessiga leitakse alg- ja lõpp-punkti vahelisel rajal terve rida vahepunkte, mis läbitakse sammhaaval. Rada saab kirjeldada diskreetsete punktide sülemiga, splainidega, rajalõikudega (segmentidega). Iga rajalõik kirjeldab roboti või selle lülide ning teisaldatava eseme asukohta. Selle kirjelduse saab esitada nii ruumi baaskoordinaadistikus, lülide koordinaadistikes kui ka tööorgani koordinaadistikus elementaarliikumiste jadana. Eelteadmisel põhinev hübriidne rajaplaanija Hübriidmeetodil rajaplaanimise puhul leitakse esimesel etapil võimalike radade sülem. Seejärel leitakse nende hulgast parim ehk optimaalne rada. See meetod on keerukam, kuid sel on potentsiaalselt suuremad võimalused kui eelmisel meetodil. Selle strateegia puhul saab kasutada tõkkeid ümbritsevaid nelinurki, hulknurki või nende eraldustasandeid, tööruumi 2D või 3D vaateid jm meetodeid.

    Sihtpunkt Rajaplaanija Liikumine

    Keskkonna-mudel

    Liikumise kontroller

    Joonis 4.9. Roboti liikumise juhtimine teadmistepõhise rajaplaanimise puhul Järelteadmisel ehk anduriinfol põhinev rajaplaanija Anduripõhise rajaplaanimise korral info enne raja läbimist puudub ja seda tuleb koguda raja läbimise ajal (joonis 4.10). Niisugust rajaplaanimist nimetatakse järelteadmusel põhinevaks

    114

  • ehk (rajaplaanimiseks a posteriori). Anduripõhine rajaplaanimine on hädavajalik, kui keskkonna muutumine ajas pole teada või robotsüsteemis tekivad liikumisvead. Anduripõhist rajaplaanimist saab kasutada järgmise rajalõigu plaanimiseks eelmise rajalõigu läbimisel kogutud info põhjal. Samuti saab juhtida robotit juhuslikult muutuvas keskkonnas või kasutada robotit tundmatu keskkonna uurimiseks. Infot saadakse erinevate anduritega, alates puuteanduritest (taktiil-) kuni videosüsteemini. Rajaplaanija kasutatav teadmus võib olla piiratud. Kui robotil puudub eelnev teave keskkonna kohta, tuleb vajalikku infot hankida roboti liikumise ajal. Rajaplaanijad kasutavad uute radade leidmiseks ning tulemuste (ka mittesoovitud tulemuste) tuvastamiseks tagasisidet. Tõkete avastamiseks ning kokkupõrgete vältimiseks kasutatakse puute- või lähedusandureid. See meetod tagab lahenduse, kui see on olemas (meetod ei arvesta tupiku olemasoluga), kuid suurema ajakulu ning pikema rajaga. Mitteregulaarselt liikuvate tõkete puhul see meetod ei sobi. Saab eristada kõrg- ja madaltaseme andureid ning neile vastavaid andmeid. Madaltaseme andmeteks on nt sündmused, kõrgtaseme andmeteks mõõtetulemid. Kõrgtaseme andurid võivad väljastada ka madaltaseme andmeid (nt videoandur võib väljastada infot sündmuste (nt kokkupõrgete) kohta.

    Sihtpunkt Rajaplaanija Liikumine Liikumise kontroller

    Tagasiside anduritelt

    Joonis 4.10. Roboti liikumise juhtimine anduripõhise rajaplaanimise puhul Kombineeritud rajaplaanijad. Täiuslikud robotid kasutavad nii eel- kui ka järelteadmust. Nad koguvad andmeid enne rajaplaanimist ning raja läbimisel kontrollivad neid andurisignaalide abil. Kahte liiki info kombineerimisega saab luua tõhusama (suurema toimekiirusega) rajaplaanija (joonis 4.11).

    Sihtpunkt Rajaplaanija

    Keskkonna-mudel

    Liikumise kontroller

    Tagasiside anduritelt

    Liikumine

    Joonis 4.11. Roboti liikumise juhtimine kombineeritud teadmus- ja anduripõhise rajaplaanimise puhul

    115

  • Staatiline hierarhiline eel- ja järelteadmisel põhinev rajaplaanija. Eelteadmiste põhjal plaanitakse ligikaudne rada, mida täpsustatakse anduritelt saadava info põhjal (joonis 4.12). Niisugune rajaplaanija suudab lahendada keerukaid rajaplaanimise ülesandeid ning tagada edu ka tundmatus keskkonnas. Nurgeline rada silutakse liikumise käigus. Dünaamiline eel- ja järelteadmusel rajaplaanija. Dünaamilised rajaplaanijad kombineerivad eelteadmisel põhinevat rajaplaanimist ja järelteadmisel põhinevat liikumise juhtimist. Eelteadmine on sageli piiratud või ebatäpne ning sellest tulenevalt on ebatäpne ka sellel põhinev rajaplaan. Kui raja läbimisel mõni anduritest tuvastab kokkupõrke (collision), siis informeeritakse sellest eelteadmisel põhinevat rajaplaanijat, kes selle info põhjal täiendab keskkonnamudelit ning arvutab uue rajaplaani. Dünaamilist rajaplaanijat iseloomustab eraldi plaanimis- ja täitmismoodulite olemasolu, kusjuures täitmismoodulid annavad tagasisidesignaali plaanimismoodulile (joonis 4.13). Keskkonnamudel ja rajaplaanija koostatakse esialgu eelteadmuse põhjal. Rajaplaanimise ja keskkonnamudeli korrigeerimine toimuvad aga liikumise ajal anduritelt saadud informatsiooni põhjal. Selline rajaplaanija on parim rajaplaanija täiuslike robotsüsteemide puhul. Mõned dünaamilised rajaplaanijad soovitavad juba rajaplaanimise ajal liikumist tõenäoliselt plaanitaval rajal, selleks et hoida kokku aega ning üle saada pika arvutusajaga seotud kitsaskohast.

    Sihtpunkt Rajaplaanija

    Keskkonna-mudel

    Liikumise kontroller

    Tagasiside anduritelt

    Trajektoori-plaanija Liikumine

    Joonis 4.12. Hierarhiline rajaplaanija

    Sihtpunkt Rajaplaanija

    Keskkonna-mudel

    Liikumise kontroller

    Tagasiside anduritelt

    Liikumine

    Tagasiside anduritelt

    Σ

    Joonis 4.13 Dünaamiline rajaplaanija Eel- ja järelteadmisel põhinevate rajaplaanijate võrdlust näeb joonisel 4.14. Eelteadmus võimaldab määrata teatud iseloomulikud punktid, mida raja läbimisel tuleb arvestada.

    116

  • Liikumise ajal anduritelt saadav info võimaldab aga korrigeerida tegelikku liikumist vastavalt tegelikele oludele ning tagada ohutu möödumise takistustest.

    Algpunkt

    Lõpp-punkt

    Algpunkt

    Lõpp-punkt

    Järelteadmusel põhinev liikumine

    Joonis 4.14. Eel- ja järelteadmusel põhineva rajaplaanimise võrdlus Sidusprogrammeerimisega rajaplaanimise meetodid on raja optimeerimise meetodid. Seejuures eristatakse: kaardistatud ruumi, potentsiaalivälja jt meetodeid. Iga meetodiga püütakse optimeerida raja mingit omadust. Optimeerida saab nii lokaalses kui ka globaalses mõistes. Lokaalne optimeerimine püüab vältida kokkupõrkeid, globaalne optimeerimine väldib liiga pikki ümbersõite takistustest. Optimeeritud lahendus leitakse hinnafunktsioonide, piirangute ning rakendatud optimeerimismeetodi abil, nt variatsioonarvutuse (calculus of variations) ja dünaamilise programmeerimise (dynamic programming) abil. Kaardistatud ruumi meetodi puhul koostatakse kõigepealt ruumi kaart, mille järgi leitakse optimaalne rada. Potentsiaalivälja meetodid (field methods) põhinevad tõketest tingitud potentsiaalse kokkupõrkeohu hindamisel spetsiaalsete funktsioonidega (vrd Mehhiko kübar). Kindel potentsiaal omistatakse ka liikumise alg ja lõpp-punktidele. Gradiendi meetod sarnaneb potentsiaalivälja meetodiga ning võimaldab määrata liikumise õige sihi niisuguses suunas, milles välja gradient on kõige suurem. 4.5. Rajaplaanimise hindamiskriteeriumid Mõnel juhul võib rajaplaanimise valitud meetod anda hiilgavaid tulemusi, kuid teisel juhul see ei toimi. Uurijad on välja pakkunud ka niisuguseid meetodeid, millest mõni võib olla praktikas proovimata. Erinevate rajaplaanimise meetodite katsetamiseks on vajalik standardimine. Järgnevalt on loetletud kriteeriume, mis on rajaplaanimisel olulised:

    • otstarve (s.t 2D mobiilrobotid või 3D manipulaatorid) • trajektoori teostatavus • lahenduse leidmise (arvutamise) aeg • raja läbimise aeg • raja pikkus

    117

  • • maksimaalsed jõud • maksimaalsed momendid • energiakulu.

    Rajaplaanimise hindamine ja testimismeetodid. Üheks keerukamaks rajaplaanimise ülesandeks on nõelasilmaprobleem. Silindriline varras (puks) tuleb maast üles võtta ja pista läbi ava (joonis 4.15). Kokku 12 erinevat liikumist. 1. Sirutada käsi silindri juurde. 2. Haarata silinder. 3. Viia silinder ava juurde. 4. Pista silinder avasse. 5. Liigutada silindrit piki ava. 6. Viia haarats teisele poole ava. 7. Tõmmata silinder avast välja. 8. Eemaldada silinder avast. 9. Viia silinder algasendi lähedale. 10. Panna silinder maha ja vabastada haaratsist. 11. Liikuda silindrist eemale. 12. Viia käsi algasendisse.

    1

    3

    2

    4 8

    9

    Joonis 4.15. Roboti rajaplaanimise hindamine nõelasilmaprobleemi lahendamise abil

    118

  • 4.6. Manipulaatori tööorgani liikumise plaanimine Manipulaatori tööorgani liikumise plaanimisel võivad esineda mitmesugused liikumispiirangud. Trajektoori etteantud alg- ja lõpp-punktide ning trajektoori kuju (nt sirgjoonelise liikumise) korral võib tekkida olukord, mil trajektoor väljub roboti töötsoonist (joonis 4.16, a). Niisugust trajektoori realiseerida pole võimalik. Samuti võib etteantud trajektoori (nt sirgjoonelise liikumise) puhul tekkida olukord, mil tõkete olemasolul või mõnel muul põhjusel tuleb lõpp-punkti jõudmiseks vahetada manipulaatori poosi (joonis 4.16, b). Ka sel juhul ei saa trajektoori realiseerida, sest pideva liikumise ajal pole poosi vahetada võimalik. Teatud ehitusega manipulaatoril võib kinemaatika pöördülesanne lahendamisel anda mitu vastust, mis tähendab, et manipulaatori tööorgan võib olla ühes ja samas asendis, kui manipulaator on samal ajal eri poosides. Manipulaatori liikumise plaanimisel tuleb arvestada ka võimalusega, et liikumise matemaatilisel kirjeldamisel võivad tekkida olukorrad, mida praktiliselt realiseerida lisatingimusi sätestamata osutub võimatuks.

    a

    Liikumine töötsoonist välja

    b

    Poosi vahetus

    c Singulaarsus

    käelaba tsentri ja telje 1 kokku-langemisel

    Telg 1

    d Pöördenurk 5. telje

    ümber on null

    6. telg on samas sihis 4. teljega

    e

    Joonis 4.16. Manipulaatori liikumispiirangud ja singulaarsused

    119

  • Singulaarsused Mõned kohad roboti tööruumis on niisugused, milles roboti manipulaatori käsi ja tööorgan võivad olla lõpmatul arvul eri poosides. Neid kohti nimetatakse singulaarsuskohtadeks (singularities). Üldiselt võttes on robotil kahte tüüpi singulaarsusi: käe ja käelaba singulaarsused (arm and wrist singularities). Roboti (nt IRB 140) käelaba singulaarsusteks on kõik käe poosid (konfiguratsioonid), mille puhul käelaba tsenter (telgede 4, 5 ja 6 lõikepunkt) langeb käe esimese lüli teljele 1 (joonis 4.16, c). Käelaba singularsusteks on käelaba poosid, mille puhul teljed 4 ja 6 on samal sirgjoonel, s.t pöördenurk telje 5 ümber võrdub nulliga (joonis 4.16, d). Erijuhul, nt robotil IRB140 ja mitmel muul robotil, on robotil veel kolmandat liiki singulaarsus. See ilmneb roboti käe poosi puhul, mil käelaba tsenter ja käe lülide 2 ja 3 pöörlemistsentrid asuvad ühel sirgjoonel (joonis 4.16, e). Singulaarsuskohad tekitavad probleemi manipulaatori kinemaatika pöördülesande lahendamisel. Pöördülesande lahendusi võib olla lõpmata palju. Mõnel juhul võivad lülide liikumise arvutuslikud kiirused või lülidele mõjuvad jõud osutuda lõpmata suureks. 4.7. Liikumisdiagrammid Liikumisdiagrammiks nimetatakse manipulaatori haaratsi või tööorgani liikumise asendi, kiiruse, kiirenduse ja tõuke ajafunktsioone. Põhimõtteliselt saab neid funktsioone matemaatiliselt kirjeldada mitmesuguste funktsioonidega. Kõige mugavam on seda teha tükati polünomiaalsete funktsioonidega ehk splainidega (spline). Manipulaatori liikumist saab kirjeldada nii ümbritseva ruumi ristkoordinaadistikus kui ka manipulaatori lülide koordinaadistikus (silindrilises, sfäärilises või nurkkoordinaadistikus). Liikumist plaanitakse esmalt ümbritseva ruumi ristkoordinaadistikus. Selles ruumis kirjeldatakse ka tööd, mida robot teeb. Seejärel teisendab roboti juhtseade plaanitud liikumise manipulaatori lülide koordinaadistikku ning realiseerib selle lülisid käitavate ajamitega. Liikumise trajektoori kirjeldamiseks sobivad polünoomid kõige enam seetõttu, et neist saab diferentseerimisega hõlpsasti leida tuletisfunktsioone. Juhul kui kogu trajektoori kirjeldatakse üheainsa ajafunktsiooniga, s.t kui eeldada, et asendi muutust ajas kirjeldab kuuppolünoom, on läbitud teepikkus ehk asend (distance), kiirus (velosity), kiirendus (acceleration) ja tõuge (jerk) kirjeldatavad järjestikuliste tuletisfunktsioonidega ( ) 332210 tctctccts +++= (4.1)

    ( ) 2321 32 tctccdtdstv ++== (4.2)

    ( ) tccdtdvta 32 62 +== (4.3)

    120

  • ( ) 36cdtdatj == (4.4)

    kus tegurid c0…c3 määravad liikumise iseloomu. Funktsioonide graafilist esitust nimetatakse liikumisdiagrammiks (joonis 4.17). Liikumisdiagramm määrab ära roboti tööorgani liikumise iseloomu. Liikumise plaanimisel lähtutakse soovitud toimekiirusest (liikumiseks kuluv aeg) ja piirangutest, nt maksimaalselt lubatud kiirusest, kiirendusest ja/või tõukest. Kiiruse piirang võib olla seotud nii tehnoloogiliste piirtalitlustingimustega kui ka inimeste ohutusega. Kiirem liikumine tähendab suuremat jõudlust, kuid ka suuremat ohtu roboti ümbruses asuvatele inimestele ja esemetele. Kiirendus määrab manipulaatori lülidele mõjuvad dünaamilised jõud. Kiirenduse valikust sõltub mootori vajalik moment ja võimsus. Tõuke piiramiseks valitakse kiirendus-diagrammiks lineaarne funktsioon. Asendi muutumist kirjeldab sel juhul kuuppolünoom (joonis 4.17). Tõukepiirangut kasutatakse sujuvat liikumist nõudvate masinate (sh inimeste veoks mõeldud masinate) puhul.

    t

    t

    0

    0

    s

    v

    0,5

    a

    0

    -

    +

    0 t

    Asend

    Kiirus

    Kiirendus

    tf

    Joonis 4.17. Liikumisdiagramm kuuppolünoomiga kirjeldatud asendi ajafunktsiooni puhul Kiirenduse tuletis ehk tõuge avaldab mõju esemetele, mille raskuskese liikumise ajal võib muutuda (nt vedelikele või paljulülilistele mehhanismidele). Tõuge põhjustab vedeliku loksumist klaasis. Tõuget tunnetab inimene nt liftiga sõitmisel. Lihtsamatel juhtudel valitakse trajektoori plaanimisel kiirusdiagrammiks kas kolmnurk või trapets (joonis 4.18). Sel juhul kirjeldab asendi muutumise ajafunktsiooni ruutpolünoomidest koostatud funktsioon. Tükati lineaarseid ja tükati polünomiaalseid funktsioone nimetatakse splainideks. Splainidega kirjeldatavaid liikumisdiagramme näeb joonisel 4.18. Vasakpoolne liikumisdiagramm vastab maksimaalse toimekiirusega liikumisele, mil kiiruse muutumist kirjeldab kolmnurkdiagramm. See tähendab liikumise alustamist maksimaalse võimaliku (lubatud) kiirendusega ning sellele järgnevat aeglustamist maksimaalse võimaliku (lubatud) aeglustusega. Sel juhul püsikiirustalitlus puudub. Parempoolsel joonisel on kiirusdiagrammiks trapets. Pärast kiirendamist omandab ajam kuni pidurdamise alguseni

    121

  • püsikiiruse. Kuna tõuke suurus pole piiratud, saab asendifunktsiooni kirjeldada teist järku ehk ruutpolünoomiga. Edasi-tagasi liikumisel toimub esmalt liikumine punktist A punkti B ning seejärel punktist B tagasi punkti A. Ühe liikumistsükli jooksul toimivad ajamis korduvad määramata suurusega tõuked (ideaalse nelinurkse kiirendusfunktsiooni puhul on tõuge lõpmatu). Niisugused edasi-tagasi liikumist kirjeldavad diagrammid on tüüpilised robotite, kraanade, tööpinkide jt masinate puhul.

    s(t)

    j(t)

    a(t)

    v(t) t

    t

    t

    t

    smax

    amax

    vmax

    0

    0

    0

    0

    s(t)

    j(t)

    a(t)

    v(t)t

    t

    t

    t

    smax

    amax

    vmax

    0

    0

    0

    0

    Joonis 4.18. Trajektoori plaanimine kolmnurkse ja trapetsikujulise kiirusdiagrammi puhul Läbitud teepikkus kahe punkti A ja B vahel smax arvutatakse valemiga

    222max )()()( ABABAB zzyyxxs −+−+−= (4.5)

    kus punktid A ja B on määratud vektoriga

    ⎥⎥⎥

    ⎢⎢⎢

    ⎡=

    A

    A

    A

    zyx

    A (4.6)

    ⎥⎥⎥

    ⎢⎢⎢

    ⎡=

    B

    B

    B

    zyx

    B

    Peale liikumise plaanimise saab võrrandite 4.5 ja 4.6 abil lahendada ka toimekiiruse maksimeerimise ülesannet tingimusel, et ajami võimsus või moment on piiratud, või energiatarbe minimeerimise ülesannet, kui toiteaku piiratud mahtuvuse juures on vaja läbida maksimaalne distants. Liikumise pidevus. Manipulaatori asend ja kiirus ei saa hetkeliselt muutuda, s.t ka läbitud teepikkuse ja kiiruse funktsioonid peavad olema pidevad. Trajektoorilõikude ühendamisel tuleb jälgida, et eelmise lõigu lõpp-punkti asend ja kiirus vastaksid järgmise lõigu alguspunkti asendile ja kiirusele. Sujuva liikumise tagamiseks lisandub veel kiirenduse pidevuse nõue, s.t

    122

  • ühenduspunktis peavad olema eelmise lõigu lõpp-punkti ja järgmise lõigu alguspunkti kiirendused võrdsed. Liikumisdiagramme saab kirjeldada ka siinus-koosinusfunktsioonidega, mille tuletised on samuti hõlpsasti leitavad. Sel juhul on kogu liikumine sujuv ning maksimaalne tõuge on alati lõpliku väärtusega (joonis 4.19). Siinus-koosinusfunktsioonidega plaanitud liikumine on ka kõige energiasäästlikum.

    ( ) ( tssts Ω−= cos22maxmax ) (4.7)

    ( ) ( tsdtdstv Ω⋅Ω⋅== sin

    2max ) (4.8)

    ( ) ( tsdtdvta ΩΩ⋅== cos

    22max ) (4.9)

    ( ) ( tsdtdatj ΩΩ−== sin

    23max ) (4.10)

    Τπ2

    =Ω (4.11)

    kus T on edasi-tagasi liikumise periood.

    0 t

    smax

    s( t )

    v( t )

    s( t ) v ( t )

    smax

    T/2

    Joonis 4.19. Siinus-koosinusfunktsioonidega kirjeldatud asendi- ja kiirusdiagrammid S-kõver. Manipulaatori tööorgani või liikurroboti sujuva liikumise tagamiseks kasutatakse ajami käivitus- ja pidurdusprotsesside määramiseks lõpliku tõukega programmeeritud kiirusdiagramme, mida nende kuju järgi nimetatakse S-kõverateks. S-kõverate (joonis 4.20) järgi ajami käivitamine ja pidurdamine on enamiku nüüdisaegsete ajamite ja sagedusmuundurite tarkvarasse sisse programmeeritud. Ajami seadistaja ülesandeks on valida parameetrite sättimisega kõvera õige kuju. Seejuures saab eristada täieliku ja osalise S-kõveraga liikumisdiagramme. Osalise S-kõvera (joonis 4.20, b) puhul on kiirustel v1...v2 kiirendus konstantne ja kiirusdiagramm lineaarne. S-kõveral põhineva kiirendusega ja aeglustusega liikumisdiagrammid on joonisel 4.21. S-kõver koosneb kahest ruutpolünoomiga kirjeldatavast kaarest S1 ja S2. Täieliku S-kõvera puhul ulatuvad mõlemad kaared omavahel kokku. Osalise S-kõvera puhul on kaared S1 ja S2 eraldatud sirglõiguga. S-kõvera järgi muutuva kiiruse korral on kiirendusfunktsioonid lineaarsed ning tõuge on lõpliku väärtusega. Asendi muutumist kirjeldab aga kuuppolünoomidest koostatud splain.

    123

  • a

    t 0

    v

    vmax 2

    tkäiv tkäiv /2

    Lineaarne kiirusfunktsioon

    S-kõver vmax

    Sätitav parameeter kii f kt i

    S1

    S2

    b

    t 0

    v

    v1

    tkäiv tkäiv /2

    Lineaarne kiirusfunktsioon

    S-kõver vmax

    S1

    v2

    S2

    Joonis 4.20. Kiirenduse S-kõver sujuva liikumise saamiseks: täielik S-kõver a ja osaline S-kõver b

    s(t)

    j(t)

    a(t)

    v(t) t

    t

    t

    t

    smax

    amax

    vmax

    0

    0

    0

    0

    Joonis 4.21. S-kõvera kujulise kiirusdiagrammiga liikumine Eespool kirjeldatud liikumisdiagrammid iseloomustavad roboti tööorgani liikumist ruumis punktist A punkti B mingis suvalises tööprotsessiga määratud sihis. Manipulaatori lülide liikumise projektsioon mingil tasandil (nt xy-tasandil) on joonisel 4.22. Tööorgani ühtlase kiirusega liikumisel võib manipulaatori lülide liikumine olla vägagi muutliku kiirusega. Selleks et robot saaks plaanitud liikumise kohaselt juhtida lülide ajameid, tuleb suvalises sihis kirjeldatud liikumine teisendada ruumi ristkoordinaadistikku. Sisuliselt tähendab see tööorgani asendipunkti liikumise kirjeldamist tema x-, y-, z-projektsioonide kaudu. Pärast seda saab roboti juhtseade lahendada manipulaatori kinemaatika pöördülesande ning leida manipulaatori lülide pöördenurgad vastavalt igale etteantud trajektoori punktile.

    124

  • o

    o

    A1

    A2L = L12

    0-x x

    y

    Joonis 4.22. Manipulaatori lülide liikumine tööorgani sirgjoonelise liikumise puhul Sirgjoonelise trajektoori asendipunkti projektsioonide ajafunktsioonide arvutamiseks tuleb kõigepealt määrata trajektoori alg- ja lõpp-punktide vaheline kaugus ruumis ning seejärel määrata trajektoori tõusutegurid. Punktidevaheline kaugus (vt 4.5)

    212

    212

    21212 )()()( zzyyxxLL −+−+−==

    Trajektoori tõusutegurid

    xyyx kxxyyk /1)/()( 1212 =−−=

    xzzx kxxzzk /1)/()( 1212 =−−=

    yxxy kyyxxk /1)/()( 1212 =−−=

    yzzy kyyzzk /1)/()( 1212 =−−= (4.12)

    zxxz kzzxxk /1)/()( 1212 =−−=

    zyyz kzzyyk /1)/()( 1212 =−−= Trajektoori asendipunkti projektsioonid arvutatakse järgmiste valemitega:

    )1(1)( 221

    zxyxe kk

    dxsignLxx++

    ⋅+= (4.13)

    )1(1)( 221

    zyxye kk

    dysignLyy++

    ⋅+= (4.14)

    )1(1)( 221 ++

    ⋅+=yzxz

    e kkdzsignLzz (4.15)

    kus L on läbitud tee, x1, y1, z1 on algasendi koordinaadid ja dx, dy, dz siirde diferentsiaalid manipulaatori tööorgani liikumisel. Läbitud tee, kiiruse ja kiirenduse sõltuvust ajast nimetatakse liikumisdiagrammiks. Seepärast võib kirjutada

    125

  • )(tsL = )(// tvdtdsdtdL == (4.16)

    )(/// 2222 tadtdvdtsddtLd === Liikumise plaanimisel võib roboti programmeerija valida eri kujuga diagrammide vahel. Kolmnurkne kiirusdiagramm tagab maksimaalse toimekiiruse, trapetsdiagramm energiasäästlikkuse ning siinusdiagramm sujuvuse. Trajektoori läbimise aeg sõltub trajektoori pikkusest, maksimaalsest kiirusest ja kiirendusest. Kolmnurkdiagrammi puhul saab kahe punkti vahelise tee läbimiseks kulunud aja arvutada lihtsalt kolmnurga kuju põhjal

    maxmax /2 ast f ⋅= (4.17) kus amax on maksimaalne kiirendus. Juhul kui kiirendus- ja pidurdusaja kestus on palju väiksem püsikiirusel liikumise ajast, on liikumise trapetsdiagramm ligikaudu ristkülikukujuline ning

    maxmax / vst f = (4.18) kus vmax on maksimaalne kiirus, mis antud juhul on ka püsikiirus. Siinuselise kiirusdiagrammi korral võrdub siirde läbimise aeg siinuse poolperioodiga ning arvutatakse etteantud siirde smax puhul valemiga

    ( ) maxmax /2/ ast f ⋅= π (4.19) Soovitud liikumisdiagrammi kirjeldamiseks on vaja avaldada läbitud tee aja funktsioonina. Kolmnurkdiagrammi korral on selleks järgmine funktsioon:

    2/)( 2max tats ⋅= kui 2/ftt <

    ])(2[)4/()( 22max ff tttats −−⋅= kui (4.20)

    2/ftt >

    Kiiruse siinusdiagrammi puhul (joonis 4.19) antakse läbitud tee ette funktsiooniga

    ( ) ( tssts Ω−= cos22maxmax ) (4.21)

    kus maxmax /2 sa=Ω Selleks et juhtida valitud seaduspärasuse järgi roboti liikumist, tuleb lahendada võrrandid (4.13…4.15), asendades neis läbitud teepikkuse L funktsiooniga s(t), mis on määratud vastavalt avaldistega (4.20) ja (4.21). Seejärel tuleb lahendada manipulaatori kinemaatika pöördülesanne ning leida ajamite seadesuurused α1s, α2s …αns.

    126

  • Trajektoori plaanimisülesannet on üldkujul otstarbekas lahendada lähenduspolünoomide abil. Seda võib teha nii manipulaatori lülide nurkkoordinaadistikus kui ka ristkoordinaadistikus. Liikumine mingist algpunktist s0 kuni lõpppunkti sf võib toimuda mööda erinevaid trajektoore (joonis 4.23), mida kõiki saab esitada polünoomina.

    tf

    sf

    s0

    0 t

    s

    Joonis 4.23. Algpunktist lõpp-punkti liikumise erinevad trajektoorid Liikumise positsioonjuhtimisel kehtivad järgmised piirangud:

    0)0( ss = (algasend)

    ff sts =)( (lõppasend) 0)0( =s& (algkiirus on null) 0)( =fts& (lõppkiirus on null)

    Neid piiranguid rahuldab vähemalt kolmandat järku polünoom

    33

    2210)( tctctccts +++= (4.22)

    mille järgi võib leida kiiruse ja kiirenduse avaldised

    ( ) 2321 32)( tctcctstv ++== & (4.23)

    ( ) ( ) tcctstvta 32 62)( +=== &&& (4.24) Piirangute (2.85) viimisega võrranditesse (4.22), (4.23) ja (4.24) saab avaldada seosed tegurite c0...c3 leidmiseks

    00 cs = 3

    32

    210 ffff tctctccs +++= (4.25) 10 c=

    2321 320 ff tctcc ++=

    Võrrandisüsteemi (2.89) lahendamisel leitakse ci avaldised

    00 sc =

    127

  • 01 =c

    )(3 022 sstc f

    f

    −= (4.26)

    )(2 033 sstc f

    f

    −−=

    Kuuppolünoomiga kirjeldatud trajektoori korral kujuneb kiirusdiagrammiks ruutparabool ning kiirendusdiagrammiks sirge (joonis 4.17). Kontuurjuhtimisel tuleb üldjuhul vaadelda liikumist kahe rajapunkti vahel eeldusel, et kiirus neis punktides ei võrdu nulliga, s.t

    ( ) 00)0( vvs ==& ( ) fff vtvts ==)(& (4.27)

    Liikumist kirjeldavad sel juhul võrrandid

    00 as = 3

    32

    210 ffff tctctccs +++= (4.28) 10 cv =

    2321 32 fff tctccv ++=

    millest

    00 sc =

    01 vc =

    fff

    ff

    vt

    vt

    sst

    c 12)(3 0022 −−−= (4.29)

    )(1)(2 02033 vvtss

    tc f

    ff

    f

    −+−−=

    Kui kontuurjuhtimise soovitud rada on antud teatud rajapunktide reana si(ti), saab seda plaanida nt tükiti kuuppolünoomide ehk splaini abil. Kiirust saab rajapunktides määrata kolmel erineval viisil:

    • kiiruse etteandmisega kasutaja poolt • kiiruse automaatvalikuga mingite heuristiliste reeglite järgi • kiiruse automaatvalikuga eeldusel, et kiirendus rajapunktides on pidev.

    Kiiruse automaatseks määramiseks rajapunktides tuleb leida suhteliselt lihtsad ning arvutis kergesti rakendatavad reeglid. Näiteks on loogiline lugeda kiirus teekonna märgi muutumisel nulliks. Kuna trajektoori tõusunurga tangens võrdub kiiruse hetkväärtusega, võib rajapunktis arvutada näiteks trajektoori lõikude tõusunurgaga tangensite keskväärtuse ning omistada selle väärtus rajapunkti kiirusele. Muidugi võib välja mõelda ka teisi heuristilisi reegleid rajapunkti kiiruse automaatseks määramiseks. Enam huvi pakub kolmas kiiruse määramise viis, mis tagab kiirenduse pidevuse ning ühtlasi ka tükiti polünomiaalse funktsiooni diferentseeritavuse rajapunktis (joonis 4.24).

    128

  • tf1 t0 tv

    vs1(t)

    s2(t)

    tf2 t

    t1 t2

    Joonis 4.24. Trajektoori lõikude ühendamine pideva kiirenduse korral Kui on antud kaks trajektoori lõiku, mida kirjeldavad kuuppolünoomid

    313

    21211101 )( tctctccts +++=

    323

    22221202 )( tctctccts +++= (4.30)

    ning soovitakse neid ühendada mingis punktis nii, et kiirendus seal oleks pidev, siis võib välja kirjutada järgmised võrrandid:

    100 cs = sest t1 = 0 3

    1132

    11211110 fffv tctctccs +++= sest t = tf1

    20asv = sest kui t1 = tv, siis t2 = 0 (4.31) sest t3 223

    222222120 fffv tctctccs +++= 2 = tf2

    110 c= sest 0)0(1 =v 2

    22322221 320 ff tctcc ++= sest 0)( 22 =ftv Kiirenduse pidevuse tagavad tingimused

    21131121121 32 ff tctccc ++=

    1131222 622 ftccc += (4.32) Võrrandite (4.31) lahendamisel tingimuste (4.32) arvestamisega leitakse kuuppolünoomide tegurid, mille korral on rajapunktis tagatud kiirenduse pidevus. Juhul kui tf = tf1 = tf2, s.t trajektoori punktid on määratud võrdsete ajaintervallide järel, siis

    010 sc = 011 =c

    20

    12 49312

    f

    fv

    tsss

    c−−

    =

    30

    13 4538

    f

    fv

    tsss

    c++−

    = (4.33)

    vsc =20

    129

  • f

    f

    tss

    c4

    33 021

    −=

    20

    22 46612

    f

    fv

    tsss

    c++−

    =

    30

    23 4358

    f

    fv

    tsss

    c−−

    =

    Trajektoori sujuvuse suurendamiseks tuleb lisaks kiirusele mõnikord ette anda ka rajapunkti kiirendus, võimalik, et ka tõuge. Sel juhul tuleb suurendada trajektoori lõike kirjeldavate polünoomide järku ning võtta kuuppolünoomide asemel kasutusele viiendat või kuuendat järku polünoomid. Mõnikord tuleb omavahel ühendada ruut- või kuupparabooliga ja lineaarfunktsiooniga kirjeldatud trajektoore (joonis 4.25).

    sh

    t

    Lineaarne trajektoor

    s0

    sf

    2. splain1. splain

    tftf - tbtf – tcthtctb t0 Joonis 4.25. Trajektoori kirjeldamine lineaarsete lõikude ja neid ühendavate ruutparaboolidega Sirgjoonelisele trajektoorile vastab ristkülikukujuline kiirusdiagramm, mis eeldab lõpmata suurt kiirendust käivitamisel ning aeglustust positsioonimisel, mis on teoreetiliselt võimatu. Praktikas võib sellele lähedaseks lugeda väga aeglase ühtlase kiirusega liikumise. Kahe ruutparabooli ühendamisel saadud trajektoor vastab kolmnurksele kiirendusdiagrammile, mis tagab etteantud kiirenduse (ka jõudude ja momentide) korral maksimaalse toimekiiruse. Kõik vahepealsed trajektoorid vastavad trapetsikujulisele kiirusdiagrammile. Igal juhtumil on antud kiirusdiagramm keskpunkti sh, th suhtes sümmeetriline. Kui trajektoori (1. splain) paraboolsele osale ja lineaarsele osale vastavad kiirused peavad ühenduspunktis b olema võrdsed, võib kirjutada

    bh

    bhb tt

    ssat−−

    = (4.34)

    kus

    130

  • 20 2

    1bb atss += (4.35)

    Arvestades, et tf = 2th, saab leida järgmise võrrandi:

    0)( 02 =−+− sstatat fbf (4.36)

    kus tf on liikumise soovitud kestus ja tb kiirendusaeg. Teades kiirendust ja kiirendusaega, leitakse

    bfbf atssatt /)]([ 02 −+= (4.37)

    Etteantud kiirenduse a ja liikumiskestuse tf korral saab leida kiirendus- ehk käivitusaja tv

    assatat

    t fffv 2)(4

    20

    22 −−−= (4.38)

    Etteantud liikumiskestuse korral aga minimaalse vajaliku kiirenduse

    20 )(4

    f

    f

    tss

    a−

    ≥ (4.39)

    Võrratusmärk viimases avaldises näitab, et väiksema kiirenduse korral pole etteantud aja vältel võimalik liikuda algpunktist lõpp-punkt.

    131