Sprawozdanie z laboratorium 4 (zaawansowane algorytmy w PLNXT)
Data: 29.04.2009
Godzina: 14.00
Skład grupy: Tomasz Dzierżanowski, Miłosz Fedak, Paweł Bicz
Robot: IREK
AGH, WEAIiE, Informatyka Stosowana, IV rok, 2008/2009
Implementacja algorytmów
Na zajęciach na naszym stanowisku mieliśmy do dyspozycji robota Irka i na nim przeprowadzaliśmy nasze ćwiczenia. Robot był już złożony i skonfigurowany do natychmiastowego działania, dlatego całą naszą uwagę skupiliśmy na algorytmach.
Algorytm 1 (Więzień)
start:-
nxt_open,
go.
go :-
nxt_go(200),
nxt_light(Val,force),
write(Val),nl,
trigger_create(_,light_black,handler),
trigger_create(_,light_red,run).
handler :-
nxt_stop,
rotate,
go.
run :-
nxt_stop,
rotate,
nxt_go(400, 20),
stop.
rotate :-
Angle is 90 + random(180),
nxt_rotate(350, Angle).
% Sprawdzenie, czy natężenie światła przekracza progową wartość.
light_black :-
nxt_light(Val,force),
Val < 26.
light_red :-
nxt_light(Val,force),
Val > 33,
Val < 35.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
Robot porusza się wewnątrz obszaru ograniczonego czarną linią. Kiedy najedzie na linię czarną wykonuje zwrot w losowym kierunku, następnie powtarza czynność pierwszą. W sytuacji napotkania punktu czerwonego wykonuje zwrot oraz następnie szybko ucieka poza obszar.
Algorytm 2 (Śledzenie linii)
start:-
nxt_open,
go.
go :-
nxt_go(200),
nxt_light(Val,force),
write(Val),nl,
trigger_create(_,light_white,handler).
handler :-
nxt_stop,
rotate(-1),
go.
rotate(X) :-
Angle is X,
nxt_rotate(350, Angle).
%trigger_create(_,light_white,hr).
% Sprawdzenie, czy natężenie światła przekracza progową wartość.
light_white :-
nxt_light(Val,force),
Val > 30.
stop :-
trigger_killall,
nxt_stop,
nxt_close.
Robot wykonuje powolny ruch po okręgu, sprawdzając czy nie wyjechał poza linie, jeśli to nastąpi dokonuje korekty o -1 stopień.
Takie rozwiązanie pomimo tego, że proste sprawdza się dobrze gdyż obszar po którym porusza się robot jest w kształcie elipsy.
Zdjęcia robota
Zdjęcie robota wykonane w czasie testów algorytmu 1 - Więzień.
Zdjęcie robota wykonane w czasie testów algorytmu 2 - Śledzenie linni.
Spostrzeżenia, napotkane problemy, wnioski.
Kolejne laboratoria na którym mieliśmy problem z łącznością przez bluetooth.
Mieliśmy również problemy z doborem wartości progowych rozróżniających wartość natężenia światła pobraną z sensora, odpowiednio dla koloru czarnego, czerwonego i białego.
Ustalenie zakresów przedziałów dla tych trzech kolorów okazało się niemożliwe dla warunków panujących w laboratorium, ponieważ duży wpływ na zakres przedziałów miało słońce i związane z nim oświetlenie zewnętrzne. Skutkiem tego w zależności od zwrotu robota czujnik odczytywał wartości z miejsc oświetlonych przez słońce oraz tych zacienionych. Przez te rozbieżności przedziały wartości dla tych trzech kolorów nachodziły na siebie.
Proponowanym rozwiązaniem powyższego problemu jest zamontowanie żaluzji w oknach laboratorium lub ustawienie zasłon dla miejsc poruszania się robotów we wszystkich stanowiskach roboczych, które tego wymagają.