Kasutaja tarvikud

Lehe tööriistad


projektid:voistlusrobotid:robotex:2008:voistkonnad:2

Robotex 2008 võistkond 2 - "Commando"

Võistkond

Visioon robotist

Purkide ja sokkide leidmiseks tahame kasutada CMU cam 3-e ja IR sensoreid. Purgid tõstab roboti ees olev haarats kasti. Sokid tõmbavad sisse roboti ees olevad rullid. Robot peaks navigeeruma majakate abil, milleks võiks olla lihtsalt värvilised markerid, mida otsitakse kaameraga. Navigeerumist oleks vaja, et kokku kogutud kraam võimalikult lühikest teed mööda koju viia.Kaamera peaks suutma leida uue purgi või soki enne, kui eelmise võtmise operatsioon on lõpetatud, et võimalikult kiiresti uuesti liikuma hakata.Hea oleks, kui saaks purke ja sokke püüda peatumata. Robotil peaks olema ruumi kõigi purkide ja sokkide hoidmiseks ja korraga transportimiseks.

Töökava

Tegu Tegija Tähtaeg Olukord
Algne roboti platvorm Raul 12.09.2008 Valmis
Purkidekast Alan 08.10.2008 Valmis
Purkidetõstja Alan 08.10.2008 Lõppjärgus/katsetamisel
Servo toite plaadid Heiko 08.10.2008 Valmis
Sokkidekoguja Hindrik 08.10.2008 Lõppjärgus/katsetamisel
Compiler chain (CMUCam3) Tiit, Raul - Valmis
Atmega projektifailid Tiit - Töös
Sokkidekoguja mootor Hindrik - Valmis
Sokkidekoguja mootori draiver Heiko - Valmis
Roboti elektriskeemid Tiit - Plaanis
Kaamera valgustus Heiko - Valmis
Kaamera positsioon Raul - Valmis
Infrapuna andurid :?: - Plaanis
Majakad :?: - Plaanis
Solid'i mudel robotist :?: - Teisejärguline
Väljakul orienteerumine Tiit, Heiko - Plaanis
Kaabeldus Heiko - Valmis
CmuCam/ATmega suhtlus Tiit - Valmis
CmuCam'i kood Raul, Tiit - Lõppjärgus/katsetamisel

Dokumentatsioon

Lahenduse kirjeldus

Robot kasutab sokkide, purkide ja majakate leidmiseks CMUCam3-e, mis saab veel andurite infot Atmega128-lt, ning teeb selle info põhjal otsuse. Sidepidamiseks (ja progemiseks) on robotil olemas koht ka ZigBee raadiomoodulile. Roboti veermiku moodustavad kaks vedavat ratast komplektist RD01 ja üks tugirullik ees. Veomootorid ja nende kontroller on samuti RD01 komplektist ja neid juhitakse I2C protokolliga. Toiteks on kakas akut, väiksem LiPo sokkidekoguja mootorile, ja igavene jurakas LiPo aku kõigele muule. Purke korjab robot siinil sõitva haaratsiga ja paneb need enda selga kogumiskasti. Sokid kogutakse kokku värvirullidest koosneva mehhanismiga, mis viib sokid roboti sisse konveierile.

Mehaanika

Purkide kogumine oli lahendatud väga originaalselt ja ruumisäästlikult, siinil sõiteva haaratsiga. Siin koosneb kahest torust: esimest mõõda ronib haarats üles, teise abil takistab pöörlemist ümber esimese toru. Purkide haaramine käib nelja plastik toruga, mis laskuvad ülevalt purgi peale, ning mille vahele jääb purk kinni. Purgiga sõidab haarats üles ja üle kasti. Kastiserv on sellis kujuga, et haarats pääseb sealt läbi, aga purk mitte. Purk kukkub kasti, kuhu mahub neid kuus tükki. Kast on sellise kujuga kus purgid on külili reas ja kaldeall, ning kust nad veerevad välja luugi avanedes.

Sokkide kogumise mehaanika koosneb värvirullidest, mida ajab ringi mootor. Rullid lükkavad soki alumiinium pinda mööda üles ja üle kasti serva. Kasti põhi on lint, mis viskab sokid välja. Sokkidekogumise mehaanika õnnestus lõpuks saada hästi tööle. Rulle ringiajava mootori suure voolutarbe tõttu sai sellele pandud eraldi aku. Võistlusel takistas sokkide kogumist viga elektroonikas, mille tõttu mootorikontroller segaseks läks.

Elektroonika

Roboti elektroonika oli tehtud eraldiseisvate moodulitena. Mooduleid ühendasid lintkaablid ja ka toitejuhtmed. Plaadid paiknesid roboti tagaosas olevate liistakate peal. See raskendas tunduvalt neile juurdepääsu. Samas tekitasid kõik moodulitevahelised kaablid toreda pusa. Tõenäoliselt häirekindlam oleks olnud üks suur trükkplaat.

Kuna robotil oli palju erinevaid mooduleid, siis sai teha ka eraldiseisva toiteplaadi. Sellel paiknes ka pealüliti ja palju kaitsmeid. Juhtmete mugavamaks ühendamiseks oli plaat varustatud ka kruvitavate klemmidega. Mootorikontrollerite esmakordsel käivitamisel tekkis mõningane segadus läbipõlevate kaitsmetega. Õnneks oli vool lihtsalt arvestatust natuke suurem ja aitas tugevamate kaitsmete panek.

Atmega 128 plaat hoolitses roboti kõikide moodulite ja CMU cam3-vahelise andmevahetuse eest. Andurite ühendamiseks läksid kõik analoogsisendid käiku. Siit tuli selle roboti üks tõsisemaid probleeme. Osa sisendeid olid vigased. Tänu sellele oli robotil tõsised häired infrapunaandurite töös. Enne võistlust sai osa neist lülititega asendatud, aga nagu arvata oli, osad neist ei töötanud.

Roboti liikumapanemiseks tellisime RD-01komplekti. See sisaldas mootorikontrollerit, mootoreid ja rattaid. Alguses töötas kõik justkui hästi aga mida aeg edasi, seda rohkem hakkas selgeks saama, et see ei ole kõige stabiilsem. Enamuse ajast töötas see ilusti aga mõnikord hakkas ka trikke tegema.

Roboti rullmehanismi mootorit lülitasin sisse ja välja darlington lültiga. Töötas suhteliselt hästi. Hiljem sai ka selle mootori jaoks eraldi aku panna. Kuna optiline lahtisidestus ei tundunud alguses eriti vajalik, siis pääses tõenäoliselt süsteemi ka mõningal määral häireid. Nende kompenseerimiseks oli igaks juhuks ka toiteosas filter. Kõik ülejäänud mootorid olid ühendatud releeväljunditega.

Roboti purkidehaaramiskäppa juhtis L298 mikroskeem. See sisaldas endast kahte H-silda, millest kasutuses oli üks. Töötas ideaalselt ja lihtne oli juhtida.

Pilditöötlus

Pilditöötlus toimus CMUcam3-l. Kohe alguses sai otsustatud, et kaamera abil tuvastame purke, sokke ja majakaid, ning kataloogide tuvastamise jätame teistele anduritele.

Purkide leidmiseks analüüsis kaamera keskmist pikslite rida. Kaamera kõrgus oli nii sätitud, et keskpunkt oleks kõrgemal kataloogidest, aga madalam ülemisest väljakuäärest. Nii leidis kaamera purke kataloogide tagant. Purgi leidmiseks otsis kaamera mustade pikslite rida valgel taustal. Laiuse järgi määras purgi kauguse. Selline otsimismeetod toimis väga hästi ka kolme meetri kauguselt. Majakate otsimisel oli meetod sama, kuid ainult otsitav värv teine.

Sokke otsis kaamera sarnaselt nagu purke, aga ühe pikslirea asemel kõigilt mis jäid keskjoonest natuke allapoole. Leides rea, kus on kõige rohkem musti piksleid reas, saab selle rea ja maapinna vahelise nurga järgi leida kauguse.

Komponentide nimekiri

Komponent Kasutuskoht Kogus
CMU cam3 peamine andur 1
Komplekt RD-01 Veermik 1
Pleksiklaas Kere -
Atmega128 Kontroller 1
DC mootorid Igalpool 5
LiPo aku (3200mAh) Toiteallikas 1
XBee raadiomoodul Suhtlus arvutiga 1
Releed Mootritele 4
L298 mikroskeem Mootoritele 1
Pistikud Igalpool -
Suur kondensaator Toiteosa 1
Kaismed/ nende pesad Toiteosa 6
LED (valge) Kaamera valgus 3
Mikrolülitid Takistuste vältimine 3
GP2D12 Infrapuna kaugusmõõdikud 2
Peegelandurid Purgi tuvastus 2

Skeemid

Üldskeem Toiteplaat Releeplaat H-sillad
Üldskeem Toiteplaat Releeplaat H-sillad

Programm

ATmega

CMUCam3

Pildid

Hinnang

Elektroonika arendamiseks jäi aega väheks. Alles enne võistlust oli programm niikaugel, et süsteeme sai hakata tööle panema. Siis selgus, et analoogsisendid töötavad ebanormaalselt. Siin oleks tõenäoliselt aidanud uus kontroller.

Samas edaspidi on soovitatav kasutada võimalikult suuri trükkplaate, kuhu kõik ilusasti peale mahub. See vähendab tüütut juhtmemajandust ja aitab ka häireid vähendada. Häirete kohapealt veel - tuleks kasutada igalpool optilist lahtisidestust. Siis jääb tõenäoliselt nii mõnigi anomaalia tulemata.

Programmi reaalseks katsetamiseks jäi aega väheks, seda erinevatel põhjustel, milledest üheks oli kindlasti ka laiskus ja liigne usk heasse õnne. Suurim viga programmeerijate poolel oli täielik koostöö puudumine - igaüks ajas oma jonni ja arendas mingit enda programmi. Kahe iseseisva kontrolleri omavaheline suhtlus, ülesannete jaotus ja võimaluste rohkus osutusid palju segavamateks faktoriteks, kui keegi oskas oodata.

projektid/voistlusrobotid/robotex/2008/voistkonnad/2.txt · Viimati muutnud: 2017/11/01 16:37 persoon liisu.miller