Sprawozdanie z laboratorium (proste algorytmy w PLNXT)

  • Robot: Ewka
  • Data wykonania: 19.05.2010 godz. 17:00
  • Autorzy: Gabriela Pasek, Michał Paszko, Leszek Piątek

Kod programów

Algorytm1

:- consult('plnxt.pl').
 
start :-
	nxt_open,
	nxt_goal(ewka, alg1).
 
alg1 :- 
	nxt_go(200),
 	trigger_create(_,check_line,[nxt_stop,Angle is 120 + random(120),nxt_rotate(100,Angle)]),
	alg1.
 
check_line :-
	nxt_light(Value, force),write(Value),nl,
	Value < 30.
 
stop :-
	trigger_killall,
	nxt_stop,
	nxt_close.

Algorytm2

:- consult('plnxt.pl').
 
start :-
	nxt_open,
	nxt_goal(ewka, alg2).
 
alg2 :- 
	nxt_go(100),
 	trigger_create(_,check_line,[wroc_na_linie]),
	alg2.
 
check_line :-
	nxt_light(Value, force),write(Value),nl,
	Value > 30.
 
wroc_na_linie :-
	nxt_stop,
	nxt_rotate(100, 10),
        trigger_create(_,not(check_line),[alg2]).
 
stop :-
	trigger_killall,
	nxt_stop,
	nxt_close.

Spakowane pliki: pasek_paszko_piatek_lego_lab3.rar

Spostrzeżenia, napotkane problemy, wnioski

Spotrzeżenia

  • Bez wątpienia praca w środowisku PLNXT daję nam większa kontrolę nad robotem, niż wykorzystywanie środowiska LEGO - przynajmniej na razie.

Napotkane problemy

  • Pierwszym zauważonym przez nas problemem był brak charakterystycznego dźwięku przy włączaniu brick'a robota Ewka.
  • Drugim mogącym budzić podejrzenia objawem było dziwnie zachowanie ikonki baterii brick'a, to znaczy kiedy robot był w stanie idle stan baterii wynosił 100%, natomiast kiedy robot wykonywał algorytmy poziom baterii malał do poziomu 40% - 50%, a następnie ustalił się na poziomie 100% po ponownym przejściu do stanu idle.
  • Problemowym predykatem okazał się dla naszego zespołu predykat nxt_goal, który miał tworzyć nowy wątek i kierować robotem, jednak nie zawsze predykat ten spełniał swoje przeznaczenie - nie wiem co było tego przyczyną.
  • Niestety po raz kolejny zawiodło połączenie Blutetooth pomiędzy komputerem, a naszym robotem. Na szczęście tym razem udało nam się zaprogramować i wykonać Algorytm1 oraz Algorytm2 z laboratorium. Kiedy przystąpiliśmy do implementacji i częściowego testowania poszczególnych predykatów, połączenie z Ewką przestało istnieć. Wykorzystywaliśmy doświadczenie zdobyte na poprzednim laboratorium, ale nie udało nam się ponownie połączyć z robotem - nie pomagał restart komputera, restart robota, ponowne sparowanie urządzeń oraz usuwanie skojarzonych wcześniej urządzeń.

Wnioski

  • Jest nam bardzo przykro, że z powodu problemów z połączeniem Bluetooth - a mimo wielkich chęci - nie wykonaliśmy wszystkich zadań z opisywanych zajęć.

Uwagi dotyczące funkcjonalności PLNXT

  • PLNXT często dziwnie zachowuje się, gdy chcemy zakończyć działanie programu. Nie pomaga wywołanie predykatów stop. oraz halt. - ostatecznym rozwiązaniem jest 'zabicie' procesu.
  • Przy wykonywaniu predykatu nxt_open. PLNXT często zawieszał się.
pl/dydaktyka/piw/2010/sprawozdania/piw20100519-17c.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