User Tools

Site Tools


projektid:voistlusrobotid:robotex:2011:voistkonnad:2

Võistkond Mäger 2011

Tegijad

Eelarve

Eelarve: 306 € (5000 eek) ?

Robotiklubi poolt makstud

Kulu Summa(€) Selgitus
Ühendused PC-le 68 Arvega makstud
Komponendid uuele toiteplaadile 52 Farnelli tellimus
Peegli valmistamine 48 Arvega makstud
Peegli poleerimine 10 Arvega makstud
Kaamera postikulu 80 Tšekiga
PS3 kaamera(eelmisest aastast) 43 (700 eek) Tšekiga
Kokku 301

Hetkel eraarvelt

Kulu Summa(€) Maksja
LiPo laadija 14 Ronald
7,4V LiPo akud 2x 16.5 Ronald
Pallid 12tk 11 Siim
Plastiku Liim 6.5 Siim
Liivapaber ja poleerimispasta4Ronald
LiPo laadijale toitekaabel 5 Ronald
Kaitsmed6Ronald
USB-kaabel, D25 pistik, 2×28 andmesidekaabel, termokahanev rüüs20Ronald
Kokku 62

DarthMäger

Elektroonika

Roboti elektroonika koosneb arukast kaamerast (smart cam), toitemoodulist, IR vastuvõtu moodulist, PisiXBEE2 moodulist, mootoridraiverist ja erinevatest anduritest(SHARP IR andurid, palli tuvastuse andur).
Robotil on 2 eraldi toiteahelat: 1 mootorite jaoks ja teine ülejäänud osade jaoks.
Roboti kere on “MAA”.
Osa roboti elektroonikast on eelmise, 2010 aasta roboti oma.
Lisandunud on uus toite- ja löögielektroonika moodul ning uus kaamera.

  • Üldskeem:

Üldskeem

NB! Pilt on 2010 roboti skeemist! PC ja kaamera on koos, pole enam PS3 kaameraid. Pole ümberlülitit aku ja adapteri vahel.

M-ga on tähistatud massiühendused korpusesse!

Kaamera

Ximea CURRERA-R

  • Tööstuslik kaamera koos arvutiga
  • Töötab toitepingel 12V kuni 48V
  • Ethernet, USB, RS232 ja IO liidesed
  • Energiasäästlik - 1,2A max vool
  • Windows 7

kaamera

Rohkem infot: http://www.ximea.com/en/machine-vision/smart-camera

Akutester/LIPO alarm

Moodul, mis annab märku LED-ga ja heliga kui LIPO aku on saanud liiga tühjaks. Sobib kasutamiseks 2 ja 3 elemendiliste LIPO akudega, mille pinge on 7,4 .. 11,1 V. Ühendatakse LIPO aku balancer-i pistikusse. Tegemist on valmis mooduliga, mis on valmistatud Hiinas. (Sarnased moodulid on leitavad nt ebay-st märksõnaga „lipo alarm“) Robotil on neid kasutusel 2 tk.

 LIPO alarm

Toite ja löögi moodul

Isevalmistatud moodul, kus on kaitsmed ja tehakse kõik robotile vajalikud pinged.

  • Sisendpinge 6,5V kuni 25V
  • Kaamera toide: 13,66V 1,5A
  • Muu elektroonika toide: 5V 1,5A

Kaamera toite jaoks on kasutatud LM seeria step-up muundurit, et tagada kaamera stabiilne töö ka tühja aku korral.
Elektroonika toites on kasutatud tööstuslikku 5V stepdown konverterit.
Plaadil on mitmejärgulised toitefiltrid.
Kaitsmeid on 3: sisendis ja mõlemas väljundis.
Moodulil on 2 sisendit: “Aku” ja “Adapter” ning moodul on projekteeritud võimaldama “Hotplug” lülitust.
NB! ei tööta viletsate impulsstoite adapteritega, mis näevad suurt kondensaatorit kui lühist…
Lisaks on toitemooduli plaadil ka täiesti eraldiseisev löögielektroonika, mis on mõeldud kahe lineaarmootori juhtimiseks.

  • Vajab löögiks ainult ca 200ms impulssi.
  • Toitepinge 12…24V.
  • Hästi lihtne skeem relee ja paari transistoriga
  • Kui kontroller jätab sisendi kõrgeks siis mootorile jääb kah pinge peale! Selle vastu kaitset pole!
  • Löögielektroonika sisend on optiliselt lahti sidestatud.
  • Sisend impulsi pikkusega saab reguleerida löögi tugevust.
  • Realiseeritud on ka automaatne mootorite tagasitõmbe lülitus.

NB! Tagasitõmbe lülitust tuleb veel testida ja välja selgitada, miks lõppastme transistor liialt kuumenes.

pwr-protector-regulator.pdf
pwr-protector-regulator.zip

Palli andur

Isevalmistatud andur, mis on vajalik selleks, et tuvastada kas pall on löögiulatuses roboti ees. Baseerub Hamamatsu anduri S4282-51 mikroskeemil. Rohkem infot ja skeem Hamamatsu anduri kohta:

Mootorikontroller, Mootoridraiver ja I/O moodul

PC liidestamiseks Mootoridraiveri, andurite, RC5 ja nuppudega on kasutusel modifitseeritud Pisi XBEE2 moodul.

Originaal skeemist on eemaldatud kõik pingeregulaatorid ja sinna on lisatud sillad, et igal pool oleks 5V pinge. Toitesse on lisatud 4 220uF kondensaatorit ja kõigi I/O viikude peal on 20pF kondensaatorid viigu ja toite vahel, et vähendada häireid.

Mootoridraiveriks on kasutusel samuti pisi XBEE2 juurde kuuluv draiveri moodul(3tk). Draiveri skeemi on H silla lähedale lisatud 220uF kondensaatorid, et vähendada pinge kõikumisi ja mootorite poolt tulevaid häireid. Häirete vähendamiseks on veel mootorite juhtmed kokku keerutatud ja keeratud ümber ferriit rõngaste, samuti on ka 100nF kondensaatorid mootori harjadel.

IR vastuvõtja

  • FPGA baasil 6 IR anduriga sõltumatu moodul.
  • Toitepinge: 5V.
  • Väljund: UART TX.
  • Baudrate: 57600.

Saadetakse 2 paketti, paketis on 8 data bitti: 6 nooremat on andurite info(kõige noorim on andur 1), vanim on signatuur(1 või 0) ja 1 kasutamata bit. Paketis signatuuriga 0 on rünnatava värava majakat nägevate andurite info(kui andur näeb siis temale vastav bit = 1), paketis signatuuriga 1 on koduvärava majakat nägevate andurite info. Need 2 paketti saadetakse 20 korda sekundis, pakettide omavaheline vahe on 3 bitti. Vahepeal kui midagi ei saadeta on väljund 1. Vastavalt standardile on paketis noorim data bit esimene ja vanim viimane!

Plaadil on iga anduri lähedal 2 LED-i: Sinine põleb kui andur näeb rünnatava värava majakat, punane põleb kui andur näeb koduvärava majakat. Mõlemad põlevad kui andur näeb mõlemat majakat.

Plaadil on 2 nuppu: üks valib väljaku, teine õige värava.

Et ei tekkiks segadust on plaadil kaks 7seg indikaatorit, mis näitavad milline väljak ja milline värav on valitud. Vasakpoolne näitab rünnatava värava majaka IR kanali numbrit, parempoolne koduvärava majaka oma.

Altium RC5 pealtvaade

rc5_receiver.pdf
ir_receiver.zip

Mehaanika

Üldine 3D mudel

Omniwheelid

Rattad on disainitud võttes inspiratsiooni Robocup small-size meeskonnalt Skuba, mis omakorda on saanud inspiratsiooni kelltki teiselt meeskonnalt. Rattad valmistas kõigile meeskondadele Sient OÜ.

Väikesed rattad on kinnitatud suure külge 2.5×8 mm tihvtidega. Kate positsioon fikseeritakse kolme 2.5×8 tihvtiga ning on kinnitatud kolme M2.5×8 poldiga. Ostetud Baltic Boltist.

Selleks, et saada paremad haakuvust, on väikeste rataste peale pandud tihendid. Tegemist on 3×8 o-ring thivtidega. Ostetud Alas-Kuulist.

omniwheel.zip

Rull

Selleks, et pall koonduks keskele ehk ka pööramisel püsiks keskel, on rull disainitud kahes osas. Antud robotil on need ka koonuse kujulised. Kuigi keskele liikumise effektiks ei ole koonuse kuju kõige olulisem, kuid annab siiski teatava efekti, siis kõige olulisem on aga asjaolu, et rull liigub üles-alla. Täpsemalt, kui pall on äärtes, siis on rull kõrgeimas asendis ning kui pall on keskel, siis on rull madalaimas asendis. Kuna rull tahab graviatsiooni tõttu maa suunas minna, siis on see võimalik, kui pall keskele liigub. Seega gravitatsioon suunab palli keskele.

Kuna pole katsetanud muud kui koonusrulle, siis ei saa ka kindlalt väita, et näiteks sirgete rullidega toimub soovitav efekt. Mehhanismis on palju nüannse. Nt pall peab kindlasti rulli alla minema.

Peegel

Tegemist on hüperboolse ristlõikega peegel (hüperboloidpeegel).

Peegel on arvutatud nii, et peeglil asetseks 4.5 m kaugusel asuv värav kõige välimisesääres ja hyperbooli fookus oleks kohakuti kaamera virtuaalse avaga.

Kujund, mis selle pöördkeha tekitab saab kirjeldada valemina, kui pöörkehateljeks on y telg:

 Peegli valems

Tarkvara

 Mägra tarkvaraprojekti klassidiagram

Sellel joonisel on toodud tarkvaraarhitektuuri põhilised klassid, nende hierarhia ning olulisemad liikmed ja meetodid. Ehk sellel joonisel ei ole kõiki klasse, nende liikmeid ja meetodeid.

  • Data Baasklass klassidele millede objekte on võimalik DataStorage klassi abil salvestada ja taasesitada.
  • SpineData Klass mille objektidele vastavad mootorikontrollerist tulnud paketid. Sisaldab andurite lugemeid, odomeetria tagasisidet. Senises implementatsioonis luuakse ja täidetakse selle klassi objekti klassis SpineSerialComm.
  • SpineCmd Klass mille objektidele vastavad algoritmi poolt mootorikontrollerile saadetud käsud. Selle klassi objekti täidab algoritm ning see saadetakse mootorikontrollerile SpineSerialComm poolt.
  • VisionData Klass mille objekt sisaldab pilditöötluse poolt tuvastatud olukorda (pallide ja väravate asukohta) ning mõnel juhul ka kaamera kaadrit. Selle klassi esimesed objektid luuakse ImageProcessor klassi konstruktoris. Pilditöötluse käigus täidetakse VisionData objekti välju ning neid objekte edastatakse WorkerThread'i kaudu algoritmile.
  • ImageProcessor Klass mis loob VisionData objektid ning mis käivitab ja peatab pilditöötluse lõime. Kasulik pilditöötluse implementatsioon peaks laiendama seda klassi ja üle kirjutama meetodi processing(), mis käivitatakse peale iga uue pildikaadri saabumist. Selles klassis tehakse ka pildikaadrite salvestamine .rgba failiks. Enne pilditöötluse käivitamist peab määrama meetodiga SetFrameSource() ära FrameSource objekt kust pilditöötlus võtab kaadreid.
  • ImageProcJ1 Mägra 2011 pilditöötluse algoritm.
  • FrameSource Baasklass klassidele mis on võimelised pilditöötlusele töödeldavaid kaadreid andma. Selles klassis on defineeritud roboti pilditöötluse resolutsioon.
  • FrameFromRL13C Klass Mägra Ximea kaameraga suhtlemiseks ja sealt kaadrite võtmiseks.
  • FrameFromFile .rgba failist pildi laadimine.
  • Algorithm Algoritmi baasklass. WorkerThread kutsub selle klassi Execute() meetodi, kus seatekse vajalikud lipud ja kopeeritakse andmed ning siis kutsutakse execute(), mis omakorda kutsub hetkel aktiivse olekuobjekti Run() meetodi ning vajadusel aktiveerib uue oleku (aktiivne olek on klassi liige currentStateObj). Algoritmi loomiseks tuleb teha klass mis on tuletatud klassist Algoritm. Tuletatud klass võib ka kirjutada üle meetodi execute() ja täita algoritmi loogikat üle kirjutatud execute() meetodis. Suuremate algoritmide puhul on siiski soovituslik kasutada olekuid mida esindavad klassist State tuletatud klasside objektid. Algorithm meetoditega transition() saab määrata kasutatavad olekud ning olekute sündmustele (event'idele) vastavad olekute üleminekud.
projektid/voistlusrobotid/robotex/2011/voistkonnad/2.txt · Last modified: 2022/04/28 20:24 by 127.0.0.1