Sprawozdanie z laboratorium (sterowanie wieloma robotami w PLNXT)

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

Początek

Tym razem w nasze ręce trafił robot Kajtek. Już po pierwszym uruchomieniu brick'a zauważyliśmy wadliwe działanie - kilka linii poziomych wyświetlacza w ogóle nie wyświetlało się. Co więcej brick nie wydawał jakichkolwiek sygnałów dźwiękowych - zarówno podczas uruchomienia jak, poruszania po menu jak i po posłużeniu się predykatem nxt_sound.

Mimo początkowych rozczarować co do poprawnego działania Kajtka rozpoczęliśmy pracę. Na początku jak zawsze przeanalizowaliśmy zadanie postawione przed nami w tym laboratorium.

Kod programów

:- consult('plnxt.pl').
%17 czarne, 40czerwone ,43 biale, szare 35
%18,37,41,36
%36, 53, 64, 57
 
start :-
	nxt_light_LED(activate),
	nxt_goal(kajtek, idz).
 
idz:-
	nxt_go(200),
	trigger_create(_,check_red,[nxt_stop, nxt_light_LED(passivate),trigger_killall, nxt_stop]),
	trigger_create(_,check_line,[obrot]).
 
obrot :- 
	trigger_killall,
	nxt_stop,
    	Angle is 120 + random(120),
  	nxt_rotate(200,Angle),
     	idz.
 
check_line :-
	nxt_light(Value, force),write(Value),nl,
	Value < 39.
 
check_red :-
	nxt_light(Value, force),write(Value),nl,
	Value < 55,
	Value > 42,
	sleep(1),
	nxt_light(Value2, force),write(Value2),nl,
	Value2 < 55,
	Value2 > 42.
 
stop :-
	trigger_killall,
	nxt_stop.

Spakowane pliki źródłowe: ppp_komunikacja_lab6.rar

Spostrzeżenia, napotkane problemy, wnioski

Napotkane problemy

  • Głownym problemem, który napotkaliśmy podczas laboratorium był brak poprawnego odwzorowania koloru czerwonego poprzez czujnik Kajtka, a dokładnie rozróżnienia koloru białego i czerwonego. Wartości te dodatkowo co chwila zmieniały się, dlatego spróbowaliśmy zamiast koloru czerwonego użyć niebieskiej karty płatniczej.

  • Z racji 'niedomagania' Kajtka w wydawaniu jakichkolwiek sygnałów dźwiękowych, dlatego też nasz algorytm zakłada, iż jeżeli robot znajdzie odpowiedni element (w naszym przypadku niebieska karta płatnicza) wyłącza czujnik światła.

Spostrzeżenia

  • Kilka linii poziomych na wyświetlaczu brick'a Kajtka w ogóle nie wyświetlało się.
  • Brak wydawanych sygnałów dźwiękowych - zarówno podczas włączania i poruszana się po menu brick'a, jak i podczas zastosowania predykatu nxt_sound (tę wadę działania stwierdziliśmy dopiero w połowie laboratorium, więc wyszliśmy z założenia, że nie ma sensu już wymieniać robota na inny).
  • Brak dokumentacji PLNXT umożliwiającej łatwe znalezienie funkcji potrzebnych do komunikacji z robotami spowodował, że nie udało się nam zrealizować głównego tematu laboratorium czyli komunikacji między robotami

Wnioski

  • Niewielka różnica odczytów pomiędzy kolorem czerwonym a białym uniemożliwia skalibrowania zachowania robota. Dopiero kalibracja na kolor niebieski pozwala na swobodne rozróżnianie kolorów i implementację działającego algorytmu więźnia.
  • Przydało by się jakieś krótkie wprowadzenie do komunikacji pomiędzy robotami, albo chociaż jakiś odnośnik z wiki do odpowiedniej dokumentacji.

Uwagi dotyczące funkcjonalności PLNXT

  • Po raz pierwszy nie napotkaliśmy trudności z wywołaniem i działaniem predykatów środowiska PLNXT, natomiast problemy stały po stronie komunikacji poprzez Bluetooth, dlatego często musieliśmy resetować robota i ponownie 'sparować' połączenie.
  • Być może warto uzupełnić stronę laboratorium o bezpośredni opis komunikacji pomiędzy robotami z użyciem predykatów PLNXT.
pl/dydaktyka/piw/2010/sprawozdania/piw20100609-17a.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