Mitme roboti koostöö funktsionaalsuste väljatöötamine tarkvararaamistikule TeMoto

Suurus: px
Alustada lehe näitamist:

Download "Mitme roboti koostöö funktsionaalsuste väljatöötamine tarkvararaamistikule TeMoto"

Väljavõte

1 Tartu Ülikool Loodus- ja täppisteaduste valdkond Tehnoloogiainstituut Meelis Pihlap Mitme roboti koostöö funktsionaalsuste väljatöötamine tarkvararaamistikule TeMoto Bakalaureusetöö (12 EAP) Arvutitehnika eriala Juhendajad: Robootika dotsent Karl Kruusamäe Nooremteadur Robert Valner Tartu 2019

2 Resümee Robotid võimaldavad töötada eluohtlikes keskkondades või muul moel ligipääsmatutel aladel nagu näiteks kaevandustes, tulekahjude kustutamisel ja radioaktiivsetes keskkondades. Hõlbustamaks inimene-robot ja robot-robot koostöösüsteemide tarkvaraarendust on loodud robotite operatsioonisüsteemil (ROS) põhinev tarkvararaamistik TeMoto. TeMotol on vaja keskkonna esitamise funktsionaalsusi, et oleks võimalik arendada robotisüsteeme, mis on keskkonnast teadlikud. Töö eesmärgiks oli kavandada ja luua TeMoto arhitektuuris raamistik keskkonnamudelitega töötamiseks, luua funktsionaalsus keskkonnamudelite sünkroniseerimiseks TeMoto instantside vahel, pakkuda keskkonnamudel ja testida süsteemi reaalses stsenaariumis. Töö tulemusena valmis terviklik süsteem ja infrastruktuur, millega saab edukalt jagada semantilist ja topoloogilist informatsiooni mitme roboti vahel ja seda demonstreeriti heterogeense mitme roboti süsteemiga läbi viidud otsingumissiooni näitel. Implementeeritud TeMoto keskkonnamudeli raamistik paneb aluse keskkonnamudelite kasutusele TeMoto arhitektuuris, mis võimaldab TeMoto abil arendada keskkonnaga mõtestatult tegutsevaid robotsüsteeme. CERCS: T125 Automatiseerimine, robootika, control engineering, T120 Süsteemitehnoloogia, arvutitehnoloogia Märksõnad: TeMoto, ROS, robootika, mitme roboti koostöö, heterogeensed robotite süsteemid, teadmiste esitus, keskkonnamudel, topoloogiline kaardistamine, semantiline kaardistamine Abstract Multi-robot collaboration functionalities for robot software development framework TeMoto Robots enable us to operate in hazardous or otherwise unvisitable environments such as mines, fires and radioactive environments. TeMoto, which is built upon the Robotics Operating System (ROS), makes it easier to develop scalable, manageable and reliable software for robotics systems. TeMoto needs functionalities to represent the environment in 1

3 order to support development of robot systems that are aware of their surroundings. The aim of this work is to plan and design a framework for working with environment models, enable robots to synchronize the environment data, create an environment model to match the framework and test the system in a real world scenario. This was achieved by implementing data structures representing objects and rooms/spaces in the, designing an abstract interface to work with the data structures and implementing the interface to create a corresponding environment model. The work resulted in a functional system and infrastructure, which allows sharing semantic and topological data between robots, which was demonstrated in a trash collecting mission featuring a heterogeneous multi-robot system. The implemented framework lays a foundation for use of environment models in TeMoto, which allows designing robot systems that interact with the world in a meaningful way. CERCS: T125 Automation, robotics, control engineering, T120 Systems engineering, computer technology Märksõnad: TeMoto, ROS, robotics, multi-robot cooperation, heterogeneous multi-robot systems, knowledge representation, environment model, topological mapping, semantic mapping 2

4 Sisukord Resümee 1 Abstract 1 Sisukord 3 1 Sissejuhatus 5 2 Kirjanduse ülevaade Mitme roboti koostöö Teadmiste esitus robootikas Arendusplatvorm ROS Tarkvararaamistik TeMoto ( 手元 ) 9 3 Töö eesmärk ja nõuded 12 4 TeMoto keskkonnamudeli raamistik Keskkonna esitus TeMotos TeMoto keskkonnamudeli raamistiku disain TeMoto keskkonnamudeli abstraktne liides Sünkroniseerimine TeMoto keskkonnamudeli hoidla (EMR) 19 5 TeMoto keskkonnamudeli raamistiku kasutusnäide 22 6 Arutelu 25 7 Kokkuvõte 26 8 Tänuavaldused 27 8 Viited 28 9 Lisad 30 Lisa 1 Keskkonnamudeli kasutamine tarkvara ja riistvara ressursside ühendamiseks 30 Lisa 2 TeMoto keskkonnamudeli abstraktse liidese lähtekood 32 Lisa 3 Keskkonnamudeli sünkroniseerimise lähtekood 33 Lisa 4 Keskkonnamudeli haldustarkvara EMR 34 3

5 Lihtlitsents 36 1 Sissejuhatus Robotid võimaldavad töötada eluohtlikes keskkondades või muul moel ligipääsmatutel aladel nagu näiteks kaevandustes [1], päästemissioonidel [2] [3], tulekahjude kustutamisel [4] ja radioaktiivsetes keskkondades [5]. Tundmatus ja etteaimamatus keskkonnas mitme roboti kasutamine suurendab veakindlust ja võimaldab töötada efektiivsemalt kui oleks võimalik ühest robotist koosneva süsteemiga [6]. Üks valdkonna suurimaid väljakutseid on mitme roboti koostöö koordineerimine. Efektiivse mitme roboti koostöö korraldamisel on oluline tagada ühtne arusaam keskkonnast ja suhtluskanalid, mille kaudu saavad robotid vahetada informatsiooni. Vastavad suhtluskanalid ja ka lahendused mitmetele muudele robootika tüüpprobleemidele pakub vabavaraline tarkvararaamistik ROS, mis pakub tarkvara infrastruktuuri robotite vahelise suhtluse haldamiseks ja robotiplatvormist sõltumatu tarkvara loomiseks. Kuigi ROS aitab luua ühtlustatud tarkvara robotite vahel, peab mitme roboti süsteemides arhitektuuri paika panema arendaja. TeMoto on ROSil põhinev tarkvararaamistik, mis hõlbustab inimene-robot ja robot-robot koostöösüsteemide tarkvaraarendust. TeMoto pakub erinevaid tööriistu mitme roboti koostöörakenduste arendamiseks, nagu näiteks infrastruktuuri informatsiooni automaatselt sünkroniseerimiseks erinevate robotite vahel. Praeguses arendusfaasis puuduvad TeMotos keskkonna esitamise funktsionaalsused. Käesoleva bakalaureusetöö eesmärgiks on arendada tarkvararaamistiku TeMoto keskkonna esitamiseks ja mitme roboti vahel sünkroniseerimiseks vajalikke funktsionaalsusi. Töös antakse ülevaade olemasolevatest keskkonna esitamise meetoditest (peatükk 2.2), tutvustatakse tarkvararaamistikku TeMoto (peatükk 2.4) ja kirjeldatakse valminud lahendust (peatükk 4). Lisaks demonstreeritakse valminud funktsionaalsusi reaalses stsenaariumis mitme robotiga läbi viidud otsingumissiooni näitel (peatükk 5). 4

6 2 Kirjanduse ülevaade 2.1 Mitme roboti koostöö Robotid võimaldavad töötada eluohtlikes keskkondades või muul moel ligipääsmatutel aladel. Roboteid kasutatakse näiteks kaevandamisel [1], päästemissioonidel [2] [3], tulekahjude kustutamisel [4] ja radioaktiivsetes keskkondades töötamisel [5], kus enamasti on töösse üheaegselt rakendatud üks robot. Mitme erineva roboti kasutamine lisab paindlikkust meid ei piira üheainsa roboti füüsilised omadused ja suutlikkus. Näiteks tulekahju kustutamiseks võib olla otstarbekas kasutada mitut väikest ja kiiret anduritega varustatud robotit, mis annaks edasi andmeid tulekustutiga varustatud suuremale ning parema kõrgete temperatuuride taluvusega robotile [7]. Mitme roboti koostöösüsteeme on rakendatud näiteks maavärina tagajärjel hävinud varisemisohus kiriku kahjustuste hindamisel, kasutades ühest UAV-st ja ühest UGV-st koosnevat süsteemi [8]. Erinevate robotite kasutamine võimaldas saada terviklikuma ülevaate hoone kandekonstruktsioonide seisust. Levinud mitme roboti süsteemide rakendus on tuvastamis- ja jälitamismissioonid [9]. Üks levinud alamjuht on kunstigalerii probleem, mis üritab minimeerida valvurite arvu mingi teatud geomeetriaga ruumi valvamiseks, kusjuures valvurite asukoht ei muutu [9]. Pimenta jt [10] tutvustavad lahendust probleemi edasiarendusele, kus valvurid on suutelised liikuma. Kui valvurid näevad sihtmärki, siis määratakse sihtmärki jälitama lähim valvur ja ülejäänute trajektoorid arvutatakse ümber. Seema Kamath jt [11] tutvustavad lahendust mitme robotiga mitme sihtmärgi jälgimiseks. Robotid jagatakse paaridesse ja sihtmärgi asukoht tuvastatakse kahe roboti andurite kombineerimisel. Igale sihtmärgile vastab üks robotite paar, kes määratakse dünaamiliselt vastavalt robotite ja sihtmärgi asukohtadele. See lahendus oli implementeeritud tühjades tubades, võtmata arvesse tavalises keskkonnas leiduvaid esemeid, mis teevad trajektoori arvutamise keerulisemaks. 5

7 2.2 Teadmiste esitus robootikas Teadmiste esitus (ingl knowledge representation ) on uurimisvaldkond, mille eesmärgiks on võimaldada robotitel kasutada semantilist ehk tähenduslikku informatsiooni keskkonna kohta [12], [13]. Semantilise informatsiooni kasutamine roboti töös võimaldab roboti juhtimiseks kasutada inimesele loomulikke juhiseid [14]. Näiteks, kui paluda robotil tuua endale tass kohvi, siis oleks robotil vajalik teada ka mis on tass, mis on kohv, ja et mõlemat on võimalik leida köögist. Randall Davis jt [13] kirjeldavad teadmiste esitust viie põhilise rolli kaudu, mida teadmiste esitus täidab. Esiteks võimaldab teadmiste esitus teha järeldusi maailma kohta ilma maailmaga kokku puutumata. Teiseks paneb teadmiste esitus paika, mis terminite ja kontseptsioonide abil robot maailma tunnetab. Kolmandaks võimaldab teadmiste esitus teha oma teadmiste põhjal järeldusi. Neljandaks võimaldab teadmiste esitus teha efektiivsemaid arvutusi. Viiendaks on teadmiste esitus inimesele intuitiivselt mõistetav. Keskkonna informatsiooni saab kasutada ka mitme roboti koostöö korraldamiseks. Joonisel 1 on kujutatud olukorda, kus informatsiooni jagamine kahes erinevas ruumis paiknevate robotite vahel aitab leida kohvitassi. Vasakpoolne robot tahab teada kohvitassi asukohta (joonis 1-a), kuid kuna tass asub vaateväljast väljas, siis ei ole seda võimalik tuvastada. Küll aga näeb kohvitassi teine robot (joonis 1-a), kes tuvastab tassi asukoha ja teavitab sellest ka esimest robotit (joonis 1-b). 6

8 Joonis 1. Erinevates ruumides asuvad robotid jagavad informatsiooni keskkonna kohta. Pildil a) soovib vasakpoolne robot teada kohvitassi asukohta, kuid tal ei ole seda iseseisvalt võimalik tuvastada. Parempoolne robot näeb kohvitassi ja pildil b) toimub sünkroniseerimine, mille tulemusena jõuab informatsioon esimese robotini. Selline informatsiooni jagamine eeldab, et robotitel oleks ühine arusaam ümbritsevast keskkonnast. Üks moodus ühise keskkonna arusaama tagamiseks on keskkond kaardistada. Ümbritseva keskkonna kaardistamise meetodid on ajalooliselt jagunenud kaheks topoloogiline kaardistamine ja ruudustiku-põhine kaardistamine [15]. Topoloogilise kaardistamise korral on tegemist graafipõhise keskkonna esitusega, kus teada on vaid graafi tippudena esitatud punktide asukohad teineteise suhtes. Ruudustiku-põhisel kaardistamisel moodustatakse n-mõõtmeline ruudustik, mille lähtepunkti suhtes asetatakse ülejäänud punktid [15]. Viimastel aastatel on tõusnud esile lisaks kahele eelmainitud meetodile semantiline kaardistamine [16]. Semantiline ehk tähenduslik kaardistamine töötab koostöös standardsete kaardistamismeetoditega, lisades geomeetrilisele informatsioonile inimestele tähenduslikkku informatsiooni [17], mis võimaldab teha robotite juhtimist intuitiivsemaks [18] ja suurendada kaardistamise efektiivsust [19]. KnowRob-Map [20] on keskkonna mudelite ehitamise süsteem, mis ühendab ruumilist ja semantilist informatsiooni esemete kohta. Süsteemi tuumaks on andmebaas, mis sisaldab endas erinevate esemete semantilisi ja füüsilisi kirjeldusi. Süsteem võimaldab tuvastada 7

9 keskkonnas asuvaid esemeid, kategoriseerida nad vastavalt andmebaasis leiduvale informatsioonile ja teha informatsiooni põhjal järeldusi ümbruskonna kohta. Vasudevan jt artiklis [21] tutvustatakse keskkonna esitamise lahendust, kus esitatakse keskkonda objektipõhise hierarhilise kaardina. Lahenduses on ühendatud topoloogiline ja objektipõhine kaardistamine nii, et ruumide asukohad on esitatud topoloogilise kaardina ja ruumide sisu on esitatud objektide graafina. See võimaldas robotitel edukalt ruume esemete põhjal eristada ja ära tunda. Töös valminud tööriistad ei ole avalikult kättesaadavad. 2.3 Arendusplatvorm ROS ROS ehk robotite operatsioonisüsteem on avatud lähtekoodiga tarkvarateekide, konventsioonide ja tööriistade kogumik, mis võimaldab arendada robotitele hõlpsasti liidestuvat, riistvara platvormist sõltumatut ja taaskasutatavat tarkvara [22]. ROSi põhjal arendatud tarkvara põhineb erinevate iseseisvate ROSi sõlmede (ingl node ) koostööl, kus iga sõlm on iseseisev arvutiprogramm [22]. Sõlmed suhtlevad omavahel saates ROS-sõnumeid (ingl message ), mida edastatakse TCP/IP suhtlusprotokolli kasutades [23]. ROSile on omane andmekeskne lähenemine. See tähendab, et ROSi rakenduse kontekstis ei ole oluline kuidas individuaalsed sõlmed jõuavad tulemusteni, vaid ainult mis tüüpi andmeid sõlmed soovivad sisendiks ja milliseid annavad väljundiks. See võimaldab hõlpsasti sõlmi välja vahetada, sest veenduda tuleb ainult sisendandmete ja väljundandmete sobivuses. Keerulisemad ROSi süsteemid koosnevad mitmest sõlmest. Sõlmede vahelised suhtluskanalid seadistab arendaja, kasutades vastavaid sõlmede parameetreid [22]. Kuna arvukate sõlmede puhul osutuks parameetrite käsitsi määramine tülikaks, toetab ROS nn käivitusfaile (ingl launch file ). Käivitusfailid võimaldavad käivitada mitu erinevat sõlme ja panna samal ajal paika süsteemi toimimiseks vajalikud parameetrid. 8

10 2.4 Tarkvararaamistik TeMoto ( 手元 ) TeMoto on ROSil põhinev tarkvararaamistik, mis hõlbustab inimene-robot ja robot-robot koostöösüsteemide, eeskätt kaugjuhitavate robotite, tarkvaraarendust. Robotite tarkvara arenduses on olulisel kohal koodi skaleeritavus, töökindlus ja hallatavus [24]. TeMoto tarkvararaamistik annab tarkvaraarendajale vajalikud tööriistad, mis hõlbustavad kaugjuhitavate robotite tarkvara loomist pidades samaaegselt silmas eelmainitud aspekte [24]. Kuna TeMoto on ROSil põhinev süsteem, pole selle rakendamine piiritletud kindla riistvaraga. See tähendab, et üks TeMoto instants (TeMoto alamprogrammide kogum) võib hallata mitut robotit, kuid rakenduse skaleeruvuse huvides on enamasti igal robotil oma TeMoto instants. Kontseptuaalselt koosneb TeMoto alamprogrammidest ehk halduritest (ingl manager ), nende poolt hallatavatest ressurssidest (ingl resource ) ning haldureid juhtivatest toimingutest (ingl action ) [24]. Ressurss on TeMoto arhitektuuris miski, mis saadakse päringu tulemusena [24]. Näiteks võib olla ressursiks videosignaal, täitur, roboti asukoha informatsioon jne. Ressursid võivad olla kombineeritud alamressurssidest [24]. Haldurite eesmärgiks on ressursside kättesaadavuse tagamine ja taaskasutamise võimaldamine. Näiteks kui ressursipäring nõuab aktiivset videosignaali, siis halduri tööks on käivitada kaamera ja edastada vajalik informatsioon päringu algatajale. See töötab vastupidiselt standardsele ROSi töövoole, kus arendaja peaks ise valima ja üles seadma sobiva kaamera ja seda haldava ROSi sõlme, mis annaksid välja soovitud videosignaali. Seega haldurid abstraheerivad ressursse nende hankimise viisidest. Toimingud on modulaarsed käitusaegselt väljakutsutavad programmid, mis kätkevad endas arendaja poolt loodud tarkvara ja võimaldavad arendajal ressursse integreerida ressursipäringute kaudu [24]. Toimingute rakendusliides toetab loomuliku kõne liidestamist ehk toiminguid saab käivitada läbi loomuliku kõne. TeMoto tarkvararaamistik sisaldab ka loomuliku kõne toiminguteks teisendamise süsteemi, mis on asendatav TeMoto väliste lahendustega [24]. 9

11 TeMoto võimaldab arendada dünaamilisi ROSi-põhiseid süsteeme, kus ROSi sõlmesid saab käivitada käitusaegselt. ROSi sõlmede tööd ja omavahelist liidestamist haldab täielikult arendaja ise. Selliste lahenduste puhul pannakse programmi tööks vajalikud parameetrid enne käivitamist paika ja programmi töö ajal neid ei muudeta, millest tulenevalt on ROSil põhinev tarkvara käitusaegselt staatiline. Reeglina määrab arendaja parameetrid ROSi käivitusfailides, mis disainitakse kindlat eesmärki silmas pidades ja ei ole tulemusena kirjutatud skaleeruvust ja modulaarsust silmas pidades. Staatiline tarkvara piirab süsteemi paindlikkust ja kohanemisvõimet, mis on oluline süsteemi töökindluse ja ülesande täitmise edukuse seisukohast [28]. Näiteks, et saavutada staatilise süsteemiga videotagasiside liiasus, peab kõiki kaameraid hoidma üheaegselt aktiivses seisundis. 10

12 3 Töö eesmärk ja nõuded TeMoto praeguses arendusfaasis on puudu semantilise ja topoloogilise informatsiooni kogumise, kasutamise ja mitme roboti vahel sünkroniseerimise funktsionaalsused. Keskkonna esitamiseks on vaja tutvustada TeMoto süsteemi vastav keskkonnamudel, kus semantilist ja topoloogilist informatsiooni talletada, ning keskkonnamudeli kasutamist hõlbustavad funktsionaalsused. Keskkonnamudel võimaldab TeMoto raamistikku kasutades lahendada mitme roboti koostöös esinevaid probleeme, mis vajavad robotit ümbritseva keskkonna kohta semantilist või topoloogilist informatsiooni. Ühtlasi aitab keskkonnamudel leida seoseid roboti riistvara- ja tarkvararessursside vahel (vt. Lisa 1). Käesoleva bakalaureusetöö eesmärgiks on: kavandada ja luua TeMoto arhitektuuris raamistik keskkonnamudelitega töötamiseks, luua funktsionaalsus keskkonnamudelite sünkroniseerimiseks TeMoto instantside vahel, pakkuda omalt poolt nõudeid rahuldav keskkonnamudel mis ühtiks TeMoto keskkonnamudeli raamistikuga, testida süsteemi reaalses stsenaariumis. Tööle esitati järgmised nõuded: 1. Keskkonnamudeli raamistik peab kirjeldama keskkonnamudelit puuna, mille tipud ehk kirjed kirjeldavad keskkonnas paiknevaid ruume, esemeid ja nendevahelisi suhteid. 2. Keskkonnamudeli raamistik peab võimaldama erinevat tüüpi TeMoto kirjete (vt. pt. 4) haldamist, sealhulgas kirjete lisamist, lugemist ning eemaldamist. 3. TeMoto instantsid peavad omavahel keskkonnamudeleid sünkroniseerima, misläbi avalduksid ühes instantsis tehtud keskkonnamudeli muutused ka teistes TeMoto instantsides. 4. TeMoto ei tohi sõltuda konkreetsest keskonnamudeli haldusprogrammist. 11

13 4 TeMoto keskkonnamudeli raamistik Järgnevalt kirjeldatakse keskkonna esitust TeMotos, ehk kuidas esitab TeMoto informatsiooni keskkonnas leiduvate esmete ja ruumide kohta (pt 4.1). Seejärel tutvustatakse TeMoto keskkonnamudelite raamistikku, mille abil suhtleb TeMoto keskkonnamudelitega (pt 4.2), millele järgneb implementeeritud keskkonnamudeli hoidla kirjeldus (pt 4.3). 4.1 Keskkonna esitus TeMotos TeMoto arhitektuuris kirjeldatakse keskkonda puuna, mille tippudeks on keskkonnas esinevad füüsilised esemed ja ruumid, mida esitatakse erinevate TeMoto kirjetena. Kirjed hoiavad endas füüsilisi omadusi (suurus, kuju), topoloogilist informatsiooni (asukoht vanema suhtes) kui ka semantiliselt olulist informatsiooni (kirje tüüp). Keskkonna esitamisega tegeletakse TeMoto kontekstihalduri nimelises alamsüsteemis. Töö raames kirjeldati ära kolme erinevat tüüpi kirjed kaardikirje, komponendikirje ja robotikirje ja uuendati olemasolevat esemekirjet. Kõikidele kirjetele on omaseks unikaalne kirjeldav nimi ja asukoht. Kaardikirje kirjeldab ruumi, hoides endas ruumi nime, asukohta ja kaarti ennast. Komponendikirjed kirjeldavad objekte, mis on osa roboti/süsteemi riistvarast (nt veebikaamera). Komponendikirjed võimaldavad leida seoseid roboti riistvara draiverite ja vastava riistvara topoloogia vahel, mis on oluline näiteks olukorras, kus on vaja käivitada teatud ruumipiirkonda katvat kaamerat. Robotikirjed on minimalistlik esitus robotist, mis sisaldab endas informatsiooni roboteid iseloomustavate koordinaadistike kohta. See võimaldab TeMoto kontekstihalduril käivitada käitusaegselt erinevaid koordinaadistikke kasutavaid algoritme, nagu näiteks lokaliseerimisalgoritmid või esemetuvastusalgoritmid. Esemekirje oli TeMotos kirjeldatud enne käesolevat tööd ja võimaldab kirjeldada maailmas eksisteerivat füüsilist eset. Igat eset iseloomustab unikaalne nimi, eseme kuju, eseme asukoht ja metainformatsioon, mis võimaldas vastavat tüüpi esemeid maailmas tuvastada. Esemekirjete abil oli võimalik talletada informatsiooni üksikute esemete kohta ruumis ilma omavaheliste seosteta. 12

14 Kirjed on omavahel seotud vanem-laps seostega. Igal kirjel on kuni üks vanem ja piiramatu arv lapsi. Vanem-laps seosed esindavad maailmas esinevate objektide/alade omavahelisi suhteid. Näiteks võib mõelda keskkonnast, kus köögis laua peal asub kohvitass kui puustruktuurist, kus kohvitassi vanemaks on laud, mille vanemaks on omakorda köök (vt Joonis 2). Joonis 2. TeMoto keskkonna esituse näidis. K tähega märgistatud kirjed on kaardi-tüüpi kirjed, E tähega on tähistatud esemed, R tähistab robotikirjet. P tähega on tähistatud vanem-laps suhet. Selline kirjete hierarhia võimaldab lahendada erinevaid esemete omavahelisi suhteid puudutavaid praktilisi küsimusi. Vastavalt üles seatud süsteemi puhul on näiteks võimalik teha kindlaks, kas köögilaud on esemetest tühi (päring köögilaua laste kohta) või kas telekapult jäeti viimati diivanipadja alla (päring telekapuldi vanema kohta). 13

15 4.2 TeMoto keskkonnamudeli liidese ülesehitus TeMoto keskkonnamudeli raamistiku ülesehitus on kujutatud joonisel 3. Kuna TeMotos vastutab keskkonnamudelite eest kontekstihalduri alamsüsteem, siis sellest lähtuvalt on see välja toodud ka Joonisel 3. Joonis 3-a näitab tarkvara ülesehitust ühe TeMoto instantsi siseselt. Selleks, et TeMoto kontekstihaldur ja konkreetne keskkonnamudeli haldustarkvara ei sõltuks üksteisest, loodi abstraktne liides, mida pärib konkreetse keskkonnamudeli haldustarkvaraga suhtlev realiseeritud liides. TeMoto kontekstihaldur pakub funktsionaalsusi esemete ruumis jälgimiseks ja kannab hoolt ka esemete vaheliste koordinaatteisenduste publitseerimise eest. Arendaja saab neid funktsionaalsusi kasutada defineeritud ROSi-teenuste abil, mille mugavamaks kasutamiseks on defineeritud TeMoto kontekstihalduri liideses ka vastavad funktsioonid. Joonisel 3-b on näidatud, kuidas toimub keskkonnamudelite sünkroniseerimine TeMoto instantside vahel, mis on realiseeritud ROSi sõnumite abil. Põhjalikum ülevaade keskkonnamudelite sünkroniseerimise tööpõhimõttest pakutakse peatükis Joonis 3. (a) TeMoto keskkonnamudeli raamistiku ülesehitus ühes instantsis. (b) keskkonnamudelite sünkroniseerimine TeMoto instantside vahel. 14

16 4.2.1 TeMoto keskkonnamudeli abstraktne liides Kuna vastavalt nõudele 4 peab TeMoto olema konkreetsest keskkonnamudeli haldusprogrammist sõltumatu, siis sellest lähtuvalt töötati välja lahendus, kus keskkonnamudelile päringute tegemine käib läbi liidesklassi. Liides esitati abstraktse klassina, mida pärib keskkonnamudeli haldustarkvara liides (vt joonis 3-a). Liidese defineerimiseks oli kõigepealt oluline määratleda, milliseid baasfunktsionaalsusi TeMoto keskkonnamudelitelt ootab. Abstraktne klass kirjeldab ära funktsioonide signatuurid, mida kasutab TeMoto oma töös. TeMoto kutsub välja funktsioone otse abstraktse klassi viida kaudu, mis tähendab, et keskkonnamudeliks võib olla ükskõik milline mudel, mis pärib keskkonnamudeli abstraktset liidest ja implementeerib vajalikud funktsioonid. See võimaldab rakendada TeMotos erinevaid keskkonnamudeleid ja hoida TeMoto konkreetsest keskkonnamudeli haldurist sõltumatuna. Keskkonnamudeli abstraktse liidese meetodid on kirjeldatud tabelis 1 ning lähtekood on toodud välja lisas 2. Tabel 1. Funktsioonid, mille peab implementeerima TeMotoga kasutatav keskkonnamudeli haldustarkvara liides. Funktsiooni signatuur Funktsiooni kirjeldus ObjectContainer getobject ( string name); Tagastab andmebaasist nime põhjal esemekirje. (Nõue 3) MapContainer getmap ( string name); Tagastab andmebaasist nime põhjal kaardikirje. (Nõue 3) ComponentContainer getcomponent ( string name); RobotContainer getrobot ( string name); string gettypebyname (string name); MapContainer getnearestparentmap ( string name); Tagastab andmebaasist nime põhjal komponendikirje. (Nõue 3) Tagastab andmebaasist nime põhjal robotikirje. (Nõue 3) Tagastab kirje nime põhjal vastava kirje tüübi. Tagastab ruumi, kus vastava nimega kirje asub. 15

17 void updateem ( vector <ItemContainer> items_in); Lisab andmebaasi uue(d) kirje(d). (Nõue 1) void removeitem ( string name ); Eemaldab andmebaasist kirje. (Nõue 1) vector <ItemContainer> EmToVector(); Tagastab keskkonnamudeli sisu jadaks teisendatuna. (Nõue 2) void updatepose ( string name, PoseStamped newpose); Uuendab kirje asukoha informatsiooni nime põhjal Sünkroniseerimine Joonisel 4 on kirjeldatud keskkonnamudelite sünkroniseerimise algoritm (lähtekood toodud välja lisas 3). Sünkroniseerimise tulemusena tagatakse kõikidel süsteemis olevatel TeMoto instantsidel alati ühtne ja ajakohane keskkonnamudel. Sünkroniseerimine toimub kahes olukorras: kui kirjeid lisatakse/uuendatakse/eemaldatakse ja kui süsteemi lisatakse uus TeMoto instants. Kui süsteemi lisandub uus TeMoto instants, siis saadab uus instants välja päringud kõikidele teistele instantsidele, et saada neilt olemasolev informatsioon keskkonna kohta. Edaspidi toimub sünkroniseerimine siis, kui keskkonnamudelis toimub mingi muutus näiteks muutub roboti asukoht või tuvastatakse mõni uus ese. 16

18 Joonis 4. Sünkroniseerimine toimub kirjete nime ja ajatempli põhjal. Sünkroniseerimise käigus teisendatakse kõik keskkonnamudeli kirjed jadaks ja moodustatakse neist vektor, mis saadetakse ROSi sõnumi kujul kõikidele teistele töös olevatele TeMoto instantsidele (teistele robotitele). Kui TeMoto instantsini jõuab teise roboti keskkonnamudel, siis käiakse iga kirje ükshaaval läbi ja uuendatakse lokaalses keskkonnamudelis need kirjed, mille ajatempel on vanem kui sissetuleva kirje ajatempel. 17

19 4.3 TeMoto keskkonnamudeli hoidla (EMR) TeMoto kirjete puustruktuuri haldamiseks implementeeriti TeMoto keskkonnamudeli hoidla ehk Environment Model Repository (EMR) koos vastava realiseeritud liidesega (Joonis 3-a). EMRi lähtekood on toodud välja lisas 4. Joonis 5. Keskkonnamudeli hoidla koosneb kirjetest, millega on seotud last. EMR on puu kujul realiseeritud andmebaas, mille tippusid nimetatakse kirjeteks (ingl item ) ja kirjega seotud andmeid lastiks (ingl payload ). Joonisel 5 on kirjeldatud EMRi kirjete (Item) ja 18

20 lastide (PayloadEntry) klassid. EMR on implementeeritud C++ klassina EnvironmentModelRepository. Klassi põhifunktsioonideks on kirjete lisamine, uuendamine, eemaldamine ja lugemine. Kirjetele ligi pääsemiseks on kaks moodust. Esiteks hoiab iga kirje endas viita oma vanemale ja viitasid oma lastele, mis võimaldab efektiivselt pöörduda antud kirje otsese vanema (O(1)) või lapse (O(n)) poole. Teiseks hoitakse EMRis viitasid kõikidele kirjetele kasutades C++ std::map konteinerit, mille võtmeks on unikaalne kirjega seotud nimi. See võimaldab efektiivset (O (log n) [25]) pöördumist suvalise kirje poole. EMR toetab ka mitme puu hoiustamist. See on kasulik olukordades, kus mingite kirjete vahelised seosed ei ole veel täpselt määratletud. Näiteks olukorras, kus süsteemis on kaks eri ruumides robotit, kuid ei ole veel teada, kus ruumid teineteise suhtes asuvad. EMR toetab mitmelõimelisust; kõik kriitilised operatsioonid on kaitstud vastastikuse välistamise kaudu (ingl mutual exclusion ). EMRi lastid on implementeeritud abstraktse PayloadEntry klassina (Joonisel 6-a abstraktne last), mis võimaldab hoiustada lastina ükskõik millist PayloadEntry klassi pärivat objekti. Joonis 6. TeMoto kirjete abstraheerimine. Isend (c) esitatakse TeMoto kirjena (b), mida hoitakse klassimalli põhjal genereeritud lastis, mis realiseerib abstraktse lasti (a) funktsionaalsused. 19

21 Lastide sisu on rakendus-spetsiifiline, ainsad nõuded, mida EMRi tasemel lastidelt nõutakse, on nime ja tüübi olemasolu. Nime järgi toimub kirje poole pöördumine ja tüübi järgi teatakse, millise PayloadEntry klassi alamklassiga on tegu. TeMoto kirjete hoidmiseks implementeeriti klassimall ROSPayload, mis suudab hoida endas ükskõik millist TeMoto kirjet ja pakub nende haldamiseks kasulikke funktsionaalsusi nagu asendi uuendamine ja muutmisaja jälgimine. 20

22 5 TeMoto keskkonnamudeli raamistiku kasutusnäide Käesolevas töös valminud TeMoto keskkonnamudeli raamistiku demonstreerimiseks sai püstitatud mitme roboti koostööd rakendav näidisülesanne, mis hõlmab endas semantilise ja topoloogilise informatsiooni kogumist ja rakendamist. Missiooni stsenaariumiks on efektiivne prügikoristus milles osales kolm robotit kaks luurerobotit ja üks manipulaatoriga tööline (Joonis 7-a). Käsklusi jagas sülearvutiga varustatud operaator. Luurerobotite ülesandeks oli navigeerida eelnevalt kaardistatud keskkonnas ja tuvastada LR-märgistega märgitud esemeid, mis on töölise jaoks olulised. Antud stsenaariumis olid olulisteks objektideks näidisprügi ja prügikast (Joonis 7-b). a) b) Joonis 7. Demonstratsioonis osales kaks luurerobotit ja üks manipulaatoriga tööline (a). Ülesandeks oli leida prügi ja prügikast (b) ning viia prügi prügikasti. Töölise ülesandeks on: 1. Oodata, kuni luuremeeskond leiab olulised objektid (Joonis 8-b), 2. Liikuda saadud informatsiooni põhjal näidisprügini ning võtta see haardesse (Joonis 8-c). 3. Liikuda prügikasti juurde. 4. Visata näidisprügi prügikasti (Joonis 8-d). 21

23 a) b) c) d) Joonis 8. Demonstratsiooni käik. (a) robotite algasend, (b) huvipakkuvad objektid on leitud, (c) prügi on üles korjatud (d) prügi on viidud prügikasti Demonstratsioonis teevad koostööd neli TeMoto instantsi Operaator, tööline ja kaks luurerobotit. Robotitele jagatakse ülesandeid käitusaegselt TeMoto NLP ( ingl Natural Language Processing) liidese kaudu. Operaator annab robotitele järgnevad käsud: 1. Operator, read the hallway map 2. Everybody, read the configurations 22

24 3. Everybody, track your location 4. Scouts, find the garbage 5. Worker, initialize visual navigation Iga käsk käivitab robotitel TeMoto toimingu, mis tegeleb vastava ülesande lahendamisega. Esimese käsuga loetakse mälust keskkonda kujutav kaart, tehakse robotitele vastaval ROS-rubriigil nähtavaks ja lisatakse kaart ruumina keskkonnamudelisse. Teine käsk käivitab robotite riistvara draiverid ja tutvustab robotid keskkonnamudelisse. Kolmanda käsuga käivitatakse igal robotil TeMoto toru (riist- ja tarkvarakomponentide jada, kus iga komponent suunab oma väljundi järgnevale komponendile), mille tulemusena algab lokaliseerimine (toru ülesehitusega sügavuskaamera punktipilve töötleja roboti lokaliseerija ). Lokaliseerimise käigus uuendatakse ka robotite asukohti keskkonnamudelis. Neljas käsk tutvustab luurerobotitele teada olevate objektide nimistu ja alustab otsinguid. Viies käsk käivitab keskkonna visualiseerimise tööriistad ja valmistab töölise navigeerimiseks ette. Demonstratsioonis on ühendatud topoloogiline, ruudustikupõhine ja semantiline kaardistamine. 23

25 6 Arutelu Töö tulemusena valmis keskkonnamudeli raamistik, millega saab TeMotos esitada semantilist ja topoloogilist informatsiooni ja sünkroniseerida seda mitme roboti vahel. Selle jaoks defineeriti erinevad TeMoto kirjed, mille abil on võimalik kujutada maailma ja luua käitusaegselt seoseid kirjete vahel. Implementeeriti abstraktne liides, mille kaudu on võimalik kasutada TeMotos erinevaid keskkonnamudelite implementatsioone ilma, et TeMoto sõltuks ühestki konkreetsest lahendusest. Realiseeriti funktsionaalsused TeMoto arhitektuuris, mis võimaldavad TeMoto toimingute kaudu keskkonnamudelit kasutada. Süsteemi testiti reaalses stsenaariumis, kus juhiti TeMoto abil heterogeenset mitme roboti süsteemi. Antud arenguetapis kajastub semantiline informatsioon erinevate TeMoto kirjete tüüpidena. Iga keskkonnamudelis olev ese/ruum on täpselt ühte tüüpi ese, ruum, komponent või robot. Tüüpe on võimalik juurde defineerida, kuid praegu ei saa üks ese olla mitut tüüpi. Mitme tüübi tugi ühel esemel oleks kasulik näiteks külmkapi esitamisel ühest küljest konkreetsete mõõtmetega objekt, aga teisest küljest ruum, mille sees on omakorda esemed. Tulevikus võiks süsteem toetada keerulisemaid tüüpe ja seoseid tüüpide vahel, mis võimaldaks keerukamaid otsustamisprotseduure ja päringuid. Praeguses seisus on TeMoto keskkonnamudeli liides ja implementatsioon kirjutatud samasse ROSi pakki kui TeMoto kontekstihaldur. Tulevikus võiks need olla teineteisest eraldatud ja dünaamiliselt lingitud, et oleks võimalik keskkonnamudeli haldurit käitusaegselt välja vahetada. ROSi sõnumite kasutamine kirjete implementeerimiseks võimaldab lahendada mugavalt keskkonnamudelite sünkroniseerimist erinevate TeMoto instantside vahel, kuid seab ka teatud piirangud. Nimelt ei toeta ROSi sõnumid C++ polümorfiat ega klassimalle, mis võimaldaksid kirjeldada kirjetega tehtavaid operatsioone üldisemal kujul. See avaldab tugevat mõju süsteemi skaleeruvusele. Tulevikus, kui soovida kasutada rohkem kirjete tüüpe, tuleks leida lahendus, mis võimaldaks kirjetega üldisemal kujul manipuleerida. 24

26 7 Kokkuvõte Mitme roboti süsteemid võimaldavad lahendada ülesandeid efektiivsemalt ja paindlikumalt kui ühe roboti süsteemid. Mitme roboti süsteemides on olulisel kohal veakindlus ja liiasus, mille tagab ROSil põhinev tarkvararaamistik TeMoto. Oluline tööriist mitme roboti koostöö koordineerimisel on informatsioon ümbritseva keskkonna kohta. Käesoleva töö raames töötati välja funktsionaalsused keskkonnamudelite kasutamiseks ja robotite vahel jagamiseks tarkvararaamistikus TeMoto. Töö tulemusena valmis TeMoto keskkonnamudeli raamistik, mis koosneb TeMoto keskkonna esitusest ja TeMoto keskkonnamudeli liidesest. Ühtlasi loodi keskkonnamudeli liidesele vastav keskkonnamudeli haldustarkvara. Valminud süsteemi demonstreeriti otsingumissiooni kontekstis, kus tegid koostööd erinevate suutlikkustega robotid. 25

27 8 Tänuavaldused Eestkätt soovin tänada oma juhendajaid Karl Kruusamäe ja Robert Valner, kelle tugi ja hea nõu innustas, inspireeris ja julgustas terve õppeaasta vältel. Teiseks tänan robotondi tiimi Renno Raudmäe, Veiko Vunder ja Madis Kaspar Nigol, kes võimaldasid kasutada demonstratsiooni jaoks oma suurepärast robotiplatvormi ja olid alati hea nõuga valmis. Viimaseks tänaksin Tartu Ülikooli Tehnoloogiainstituuti, mis lahendab ära kõik mured alates tasuta kohvist ja lõpetades ruuterite hankimisega. Allkiri: 26

28 9 Viited [1] Robotics in Mining SpringerLink. [Online]. Available: [2] Cognition-enabled Framework for Mixed Human-Robot Rescue Teams - IEEE Conference Publication. Available: [3] Disaster Robotics SpringerLink. [Online]. Available: [Accessed: 22-Apr-2019]. [4] The Use of Robotics in Firefighting. [Online]. Available: [Accessed: 22-Apr-2019]. [5] Towards robotic decommissioning of legacy nuclear plant: Results of human-factors experiments with tele-robotic manipulation, and a discussion of challenges and approaches for decommissioning - IEEE Conference Publication. [Online]. Available: [Accessed: 22-Apr-2019]. [6] P. Gonzalez-de-Santos et al., Fleets of robots for environmentally-safe pest control in agriculture, Precis. Agric., vol. 18, no. 4, pp , Aug [7] A cooperative UAV/UGV platform for wildfire detection and fighting - IEEE Conference Publication. [Online]. Available: [Accessed: 14-May-2019]. [8] G. M. Kruijff et al., Rescue robots at earthquake-hit Mirandola, Italy: A field report, in 2012 IEEE International Symposium on Safety, Security, and Rescue Robotics (SSRR), 2012, pp [9] C. Robin and S. Lacroix, Multi-robot target detection and tracking: taxonomy and survey, Auton. Robots, vol. 40, no. 4, pp , Apr [10] L. C. A. Pimenta et al., Simultaneous Coverage and Tracking (SCAT) of Moving Targets with Robot Networks, in Algorithmic Foundation of Robotics VIII: Selected Contributions of the Eight International Workshop on the Algorithmic Foundations of Robotics, G. S. Chirikjian, H. Choset, M. Morales, and T. Murphey, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010, pp [11] S. Kamath, E. Meisner, and V. Isler, Triangulation Based Multi Target Tracking with Mobile Sensor Networks, in Proceedings 2007 IEEE International Conference on Robotics and Automation, 2007, pp [12] A. G. Cohn, F. Giunchiglia, and B. Selman, Principles of Knowledge Representation and Reasoning: Proceedings of the Seventh International Conference (KR2000), Breckenridge, Colorado, April Morgan Kaufmann Publishers, [13] R. Davis, H. Shrobe, and P. Szolovits, What Is a Knowledge Representation?, AI Mag., vol. 14, no. 1, pp , Mar [14] J. Fasola and M. J. Mataric, Using semantic fields to model dynamic spatial relations in a robot architecture for natural language instruction of service robots, in 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2013, pp [15] S. Thrun, Learning metric-topological maps for indoor mobile robot navigation, Artif. Intell., vol. 99, no. 1, pp , Feb

29 [16] Semantic mapping for mobile robotics tasks: A survey, Robot. Auton. Syst., vol. 66, pp , Apr [17] A. Pronobis and P. Jensfelt, Large-scale semantic mapping and reasoning with heterogeneous modalities, in 2012 IEEE International Conference on Robotics and Automation, 2012, pp [18] Conceptual spatial representations for indoor mobile robots - ScienceDirect. [Online]. Available: [Accessed: 07-May-2019]. [19] Speeding-up multi-robot exploration by considering semantic place information - IEEE Conference Publication. [Online]. Available: [Accessed: 14-May-2019]. [20] M. Tenorth, L. Kunze, D. Jain, and M. Beetz, KNOWROB-MAP - knowledge-linked semantic object maps, in th IEEE-RAS International Conference on Humanoid Robots, Nashville, TN, USA, 2010, pp [21] S. Vasudevan, S. Gächter, V. Nguyen, and R. Siegwart, Cognitive maps for mobile robots an object based approach, Robot. Auton. Syst., vol. 55, no. 5, pp , May [22] Programming Robots with ROS: A Practical Introduction to the Robot Operating... - Morgan Quigley, Brian Gerkey, William D. Smart - Google Books. [23] ROS: an open-source Robot Operating System. [Online]. Available: om/+ros+operating+system&hl=en&as_sdt=0,5. [Accessed: 16-May-2019]. [24] ETIS - TeMoto 2.0: Source Agnostic Command-to-Task Architecture Enabling Increased Autonomy in Remote Systems. [Online]. Available: 9. [Accessed: 18-May-2019]. [25] std::map::operator[] - cppreference.com. [Online]. Available: [Accessed: 23-Apr-2019]. 28

30 10 Lisad Lisa 1 Keskkonnamudeli kasutamine tarkvara ja riistvara ressursside ühendamiseks Järgnev kood kasutab keskkonnamudelit, et moodustada ühendusi riistvara (komponendid) ja keskkonnamudeli kirjete vahel. if (list_components_client_.call(list_components_srvmsg)) / Start finding liks between EMR items and Component Manager components. Link is created if EMR item name is equal to component name component_info_msgs_ = list_components_srvmsg.response.component_infos; for ( const auto & ci : component_info_msgs_) if (eri->hasitem(ci.component_name) &&!c_em_reg->haslink(ci.component_name)) TEMOTO_INFO_STREAM( "Linking component: " << ci.component_name); c_em_reg->addlink(ci, ci.component_name); else if (!eri->hasitem(ci.component_name) && c_em_reg->haslink(ci.component_name)) TEMOTO_INFO_STREAM( "Un-linking component: " << ci.component_name); c_em_reg->removelink(ci.component_name); 29

31 Lisa 2 TeMoto keskkonnamudeli abstraktse liidese lähtekood #ifndef TEMOTO_ENV_MODEL_INTERFACE_H #define TEMOTO_ENV_MODEL_INTERFACE_H #include "temoto_context_manager/context_manager_containers.h" #include <ros/ros.h> namespace temoto_context_manager Abstract class to highlight which functionalities class EnvModelInterface public : Get the type of EM item by std::string virtual std :: string gettypebyname ( const std :: string & name) = 0; // C++ does not support templated virtual classes :( Get an object type ObjectContainer virtual ObjectContainer getobject ( const std :: string & name) = 0; Get a map type MapContainer virtual MapContainer getmap ( const std :: string & name) = 0; Get a Component type ComponentContainer virtual ComponentContainer getcomponent ( const std :: string & name) = 0; Get a Robot type RobotContainer virtual RobotContainer getrobot ( const std :: string & name) = 0; Get first parent item of type name 30

32 @return MapContainer virtual MapContainer getnearestparentmap ( const std :: string & name) = 0; Get first parent item of type ObjectContainer virtual ObjectContainer getnearestparentobject ( const std :: string & name) = 0; Get first parent item of type ComponentContainer virtual ComponentContainer getnearestparentcomponent ( const std :: string & name) = 0; Get first parent item of type RobotContainer virtual RobotContainer getnearestparentrobot ( const std :: string & name) = 0; Check if the EM has an item with this false virtual bool hasitem ( const std :: string & name) = 0; Remove an name virtual void removeitem ( const std :: string & name) = 0; Update the EMR structure with new std::vector<temoto_context_manager::itemcontainer> that could not be added virtual std :: vector <ItemContainer> updateem( const std :: vector <ItemContainer> & items_to_add, bool update_time= false ) = 0; virtual std :: vector <ItemContainer> updateem( const ItemContainer & item_to_add, bool update_time= false ) = 0; Save the EM state as a temoto_context_manager::itemcontainer std::vector<temoto_context_manager::itemcontainer> virtual std :: vector <ItemContainer> EmToVector() = 0; Update pose of EM item 31

33 @tparam newpose virtual void updatepose ( const std :: string & name, const geometry_msgs::posestamped& newpose) = 0; ; // namespace emr_ros_interface #endif 32

34 Lisa 3 Keskkonnamudeli sünkroniseerimise lähtekood / EMR synchronization callback void ContextManager::emSyncCb( const temoto_core::configsync& msg, const Items& payload) if (msg.action == temoto_core::rmp::sync_action::request_config) advertiseemr(); return ; // Add or update objects if (msg.action == temoto_core::rmp::sync_action::advertise_config) TEMOTO_DEBUG( "Received a payload." ); updateem(payload, true ); Items ContextManager::updateEm( const Items& items_to_add, bool from_other_manager, bool update_time) // Keep track of failed add/update attempts std :: vector <ItemContainer> failed_items = em_interface->updateem(items_to_add, update_time); // If this object was added by its own namespace, then advertise this config to other managers if (!from_other_manager) TEMOTO_INFO( "Advertising EMR to other namespaces." ); advertiseem(); return failed_items; std :: vector <temoto_context_manager::itemcontainer> EmrRosInterface::updateEm( const std :: vector <temoto_context_manager::itemcontainer>& items_to_add, bool update_time) std ::lock_guard< std ::mutex> lock(emr_iface_mutex); // Keep track of failed add/update attempts std :: vector <temoto_context_manager::itemcontainer> failed_items; for ( const auto & item_container : items_to_add) if (item_container.type == emr_containers::object) // Deserialize into an temoto_context_manager::objectcontainer object and add to EMR temoto_context_manager::objectcontainer oc = temoto_core::deserializerosmsg<temoto_context_manager::objectcontainer>(item_container.serialized_co ntainer); if (!addorupdateemritem(oc, emr_containers::object, item_container.maintainer, update_time)) failed_items.push_back(item_container); else if (item_container.type == emr_containers::map) // Deserialize into an temoto_context_manager::mapcontainer object and add to EMR 33

35 temoto_context_manager::mapcontainer mc = temoto_core::deserializerosmsg<temoto_context_manager::mapcontainer>(item_container.serialized_conta iner); if (!addorupdateemritem(mc, emr_containers::map, item_container.maintainer, update_time)) failed_items.push_back(item_container); else if (item_container.type == emr_containers::component) // Deserialize into an temoto_context_manager::componentcontainer object and add to EMR temoto_context_manager::componentcontainer cc = temoto_core::deserializerosmsg<temoto_context_manager::componentcontainer>(item_container.serialized _container); if (!addorupdateemritem(cc, emr_containers::component, item_container.maintainer, update_time)) failed_items.push_back(item_container); else if (item_container.type == emr_containers::robot) // Deserialize into an temoto_context_manager::componentcontainer object and add to EMR temoto_context_manager::robotcontainer cc = temoto_core::deserializerosmsg<temoto_context_manager::robotcontainer>(item_container.serialized_con tainer); if (!addorupdateemritem(cc, emr_containers::robot, item_container.maintainer, update_time)) failed_items.push_back(item_container); else // TEMOTO_ERROR_STREAM("Wrong type " << item_container.type.c_str() << "specified for EMR item"); failed_items.push_back(item_container); return failed_items; Add or update a single item of the container_type template < class Container > bool addorupdateemritem ( const Container & container, const std :: string & container_type, const std :: string & maintainer, const bool update_time) RosPayload<Container> rospl = RosPayload<Container>(container); rospl.settype(container_type); std :: string name = temoto_core::common::tosnakecase(container.name); std :: string parent = temoto_core::common::tosnakecase(container.parent); // Check for empty name field // Move these to the context manager interface maybe? TBD if (name == "" ) 34

36 ROS_ERROR_STREAM( "Empty string not allowed as EMR item name!" ); return false ; // Check if the parent exists if ((!parent.empty()) && (!env_model_repository_.hasitem(parent))) ROS_ERROR_STREAM( "No parent with name " << parent << " found in EMR!" ); return false ; // Check if the object has to be added or updated if (!env_model_repository_.hasitem(name)) // Add the new item // TODO: resolve tf_prefixes, if type == component or robot, prepend maintainer rospl.setmaintainer(maintainer); std :: shared_ptr <RosPayload<Container>> plptr = std ::make_shared<rospayload<container>>(rospl); env_model_repository_.additem(name, parent, plptr); else if (rospl.gettime() > getrospayloadptr<container>(name)->gettime()) // Update the item information if (update_time) rospl.updatetime(); std :: shared_ptr <RosPayload<Container>> plptr = std ::make_shared<rospayload<container>>(rospl); env_model_repository_.updateitem(name, plptr); ROS_INFO_STREAM( "Updated item: " << name); return true ; Lisa 4 Keskkonnamudeli haldustarkvara EMR env_model_repository.h #ifndef TEMOTO_ENV_MODEL_REPOSITORY_H #define TEMOTO_ENV_MODEL_REPOSITORY_H #include <mutex> namespace emr Abstract base class for payloads class PayloadEntry protected : std :: string type; public : PayloadEntry( std :: string type) : type(type) ~PayloadEntry() 35

37 PayloadEntry() const virtual std :: string & getname () const = 0; Get the type of the std::string const std :: string & gettype () const return type; void settype ( std :: string ntype) type = ntype; ; A single item in the EMR tree A item contains a payload and pointers to its (singular) parent and children. class Item : public std ::enable_shared_from_this<item> private : std ::weak_ptr<item> parent_; std :: vector < std :: shared_ptr <Item>> children_; std :: shared_ptr <PayloadEntry> payload_; public : void addchild ( std :: shared_ptr <Item> child); Set the Parent pointer NB! Don't use this manually. Use addchild() of parent parent void setparent ( std :: shared_ptr <Item> parent); const std ::weak_ptr<item>& getparent() const return parent_; Get children of std::vector<std::shared_ptr<item>> const std :: vector < std :: shared_ptr <Item>>& getchildren() const return children_; Get the pointer to std::shared_ptr<payloadentry> const std :: shared_ptr <PayloadEntry>& getpayload() const return payload_; const std :: string & getname () const return payload_->getname(); 36

38 Check if the item is a root item A item is a root item if it has no parent i.e. the weak pointer to the parent is false bool isroot () return parent_.expired(); Set the plptr shared_ptr to Object inheriting PayloadEntry void setpayload ( std :: shared_ptr <PayloadEntry> plptr) payload_ = plptr; Item( std :: shared_ptr <PayloadEntry> payload) : payload_(payload) ; Wrapper class to store pointers to all items of a tree in a map class EnvironmentModelRepository private : std :: map < std :: string, std :: shared_ptr <Item>> items; mutable std ::mutex emr_mutex; public : const std :: map < std :: string, std :: shared_ptr <Item>>& getitems() std ::lock_guard< std ::mutex> lock(emr_mutex); return items; void removeitem ( const std :: string name) items.erase(name); Get the root items of the structure Since the EMR can have several disconnected trees and floating items, we need to be able to find the root items to serialize the std::vector<std::shared_ptr<item>> std :: vector < std :: shared_ptr <Item>> getrootitems() const ; Add a item to the EMR If parent name is empty, the item will be unattached and not a part of the tree. You can call the item's setparent() method manually later. If the parent name is not empty, make sure the corresponding parent exists. The first item added to the EMR will be assigned as the root parent name of parent name name of item to be entry pointer to payload 37

Andmeturve

Andmeturve CORBA Sissejuhatus IDL CORBA struktuur Serveri ehitus Objekti adapter Lisateenused MEELIS ROOS 1 CORBA sissejuhatus CORBA Common Object Request Broker Architecture Üldine Objektipäringute Vahendaja Arhitektuur:)

Rohkem

Microsoft Word - EVS_ISO_IEC_27001;2014_et_esilehed.doc

Microsoft Word - EVS_ISO_IEC_27001;2014_et_esilehed.doc EESTI STANDARD EVS-ISO/IEC 27001:2014 INFOTEHNOLOOGIA Turbemeetodid Infoturbe halduse süsteemid Nõuded Information technology Security techniques Information security management systems Requirements (ISO/IEC

Rohkem

Loeng03

Loeng03 Loeng 03 Failiõigused ja -manipulatsioon Operatsioonisüsteemide administreerimine ja sidumine I233 Katrin Loodus, Tallinn 2015 Failid ja kataloogid Mis on fail? Linuxi laadsetes süsteemides on kõik failid

Rohkem

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Konstruktorile antakse andmed, mis iseloomustavad mingit

Rohkem

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 või Windows

Rohkem

Funktsionaalne Programmeerimine

Funktsionaalne Programmeerimine Kõrvalefektid ja Haskell Kõik senised programmid on olnud ilma kõrvalefektideta; so. puhtalt funktsionaalsed. Programmi täitmise ainsaks efektiks on tema väartus. Osade ülesannete jaoks on kõrvalefektid

Rohkem

loeng2

loeng2 Automaadid, keeled, translaatorid Kompilaatori struktuur Leksiline analüüs Regulaaravaldised Leksiline analüüs Süntaks analüüs Semantiline analüüs Analüüs Masinkoodi genereerimine Teisendamine (opt, registrid)

Rohkem

ArcGIS rakendused välitöödeks Raido Valdmaa AlphaGIS

ArcGIS rakendused välitöödeks Raido Valdmaa AlphaGIS ArcGIS rakendused välitöödeks Raido Valdmaa AlphaGIS Välitöö rakendused kasuta oma ruumiandmeid kõikjal Optimeeri välitöö tegevuste efektiivsust asukohapõhise teabega Survey123 Collector Navigator Planeeri

Rohkem

CPA4164 USB 2.0 kõrgekvaliteediline videoadapter KASUTUSJUHEND 1. PEATÜKK - Ülevaade 1.1 Tutvustus CPA4164 USB 2.0 videoadapter võimaldab teil arvutis

CPA4164 USB 2.0 kõrgekvaliteediline videoadapter KASUTUSJUHEND 1. PEATÜKK - Ülevaade 1.1 Tutvustus CPA4164 USB 2.0 videoadapter võimaldab teil arvutis CPA4164 USB 2.0 kõrgekvaliteediline videoadapter KASUTUSJUHEND 1. PEATÜKK - Ülevaade 1.1 Tutvustus CPA4164 USB 2.0 videoadapter võimaldab teil arvutisse laadida ja redigeerida erinevatest analoogvideo

Rohkem

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx Tartu Ülikool CVE-2013-7040 Referaat aines Andmeturve Autor: Markko Kasvandik Juhendaja : Meelis Roos Tartu 2015 1.CVE 2013 7040 olemus. CVE 2013 7040 sisu seisneb krüptograafilises nõrkuses. Turvaaugu

Rohkem

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document.idl IDL kompilaator document_cstub.o document.h document_sstub.o #include document_client.c

Rohkem

Microsoft Word - ref - Romet Piho - Tutorial D.doc

Microsoft Word - ref - Romet Piho - Tutorial D.doc Tartu Ülikool Andmetöötluskeel "Tutorial D" realisatsiooni "Rel" põhjal Referaat aines Tarkvaratehnika Romet Piho Informaatika 2 Juhendaja Indrek Sander Tartu 2005 Sissejuhatus Tänapäeval on niinimetatud

Rohkem

Microsoft PowerPoint - loeng.ppt

Microsoft PowerPoint - loeng.ppt Tarkvaraarendusprotsess Lektor Oleg Mürk olegm@webmedia.ee Webmedia AS www.webmedia.ee Teema Mille poolest erineb üksinda programmeerimine mitmekesi tarkvaraarendamisest? Mitmekesi programmeerimine Mitmekesi

Rohkem

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk Klassiskeem (class diagram) Klass (class) atribuut (attribute) meetod (method) Liides (interface) meetod (method) Viidatavus (visibility) avalik

Rohkem

Operatsioonisüsteemide ehitus

Operatsioonisüsteemide ehitus Lõimed Ülevaade Lõime mõiste Lõimede mudelid Probleemid lõimedega seoses Pthreads Solarise lõimed Windows 2000 lõimed Linuxi lõimed Java lõimed VARMO VENE & MEELIS ROOS 2 Ühe- ja mitmelõimelised protsessid

Rohkem

Pealkiri

Pealkiri Andmebaasid (6EAP) I praktikum Mida praktikumides tehakse? Õpitakse SQL i Tehakse andmebaas ope (igas praktikumis natuke, kuni lõpuks saab valmis) Tehakse andmebaas edu (kui ope on valmis, tehakse edu,

Rohkem

Ettevalmistavad tööd 3D masinjuhtimise kasutamisel teedeehituses ning erinevate masinjuhtimise võimaluste kasutamine

Ettevalmistavad tööd 3D masinjuhtimise kasutamisel teedeehituses ning erinevate masinjuhtimise võimaluste kasutamine Kaasaegsed mõõdistustehnoloogiad droonidest märkerobotiteni Mart Rae Filmimuuseumis 29.03.2019 Lugemist MEHITAMATA ÕHUSÕIDUKI ABIL TEHTUD AEROFOTODE PÕHJAL PUISTANGU MAHTUDE ARVUTAMISE TÄPSUS; Kaupo Kokamägi,

Rohkem

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi*r^2, Float -> Int Infixoperaatori kasutamiseks prefix-vormis

Rohkem

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode]) Tarkvara projekt seminar VI Eelmise iteratsiooni tagasivaade, testimine, installatsioonijuhend, järgmise iteratsiooni näited. Karel Kravik Administratiivset:protestid Probleem: protestide hulk ja kvaliteet

Rohkem

Monitooring

Monitooring IT infrastruktuuri teenused Monitooring Margus Ernits margus.ernits@itcollege.ee 1 Miks? Arvutisüsteemid töötavad tõrgetega Pole olemas 100% veakindlaid ja keerulisi arvutisüsteeme Tõrgetest võib teada

Rohkem

X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesug

X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesug X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesugused realisatsioonid ka Windowsile erinevad realisatsioonid

Rohkem

MTAT Operatsioonisüsteemid - Turvalisus

MTAT Operatsioonisüsteemid - Turvalisus Regulaaravaldised ja skriptimine Windows ja UNIX operatsioonisüstemides WINDOWS 1. slaid Windows käsurida Käsureaks nimetan programme: cmd.exe powershell.exe command.com Nendesse saab kirjutada käske,

Rohkem

PowerPoint Presentation

PowerPoint Presentation Ülevaade Mehhaanika ja elektroonika tooted, elektromehaanilised koosted 30 aastat kogemust Müügikäive 2018 MEUR 15,4 2 tootmisüksust Euroopas HYRLES OY Soome tehas Asutatud 1989 Tootmine 8500 m2 Personal

Rohkem

Akadeemilise personali tööstressi ja läbipõlemise ohjamise meetmed (AcadOSI) Tallinna Tehnikaülikool psühholoogia õppetool professor Mare Teichmann 12

Akadeemilise personali tööstressi ja läbipõlemise ohjamise meetmed (AcadOSI) Tallinna Tehnikaülikool psühholoogia õppetool professor Mare Teichmann 12 Akadeemilise personali tööstressi ja läbipõlemise ohjamise meetmed (AcadOSI) Tallinna Tehnikaülikool psühholoogia õppetool professor Mare Teichmann 12. veebruar 2009 TÖÖSTRESS on pingeseisund, mille on

Rohkem

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimused: faili nimi faili vanus faili tüüp... 1 Failiotsing:

Rohkem

PowerPoint Presentation

PowerPoint Presentation Miks liituda projektiga LIFE Fit for REACH? Karin Viipsi Henkel Balti OÜ (Henkel Makroflex AS) Infopäev ettevõtetele, 09.11.2016 Sisukord Ettevõtte tutvustus Ettevõtte eesmärk projektis Mida on varasemalt

Rohkem

Control no:

Control no: Smart Access Driftsprocedure A. Eeltingimused... 2 1. Nutitelefoni ühilduvus... 2 2. Kaabli valik... 2 a. Apple devices (Apple'i seadmed) (iphone 4/4S)... 2 b. Apple devices (Apple'i seadmed) (iphone 5/5c/5s)...

Rohkem

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06 Andmebaaside projekteerimine Erki Eessaar Esimene trükk Teadaolevate vigade nimekiri seisuga 24. juuni 2013 Lehekülg 37 (viimane lõik, teine lause). Korrektne lause on järgnev. Üheks tänapäeva infosüsteemide

Rohkem

Võrguinverterite valik ja kasutusala päikeseelektrijaamades Robert Mägi insener

Võrguinverterite valik ja kasutusala päikeseelektrijaamades Robert Mägi insener Võrguinverterite valik ja kasutusala päikeseelektrijaamades Robert Mägi insener Robert Mägi o Õpingud: Riga Technical University o Haridus: MSc (Electrical Engineering) MSc (Automatic Telecommunications)

Rohkem

Microsoft Word - installation-guide.doc

Microsoft Word - installation-guide.doc Dokumendi ajalugu: Versioon Kuupäev Tegevus Autor 1.0 12.04.2008 Dokumendi loomine Maris Aavik 1.1 13.04.2008 Täiendamine Maris Aavik 1.2 13.04.2008 Täiendamine Andres Kalle 1.3 12.05.2008 Täiendused Kerli

Rohkem

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et Excel2016 - Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et programm suudaks anda tulemusi. Mõisted VALEM - s.o

Rohkem

Funktsionaalne Programmeerimine

Funktsionaalne Programmeerimine Geomeetrilised kujundid Geomeetriliste kujundite definitsioon: data Shape = Rectangle Side Side Ellipse Radius Radius RtTriangle Side Side Polygon [Vertex] deriving Show type Radius = Float type Side =

Rohkem

Tartu Ülikool

Tartu Ülikool Tartu Ülikool Code coverage Referaat Koostaja: Rando Mihkelsaar Tartu 2005 Sissejuhatus Inglise keelne väljend Code coverage tähendab eesti keeles otse tõlgituna koodi kaetust. Lahti seletatuna näitab

Rohkem

PÄRNU TÄISKASVANUTE GÜMNAASIUM ESITLUSE KOOSTAMISE JUHEND Pärnu 2019

PÄRNU TÄISKASVANUTE GÜMNAASIUM ESITLUSE KOOSTAMISE JUHEND Pärnu 2019 PÄRNU TÄISKASVANUTE GÜMNAASIUM ESITLUSE KOOSTAMISE JUHEND Pärnu 2019 SISUKORD 1. SLAIDIESITLUS... 3 1.1. Esitlustarkvara... 3 1.2. Slaidiesitluse sisu... 3 1.3. Slaidiesitluse vormistamine... 4 1.3.1 Slaidid...

Rohkem

IFI6083_Algoritmid_ja_andmestruktuurid_IF_3

IFI6083_Algoritmid_ja_andmestruktuurid_IF_3 Kursuseprogramm IFI6083.DT Algoritmid ja andmestruktuurid Maht 4 EAP Kontakttundide maht: 54 Õppesemester: K Eksam Eesmärk: Aine lühikirjeldus: (sh iseseisva töö sisu kirjeldus vastavuses iseseisva töö

Rohkem

Pealkiri

Pealkiri Andmebaasid II praktikum Andmebaaside administreerimine Andmete sisestamine KESKKOND, KASUTAJAD, ÕIGUSED Mõisted Tabelid, vaated, trigerid, jpm on objektid Objektid on grupeeritud skeemi Skeemid moodustavad

Rohkem

REQUEST FOR AN ASSIGNMENT OF LEI (fond) LEI KOODI MÄÄRAMISE TAOTLUS (fond) 1. FUND DATA / FONDI ANDMED: Legal Name / Ametlik nimi: Other Fund Names /

REQUEST FOR AN ASSIGNMENT OF LEI (fond) LEI KOODI MÄÄRAMISE TAOTLUS (fond) 1. FUND DATA / FONDI ANDMED: Legal Name / Ametlik nimi: Other Fund Names / REQUEST FOR AN ASSIGNMENT OF LEI (fond) LEI KOODI MÄÄRAMISE TAOTLUS (fond) 1. FUND DATA / FONDI ANDMED: Legal Name / Ametlik nimi: Other Fund Names / Fondi teised nimed: Business Register Number / Äriregistri

Rohkem

Sissejuhatus GRADE metoodikasse

Sissejuhatus GRADE metoodikasse Sissejuhatus GRADE metoodikasse Eriline tänu: Holger Schünemann ja GRADE working group www.gradeworkinggroup.org Kaja-Triin Laisaar TÜ peremeditsiini ja rahvatervishoiu instituut kaja-triin.laisaar@ut.ee

Rohkem

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k Neurovõrgud. Praktikum 11. 29. aprill 2005. a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust kombinatoorsete optimiseerimisülesannete lahendamiseks.

Rohkem

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad 1 / 16 7. loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad 2 / 16 Sisend/väljund vaikimisi: Termid: read, write?-read(x). : 2+3. X = 2+3.?-write(2+3). 2+3 true. Jooksva sisendi vaatamine: seeing?-

Rohkem

Elisa Ring Elisa Ringi mobiilirakendus Versioon

Elisa Ring Elisa Ringi mobiilirakendus Versioon Elisa Ring Elisa Ringi mobiilirakendus Versioon 1.0.85 15.01.2019 1 Elisa Ring... 1 1. Ülevaade... 3 1.1. Kirjeldus... 3 1.2. Tehnilised tingimused... 3 1.3. Kasutuselevõtt ja sisselogimine... 3 2. Rakenduse

Rohkem

PowerPointi esitlus

PowerPointi esitlus Regulaaravaldised ja skriptimine Windows ja UNIX operatsioonisüsteemides WINDOWS 1. slaid Windows käsurida Käsureaks nimetan programme: cmd.exe powershell.exe Nendesse saab kirjutada käske, millega näiteks

Rohkem

MTAT Operatsioonisüsteemid - Turvalisus

MTAT Operatsioonisüsteemid - Turvalisus Regulaaravaldised ja skriptimine Windows ja UNIX operatsioonisüstemides WINDOWS 1. slaid Windows käsurida Käsureaks nimetan programme: cmd.exe powershell.exe command.com (tänapäevastes OS ei kasutata)

Rohkem

EBSCO täistekstiandmebaaside kasutamine Otsingu sooritamiseks: 1. Logi sisse 2. Vali EBSCOhost Web 3. Seejärel vali andmebaas, milles soovid otsingut

EBSCO täistekstiandmebaaside kasutamine Otsingu sooritamiseks: 1. Logi sisse 2. Vali EBSCOhost Web 3. Seejärel vali andmebaas, milles soovid otsingut EBSCO täistekstiandmebaaside kasutamine Otsingu sooritamiseks: 1. Logi sisse 2. Vali EBSCOhost Web 3. Seejärel vali andmebaas, milles soovid otsingut sooritada. Andmebaasid on temaatilised. Koolitööde

Rohkem

Microsoft Word - Referaat.docx

Microsoft Word - Referaat.docx Tartu Ülikool Andmeturve Referaat teemal: CVE-2016-1499 Koostaja: Sander Sats Kursus: Informaatika Tartu 2016 Sissejuhatus Käesolev referaat on kirjutatud seoses Tartu Ülikooli kursuse MTAT.03.134 Andmeturve

Rohkem

Microsoft PowerPoint - TÜ TVT - Kavandamine ja arhitektuur 2.ppt

Microsoft PowerPoint - TÜ TVT - Kavandamine ja arhitektuur 2.ppt Kavandamine ja arhitektuur Erik Jõgi erik.jogi@hansa.ee Muutused Muutused on elu igapäevane osa Meie peame tagama, et meie kirjutatud tarkvara need muutused üle elab Oleme valmis muutusteks, mitte ei võitle

Rohkem

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pdf, Word, Excel, PowerPoint, Open Office) tuleb esmalt keskkonda üles

Rohkem

Image segmentation

Image segmentation Image segmentation Mihkel Heidelberg Karl Tarbe Image segmentation Image segmentation Thresholding Watershed Region splitting and merging Motion segmentation Muud meetodid Thresholding Lihtne Intuitiivne

Rohkem

Estonian_TBW-106UB(V1).cdr

Estonian_TBW-106UB(V1).cdr Lühike paigaldusjuhend TBW-106UB H/W: V1 Sisukord... 1 1. Enne alustamist... 1 2. Kuidas paigaldada... 3. Bluetooth adapteriseadistamine... 2 5 Tõrkeotsing... 7 Version 02.17.2009 1. Enne alustamist Pakendi

Rohkem

Operatsioonisüsteemi ülesanded

Operatsioonisüsteemi ülesanded Praktikum 3 GROUP POLICY JA ACTIVE DIRECTORY Group Policy Group Policy - vahend Active Directory arvutite ja kasutajate tsentraalseks haldamiseks. Group Policy abil on võimalik kontrollida süsteemi registri

Rohkem

SQL

SQL SQL Teine loeng Mõtelda CREATE TABLE ( { INTEGER VARCHAR(10)} [ NOT NULL] ); Standard SQL-86 (ANSI X3.135-1986), ISO võttis üle 1987 SQL-89 (ANSIX3.135-1989) SQL-92 (ISO/IEC 9075:1992)

Rohkem

Markina

Markina EUROOPA NOORTE ALKOHOLITARBIMISE PREVENTSIOONI PRAKTIKAD JA SEKKUMISED Anna Markina Tartu Ülikool Meie ülesanne on: Tuvastada ja välja valida erinevaid programme ja sekkumist, mida on hinnatud ja mille

Rohkem

E-õppe ajalugu

E-õppe ajalugu Koolituskeskkonnad MTAT.03.142 avaloeng Anne Villems September 2014.a. Põhiterminid Koolituskeskkonnad (Learning environments) IKT hariduses (ICT in education) E-õpe (e-learning) Kaugõpe (distance learning)

Rohkem

B120_10 estonian.cdr

B120_10 estonian.cdr Alati seal, et teid aidata Registreerige oma toode ja otsige abi koduleheküljelt www.philips.com/welcome B120 Beebimonitor Küsimus? Kontakteeruge Philipsiga Eestikeelne kasutusjuhend 2 Valgussensor USB

Rohkem

Dias nummer 1

Dias nummer 1 TEHNOLOOGIATE JA TARKVARA KASUTAMINE TÄPPISVILJELUSES Kristjan Ruusamäe, Haakeseadmete tootejuht, Baltic Agro Machinery OÜ TÄPPISVILJELUS 100 AASTAT TAGASI VS. TÄNAPÄEV PÕLLUMAJANDUSE ARENGUETAPID PÕLLUMAJANDUS

Rohkem

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc Tallinna Linnavalitsuse sõnumisaatja kasutusjuhend asutuse juhatajale Sisukord 1. Süsteemi sisenemine...2 2. Parooli lisamine ja vahetamine...2 3. Ametnike lisamine ametiasutuse juurde...2 4. Saatjanimede

Rohkem

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier 09.02.2019 Miks on ülesannete lahendamise käigu kohta info kogumine oluline? Üha rohkem erinevas eas inimesi õpib programmeerimist.

Rohkem

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp Terminali seadistamine Lülita telefonis või tahvelarvutis (edaspidi telefonis) sisse Bluetooth. (1) 1 1 Mudel

Rohkem

DNS teenus teoorias ja praktikas Autor Siim Adamson ITK Autor: Siim Adamson ITK

DNS teenus teoorias ja praktikas Autor Siim Adamson ITK Autor: Siim Adamson ITK DNS teenus teoorias ja praktikas Autor Siim Adamson ITK 2008 1 Ettekande sisukord Ettekanne jaotatud 9 peatükiks: 1.DNS süsteemi ajalugu 2.DNS süsteemi struktuur 3.DNS kirjete tüübid 4.DNS serveri seadistamine

Rohkem

Süsteemiintegratsioon

Süsteemiintegratsioon 2010 veebruar Ivo Mägi ivoätwebmediadotee Kes ma selline olen Kümme aastat tarkvaratööstuses Erinevad rollid, hetkel AS Webmedia tarkvara arendusjuht Kuus aastat Java SE/EE arendust Osalenud kokku 13 erineva

Rohkem

IT infrastruktuuri teenused sissejuhatav loeng 00

IT infrastruktuuri teenused sissejuhatav loeng 00 IT infrastruktuuri teenused I385 Aine õppejõud: Katrin Loodus, Margus Ernits http://enos./~mernits Tallinn, 2014 Oluline info on aine vikis Kindlasti hoia silma peal aine vikil: https://wiki./ Sealt vali:

Rohkem

TARTU ÜLIKOOL LOODUS- JA TÄPPISTEADUSTE VALDKOND ARVUTITEADUSE INSTITUUT Lauri Kongas Turvaauk CVE Referaat aines Andmeturve MTAT Õpp

TARTU ÜLIKOOL LOODUS- JA TÄPPISTEADUSTE VALDKOND ARVUTITEADUSE INSTITUUT Lauri Kongas Turvaauk CVE Referaat aines Andmeturve MTAT Õpp TARTU ÜLIKOOL LOODUS- JA TÄPPISTEADUSTE VALDKOND ARVUTITEADUSE INSTITUUT Lauri Kongas Turvaauk CVE-2016-0778 Referaat aines Andmeturve MTAT.03.134 Õppejõud: Meelis Roos Tartu 2016 OpenSSH OpenSSH hõlmab

Rohkem

EST_QIG_TEW-424UB(V3.1.1).cdr

EST_QIG_TEW-424UB(V3.1.1).cdr Lühike paigaldusjuhend TEW-424UB Sisukord Eesti... 1 1. Enne alustamist... 1 2. Kuidas paigaldada... 2 3. WiFi seadistamine... 4 Tõrkeotsing... 6 Version 12.05.2007 1. Enne alustamist Pakendi sisu TEW-424UB

Rohkem

Praks 1

Praks 1 Biomeetria praks 3 Illustreeritud (mittetäielik) tööjuhend Eeltöö 1. Avage MS Excel is oma kursuse ankeedivastuseid sisaldav andmestik, 2. lisage uus tööleht, 3. nimetage see ümber leheküljeks Praks3 ja

Rohkem

Microsoft PowerPoint - geodb_090507v1.ppt [Read-Only] [Compatibility Mode]

Microsoft PowerPoint - geodb_090507v1.ppt [Read-Only] [Compatibility Mode] Eesti topograafiline andmekogu ja geoandmebaasi põhine topograafiliste andmete uuendamine Olev Veskimäe Topoandmete osakond Maa-amet Sisukord Geoandmebaas Uuendamine Kvaliteedi tagamine Vigade haldamine

Rohkem

StandardBooks_versiooni_uuendusWin

StandardBooks_versiooni_uuendusWin Versiooni uuendamine Standard Books 7.2 põhjal Windows 7 või uuemale operatsioonisüsteemile SISUKORD 1. ÜKSIKKASUTAJA VERSIOONI INSTALLEERIMINE...lk 2 2. SERVER/MITMEKASUTAJA VERSIOONI INSTALLEERIMINE.lk

Rohkem

P2P süsteemid

P2P süsteemid Gnutella Ajalugu Detsentraliseeritus Protokollist Paralleliseerimine Ujutamine Skaleeruvus Ultranoded Puuräsid DHT Muud MEELIS ROOS 1 Ajalugu Failivahetus P2P massidesse viija Napster tsentraalne süsteem

Rohkem

EE-macbook-retina-12-early2015-qs.indd

EE-macbook-retina-12-early2015-qs.indd Kiirjuhend Tervita oma MacBooki. Alustame. Maci käivitamiseks vajuta toitenuppu ning rakendus Setup Assistant annab sulle mõned lihtsad juhised, kuidas arvuti töökorda seada. See aitab sul Wi-Fi võrku

Rohkem

FRESENIUS ÕPPEKESKUS KIIRJUHEND

FRESENIUS ÕPPEKESKUS KIIRJUHEND FRESENIUS ÕPPEKESKUS KIIRJUHEND SISUKORD 1. Kuidas saan Freseniuse õppekeskuksesse? 03 2. Kuidas sisse logida? 04 3. Mida teha, kui ma ei mäleta oma parooli? 05 4. Mida leian kodulehelt pärast sisselogimist?

Rohkem

Microsoft PowerPoint - Lisa 5 koolituse materjalid

Microsoft PowerPoint - Lisa 5 koolituse materjalid 03. detsember, 2009 Piirangutest vabaks IT-ga või IT-ta? Heiti Mering Heiti.mering@ee.fujitsu.com Eero Elenurm eero@elenurm.net Piirangud või võimalused? Millised on meie oskused? Millised on meie teadmised?

Rohkem

EESTI STANDARD EVS 896:2008 RAHVUSVAHELINE NUMERATSIOONIPLAAN ITU-T soovituse E.164 rakendamine Eestis See dokument on EVS-i poolt loodud eelvaade The

EESTI STANDARD EVS 896:2008 RAHVUSVAHELINE NUMERATSIOONIPLAAN ITU-T soovituse E.164 rakendamine Eestis See dokument on EVS-i poolt loodud eelvaade The EESTI STANDARD RAHVUSVAHELINE NUMERATSIOONIPLAAN ITU-T soovituse E.164 rakendamine Eestis The international public telecommunication numbering plan Application of ITU-T recommendation E.164 in Estonia

Rohkem

(Tõrked ja töökindlus \(2\))

(Tõrked ja töökindlus \(2\)) Elektriseadmete tõrked ja töökindlus Click to edit Master title style 2016 sügis 2 Prof. Tõnu Lehtla VII-403, tel.6203 700 http://www.ttu.ee/energeetikateaduskond/elektrotehnika-instituut/ Kursuse sisu

Rohkem

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev 05.02.2018 Versiooni kuupäev 30.01.2018 1 SISUKORD 1. ÜLEVAADE... 3 1.1

Rohkem

BIM360 ja RealityCapture

BIM360 ja RealityCapture DROONID EHITUSES KAASAEGNE PROJEKTIPANK ja selles Reality Capture töövood 10.06.2019 Ettekanne Hendrik Park MINA linkedin.com/in/hendrik park BIM konsultant 2018 - Tootejuht 2018 - Projekteerimise projektijuht

Rohkem

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööaknas leia Windows Update 4.Lase arvutil kontrollida

Rohkem

PowerPoint Presentation

PowerPoint Presentation TEHNOLOOGIAPLATVORMI KUJUNDAMINE (Manufuture) Tallinn, 20.04.2011 Innovative Manufacturing Engineering Systems Competence Centre (IMECC) is co-financed by Enterprise Estonia and European Union Regional

Rohkem

Microsoft PowerPoint - Ettekanne_3Dprojekt_ESTGIS.ppt [Compatibility Mode]

Microsoft PowerPoint - Ettekanne_3Dprojekt_ESTGIS.ppt [Compatibility Mode] Tallinna vanalinn - 3D Tallinna Linnaplaneerimise Amet Geoinformaatika osakond Ave Kargaja 21.10.2011 3D projekti eesmärgid Eesti, Tallinna, vanalinna teadvustus Detailsed 3D-andmed Tallinna Ruumiandmete

Rohkem

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus PILVI TAUER Tallinna Tehnikagümnaasium ArcGIS Online 1.Konto loomine 2.Veebikaardi loomine 3.Rakenduste tegemine - esitlus Avaliku konto loomine Ava ArcGIS Online keskkond http://www.arcgis.com/ ning logi

Rohkem

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013 3D mänguarenduse kursus (MTAT.03.283) Loeng 3 Jaanus Uri 2013 Teemad Tee leidmine ja navigatsioon Andmete protseduuriline genereerimine Projektijuhtimine Tee leidmine Navigatsiooni võrgustik (navigation

Rohkem

Bild 1

Bild 1 Archives Portal Europe APEnet ja APEx Mäluasutuste talveseminar Otepää, 06.03.2012 Kuldar Aas, Rahvusarhiiv APEnet (I) Projekti rahastus econtentplus raames Projekti kestvus: 15.01.2009 15.01.2012 Partnerid

Rohkem

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx HOTSEC Tarkvara kasutusjuhend v. 1.9 1 Sisukord Käivitamine:... 3 Programmi kasutamine... 4 Kasutajate lisamine ja eemaldamine:... 6 Jooksev logi:... 9 Häired:... 9 2 HOTSEC põhioperatsioonide kirjeldus

Rohkem

Slide 1

Slide 1 Süsteemide sünd, areng ja surm süsteemiinseneri vaatepunktist Leo Mõtus 11.august 2013 Proaktiivtehnoloogiate uurimislabor, TTÜ ja Eesti Teaduste Akadeemia 1 Ettekande fookus Keskendun süsteemidele tehismaailmas,

Rohkem

Andmed arvuti mälus Bitid ja baidid

Andmed arvuti mälus Bitid ja baidid Andmed arvuti mälus Bitid ja baidid A bit about bit Bitt, (ingl k bit) on info mõõtmise ühik, tuleb mõistest binary digit nö kahendarv kahe võimaliku väärtusega 0 ja 1. Saab näidata kahte võimalikku olekut

Rohkem

raamat5_2013.pdf

raamat5_2013.pdf Peatükk 5 Prognoosiintervall ja Usaldusintervall 5.1 Prognoosiintervall Unustame hetkeks populatsiooni parameetrite hindamise ja pöördume tagasi üksikvaatluste juurde. On raske ennustada, milline on huvipakkuva

Rohkem

Microsoft PowerPoint - GIS_pilvelahendusena_final.ppt [Compatibility Mode]

Microsoft PowerPoint - GIS_pilvelahendusena_final.ppt [Compatibility Mode] GIS pilvelahendused Nils Nitov, AlphaGIS Millest räägime? AlphaGIS tutvustus Pilvetehnoloogiast Amazon valmislahendustest Näide pilvelahendusest AlphaGIS põhitegevusalad Põhitegevusalad - Esri tarkvara

Rohkem

Operatsioonisüsteemi ülesanded

Operatsioonisüsteemi ülesanded Praktikum 2 OPERATSIOONISÜSTEEMIDE MASSPAIGALDUS Operatsioonisüsteemide masspaigaldus Suure arvu arvutisüsteemide korral ei ole mõistlik operatsioonisüsteeme paigaldada manuaalselt. Operatsioonisüsteemide

Rohkem

PowerPoint Presentation

PowerPoint Presentation Marek Alliksoo Export Sales Manager 01 November 2018 Targa linna lahendused linnaplaneerimises Tark linn Tark asjade internet (Tark Pilv) Tark automatiseeritus Tark energia Tark juhtimine Tark kodanik

Rohkem

SQL

SQL SQL Kuues loeng 3GL inside 4GL Protseduurid Funktsioonid Tavalised Funktsioonid (üks väljund) Ilma väljundita Protseduurid Viitargumentide kasutamise võimalus Tabel-väljundiga Protseduurid Create function

Rohkem

E-arvete juhend

E-arvete juhend E- arvete seadistamine ja saatmine Omniva kaudu Standard Books 7.2 põhjal Mai 2015 Sisukord Sissejuhatus... 3 Seadistamine... 3 Registreerimine... 4 E- arve konto... 5 Vastuvõtu eelistus... 5 Valik E-

Rohkem

Piima ja tooraine pakkumise tulevik kogu maailmas Erilise fookusega rasvadel ja proteiinidel Christophe Lafougere, CEO Gira Rakvere, 3rd of October 20

Piima ja tooraine pakkumise tulevik kogu maailmas Erilise fookusega rasvadel ja proteiinidel Christophe Lafougere, CEO Gira Rakvere, 3rd of October 20 Piima ja tooraine pakkumise tulevik kogu maailmas Erilise fookusega rasvadel ja proteiinidel Christophe Lafougere, CEO Gira Rakvere, 3rd of October 2018 clafougere@girafood.com Tel: +(33) 4 50 40 24 00

Rohkem

Linux süsteemi administreerimine

Linux süsteemi administreerimine Protsesside, mälu jm haldamine Linuxi ehitus (struktuur) Lihtsustatult Protsess Multitasking - palju protsesse töötab paralleelselt Tuumas asub protsesside tabel igal protsessil on identifikaator PID igal

Rohkem

Slide 1

Slide 1 TÖÖTUBA: ÕPIRÄNDE TUNNISTUSE TÄITMINE Margit Paakspuu 5163 Töötoa ülesehitus 1. Kellele ja milleks me õpirände tunnistusi väljastame? 2. Õpirände tunnistuse väljastamise protseduur 3. Õpirände tunnistuse

Rohkem

Microsoft Word - 56ylesanded1415_lõppvoor

Microsoft Word - 56ylesanded1415_lõppvoor 1. 1) Iga tärnike tuleb asendada ühe numbriga nii, et tehe oleks õige. (Kolmekohaline arv on korrutatud ühekohalise arvuga ja tulemuseks on neljakohaline arv.) * * 3 * = 2 * 1 5 Kas on õige, et nii on

Rohkem

lvk04lah.dvi

lvk04lah.dvi Lahtine matemaatikaülesannete lahendamise võistlus. veebruaril 004. a. Lahendused ja vastused Noorem rühm 1. Vastus: a) jah; b) ei. Lahendus 1. a) Kuna (3m+k) 3 7m 3 +7m k+9mk +k 3 3M +k 3 ning 0 3 0,

Rohkem

(loeng3-ohtlikud_koodiloigud)

(loeng3-ohtlikud_koodiloigud) #include int main (void) uint8_t arr[] = 0x11, 0x22 uint16_t *ptr; ptr = (uint16_t*)&arr[0]; printf ("arr: 0x%02x, 0x%02x\n", arr[0], arr[1]); printf ("ptr: 0x%04x\n", *ptr); /* vigane pointeri

Rohkem

JABRA STYLE Kasutusjuhend jabra.com/style

JABRA STYLE Kasutusjuhend jabra.com/style Kasutusjuhend jabra.com/style SISUKORD 1. TERE TULEMAST... 3 2. PEAKOMPLEKT... 4 3. KANDMINE... 5 3.1 KUULARIKATETE VAHETAMINE 4. AKU LAADIMINE... 6 5. ÜHENDAMINE... 7 5.1 BLUETOOTH SEADMEGA ÜHENDAMINE

Rohkem

EESTI STANDARD EVS-EN 1790:1999 This document is a preview generated by EVS Teemärgistusmaterjalid. Kasutusvalmid teekattemärgised Road marking materi

EESTI STANDARD EVS-EN 1790:1999 This document is a preview generated by EVS Teemärgistusmaterjalid. Kasutusvalmid teekattemärgised Road marking materi EESTI STANDARD EVS-EN 1790:1999 Teemärgistusmaterjalid. Kasutusvalmid teekattemärgised Road marking materials - Preformed road markings EESTI STANDARDIKESKUS EESTI STANDARDI EESSÕNA NATIONAL FOREWORD Käesolev

Rohkem