Difference between revisions of "Acrob robot constructs a map of a maze (Péter Dobsa, Gergely Labanc)"
(→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()) | |
+ | { | ||
+ | --pravyRychlost; | ||
+ | ++lavyRychlost; | ||
+ | forward(); | ||
+ | } | ||
+ | else if (hodnoty[3] == 1 && hodnoty[4] == 0 && nieJeZakruta()) | ||
+ | { | ||
+ | ++pravyRychlost; | ||
+ | --lavyRychlost; | ||
+ | forward(); | ||
+ | } | ||
+ | </code> | ||
+ | , 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. | ||
===Zákruty a križovatky=== | ===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 | + | 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. |
# '''Zákruta tvaru: |_''' | # '''Zákruta tvaru: |_''' |
Revision as of 20:08, 26 June 2013
Contents
Ú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.
- Zákruta tvaru: |_
- Zákruta tvaru: _|
- Križovatka tvaru: T
- Križovatka tvaru: |-
- Križovatka tvaru: -|
- Križovatka tvaru: +
- Slepá ulička