To jest stara wersja strony!
Sprawozdanie z laboratorium (zaawansowane algorytmy w PLNXT)
Robot: Ewka
Data wykonania: 2.06.2010 godz. 9:30
Autorzy: Gabriela Pasek, Michał Paszko, Leszek Piątek
Początek
Jak zawsze na początku zapoznaliśmy się z tematyką laboratorium. Z racji tego, że na poprzednich zajęciach udało nam się zaimplementować tylko algorytm Więźnia, zaczęliśmy od algorytmu Sprzątacza.
Dostaliśmy zbudowanego już robota, jednakże postanowiliśmy usunąć szczypce i zamienić je na własny spychacz. Zmieniliśmy także umiejscowienie czujników na Ewce.
Zadanie postanowiliśmy realizować w następujący sposób: robot miał obracać się i sprawdzać, czy w promieniu 30-40 cm znajduje się jakiś przedmiot; jeśli tak - podjeżdżał do niego i wypychał go a następnie cofał się na początkową pozycję.
Kod programów
Sprzątacz ver. 1
:- consult('plnxt.pl').
start :-
nxt_goal(ewka, alg1).
alg1 :-
nxt_rotate(200, 10),
nxt_ultrasonic(Value,force),write(Value),nl,
Value < 21,
%trigger_create(_,check_distance,[nxt_go_cm(200, 30),nxt_go_cm(-200, 30)]),
alg1.
alg1 :-
alg1 :-
nxt_rotate(200, 10),
nxt_ultrasonic(Value,force),write(Value),nl,
Value > 21,
%trigger_create(_,check_distance,[nxt_go_cm(200, 30),nxt_go_cm(-200, 30)]),
alg1.
check_distance :-
nxt_ultrasonic(Value,force),write(Value),nl,
Value < 21.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
Sprzątacz ver. 2
:- consult('plnxt.pl').
start :-
nxt_goal(ewka, alg1).
alg1 :-
nxt_rotate(200, 360),
trigger_create(_,check_distance,[nxt_go_cm(200, 30),nxt_go_cm(-200, 30)]),
alg.
check_distance :-
nxt_ultrasonic(Value,force),write(Value),nl,
Value < 21.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
Spakowane pliki źródłowe: lab5_ewka_ppp.rar
Spostrzeżenia, napotkane problemy, wnioski
Napotkane problemy
Spostrzeżenia
Wnioski
Uwagi dotyczące funkcjonalności PLNXT