Robottiohjelmoinnin harjoitustyö Autorobottimaatti



Samankaltaiset tiedostot
TIEA343 - Robottiohjelmointi 2011

Lego Mindstorms NXT. OPH oppimisympäristöjen kehittämishanke (C) 2012 Oppimiskeskus Innokas! All Rights Reserved 1

KÄYTTÖOHJE LÄMPÖTILA-ANEMOMETRI DT-619

Lego Mindstorms NXT robottien etenemissuunnitelma

Robotteja liikenteessä

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen:

SUMO-ROBOTTI. Tehtävä

ActionTrack-sovellus

Avainsanat: geometria, kolmio, ympyrä, pallo, trigonometria, kulma

Hyvä Webaston käyttäjä! Tämä käyttöohje on tarkoitettu valtuutetun asentamon antaman käytönopastuksen

testo 460 Käyttöohje

Asennus Asennukseen vaaditaan kaksi henkilöä.

HiTechnic -kompassisensorin käyttäminen NXT-G -ympäristössä

Tulostusongelmien ratkaiseminen

CO 2 -anturi. Langaton. Käyttöohje. -fi. Englannin kielestä käännetty asiakirja A001

Venekilpailu! Esteiden väistely ja hahmon ohjaaminen

OSA 3: GEOMETRIAA. Alkupala. Kokoa neljästä alla olevasta palasesta M kirjain.

Kenguru 2014 Benjamin (6. ja 7. luokka) sivu 1 / 7 ja Pakilan ala-aste

Kenguru 2018 Cadet (8. ja 9. luokka)

1 Laske ympyrän kehän pituus, kun

DistanceMaster One. Laser 650 nm SPEED SHUTTER

Harjoitustyön testaus. Juha Taina

Helsingin seitsemäsluokkalaisten matematiikkakilpailu Ratkaisuita

Phantom / H3-3D Gimbal Kalibrointiohjeet. Aloitus:

Suorakulmainen kolmio

Rihtausohje. J.Puhakka

Käyttö-ja huolto-ohje Ajastin aikaa FIN

WISE Asennusohjeet. Valmistelu. Aluslattian vaatimukset

Dynatel 2210E kaapelinhakulaite

Paikantavan turvapuhelimen käyttöohje

58160 Ohjelmoinnin harjoitustyö

KÄYTTÖOHJE BONECO P340

Labyrintti. Pelihahmon toiminta. Piirrä pelihahmo (älä piirrä esim. sivusta, ettei hahmon tarvitse

T80_a_BA.book Seite 1 Donnerstag, 22. April :01 16 Telestart T80

Koontitehtäviä luvuista 1 9

Kenguru 2018 Benjamin (6. ja 7. luokka)

Eye Pal Solo. Käyttöohje

CO 2 -anturi. Langaton. Käyttöohje. -fi käännetty asiakirja A004. Englannin kielestä

kokoaminen 1. Ota ASPER ajanottolaitteisto 1- kentän laatikosta ja siirrä kisakentälle 2. Kokoa yleisönäyttö sopivaa paikkaan ja vedä sille sähkö

1 Tieteellinen esitystapa, yksiköt ja dimensiot

testo Käyttöohje

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Käyttö- ja huolto-ohje Telestart T91 Yleistä

Sukelluskeräily, Pelihahmon liikuttaminen. Tee uusi hahmo: Pelihahmo. Nimeä se. Testaa ikuisesti -silmukassa peräkkäisinä testeinä (jos) onko jokin

A. Desimaalilukuja kymmenjärjestelmän avulla

Tekijät: Tarja Kokkila, Maija Salmivaara OuLUMA, sivu 1

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys

NXT Infrapuna-sensori

Interaktiivinen tarinankerronta

Tärkeää tietoa - turvallisuus

Lukon asettelu Kotihälytin järjestelmään

Käyttöohjeet. Radio-ohjattava vene RC FT008

VT30 TPM-HUOLTOTYÖKALU

Kenguru 2012 Benjamin sivu 1 / 8 (6. ja 7. luokka) yhteistyössä Pakilan ala-asteen kanssa

N S. ta tai m ä. BLÄUER versio 1.0

- Uuden kauko-ohjaimen yhdistäminen kopteriin - Kauko-ohjaimen kalibrointi - Gimbaalin kuvauskulman säätövivun X1 kalibrointi - Gimbaalin asetukset

GREDDY PROFEC B SPEC II säätäminen

3 TOISEN ASTEEN POLYNOMIFUNKTIO

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Electronisen nopeus ja matkamittarin kalibrointi laite huippunopeus muistilla.

ROUTE 66 Navigaattoreiden yleisimmät ongelmat ja usein kysytyt kysymykset ( )

High Definition Car DVR X109

Tieteellinen laskenta 2 Törmäykset

KODU. Lumijoen peruskoulu

Sukelluskeräily. Pelihahmon liikuttaminen. Aarre ja pisteet

Toinen harjoitustyö. ASCII-grafiikkaa

OHJE Jos Kelaimeen kirjautuminen ei onnistu Windows-koneilla

Nosturirobotti. robotin tarkoitus. mikä on robotin tehtävä. Kurssin robottiohjelmointi, kesä 2011 harjoitustyö

testo 510 Käyttöohje

OHJELMOINTILAITE 10/50

Asennus. Vaihtojarrusarja Twister - tai Workman -työajoneuvo VAARA. Irralliset osat. Asennusohjeet

Apua esimerkeistä Kolmio teoriakirja. nyk/matematiikka/8_luokka/yhtalot_ yksilollisesti. Osio

Kolmion kulmien summa. Maria Sukura

Käyttöohjeet Pinta-alamittari Flex Counter

Käyttöohje SOLO - Henkilönostin 150 / 200kg

Tee konseptiin pisteytysruudukko! Muista kirjata nimesi ja ryhmäsi. Lue ohjeet huolellisesti!

2017/01/30 02:12 1/10 Muokkaa

LMM KARTING TEAM. Rungon perussäädöt

Elotec Ajax. Aloitus

T Tietojenkäsittelyopin ohjelmatyö. Testisarja Ray tracing. Tietokonegrafiikka-algoritmien visualisointi. Testisarja Ray tracing

testo 831 Käyttöohje

Tehtävä 1. Jatka loogisesti oheisia jonoja kahdella seuraavaksi tulevalla termillä. Perustele vastauksesi

Perävaunun käyttöohje

Käyttöohjeet. Huippunopea radio-ohjattava pikavene RC FT009

Osa 7: Hahmojen ohjelmointi ja hienosäätö

Tapa II: Piirretään voiman F vaikutussuora ja lasketaan momentti sen avulla. Kuva 3. d r. voiman F vaikutussuora

Passikuva - Käyttöohje Pispalan Insinööritoimisto Oy

Puhelinnumeroiden lataaminen laitteesta tietokoneelle

Tehtävä Vastaus

Johdanto Tavoitteet Työturvallisuus Polttokennoauton rakentaminen AURINKOPANEELITUTKIMUS - energiaa aurinkopaneelilla...

SA / Opiskelijat / Korvaavuus

Kenguru Student (lukion 2. ja 3. vuosi) sivu 1 / 6

Kolmioitten harjoituksia. Säännöllisten monikulmioitten harjoituksia. Pythagoraan lauseeseen liittyviä harjoituksia

Tutustuminen tuotantolinjastoon

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

Laboratorioraportti 3

LEGO EV3 Datalogging mittauksia

PISTEMÄÄRÄ ISTUMAANNOUSU, ETUNOJAPUNNERRUS (kpl) 5 45 > < 24

Transkriptio:

Robottiohjelmoinnin harjoitustyö Autorobottimaatti Seppo Heppu 013666000 seppo@helsinki.fi

Autorobottimaatin kuvaus Tässä osiossa selitetään robotin tarkoitus ja perustoiminta. Tästä olisi hyvä käydä ilmi mitä se osaa, jolloin dokumenttia lukeva toinen kurssilainen voi päätellä onko koodissa tai robotissa jotain hänelle sopivaa. Autorobomaatti on robotti, joka tutkii ympäristönsä ja ilmoittaa sen koon. Se toimii vain siisteissä sisätiloissa. Se kiertää huoneen seiniä seuraamalla ja mittaa matkaa minkä se on käyttänyt jokaisen merkitsevän seinän myötä. Kun se havaitsee seinän edessään, se kääntyy oikealle. Käytyään jokaisella seinällä ja palattuaan lähtöpisteeseensä se tallettaa huoneen pinta-alan ja seinien pituudet. Seuraavalla käynnistyksellä se ilmoittaa sen kirjallisesti näytöllä. Mittaustarkkuus voi heittää muutamalla kymmenellä senttimetrillä per seinä. Robotin rakenne Tässä osiossa esitellään robotin fyysinen rakenne. Olennaista on kertoa koodille tärkeät mitat ja sensorit, sekä esitellä robottia muutamalla kuvalla eri kulmista, että sen voi rakentaa niiden perusteella. -Autorobottimaatti on auto, johon on kytketty ultraäänisensori. Ajaminen tapahtuu kahdella moottorilla, jotka voivat pyöriä eri tahtia kääntymistä varten. Kolmas pyörä on tukipyörä, joka mahdollistaa sulavan liikkumisen. Ultraäänisensori on robotin päällä osoittaen menosuuntaan, ja näkee esteet suoraan menosuunnassa päin. -Strategiset mitat, kuten koodin kannalta olennaiset renkaan ympärysmitta ja renkaiden väli: 2,1 tuumaa ja 4,2 tuumaa. Ultraäänisensori toimii parhaiten noin 8 senttimetrin korkeudessa, robotin tasapainoisen rakenteen vuoksi täydellisen vaakatasossa. Robotti on kompakti, kestävä ja kykenee pyörimään paikallaan.

Koodin rakenne Tässä osiossa seiltetään koodin rakenne, eli mistä luokista se koostuu ja kuinka ne kommunkoivat keskenään. Myös olennaiset menetelmät on hyvä selittää niin, että ulkopuolinen voi päättää onko koodissasi jotain mikä häntä kiinnostaisi. Koodi koostuu kolmesta luokasta. Ensiksi on robotin pääluokka, AutoRoboMat, joka hoitaa sen ohjausta. Tämän lisäksi robotilta löytyy IO -luokka joka hoitaa tiedostoon kirjoituksen, sekä Matikka -luokka joka pitää yllä tilan kokoa ja laskee sen pinta-alan. Ohjelma käynnistyy AutoRoboMatin mainista, joka aluksi luo tyhjän tiedoston tai avaa vanhan metodilla Initialize(). Seuraavaksi se käynnistää ajon ajamalla Engage!() -metodin joka käynnistää ajon. Ajon aikana robotti tarkistaa ultraäänisensorista onko sen edessä seiniä. Mikäli se havaitsee seinän, se tallettaa muistiinsa kuljetun matkan ja kääntyy oikealle. Kun se on tehnyt kierroksensa, se palaa aloituspaikkaansa ja tallettaa kierroksen tiedot Finalization() -metodilla. Mitaten kuljettua matkaa se seuraa milloin se pääsee huoneen ympäri, olettaen että ollaan sisätiloissa ja suorakulman muotoisessa huoneessa. Se pitää erotusta nykyisestä pisteestä mielessään katsomalla X ja Y koordinaattejaan, kasvattamalla sitä kuljetun matkan ja suunnan mukaan. Robotti tekee aina 90 -asteen käännöksiä. Testaus Testaus perustuu ainakin kolmeen käyttötapaukseen jotka oikeasti suoritit. Pyri tekemään mielekkäitä testejä joilla löydät robottisi heikot kohdat, tai joilla testaat yksittäisiä toimintoja. Tarkoitus on varmistua siitä että robottia on kokeiltu oikeasti, ja että se toimii yleisessä tapauksessa ilman (dokumentoimattomia) ongelmia. Olennaisia testitapauksia on ottaa selville millaisissa olosuhteissa robotti kykenee liikkumaan, ja kuinka hyvin se kykenee suunnistamaan. Oletuksena robotin tulee toimia sisätiloissa, joten emme aio testata sen pitoa jäällä tai sohjossa. Tärkeämpää on tietää jääkö se jumiin keskiverto käpistelijäkämpässä, ja toimiiko sen kartoitus kuinka hyvin. Testitapaus 1: Usutin Autorobottimaatin päin seinää. Asetin sen 50 senttimetrin päähän uhkaavan oloisesta seinästä ja painoin nappia. Autorobottimaatti aloitti urhean rynnistyksen kohti seinää, ja väisti viime hetkellä oikealle ennen vastaiskua. Testi onnistui täydellisesti. Autorobottimaatti huomaa ladon kokoiset seinät, ja välttää ne helposti. Testitapaus 2: Tällä kertaa Autorobottimaatti käy turnajaisiin paperitötteröä vastaan. Robotti ottaa jälleen 10 askeleen etäisyyden vastustajaansa ja odottaa merkkiäni. Napin painalluksesta se porhaltaa päin paperitötteröä, kaataa sen ja jää polkemaan sitä maahan. Testi epäonnistui kahdella tapaa: Ensinnäkin sensori ei havainnut paperitötteröä. Toisekseen robotti jäi jumiin eikä tajunnut sitä. Joudun lisäämään featurena: toimii siistissä sisätilassa. :< Testitapaus 3:

Viimeinen testi koski kokonaista ajoa huoneen ympäri. Olen lopulta siivonnut huoneeni puolen vuoden tauon jälkeen, ja päästän robotin valloilleen. Lopputuloksen pitäisi olla huoneen ympärimarssi, jonka jälkeen robotti ilmoittaa ja tallettaa kierroksensa tiedostoon lokina. Asetin robotin osoittamaan oven viereistä seinää, ja käynnistin sen. Samantien se lähti iloiselle kierrokselleen, ja käännökset onnistuivat hienosti seinistä ja kirjahyllyistä. Onneksi olin siirtänyt tuolin keskemmälle, joten robotti ei kokenut vastoinkäymistä sen kohdalla. Valitettavasti se kääntyi loivasti oikealle koko ajan, joten mittaustulokset eivät taida olla täydellisiä. Oletan että ongelma johtuu eritahtisista moottoreista. Tulostus oli kuitenkin oikean oloinen ympäristöön nähden, ja tiedostokin näytti samaa kuin näyttö, joten olen tyytyväinen. Rajoitukset ja tulevaisuus Robotin rajoituksia ja tulevaisuutta käsittelevä kappale kertoo lyhyesti asioista joita voisi parannella. On olennaista että olet tietoinen robottisi ongelmakohdista, ja ettei loppukäyttäjä yritä käyttää sitä väärissä tilanteissa.voit myös kertoa miten robottia voisi jatkokehitellä että se onnistuisi tehtävässään paremmin. Robotti ei aja täydellisen suoraan. Oikean moottorin nopeutta voisi lisätä hieman, mikäli DifferentialPilot sallisi sen. Moottorin vaihto voisi myös auttaa. Robotti ei tarkista etäisyyttään vasemmalle, jolloin muut kuin suorakulmion muotoiset tilat eivät tule kartoitetuksi kokonaan. Tilaa mittaava luokkakaan ei kykene hahmottamaan muun mallisia huoneita, joten tämä on suunniteltu rajoite. Huomioitavaa on myös se, ettei ultraäänisensori huomaa matalia esteitä (alle 8cm korkeudeltaan), eikä höttöisiä esineitä kuten verhoja. Tilan tulee siis olla siisti että mittaus onnistuu. Tulevaisuudessa robotti voisi esimerkiksi kyetä lähestyä seinää eri kulmista ja korjata itsensä kohtisuoraan siihen nähden. Se voisi myös tarkistaa jokaisessa kulmassa ettei ole kääntynyt vinoon, ja täten laskea muitakin kuin 90-asteen kulmia oikein. Käyttöohje Käyttöohje esittelee robotin kaikki toiminnot, ja kuinka niitä käytetään. Kun olet koonnut robotin kuvien perusteella, varmista että yllä annetut mitat pitävät paikkansa (sensorin korkeus, renkaiden läpimitta ja etäisyys toisistaan). Aja build.xml kun robotti on kiinnitetty USB-piuhalla koneeseen. 1. Ohjelma käynnistyy AutoRoboMat-tiedostosta. Aseta robotti osoittamaan huoneen seinää ja käynnistä ohjelma. 2. Robotti aloittaa kierroksensa kiertäen huonetta myötäpäivään. Tässä välissä voit käydä kahvilla. 3. Kun robotti on sisäisen tilansa mukaan tullut kokonaisen kierroksen, se pysähtyy, päästää äänen ja sammuu. 4. Seuraavalla käynnistyksellä se näyttää edellisen kartan, kunnes painat oranssia nappia. Onneksi olkoon, tiedät huoneesi pinta-alan parin neliömetrin tarkkuudella!