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:

Pliki źródłowe oraz multimedia

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

pl/dydaktyka/piw/2009/sprawozdania/piw20090422-17e.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