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ą.
pl/dydaktyka/piw/2009/sprawozdania/piw20090429-14a.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0