To jest stara wersja strony!


Cel

Celem była konstrukcja robota wg instrukcji oraz zapoznanie się z możliwościami sterowania robotem za pomocą Prologu z użyciem PLNXT.

Konstrukcja

Postanowiliśmy zbudować robota TriBot zamiast modelu z instrukcji QuickStart, aby nadać robotowi większą funkcjonalność.

Jednakże kosztowało nas to zdecydowanie za dużo czasu. W związku z tym nie mieliśmy okazji zbytnio testować programu.

Algorytm

  • Jedź prosto na kulkę
  • Dotknąwszy kulkę zatrzymaj się
  • Zewrzyj szczęki
  • Cofnij
  • Zawróć
  • Jedź na zadaną odległość
  • Połóż kulkę

Wykonanie

Budowa robota

Nasz Jasio został wyposażony w mikrofon, czujnik dotyku oraz szczęki do chwytania kuli. Nie umieściliśmy pozostałych czujników z powodu braku czasu na testowanie. Kula została osadzona na przygotowanej platformie. Robot został przekazany następnej grupie laboratoryjnej.

Program w Prologu

Nasza realizacja algorytmu magazyniera:

:- consult('../plnxt').
 
check_ball :-
	nxt_touch(Value,force),
	Value = 1.
 
check_sound :-
	nxt_sound(Value,force),
	Value > 50.
 
ball :-
	nxt_stop,		% Stajemy przy kulce
	nxt_pincer(close),	% Lapiemy kulke
	nxt_go_cm(-200, 15),	% Cofamy sie
	nxt_rotate(400,180),	% Odwracamy sie
	nxt_go_cm(400, 30),	% Odjezdzamy 30cm
	nxt_pincer(open).	% Puszczamy przedmiot
 
start :-
	nxt_open,
	check_sound,		% Wolamy Jasia
	nxt_pincer(open),	% Rozwieramy kleszcze
	nxt_go(400),		% Jedziemy, az napotkamy kulke
	trigger_create(_,check_ball,ball).

Plik programu: gb-magazynier2.pl

Problemy

Czasami Jasio robił się niegrzeczny:

  • Wykonywał przypadkowe ruchy
  • Nie wykonywał wgranego programu
  • Nie dał się sterować z konsoli

Powodem mogło być niezakończenie poprzedniego programu. Ponowne uruchomienie powłoki swipl załatwiło sprawę - Jasio znów był grzeczny.

Podsumowanie

Prolog pozwala na programowanie robota w sposób bardziej efektywny. Najważniejszą zaletą jest modelowanie zachowania robota z użyciem reguł. Ponadto Prolog daje możliwość pełniejszej kontroli dzięki lepszemu wykorzystaniu czujników.

Propozycje

Dobrym pomysłem byłoby organizowanie zawodów dla zainteresowanych studentów, polegających nie na budowie robotów, lecz pisaniu programów w prologu działających na konkretnym/tak samo zbudowanym robocie i spełniających zadane cele. Udział w zawodach byłby udokumentowany w życiorysie robota na aiWiki. Programy wzbogaciłyby kolekcję algorytmów dostępnych na stronie.

pl/mindstorms/studenci/przedmioty/jsi/jsi2008/jsi20090114-08d.1232455091.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (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