Sprawozdanie z laboratorium 'lab_plnxt_zaawansowane'

Robot: Gienek

Link do 07-gienek

Grupa: środa 9.30

Autorzy: Papciak, Kokoć, Srebrny

Użyte narzędzia:

  • zestaw LEGO,
  • adapter BT,
  • PLNXT.

Wstęp

Rozpoczynając zajęcia laboratoryjne otrzymaliśmy już gotowego, skonstruowanego robota. Naszym zadaniem było dalsza
praca z interfejsem PLNXT.
Skoncentrowaliśmy się nad zaimplementowaniem algorytmu, który nazwany i opisany został jako: „Śledzenie linii”.
Użyta została plansza testowa, która posiadała tor w postaci grubej czarnej linii, w kształcie bieżni sportowej.
Na niej skoncentrowało się działanie robota, który wykorzystując sensor światła dojeżdżał do niej, a następnie
poruszał się wzdłuż niej aż do naciśnięcia sensora dotyku, który kończył pracę algorytmu i robota.

Rys. 1. Wygląd robota

Rys. 1. Wygląd robota

Kody programów

Poniżej znajduje się nasza implementacja algorytmu.

:- consult('plnxt.pl').
 
start :-
	nxt_open,
	nxt_light_LED(activate),
	thread_create(stroll,_,[detached(true)]).
 
stroll :-
	nxt_go(200),
        sleep(1),
	trigger_create(_,swiatlo,prawo),
	trigger_create(_,pat,stop),
	stroll.
 
prawo :-
	nxt_stop,
	nxt_rotate(160, -50),
	stroll.
 
swiatlo :-
	nxt_light(L,force), L<50.
 
pat :-
	nxt_touch(Value, force),
	Value=:=1.
 
stop :-
	trigger_killall,
	nxt_stop,
	nxt_close.

Plik do pobrania: wiezienie.pl

Włączyliśmy lampę LED, dzięki której mieliśmy lepiej oświetlone „pole manewru”. Dodatkowo obniżyliśmy czujnik
światła tak, aby dokładniej sczytywane były wartości przez niego otrzymane. Wartość: 50, była optymalna
dla takiego ustawienia diody LED i robot dobrze sobie radził z odróżnianiem grubej czarnej od białego pola.
Nie ukrywamy jednak, że bez początkowego zaświecenia diody robot miał problemy wynikające ze słabego oświetlenia sali
laboratoryjnej, a nawet rzucanym przez siebie samego cieniem, więc zabrało nam trochę czasu odpowiednie dobranie tej
wartości.

Tutaj znajdują się filmy z działania robota:

Spostrzeżenia, napotkane problemy

Co do spostrzeżeń: to nasz główno-budujący inżynier znowu narzekał, że robot już jest zbudowany na początku
zajęć i cała satysfakcja z budowania klocków troszkę umyka :)
Co do problemów: to znowu nim było fakt, że wątki uruchomione w poprzednim algorytmie nie były ubijane,
przez co traci się na tym sporo czasu i zastanawia się, czy samemu nie popełniło się jakiegoś błędu. Przez kilka
pierwszych razy fakt ten niezwykle frustruje. Rozwiązanie jest bardzo oporne i przed załadowaniem kolejnego
algorytmu powinniśmy uruchomić środowisko XPCE po raz kolejny.
Lwią część czasu zabrało nam również szukanie błędu, którego przyczyny do tej pory nie znamy. Otóż w pewnym momencie
robot przestał reagować na jakiekolwiek komendy PLNXT! Co śmieszniejsze robot działał z algorytmami, które popełniliśmy
na wcześniejszych zajęciach. Zaczęliśmy analizować kod linijka po linijce wycinając kolejne. I tak: nowy algorytm wciąż
nie działał, stary: działał. Okazało się, że wystarczył restart robota…, ale nie za drugim razem kiedy problem znowu
wystąpił i nie obeszło się bez restartu komputera.

uwagi dotyczące funkcjonalności PLNXT

  • brakuje wyświetlania w na bieżąco wybranych zainstalowanych i wybranych czujników
  • do tej części laboratorium można stworzyć kilka małych przykładów tak jak w poprzednich opisach

inne uwagi

  • (ktoś krzyczy): więcej grzebania przy klockach :-)
  • większa ilość plansz testowych
pl/dydaktyka/piw/2009/sprawozdania/piw20090429-09e.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