Sprawozdanie nr 4

Robot:Kajtek
Data: 26.05.2010
Grupa: Woliński Krzysztof, Dawid Boisse, Paulina Mlaś

Przygotowanie do zajęć

Najpierw uruchomiliśmy dwa testowe programy, aby sprawdzić naszą komunikację z Kajtkiem.

Ćwiczenie pierwsze
:- consult('plnxt.pl').
 
start :-
	nxt_open,
	rectangle_loop.
 
rectangle_loop :-
	nxt_go_cm(350,40),
	nxt_rotate(350,90),
	rectangle_loop.
Ćwiczenie drugie
:- consult('plnxt.pl').
 
start :-
	nxt_open,
	nxt_goal(kajtek, rectangle_loop).
 
rectangle_loop :-
	nxt_go_cm(350,40),
	nxt_rotate(350,90),
	rectangle_loop.
 
stop :-
	trigger_killall,
	nxt_stop,
	nxt_close.

Pierwsze zadanie

Zgodnie z instrukcją rozpoczęliśmy implementację pierwszego zadania o nazwie „Więzień”. W pierwszej kolejności używając czujnika światła odczytaliśmy wartości dla kolorów: białego, czerwonego i czarnego.

Biały:42,40,41
Czerwony:35,37,37
Czarny:19,25,26,26
Kod programu
:- consult('plnxt.pl').
 
start :-
	nxt_open,
	nxt_goal(kajtek, go_on_buddy).
 
go_on_buddy :-
	nxt_go(800,30),
	nxt_light(Value),
	
	trigger_create(_,check_red,go_go_go),
	trigger_create(_,check_black,go_round),

	write(Value),nl,
	go_on_buddy.
	
check_black :-
	nxt_light(Value,force),
	Value < 30,
	write('black'),write(Value),nl.
 
check_red :-
	nxt_light(Value,force),
	Value > 34,Value < 38,
	write('red'),write(Value),nl.

go_go_go :-
	nxt_go(500,300),
	write('go'),nl.

go_round :-
	nxt_rotate(300,90),
	write('round'),nl.
 
stop :-
	trigger_killall,
	nxt_stop,
	nxt_close.

Niestety zauważyliśmy, iż robot nie poruszał się zgodnie z naszymi oczekiwaniami: przekraczał czarną linię zanim napotkał czerwony kwadrat. Spostrzegliśmy jednak, że plansza nie była jednorodnie oświetlona, np. z powodu cieni generowanych przez samego robota albo biurko. Aby rozwiązać ten problem włączyliśmy LEDa, jednak to także nie rozwiązało całkowicie naszego problemu. Zanotowaliśmy nowe wartości dla kolorów: białego, czerwonego i czarnego, które generował Kajtek. Kilka razy członkowie naszego zespołu podnosili robota, co było błędem ponieważ robot nadal zczytywał wartości i błędnie reagował.

Nowe wartości to:

Biały:41,42,43,44
Czerwony:38,39
Czarny:28,30,31,30,31
Poprawiony kod
:- consult('plnxt.pl').
 
start :-
	nxt_open,
	nxt_light_LED(activate),
	nxt_goal(kajtek, go_on_buddy).
 
go_on_buddy :-
	nxt_go(800,30),
	nxt_light(Value),
	
	trigger_create(_,check_red,go_go_go),
	trigger_create(_,check_black,go_round),

	write(Value),nl,
	go_on_buddy.
	
check_black :-
	nxt_light(Value,force),
	Value < 33,
	write('black'),write(Value),nl.
 
check_red :-
	nxt_light(Value,force),
	Value > 37,Value < 40,
	write('red'),write(Value),nl.

go_go_go :-
	nxt_go(500,300),
	write('go'),nl.

go_round :-
	nxt_rotate(300,90),
	write('round'),nl.
 
stop :-
	trigger_killall,
	nxt_stop,
	nxt_close.

Podsumowanie

Robot niekiedy poprawnie wykonywał swoje zadanie, ale zdarzało się również, że nie poruszał się zgodnie z zamierzeniami. Bardzo trudno było dobrać wartości w ten sposób by robot bezbłędnie je odczytywał i dobrze na nie reagował.

pl/dydaktyka/piw/2010/sprawozdania/piw20100526-15a.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