Kasutaja tarvikud

Lehe tööriistad


projektid:arendusprojektid:moodularhitektuurne_robotiplatvorm

Moodularhitektuurne robotiplatvorm (MARP)

Moodularhitektuurse robotiplatvormi ehitamise põhiliseks ülesandeks on valmistada standardsed ja universaalsed komponendid, mida saab omavahel lihtsalt ühendades koostada konkreetsele rakendusele vajaliku süsteemi. Selliselt saab roboti ehitamisel tegeleda ainult sisuliste probleemidega, mitte aga kulutada suurem osa aega tehniliste pisiasjade peale nagu see tavaliselt roboti ehitamisel välja kujuneb.

Universaalne robotiplatvorm peab suutma lahendada keerukaid ülesandeid(masinnägemine, tehisintellekt) ja mitte jääma sedavõrd kohmakaks (suured mõõtmed, suur energiatarve, tarkvara keerukas kasutamine), et ei sobiks ka äärmiselt lihtsate robotite ehitamiseks. Universaalsed komponendid on eelkõige elektroonikas ja tarkvaras, kuid ka mehaanikas. Projekti eesmärgiks on ehitada robotiplatvorm, mida kasutades saab olenemata konkreetsest ülesandest kõige väiksema ajakuluga koostada usaldusväärselt töötava roboti.

Elektroonikaplatvorm

Elektroonikaplatvorm on neljatasandilise ülesehitusega

  1. Juhtimine – pihuarvuti (PDA) – kontrollib ja juhib kogu roboti tegevust
  2. Selgroog – USB hub – vahendab infovahetust PDA ja moodulite vahel
  3. Moodulid – ühte tüüpi alamülesandedeid lahendav keskus
  4. Perifeeria – Mootorid, andurid, LEDid jne.

Pihuarvuti on roboti juhtimiseks kõige paremini sobiv, sest:

  1. Protsessori jõudlus piisav videopildi töötluseks
  2. Lihtne ja mugav programmeerida:
    • Programm saadedakse pihuarvutisse üle traadita võrgu – puuduvad tülikad juhtmed ja seadme programmaatori järele puudub vajadus
    • Programmeerimiseks kasutatav MS Visual Studio võimaldab:
      • Kasutada standardseid teeke, sealhulgas .NET framework’i – programmeerimise ja testimise aeg märgatavalt lühem
      • Lühikest kompileerimisaega
      • Simuleerida pihuarvuti programmi PC peal
      • Lihtsalt luua kasutajasõbralikke graafilisi kasutajaliideseid
  3. Kiire ja lihtsalt programmeritav (TCP/IP) traadita arvutiühendus (WLAN)
  4. Programmi töö lihtne kontrollitavus – VGA puutetundlik ekraan, helisignaalid, debug
  5. Kalleid elektroonikakomponente on keeruline katsetamise käigus ära rikkuda, kuna isevalmistatud odavad elektroonikaplaadid on ühendatud pihuarvutiga vaid andmesideliini kaudu.
  6. Laiendatavus - mälukaardi pesa, USB host, RS-232 järjestikliides
  7. Mõõtmetelt piisavalt väike
  8. Minimaalseks optimeeritud energiatarve
  9. Kõik roboti juhtimiseks vajalik ühes korpuses

USB platvorm

MARPi elektrooniliseks sidevormiks on USB - Universal Serial Bus. Põhjused USB valikul olid järgnevad:

  • Üldtunnustatud standard
  • Ühilduvus tavaarvutiga
  • Toitevool otse sideliinilt
  • Muutuva pikkusega paketid
  • Paketi prioritiseerimine
  • Varjestus häirete vähendamiseks
  • Veakontrollist tuleneb 100% töökindlus

Teoreetiline põhi tehniliseks teostuseks

PDA’ga on ühendatud USB hub’i vahendusel või ilma 1 või mitu moodulit. Kõigi moodulite koosseisu kuulub vähemalt üks Atmel AVR 8-bitine mikrokontroller, mis toetab USB liidest.
Mooduli peal on üks või mitu elementi, mis on täielikult juhitavad ja kontrollitavad USB kaudu. Iga element kuulub rangelt ühte elemendiklassi. Igale elemendiklassile vastab üks aadresside väli (0 – 65535). Igal elemendil on üks unikaalne aadress selle elemendiklassi aadresside väljast, kuhu vastav element kuulub. Unikaalne elemendi aadress s.t. ei leidu ühtegi elementide paari ühest elemendiklassist (olgu need mõlemad elemendid realiseeritud ühel või mitmel moodulil), mille aadress oleks täpselt kokkulangev.
Iga moodul oskab ennast kirjeldada: mooduli üldine info; millise aadressiga elemente omab ja millised on iga elemendiga opereerimise võimalused (elemendi klass + tarkvara versiooni number)
PC’le või PDA’le kirjutatud draiver töötab süsteemis teenuse pakkujana. Mitu programmi või lõime saavad korraga kasutada kõiki ennast süsteemile tutvustanud mooduleid ja neis sisalduvaid elemente, kusjuures kõigil teenuse kasutajatel (klientidel) on võrdsed õigused. Vaid teavituse saatmise korral on prioriteetsemad need kliendid, kes on end teenusepakkuja juurde varem registreerinud. Draiveril on täielik ülevaade nii oma teenusest (millised moodulid ja elemendid on ühendatud ja töövalmid) kui ka oma teenuse kasutajatest ja suudab sellisel moel kõigile oma klientidele (korraga ühele või mitmele) vajaduse korral (põhjuseks oleku muutus) teavitusi saata.
Igale elemendiklassile vastab üks klass programmis. Iga elemendiobjekt registreeritakse draiveri juures enne selle kasutusse võtmist. Elemendiobjekti loomise juures on põhiliseks parameetriks elemendi aadress, mis üheaegselt määrab ära millise mooduli ja millise elemendiga selle mooduli peal ühendus luuakse. Ühe ja sama elemendi kohta võib programmis (ühes või mitmes lõimes) kasutusel olla korraga mitu elemendiobjekti.

Moodul

Moodul on karbike, mille otsas on tavaline USB pistik, mille saab kas otse hub'i sisse pista või kasutada selleks pikendusjuhet. Üks moodul on spetsialiseerunud ühte tüüpi ülesannete täitmiseks.

Iga moodul:

  1. oskab ennast USB host'ile tutvustada
  2. võimaldab USB ühenduse kaudu kõiki parameetreid lugeda ja muuta
  3. teatab USB host'ile oleku muutusest

Moodulis olevat programmi üldjuhul üle ei programmeerita. Samas moodulite mikrokontrolleritel on alati olemas bootloader, mille abil on moodulit võimalik programmeerida USB pordi kaudu. Kõikide moodulite põhikomponendiks on Atmel'i mikrokontroller:

Elemendiklass

Mooduli element on kõige väiksem riistvaraline ühik, mida robotit juhtiv tarkvara tervikuna „näeb“. Näiteid elemendiklassidest:

  1. Sisendport – 8 bitti
  2. Väljundport – 8 bitti
  3. Väline katkestus – 1 sisend
  4. PWM – 1 väljund
  5. Analoog-digital konverter – 1 sisend
  6. jne.

USB hub kui MARPi selgroog

PDA külge on ühendatud USB hub (näiteks mõni neist, mis on kujutatud piltidel), mille külge omakorda ühendatakse moodulid juhtmega või otse pesasse asetatult. Moodul on USB mälupulga taoline karbike, mis on võimalik vastava kinnitusega põrutuskindlalt fikseerida USB hub'i külge. USB hub'i pesad võiksid olla vertikaalsed(pildil) - selliselt on võimalik moodulid asetada üksteise kõrvale pikendusjuhtmeta nagu PC laienduskaardid on paigutatud PCI siinile.

Verikaalsed pesad 7*USB 1.0/1.1/2.0 Verikaalsed pesad 4*USB 1.0/1.1 Verikaalsed pesad 7*USB 1.0/1.1/2.0 Väikesed mõõtmed, pööratavad pesad 4*USB 2.0

OSI mudel

OSI mudel

  • MARP teenusepakkuja – Windows Service, mis suhtleb USB draiveriga ja TCP/IP protokolli kaudu MARP serveriga. MARP teenusepakkujal on ülevaade kõigist MARP programmidest ja süsteemi ühendatud moodulitest. MARP teenusepakkuja on MARP serveri klient.
  • MARP programm – juhib ja kontrollib MARP teenusepakkuja kaudu mooduli elemente. MARP programmi jaoks ei ole erinevust, kas moodulielement asub moodulis, mis on ühendatud kohaliku arvuti USB porti, või moodulis, millega peetakse ühendust MARP serveri kaudu (näiteks nii: MARP programm → MARP teenusepakkuja 1 → TCP → IP → WLAN → Elektromagnetlaine → WLAN → IP → TCP → MARP server → TCP → IP → Ethernet → Etherneti kaabel → Ethernet → IP → TCP → MARP teenusepakkuja 2 → USB draiver → USB host → USB kaabel → USB klient → Moodul).
  • MARP server - Windows Socket TCP/IP serverrakendus, mille kaudu erinevates arvutites asuvad MARP teenusepakkujad peavad omavahel ühendust. MARP serveri vahendusel on kõigil MARP teenusepakkujatel ühine moodulite ressurss.

Äärmuslikud näited, mida taoline süsteem võimaldab:

  • Täielikult juhtida ja kontrollida WLAN’i alas olevat robotite gruppi (näiteks sada tükki) suvalisest Internetti ühendatud personaalarvutist või pihuarvutist.
  • Täielikult juhtida ja kontrollida mitmest internetti ühendatud arvutist korraga kahte moodulit, mis on ühendatud erinevatesse Internetiga varustatud arvutitesse, mille omavaheline kaugus on näiteks 5000 kilomeetrit.

Draiver

USB’ga mooduli draiver saab olema nii PC’le kui ka PDA’le. Selliselt saab roboti osi eraldi kiiresti testida PC abil, kus graafilise kasutajaliidese vahendusel saab kontrollida ja täielikult juhtida kõiki arvutiga ühendatud mooduleid.
Draiveri kirjutamiseks vajalikud materialid:

  1. Windows’i Hardware Development Kit (HDK) ehk kogu materjal selle kohta, kuidas Windows'i USB'le draiverit kirjutada:
  2. Kõikvõimalikud Internetileheküljed, kus jagatakse praktilisi kogemusi antud teema kohta

Kasutatav tarkvara

  1. WinAVR - GCC, Programmers Notepad
  2. AVR Studio - mikrokontrolleri programmeerimiseks JTAGmkII-ga.
  3. DoxyS - GNU C++ koodiga seotud dokumentatsioon HTML formaadis
  4. IBM Rational Rose 7.0.0 Rose Enterprise Edition - UML modelleerimine
  5. MS Office 2003:
    • Excel - moodulite töö reaalajas jälgimine
    • Word - dokumentatsioon
  6. MS Visual Studio 2005:
    • Native C++ - draiver
    • Managed C# (.NET Framework) - graafilised kasutajaliidesed

Roboti peal kasutatav pihuarvuti


Fujitsu Siemens Pocket LOOX N560


Datasheet

• Intel PXA270 624 MHz based on Intel XScale microarchitecture
• System memory (RAM) 64 MB
• Flash memory (ROM) 128 MB
• Full integrated SiRF Star IIIChip for GPS
• 3.5-inch VGA 480 x 640 colour transflective TFT Touchscreen,
• 65.536 colours, LED backlight
• Integrated, 802.11 b/g (11 or 54 Mbps), Wi-Fi certified
• Integrated Bluetooth 1.2
• Interfaces

  • 1 x built-in microphone
  • 1 x speaker
  • 1 x headphone (3.5 mm) 4 pin
  • 1 x IrDA
  • USB 1.1 (slave) via sync cable
  • Full Speed (12 Mbps) USB 1.1 (host) via sync cable
  • Serial (RS232) via sync cable
  • Stereo Audio Out on cradle connector

• Expansion slots: SD card/MM card (SD I/O)
• Battery

  • Exchangeable Lithium-Ion battery, rechargeable Main battery 1200 mAh

• Power supply

  • Rated voltage 110 – 240 V Power cord with EU plug, UK plug additionally available, standard in UK versions

• Standby time

  • Fully charged 500 h Battery life may vary depending on product model, configuration, applications, power management settings and features utilized.
  • Battery recharge time depends on usage.

• Dimensions / weight

  • Dimensions (H x W x D) 116 x 71x 14 mm Weight app. 160g

Hind Interneti poodides alates 6000 EEK, Eestis alates 7000 EEK

Kaamera

Kuna eeldatavasti Pocket PC peal Windows XP draivereid kasutada ei saa ja ühelgi (tavalisel) veebikaameral ei ole draiverit Windows Mobile operatsioonisüsteemi jaoks, siis alternatiiviks on kaamera, mis ühendatakse SD mälukaardi pesa kaudu(pildil). Taolised kaamerad võimaldavad suhteliselt kvaliteetset pilti (1.3 megapixels (1280*960) stillimage, video kaadrisagedus 20 Hz).
Kuna praegusel hetkel ei ole tootmises ühtegi pihuarvutit, mis toetaks USB 2.0 (host) standardit Hi-Speed (480 Mbps) ja parim turul olev on varustatud ainult USB 1.1 (host)Full Speed (12 Mbps), siis selleks, et ühendus moodulitega USB kaudu ühendatud kaamerast põhjustatud ülekoormuse tõttu kauaks rippuma ei jääks, tulekski kasutada kaamera ühendamiseks teist infotranspordi kanalit. Üheks võimaluseks on kasutada ka mõnda ASUS'e pihuarvutit, millele on kaamera sisseehitatud. Selle tugevaks puuduseks on aga ebapiisavad võimalused kaamerat suunata.
Kui SD-kaardi pesasse paigaldatav kaamera peab asetsema konkreetsest ülesandest tulenevalt roboti peal pihuarvutist mõnevõrra eemal, siis saab kasutada pikendusjuhet. Nii või teisiti sellise kaamera kasutamine välistab samaaegse mälukaardi kasutamise, mis ehk ei olegi probleem, kui mälu „juurdetegemise“ vajadusel Word, Excel, Powerpoint, Outlook ja muu taoline roboti juhtimiseks ebavajalik tarkvara süsteemist eemaldada.

Kaamera SD-kaardi pesasse ühendatav kaamera PDA jaoks

Pildil toodud kaamera hind 1100 EEK, sisaldab draiverit Windows XP'le ja Windows Mobile'le

Olukord

USB põhine robotiplatvorm on välja-arendamisel TTÜ Mehhatroonikainstituudi UKU roboti projektis. Kontaktisik Mikk Leini.

Tegijad

projektid/arendusprojektid/moodularhitektuurne_robotiplatvorm.txt · Viimati muutnud: 2016/09/03 16:25 persoon raivo.riiel