Minu projektid ja tegemised

Siit leiad minu erinevad projektid, mida olen minevikus teinud või seotud olnud.


TTÜ Robotiklubi: joonejärgija Joonus

Pärast 2.5 aastast arendustööd Robotiklubi demoprojektis (vt Pac-Man projekti), tuli mul tahtmine teha üks võistlusrobot - pole pärast Robotiklubi algkursust võistlustega tegelenud. Otsustasin (ilma takistusteta) joonejärgija kasuks. Projekt on praegusel ajahetkel arenduses. Sõltuvalt tujust lisan siia erinevaid uuendusi antud projekti kohta, kui peaks midagi valmima.

Meeskonna liikmed:

Staatus: Arendamisel
Tehnoloogiad: Altium+OnShape+C

Projekti uuendused:

TTÜ Robotiklubi: Pac-Man, aga robotitega

Pärast TTÜ Robotiklubi algkursuse läbimist võtsin projektiks idee, kus oli eesmärgiks luua Pac-Mani sarnane mäng, aga nii, et mängijaks ja vastatsteks (ehk kummitusteks) oleksid robotid.

Kuigi põhieesmärgiks oli luua Pac-Man, siis reaalsuses sai asi programmeeritud nii, et tegemist on pigem platvormiga kui lihtsalt mänguga. Nimelt on võimalik antud koodibaasile luua erinevaid mänge, mida oleks võimalik PisiBotidega (Robotiklubi kodukootud mitmeotstarbeline robot) ja loodud süsteemiga implementeerida, kuigi platvorm kasutab robotite tuvastamiseks ArUcosid, mis muudab mängusüsteemi sõltumatuks kasutatavatest robotitest - oluline on, et robotid saaksid juhtarvuti käskudest aru.

Alguses tegelesin PisiBotidele draiverite kirjutamisega (C), et neid oleks võimalik projektis kasutada. Hiljem liikusin edasi platvormi enda arendamise juurde (C++). Antud projektis olin tegev umbes 2.5 aastat ja sellest kasvas välja ka minu bakalaureuse lõputöö.

Meeskonna liikmed:

Staatus: Antud edasi uutele liikmetele
Tehnoloogiad: C ja C++
Link lõputööle: TTÜ digikogu   lokaalne koopia
Link koodile: platvorm   PisiBoti draiverid
Demo: platvorm -- videod READMEs ja kaust demo_videos
Litsents: GPLv3


Saaremaa Ühisgümnaasiumi (nüüd Kuressaare Hariduse Kooli) tunniplaani veebileht

Keskkooli lõputööna sai loodud Saarema Ühisgümnaasiumile tunniplaani vaatamise veebileht/veebiäpp. Üks põnevamaid aspekte antud projekti puhul on see, et tunniplaani saab vaadata ka siis, kui interneti ühendus kasutajal puudub, eeldusel, et kasutaja on vähemalt korra veebilehte töötava internetiühendusega külastanud. Tehnoloogiliselt on see saavutatud läbi service workerite.

Pean igaksjuhuks mainima, et tänapäeval ma enam sellist veebilehte ei teeks - olen jõudnud veendumusele, et JavaScripti (ja ka CSSi) ei peaks veebiarenduses eksisteerima või vähemalt HTTP protokolliga seoses eksisteerima. HTTP ja HTML loodi eelkõige selleks, et teadlased saaksid omavahel jagada informatsiooni ja uurimustöid. Tänapäevaks on HTTP peale ehitatud terve infrastruktuur arvestamata seda, et tegelikult HTTP ei olnud selliseks andmevahetuseks loodud.

Pigem pooldan ma uute protokollide loomist, mis teeks veebiarenduse lihtsamaks ja ka turvalisemaks. Näiteks arvan, et HTTP(S) peale ei tohiks ühtegi veebipoodi luua, kuna see oleks kui kruvikeerajale mootorsae kinnitamine - ülimalt absurdne tegu, mida teha. HTTP tagasi oma esialgse eesmärgi juurde!

Staatus: Kasutuses, aga ootab edasiarendust
Tehnoloogiad: PHP+HTML+CSS+JS
Link veebiäpile: KHK tunniplaan
Link lõputööle: soonTM
Link koodile: soonTM


vasjak - Eesti e-toidupoodide hinnavõrdleja

Ühe bakalaureuse projektiaine raames tehtud programm, mis võrdleb Eesti e-toidupoodide erinevate kaupade hindu. Programmi ideeks oli leida odavaim ostukorv e-toidupoodidest - kasutaja annab ostunimekirja/otsinguterminid ette ja programm tagastab kõige odavamad tooted. Tehniliselt on tegemist web scraperiga, millel on Terminal User Interface.

Algselt oli plaanis lisada kolm toidupoodi, kuid semestri jooksul erinevatel asjaoludel jäi võrdlusesse kaks (Rimi ja Selver). Täna kahjuks peab tõdema, et programm ei tööta. Selver otsustas, et ikka ilma JavaScriptita ei ole võimalik tooteid näidata (mis sellest, et ilma JavaScriptita töötas veebileht vähemalt sama kiiresti ja hästi või minu arvates veelgi paremini) ja kuna programm JavaScripti parsida ei suuda, siis tagastab see ainult praegusel ajahetkel Rimi poest leitud vasteid.

Bakalaureuse viimasel semestril sai üritatud programmile lisada veel kaks e-poodi (Coop ja Maxima) ning sellega koos ka JSi toetus (enamus e-poode siiski JavaScripti kahjuks kasutab), kuid arenduse käigus sai selgeks, et see teeb programmi liiga aeglaseks - isegi kui rakendada multithreadingut. Selletõttu ei esita ma siin veebilehel programmi kõige viimast versiooni, kuna oma aegluse tõttu see praktiliselt ei töödanud. Programm ka ilma JSi toetuseta ehk siin veebilehel esitatud kujul ei ole ka kõige kiirem, kuna HTTP päringud võtavad siiski üsna kaua aega.

Meeskonna liikmed:

Staatus: Vasteid saab ainult ühest e-poest (Rimist)
Tehnoloogiad: Python
Link projekti aruandele: aruanne
Link koodile: vasjak
Litsents: AGPLv3