Sprawozdanie z laboratorium 3 (proste algorytmy w PLNXT)
Data: 22.04.2009
Godzina: 14.00
Skład grupy: Tomasz Dzierżanowski, Miłosz Fedak, Paweł Bicz
Robot: GIENEK
AGH, WEAIiE, Informatyka Stosowana, IV rok, 2008/2009
Implementacja algorytmów
Algorytm Omijanie przeszkód
start:-
nxt_open,
go_on_buddy.
go_on_buddy :-
nxt_go(200),
sleep(1),
trigger_create(_,sonic,wait_a_second_buddy).
wait_a_second_buddy :-
nxt_stop,
nxt_rotate(400,80),
nxt_go_cm(400,20),
nxt_rotate(400,-90),
nxt_go_cm(400,40),
nxt_rotate(400,-90),
nxt_go_cm(400,20),
nxt_rotate(400,90),
go_on_buddy.
% Sprawdzenie, czy natężenie dźwięku przekracza progową wartość.
sonic :-
nxt_ultrasonic(Distance,force),
Distance < 15.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
Algorytm Panikarz
start:-
nxt_open,
go_on_buddy.
go_on_buddy :-
nxt_go(200),
sleep(1),
trigger_create(_,clap,wait_a_second_buddy).
wait_a_second_buddy :-
nxt_stop,
nxt_rotate(500,180,force),
sleep(1),
trigger_create(_,clap,wait_a_third_buddy).
wait_a_third_buddy :-
nxt_go_cm(500,20),
sleep(1),
go_on_buddy.
% Sprawdzenie, czy natężenie dźwięku przekracza progową wartość.
clap :-
nxt_sound(Value,force),
Value > 20.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
Zdjęcia robota
Zdjęcie robota wykonane w czasie testów początkowych.
Zdjęcie robota wykonane w czasie omijania przeszkody.
Spostrzeżenia, napotkane problemy, wnioski
Przedstawione przez nas dwa algorytmy działają poprawnie z dokładnością do precyzji działania komend.
W przypadku testowania algorytmu Omijanie przeszkód komenda obrotu robota o zadany kąt nie działała poprawnie. Kąt obrotu wykonanego przez robota był zauważalnie różny od oczekiwanego. Dla wartości 90° oraz -90° otrzymane kąty obrotów wynosiły odpowiednio około -75° i -105° co znacznie zakłócało poprawną pracę algorytmu. Dodatkowo próba ustawienia wartości kąta obrotu tak aby otrzymać obrót robota o kąt 90° okazała się trudna ze względu na niedeterministyczne działanie komendy obrotu.
W czasie pracy z robotem GIENIO napotkaliśmy problem z uruchamianiem kolejnych programów na robocie. W celu osiągnięcia komunikacji z robotem musieliśmy często restartować robota oraz konfigurować od początku środowisko pracy.
Mieliśmy także przypadek zawieszenia się procesu środowiska pracy xpce, który spowodował niemożliwość pracy z robotem do momentu zabicia zawieszonego procesu.
Uwagi dotyczące funkcjonalności PLNXT