Sprawozdanie z laboratorium nr 6

  • Robot: Dyzio oraz gościnnie Henio
  • Data laboratorium: 09.06.2010 godz. 9:30
  • Data wykonania: 11.06.2010
  • Autorzy: Jakub Gorzała, Oskar Jankiewicz, Łukasz Kowalski

Budowa robota

Podczas ćwiczenia wykorzystywaliśmy w pełni wyposażonego robota, TriBota.

Konfiguracja stanowiska pracy

Po uruchomieniu komputerów i pomyślnym połączeniu się z robotem Dyziem, przystąpiliśmy do pracy nad programem.

Zaimplementowane algorytmy

Więzień (wersja na dwa roboty)

Pierwszą część laboratorium poświęciliśmy na odpowiednie skaliborwanie robota. Celem kalibracji było tak dobranie wartości pobieranych przez fotokomórkę, aby odpowiednio wykrywane były kolor czarny oraz biały. Pojawiły się z tym spore problemy. Oświetlenie na stolikach różniło się znacznie od oświetlenia na podłodze, co uniemożliwiło uniwersalną kalibrację. Nawet na samym stoliku (przy wyłączonej jak i włączonej diodzie doświetlającej) fotokomórka zwracała wartości bardzo różne. Po dłuższej chwili, gdy kalibracja wydawała się być zadowalająca, przystąpiliśmy do realizacji programu „Więzień” z użyciem dwóch robotów.

W pierwszej wersji postanowiliśmy w jednym programie wprawić dwa roboty w ruch. Oba poruszały się w obrębie planszy i gdy wykrywały czarną krawędź zawracały. Ilustruje to filmik: (Youtube) Dwa roboty w czarnym obszarze. Na filmiku widać, że oba roboty w miarę poprawnie wykrywają czarne krawędzie (ani jeden nie wyjechał poza czarny obszar), lecz czasami pojawiają się wykrycia czarnego koloru, na teoretycznie jasnym podłożu. Podejrzewamy, że spowodowane to mogło być załamaniami planszy lub cieniem rzucanym przez robota.

Treść zadania wymagała, aby roboty zaczęły uciekać z obszaru otoczonego czarną linią, gdy jeden z nich znajdzie czerwone pole. Wykrycie czerwonego pola, sprawiło nam nie lada problemy. Spowodowane to było juz powstałymi problemami z rozróżnianiem kolorów, a do tego, czerwone pole było otoczone przez czarny pasek, który był rozpoznawany przez roboty jako granica. Postanowiliśmy nie marnować czasu na ponowną kalibracje fotokomórki. W związku z tym wprowadziliśmy zmiany do algorytmu, które powodowały, że gdy jeden z robotów (dowolny) natrafi na czarną linię (której wykrywanie zostało już w miarę poprawnie skalibrowane) oba roboty zaczną uciekać. Filmik pokazuje rezultaty naszej pracy: (Youtube) Roboty uciekają, gdy któryś natrafi na czarny kolor. Widać na filmiku, że w momencie wykrycia przez pierwszego robota czarnego koloru, oba roboty „rzucają się do ucieczki”.

:- consult('plnxt.pl').

start :-
       nxt_goal(dyzio, go_go_go),
       nxt_goal(henio,go_go_go).

go_go_go :-
       nxt_go(120),
       nxt_light_LED(activate,force),
       trigger_create(1,black_hole, die_robots),
       trigger_create(2, red_light, run_run).

black_hole :-
       nxt_light(Value,force),
       write(Value), write(', \n'),
       Value < 50,
       nxt_light(Value,force),
       Value < 50.

red_light :-
       nxt_light(Value,force),
       write(Value), write(', red\n'),
       Value < 63,
       Value > 55.

die_robots :-
       nxt_switch_robot(henio),
       nxt_rotate(200,180,force),
       nxt_go(900,force),
       nxt_switch_robot(dyzio),
       nxt_rotate(200,180,force),
       nxt_go(900,force).
run_run :-
       trigger_kill(1),
       trigger_create(3,black_hole, stop),
       nxt_go(300).

turner_brown :-
       nxt_rotate(120, 120,force),
       go_go_go.

stop :-
       trigger_killall,
       nxt_stop,
       nxt_close.

Spostrzeżenia, wnioski

Nasuwające się wnioski to brak czasu na wykonanie wszystkich algorytmów oraz czasami niedeterministyczność działania niektórych sensorów.

Plik z programem

pl/dydaktyka/piw/2010/sprawozdania/piw20100609-09b.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0