====== Sprawozdanie z laboratorium 2 (zapoznanie z PLNXT) ====== 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\\ ===== Implementacja algorytmów ===== ==== Algorytm 1 ==== 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). ==== Algorytm 2 ==== 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ęcia robota ===== Zdjęcie robota w czasie testów początkowych.\\ {{:pl:dydaktyka:piw2009:sprawozdania:piw20090408-14a-henio-test.jpg|}}\\ Zdjęcie robota w czasie jazdy z zastosowaniem algorytmu 2.\\ {{:pl:dydaktyka:piw2009:sprawozdania:piw20090408-14a-henio-algorytmii.jpg|}} ===== Spostrzeżenia, napotkane problemy, wnioski ===== 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. ===== Uwagi dotyczące funkcjonalności PLNXT ===== * Problemy z połączeniem Bluetooth: zdarzające się przypadki zerwania połączenia oraz braku reakcji na wydawane komendy.