Acrob robot constructs a map of a maze (Péter Dobsa, Gergely Labanc)

From RoboWiki
Revision as of 20:09, 26 June 2013 by Robot (talk | contribs) (Sledovanie čiary)
Jump to: navigation, search

Úvod

Našou úlohou bolo mapovať bludisko pomocou robota Acrob, pričom sa používala on-line komunikácia medzi robotom a počítačom cez bluetooth.

Naše bludisko

Bludisko bolo reprezentované v 2D priestore, a tvorila ho čierna páska na bielom povrchu. Robot mal sledovať práve tú čiaru pomocou infračervených senzorov.

[[File: |none]]

Náš robot

Acrob = Arduino Compatible Robot

Mozog robota tvorila Arduinovská doska, ktorá poháňala dva servomotory ktoré slúžili na pohybovanie robota, spracovala prečítané údaje zo senzorov a preposlala ich počítaču pomocou bluetoothového modulu. Telo robota bolo vyvynuté Slovenskou Technickou Univerzitou. Na prednú dolnú časť bol pripevnený čiarový senzor, ktorý pozostával z ôsmych nezávyslých infračervených senzorov. Na hornú časť bol primontovaný bluetoothový modul.

Sledovanie čiary

Z konštrukcie senzoru a hrúbky čiary vyplývalo, že robot je v správnej polohe na čiare, ak senzor s číslom 3 a senzor s číslom 4 nesvietia, ostatné senzory áno. Pri pohybovaní sme pozorovali práve tie svietiace, aby sme mohli robota udržať správne na čiare. Kvôli nepresnostiam na mape alebo v kolieskach smer robota bolo treba stále trochu korigovať. Tento problém rieši tento kus kódu:

if (hodnoty[3] == 0 && hodnoty[4] == 1 && nieJeZakruta())

   {
     --pravyRychlost;
     ++lavyRychlost;
     forward();
   } 
   else if (hodnoty[3] == 1 && hodnoty[4] == 0 && nieJeZakruta()) 
   {
     ++pravyRychlost;
     --lavyRychlost;
     forward();
   } 

, kde pravyRychlost a lavyRychlost služia na nastavenie rýchlosti otačania daného koliska, pritom funkcia forward() pomocou týchto premenných vykonáva zmeny, pomocou triedy Servo, čo je súčasťou základných knižníc Arduino knižníc.

Zákruty a križovatky

Ak robot pri pohybe narazil na výrazné zmeny senzorov, bolo mu jasné, že dostal sa do križovatky, respektýve do zákruty. Museli sme rozlíšiť sedem rôznych stavov, a podla toho sa rozhodnúť, čo bude ďalším krokom.

  1. Zákruta tvaru: |_
  2. Zákruta tvaru: _|
  3. Križovatka tvaru: T
  4. Križovatka tvaru: |-
  5. Križovatka tvaru: -|
  6. Križovatka tvaru: +
  7. Slepá ulička

Aplikácia na vizualizáciu

Video