Data: 08.04.2009
Godzina: 14.00
Skład grupy: Tomasz Dzierżanowski, Miłosz Fedak, Paweł Bicz
Robot: HENIO
AGH, WEAIiE, Informatyka Stosowana, IV rok, 2008/2009
start_light :- nxt_open, trigger_create(_,check_light,[nxt_stop,rotate,start_light]), nxt_go(400). check_light :- nxt_light(Value,force), Value > 50. rotate :- Angle is 90 + random(180), nxt_rotate(350, Angle).
start_sonic :- nxt_open, trigger_create(_,check_distance,[nxt_stop,rotate, start_sonic]), nxt_go(400). check_distance :- nxt_ultrasonic(Distance,force), Distance < 30. rotate :- Angle is 90 + random(180), nxt_rotate(350, Angle).
Zdjęcie robota w czasie testów początkowych.
Zdjęcie robota w czasie jazdy z zastosowaniem algorytmu 2.
Przedstawione przez nas dwa algorytmy działają poprawnie jednak zachowują się niestabilnie. - niestabilnośc wynika wprost z zastosowanego przez nas modelu rozwiązania tj.
start_light :-
nxt_open, trigger_create(_,check_light,[nxt_stop,rotate,start_light]), nxt_go(400).
- wykorzystana przez nas rekurencja tworzy w każdym nawrocie nowy proces/wątek, co przy braku synchronizacji z istniejącymi bardzo utrudnia/ uniemożliwia np. zatrzymanie robota po zaczęciu czynności. - Przy uzyskaniu sychnchronizacji rozwiązanie to było by bardzo eleganckie.