====== 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//. {{:pl:dydaktyka:piw:2010:sprawozdania:lab6_ppp_kajtek_1.jpg|}} 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: {{:pl:dydaktyka:piw:2010:sprawozdania: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. {{:pl:dydaktyka:piw:2010:sprawozdania:lab6_ppp_kajtek_2.jpg|}} *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.