Pierwszą część laboratorium poświęciliśmy na odpowiednie zkaliborwanie 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.
:- 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.
Zdołaliśmy podczas zajęć zaimplementować poprawnie i w całości jeden algorytm - Sprzątacz.
Rezultat możemy uznać za zadowalający, czego dowodem jest:
(Youtube) Film ilustrujący działanie robota
Po raz kolejny dość problematyczna okazała się kalibracja sensorów. Na filmie powyżej widać, że np. robot reaguje na czerwoną piłeczkę, która słusznie interpretuje jako element nieporządany podlegający posprzątaniu, ale już zieloną gąbkę w zupełności ignoruje. Niemniej ze sporą skutecznością irek zdał egzamin na wykwalifikowanego konserwatora powierzchni płaskich.