Robottiohjelmoinnin harjoitustyö : Työn palautus

Harjoitustyön palautuspäivämäärä on 7.3.2011! Robotit palautetaan samalla viikolla, palautuksesta sovitaan Tomi Pasasen kanssa sähköpostitse tomi pasanen ät cs helsinki fi. Palautuksen yhteydessä kutakin haastatellaan kurssin tiimoilta ja haastatteluajan sopimista varten:

  • Lähetetään Tomille sähköpostitse ajat samaisella viikolla 7.-11.3. 8-16 välillä, jotka eivät sovi itselle
  • Liitetään tähän sähköpostiin myös oppimispäiväkirja

Haastattelut kestävät noin tunnin ja niihin ei tarvitse valmistautua mitenkään. Haastatteluun otetaan mukaan kaikki lainatavarat, eli ainakin robotti, akut ja laturi. Mikäli kurssia ei aio suorittaa, haastattelu on silti sovittava robotin palautusta varten.

 

Palautusmuoto

Harjoitustyö palautetaan pakettina (.zip/.tar.gz/tms.) sähköpostin liitetiedostona tai linkkinä tiedostoon (jos isoja kuvia/videoita jne.) osoitteeseen jouko strommer ät helsinki fi. Työssä pitää olla:

Oppimispäiväkirja

Oppimispäiväkirja erillisenä tiedostona (pdf/txt/html tms.).

 

Oppimispäiväkirjan tarkoitus on antaa näkemys siitä, miten robottiurakka on sujunut: mitä on milloinkin alettu puuhailemaan, millaisia asioita on koitettu ja mitä niistä havaittiin tai tuliko toteutuksessa ongelmia, jotka sittemmin kierrettiin, ja niin edelleen. Selvityksessä ei kannata säästellä sanoja. Tarkoituksena ei ole laskea työtunteja eri vaiheissa, vaan kertoa omista kokemuksistaan robotin kanssa. Pituudella ei ole rajoitusta, ilmaisutapa on vapaa ja kaikki kiinnostaa. Tämä on tärkeä!

Katkelmia kuvitteellisesta päiväkirjasta:

Viikko 5: Tämän viikon perjantaina näin rautakaupassa käydessäni kukkaruukun, jonka reuna oli sopivan paksuinen ja oikeassa kulmassa NXT:n kiinnittämistä varten. Tuli mieleeni, että voisin tehdä automatisoidun kasvinhoitojärjestelmän, mutta hylkäsin idean kun arvelin haluamieni kosteus- yms. antureiden olevan hankalia löytää. Kotona jatkoin porkkananpilkkomisrobottini kehitystä ja laastarien loputtua tulin tulokseen, että on syytä luoda erilainen mekanismi robotin päätoiminnolle. Vaihdoin veitsen partaterään, joka oli ikään kuin giljotiiniksi asetetettu pieneen tunneliin, jota pitkin porkkana pyöriteltäisiin turmioonsa. Porkkananliikuttamistapaa en ole vielä keksinyt. Yritin rakentaa liukuhihnan rattaista, mutta porkkana jumiutui useimmiten ja lopputulos oli enemmän raastetta kuin viipaleita.

Hankalin ongelma on, että porkkanoiden muoto vaihtelee niin paljon, että liikuttaminen on hankalaa, vaikka olen yrittänyt noukkia ruokakaupasta mahdollisimman tasaiset ja suorat valioyksilöt.

Viikko 6: Tiistaina keksin yhden ratkaisun porkkanaongelmaan! En tullut ajatelleeksi, että hankalan sivuttain liikuttamisen sijaan voisin vain antaa painovoiman tehdä työnsä ja kääntää mekanismin pystyyn, jolloin porkkana luonnollisesti tippuu kohti leikkuuterää. Tässä on vielä vähän hiomista, mekanismi jumiutuu helposti ja välillä porkkana pomppii leikkaantumisen sijaan. En tiedä haluanko sittenkään tehdä tätä robottia, alan kyllästyä porkkanoihin. Eilen keksin hauskan idean johon liittyivät ilmapallot.

Robotin kaikki lähdekoodi

Robotin toimintaan vaadittava koodi, sekä NXT-palikalla että muilla laitteilla ajettava. Javadoc paketoidaan koodin kanssa samaan tiedostoon.

 

Dokumentaatio

Koodin pitää olla riittävästi dokumentoitu ja kommentoitu, kuten myös robotin. Koodi ja robotti ovat kokonaisuus ja jälkipolville on iloa robotin kuvista ja koodin toiminnan selittämisestä. Valtavirrasta poikkeavien kielten käyttäjiltä toivotaan erityisen selkeää ilmaisua.

Riittävä dokumentointi tarkoittaa, että kommenttien (Javadoc tms.) lisäksi koodin ja robotin toiminta selitetään sillä tarkkuudella, ettei jää epäselväksi:

  • millä periaatteella robotti toimii
  • miten robottia ohjaava koodi on rakentunut
    • toteutettujen toimintojen/luokkien tarkoitus
  • miten robotti voidaan rakentaa (kuvia ja neuvoja)
  • miksi robotti on rakennettu juuri näin
  • mitä osia/tarvikkeita robottiin on käytetty (esim. Yhden NXT-sarjan osat, kompassisensori ja muovinen kakkulapio)
  • kuinka hyvin robotti suoriutuu tehtävästään
  • mitä rajoituksia robotilla on
  • mitä robotissa voisi parantaa.

Palaute

Lopuksi anna kurssipalautetta.