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

From RoboWiki
Jump to: navigation, search
(Sledovanie čiary)
(Sledovanie čiary)
Line 14: Line 14:
  
 
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:
 
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:
<code> if (hodnoty[3] == 0 && hodnoty[4] == 1 && nieJeZakruta())
+
<syntaxhighlight lang="cpp">
 +
 
 +
    if (hodnoty[3] == 0 && hodnoty[4] == 1 && nieJeZakruta())
 
     {
 
     {
 
       --pravyRychlost;
 
       --pravyRychlost;
Line 26: Line 28:
 
       forward();
 
       forward();
 
     }  
 
     }  
</code>
+
</syntaxhighlight>
 
, kde <code>pravyRychlost</code> a <code>lavyRychlost</code> služia na nastavenie rýchlosti otačania daného koliska, pritom funkcia <code>forward()</code> pomocou týchto premenných vykonáva zmeny, pomocou triedy <code>Servo</code>, čo je súčasťou základných knižníc Arduino knižníc.
 
, kde <code>pravyRychlost</code> a <code>lavyRychlost</code> služia na nastavenie rýchlosti otačania daného koliska, pritom funkcia <code>forward()</code> pomocou týchto premenných vykonáva zmeny, pomocou triedy <code>Servo</code>, čo je súčasťou základných knižníc Arduino knižníc.
  

Revision as of 20:10, 26 June 2013

Ú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