Difference between revisions of "Pohyb robota po čiare a zaznamenávanie vzdialenosti okolitých objektov (Dudík, Kemény)"

From RoboWiki
Jump to: navigation, search
Line 50: Line 50:
 
</pre>
 
</pre>
  
<u>zdrojový kód</u>[http://virtuallab.kar.elf.stuba.sk/robowiki/index.php?title=Image:Projekt_d_k.zip]
+
zdrojový kód[http://virtuallab.kar.elf.stuba.sk/robowiki/index.php?title=Image:Projekt_d_k.zip]
  
 
===Výstup===  
 
===Výstup===  
  
'''video mapovania'''[http://tinypic.com/r/fthc42/5]
+
video mapovania[http://tinypic.com/r/fthc42/5]
  
 
<u>Ukážka z výstupného textového okna programu </u>
 
<u>Ukážka z výstupného textového okna programu </u>

Revision as of 22:43, 7 June 2013

Úvod

Našou úlohou bolo naprogramovať Acrob robota tak aby sa hýbal smerom dopredu sledovaním čiary a popritom meral vzdialenosti okolitých objektov. Na sledovanie čiary sme použili dva svetelné čiarové senzory. Na zisťovanie vzdialenosti okolitých objektov sme použili IR senzor. Použili sme iba jeden senzor umiestnený na ľavom boku robota.

Zapojenie

Svetelne senzory popisky.png

Ir senzor popisky.png

Zapajanie popisky.png

Opis aplikácie

Aplikcáia sa delí na dve logické časti. V prvej sa vykoná takzvaný SETUP robota, kde sa inicializujú jeho vnútorné premenné. V druhej časti sme definovali samotnú funkionalitu robota. Základné funkcie, ktoré robot vykonáva sú sledovanie čiary a mapovanie okolitého prostredia.

Sledovanie čiary

Aplikácia spracováva dáta, ktoré mu boli sprostredkované pomocu svetelných čidiel na podvozku robota. Tieto hodnoty si uchodva vo svojich vnútorných premmených a ďalej ich spracuváva. Ak sa svetelní snímač nachádza nad tmavým povrchom, reprezentovaným vodiacou čiarov, nasnímané hodnoty sú vysoké. Ak sa sníma bieli povrch an ktorom sa robot pohybuje, tak sú nanímané hodnoty veľmi nízke. Vďaka týmto veľkým rozdielom sme schopný detekovať jeho pozíciu. Lokácia robotaprebieham týmto spôsobom. Ak sa nasmímali nízke hodnoty na pravom čidle aj lavom tak sa robot pohybuje rovno. Vodiaca čiara sa nachádza medzi čidlami. Ak Robot detekuej že jedno čislo zaznamenalo rapídný nárazd hodnoty, aplikácia upraví pohyb robota tak aby sa vrátil do pôvodnej dráhy a dostal vodiacu čiaru medzi svetlené čidlá.

Mapovanie prostredia

Mapovanie prebieha za behu robota. Aplikácia vo vnútri robota vykonáva nielen snímanie povrchu ale zaznamenáva aj okolie robota. Okolie je snímané pomocov IR senzora. jeho výtupy sú spracované špeciálne navrhnutými algoritmami na mapovanie. Algoritmus spracováva vzdialenosť okolitých objektov, ktoré boli zaznamenané ako jendotný tok znakov reprezentujúcich vzdialenosti. Pre jednoduchšie spracovanie a následnú vizualizáciu dát sme tieto namerané dáta predelili konštantou.


Zdrojový kód

Ukážka podmieneného smeru pohybu robota

Situácia : Lavý čiarový senzor narazil na vodiacu čiaru a je porebné vykonať korekciu pohybu do lava.

if (val_senzor_l > 200) {   
  Lavy_motor.write(90+SLOW);
  Pravy_motor.write(90+SLOW);
  delay(800);
  Lavy_motor.write(90 - SLOW);  
  Pravy_motor.write(90 + SLOW); 
  delay(500);
}

Ukážka procesu mapovania

Skreslena_vzdialenost = val_infra_1 / 80;               //hodnotu senzora predelim konstantou ktora bola optimalizovana
if (Skreslena_vzdialenost < 10) {                       //vdaka optimalizovanej konstante by hodnota nemala prekrocit desat
  CelaMapa += String( 10 - Skreslena_vzdialenost, DEC); //zapisem nameranu hodnotu do stringu
  CelaMapa += String( " ");                             //pridam medzeru za kazdou hodnotou
}

zdrojový kód[1]

Výstup

video mapovania[2]

Ukážka z výstupného textového okna programu


Autor: Adam Dudík, Patrik Kemény