Sprawozdanie z laboratorium 'lab_plnxt_zapoznanie'

Robot: Gienek (taki się trafił a miał być Franek :-( )

Link do 06-franek
Link do 07-gienek

Grupa: środa 9.30

Autorzy: Papciak, Kokoć, Srebrny

Użyte narzędzia:

  • zestaw LEGO,
  • adapter BT,
  • PLNXT.

Wstęp

Na starcie mieliśmy zbudowanego robota, podczas laboratorium największe trudności początkowo były z podłączeniem się do robota za pomocą bluetootha.
Co zajęło nam dużą część czasu, rozwiązaniem okazało się ku zdziwieniu restart komputera?!
Tak więc ruszyliśmy z właściwą częścią czyli oprogramowaniem i dodaniem czujniku sensora który posłużył do określenia odległości między robotem a przedmiotami przed nim.

kody programów

Na dobry początek zapoznaliśmy się z dostępnymi predykatami aby zobaczyć co one powodują.
Następnie przetestowaliśmy przykłady, aby nabrać rozeznania w dostarczonej technologi.

Pierwszy:

:- consult('sciezka_do_plnxt.pl').
 
start :-
	nxt_open,
	nxt_go_cm(400,80), % Jazda 200 cm do przodu z prędkością 400 stopni/sekundę.
	nxt_go_cm(-400,80), % Jazda 200 cm do tyłu z prędkością 400 stopni/sekundę.
	nxt_close.
 
:- start.

Drugi:

:- consult('sciezka_do_plnxt.pl').
 
start :-
	nxt_open,
	trigger_create(_,check_distance,[nxt_stop,nxt_close]),
	nxt_go(300).
 
check_distance :-
	nxt_ultrasonic(Distance,force),
	Distance < 15.

Ten przykład wyjaśnił w pełni do czego służy opcja 'force', dzięki niej pomiary odpowiednich sensorów są wykonywane cyklicznie, dzięki czemu w tym przypadku robot nie zderzy się z niczym co jest przed nim.

Następnie jako, że czas nas gonił niemiłosiernie, zajęliśmy się implementacją algorytmu nr 2 z tych laborek, oto on:

:- consult('plnxt.pl').
 
start :-
	nxt_open,
	go_on,
	trigger_create(_,check_touch, [nxt_stop, nxt_close]).
 
go_on :-
	nxt_go(300),
	trigger_create(_,check_distance, zawroc).
 
 
check_distance :-
	nxt_ultrasonic(Distance,force),
	Distance < 35.
 
zawroc :-
	nxt_stop,
	nxt_rotate(400,180),
	go_on.
 
check_touch :-
	nxt_touch(V,force),V = 1.

Plik do pobrania: zwiedzaj.pl

Program nie był trudny do napisania a efekt był niewspółmiernie wielki i zabawny:)
Robot miał za zadanie jechać do przodu a gdy napotka przeszkodę miał zawrócić o 180 stopni i nadal jechać do przodu,
Po naciśnięciu sensora dotyku miał się zatrzymać.

Film(.3GP) nakręcony telefonem podczas działania robota: Filmik.

Następnie zabraliśmy się za kodowanie kolejnego algorytmu ale czas nie pozwolił nam na dokończenie go, a plany były ambitne:-)

spostrzeżenia, napotkane problemy, wnioski

Używanie biblioteki NXT nie jest tak intuicyjne jak dostarczone przez lego oprogramowanie, ale po pewnym zapoznaniu się z nią, można napisać prostsze algorytmy.
Problem był z łącznością przy pomocy bluetootha z robotem z niewiadomych przyczyn, a rozwiązaniem na to był po prostu restart. Z takim problemem spotkało się kilka grup o tej porze.
Większość problemów wynikała z nieznajomości biblioteki NXT ale po pewnym czasie i pomocy prowadzącego zostały one wyeliminowane.
Co do samego działania robota problem wystąpił przy późnym wykrywaniu przeszkody - np. jak robot miał zawracać wtedy gdy będzie przeszkoda 15cm przed nim to za późno reagował w wyniku czego uderzał w przeszkodę, jak zmieniło się parametr na 35cm to wyrabiał się bez problemu. - nie wiem z czego wynikał ten problem, być może z tego że za rzadko sensor był próbkowany.
Problem wystąpił również gdy chcieliśmy wykorzystać sensor dotyku - rozwiązaniem było odpowiednie zaznajomienie się z tym predykatem i wykorzystanie opcji force.
Mniejszym problemem był również zasięg sieci bluetooth - tutaj wystarczyło dać robota bliżej komputera:-)
Wnioski:

  • dużo frajdy z klocków
  • ciekawa biblioteka i pomysł połączenia prologa z klockami
  • mało czasu na laborkach aby zapoznać się wystarczająco z oprogramowaniem i zrobieniem ciekawego robota

uwagi dotyczące funkcjonalności PLNXT

  • próbkowanie sensorów, lecz nie wiem gdzie leży dokładnie problem
  • problem z nawiązaniem połączenia przez bluetooth

inne uwagi

  • na stronie można się pogubić na początku - można by poprawić organizacje linków
  • więcej przykładów aby szybciej pojąc działanie biblioteki NXT oraz zachowanie robota
pl/dydaktyka/piw/2009/sprawozdania/piw20090408-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