====== Skład zespołu: ====== * Bartosz Beza * Wojciech Kucharski * Piotr Walat ====== 1. Wstęp ====== * Laboratorium miało na celu przetestowanie podanych przykładowych algorytmów. Korzystaliśmy z programów opartych na jednym wątku a także na wielu. Różnica jest znacząca - podczas korzystania z jednego wątku nie można wywołać żadnego innego polcenia podczas działania programu. * Głównym zadaniem laboratoryjnym było zaimplementowanie rozwiązania jednego z problemów podanych w instrukcji. Wybraliśmy zadanie //Omijanie przeszkód//. ====== 2. Konstrukcja robota ====== * Został nam udostęoniony złożony robot według instrukcji QuickStart * Po małej modyfikacji umieszczenia czujników robot był gotów do naszych testów niestety telefon którym zrobiliśmy zdjęcia uległ uszkodzeniu i nasze fotografie przepadłī - nie możemy pokazać żadnych zdjęć, które by obrazowały wygląd robota, a także jego zachowanie :-( ====== 3. Opracowanie algorytmów ====== * Celem było napisanie programu, który zarządzałby robotem w podany sposób: - wykrycie przeszkody na odległość 10 cm - obrót o 90stopni - przejechanie krótkiego odcinka - obrót w drugą stronę o 90 stopni - dalsza jazda w pierwotnym kierunku * dodatkowo podczas jazdy w ustalonym kierunku można zakończyć program przez klaśnięcie, próg głóśności dobrano na poziomie 55 przeszkoda.pl :- consult('plnxt.pl'). start :- nxt_open, nxt_go(300),     sleep(1), % Chwila przerwy, żeby jedno klaśnięcie nie zostało rozpoznane jako dwa. go_on_buddy :- nxt_go(300). trigger_create(_,roadblock,detour), trigger_create(_,clap,wait_a_second_buddy), thread_create(go_on_buddy,_,[detached(true)]). roadblock :- nxt_ultrasonic(Value, force), Value < 10. detour :- nxt_stop, nxt_rotate(500, 90), nxt_go_cm(300, 15), nxt_rotate(500, -90), go_on_buddy. wait_a_second_buddy :- nxt_stop,     sleep(1), trigger_create(_,clap,go_on_buddy). % Sprawdzenie, czy natężenie dźwięku przekracza progową wartość. clap :- nxt_sound(Value,force), Value > 55. stop :- trigger_killall, nxt_stop, nxt_close. ====== 4. Napotkane problemy ====== * Problemem był hałas (np. klaśnięcie przez człónków innych grup) panujący podczas testowania robota. Utrudniało to pracę z wykrywaniem dźwięku. * Podczas prac nad algorytmem napotkaliśmy na problem ze zdefinowaniem kąta obrotu robota. Z tego co zauważyliśmy robot obracał się o ok. +/- 10stopni. Możliwe, że to wynika z samej konstrukcji robota. ====== 5. Co rozszerzyć w laboratorium? ====== * Myślę, że przydałby się dokładny opis działania wątków oraz triggerów. * Uważam, że dobrym pomysłem byłoby wydłużenie czasu laboratorium aby móc wybudować swojego własnego robota i zaimplementować swój własny algorytm rozwiązujący jakiś problem wymyślony przez siebie (np. przed laboratoriami) i zaakceptowanym przez prowadzącego. ====== 5. Wnioski ====== * PLNXT niestety nie jest jeszcze doskonałe i pojawiają się czasami małe problemy - np. nie dokładny obrót robota.