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
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
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
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