Sprawozdanie nr 6
Robot: Dyzio
Data: 09.06.2010, godz. 15.30
Autorzy: Andrzej Gryboś, Michał Henslok, Tomasz Jama
Wstęp
Po zapoznaniu się z instrukcjami do laboratorium oraz odkomentowaniu kody odpowiedzialnego za komunikację z naszym robotem, czyli Dyziem tak aby był on wykrywany przez wirtualny port Comm 4 przystąpiliśmy do realizacji laboratorium.
nxt_robot_definition(dyzio,'/dev/rfcomm4',bt,off,on_demand,17.5,11,'C','B','A',false,'S1','S2','S3','S4').
Przebieg laboratorium
Od samego początku zaczęliśmy naszą pracę od dostosowania programu Więzień do aktualnie panujących warunków świetlnych. Dokonaliśmy zmian konstrukcyjnych robota - tak aby sensor świetlny był jak najbliżej powierzchni po której przemieszcza się robot.
Poniżej kod programu Więzień.
:- consult('plnxt.pl').
start :-
nxt_go(100),
trigger_create(10,czarny,szukaj),
trigger_create(_,klucz,uciekaj).
czarny :-
nxt_light(Value,force),
Value < 50.
szukaj :-
nxt_stop,
nxt_rotate(100, 60),
trigger_kill(10),
start.
klucz :-
nxt_light(Value, force),
Value > 68,
Value < 70.
uciekaj :-
nxt_play_tone(400,500),
nxt_go_cm(500, 1000),
nxt_play_tone(600,1000),
stop.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
Niestety nie udało nam się nawiązać komunikacji między robotami. Powodami były:
problemy z komunikacją wynikające z za dużej liczby urządzeń jednocześnie korzystających z połączeń typu Bluetooth
brak czasu na dokładne zaznajomienie się z obsługą protokołu TCP/IP w środowisku SWI Prolog
dopracowywanie programu Więzień
Wnioski
Komunikacja między robotami nie była możliwa do przetestowania z powodów wymienionych powyżej.
Należy zwracać uwagę na tworzenie nowych wątków, gdyż nie są one zabijane aż do wydania poleceń
trigger_kill(ID) / trigger_killall
i mogą prowadzić do zapętlenia się programu.
Wpływ oświetlenia dziennego ma zasadniczy wpływ na kalibrację sensora świetlnego. Kolor czerwony (przedział jasności 68-70) jest praktycznie niemożliwy do odróżnienia od koloru białego (69-71). Dodatkowo na pomiar jasności wpływa cień rzucany przez samego robota utrudniając jeszcze bardziej identyfikację kolorów. Jedynie kolor czarny jest łatwo rozróżnialny od pozostałych (przedział jasności <40).
Uwagi
Opis laboratoriów powinien być bardziej szczegółowy - w trakcie zajęć nie ma za dużo czasu, aby zapoznać się ze wszystkimi potrzebnymi funkcjami oraz ich przetestowania (obsługa protokołu TCP/IP w Prologu), a studenci poza zajęciami nie mają możliwości własnego ich sprawdzenia
Ze względu na brak możliwości programowania sekwencyjnego w Prologu pewnie działania są o wiele trudniejsze do napisania niż w innych językach programowania