Sprawozdanie, laboratorium nr 3
Wstęp
Na niniejszym laboratorium nawiązaliśmy współpracę z robotem Lego Mindstorm NXT, który ma na imię „Czesław”. Wygląda on następująco:
Nasz robot uzbrojony jest w dwa silniki, każdy z nich napędza jedno z kół. Zatem mamy tutaj do czynienia z jednym niezależnym mostem napędowym. Ponadto, „Czesław” zaopatrzony jest w trzy sensory: dotyku, dźwięku oraz ultradźwięku.
Zrealizowane zadanie
Zadanie "Panikarz"
Napisaliśmy program w języku Prolog, który po kompilacji, załadowaniu go do pamięci robota, oraz po uruchomieniu go dla naszego robota, sprawia, iż „Czesław” nabiera następujących zachowań:
Robot „Czesław” poruszą się wolno, spokojnie. Po klaśnięciu (czyli po wywołaniu nagłego hałasu) „Czesław” zmienia kierunek ruchu i przez pewien czas poruszą się dość szybko (nie jest wtedy podatny na hałas, np. klaśnięcie). Jednakże, po paru chwilach „Czesław” uspokaja się i znów porusza się wolno, spokojnie, jak poprzednio, przed klaśnięciem. Zatrzymuje się i zamyka połączenie po wciśnięciu sensora dotyku.
Kod źródłowy powyższego algorytmu dla języka Prolog wygląda następująco:
%Zadanie "Panikarz"
:- consult('plnxt.pl').
start :-
nxt_open,
thread_create(go_on_buddy,_,[detached(true)]).
go_on_buddy :-
nxt_go(200),
trigger_create(_,clap,after_clap).
after_clap :-
nxt_stop,
nxt_rotate(350,120),
nxt_go_cm(500, 20),
nxt_go(200),
trigger_create(_,touch,stop).
clap :-
nxt_sound(Value,force),
Value > 75.
touch :-
nxt_touch(Value,force),
Value > 0.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
Robot „Czesław” przemieszcza się wzdłuż linii prostej ze stałą, niewielką prędkością (200 jednostek), a gdy pojawi się sygnał na czujniku dźwięku powyżej wartości 75 jednostek, zatrzymuje się i szybko obraca o kąt 120 stopni. Następnie zaczyna szybko przemieszczać się z prędkością 500 w wybranym kierunku, aż przejedzie 20cm. Po paru chwilach robot zwalnia, i kontynuuje przechadzkę z niewielka prędkością (200).
Gdy pojawi się sygnał na czujniku dotyku robot zatrzymuje się i algorytm kończy swoje działanie.
Zdjęcia
Filmy
Filmy pokazujące zachowanie naszego robota dla algorytmu „Panikarz” znajdują się w załączniku do niniejszego sprawozdania (filmy *.3gp).
Wnioski, spostrzeżenia, napotkane problemy
Czasami zdarzało się, iż otrzymywaliśmy od środowiska Prologu komunikaty o błędach lub ostrzeżenia, po czym mieliśmy trudności z ponownym zmuszeniem naszego robota do wykonywania naszych algorytmów. Niekiedy musieliśmy radzić sobie z tymi problemami w sposób siłowy - restart środowiska Prologu lub restart kostki centralnej robota.
A oto zrzuty ekranu ukazujące wspomniane problemy:
Poniższy odnośnik zawiera kod źródłowy programu „Panikarz”, oraz wszelkie zdjęcia użyte w niniejszym sprawozdaniu, a także filmy ukazujące działanie programu „Panikarz” na naszym robocie „Czesław”.
Źródła_i_Multimedia