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ść.
Algorytm
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.