Robot: Irek
Grupa: środa 12.30
Autorzy: Jakubas , Kozera, Płaszowski
Wstęp
Celem laboratoriów było przetestowanie możliwości interfejsu programistycznego PLNXT do budowy algorytmów o wyższym stopniu złożoności.
W czasie wykonywania zadania korzystaliśmy z następujących narzędzi:
Problem: Zawieszanie wątków
Podobnie jak na poprzednich zajęciach, często zdarzało się, iż program po wykonaniu i zabiciu nie zwalniał zasobów(pomimo wykorzystania triger_killall), przez co robot nie odpowiadał do inne komendy.
Programy
Algorytm Sprzątacz
Opis programu
Robot zaprogramowany przez nas, po umieszczeniu w środkowej części planszy, porusza się po bokach kwadratu o rosnącej długości, tworząc swoistą spiralę. Przedmioty są spychane coraz bardziej na zewnątrz. Dodatkowym ulepszeniem robota była próba zamontowania części na kształt pługa, który by pomagał zsuwać przedmioty w kierunku obrzeży planszy.
Kod programu
:- consult('../plnxt/plnxt.pl').
start :-
nxt_open,
walk(1).
walk(10) :-
die.
walk(K) :-
NK is ( K+(1 - (K mod 2)) ) / 3,
nxt_go(300),
sleep(NK),
nxt_stop,
nxt_rotate(300,90),
sleep(2),
walk(K+1).
die :-
nxt_stop,
sleep(1),
trigger_killall,
sleep(2),
nxt_stop,
nxt_close.
obrot :-
nxt_stop,
nxt_rotate(300,60),
sleep(2),
trigger_create(_,check_distance,[obrot]),
nxt_go(300).
Załączniki