Języki sztucznej inteligencji - Laboratorium (zapoznanie z PLNXT)

Maksymilian Piasecki, Jan Pollak, Mariusz Sokołowski

Środa 14.01.09 godz. 11:00

Konstrukcja

Robot, którego używaliśmy na zajęciach był już przygotowany, był to jeden z przykładów z instrukcji LEGO. Oryginalnie ten typ robota prezentował podnoszenie piłeczki. Wyposażony był w czujnik nacisku i odległosci zamontowane z przodu robota oraz czujnik dźwięku.

Algorytmy

Na zajęciach zrealizowaliśmy cztery algorytmy w języku Prolog przy czym trzy z nich były to gotowe programy przygotowane na stronie z instrukcją. Pierwszy z nich realizował zwykłe przemieszczanie się robota. Kolejny zatrzymywał robota w przypadku napotkania przeszkody. Trzeci algorytm był to przykład nr 2 ze strony, którego zadaniem było zatrzymywanie robota i ponowny start po usłyszeniu klaśnięcia. Następnie przystąpiliśmy do implementacji własnego programu Panikarz. Jego zachowanie wyglądało następująco:

  • po usłyszeniu klaśnięcia robot się zatrzymuje
  • wydaje dźwięk
  • następnie obraca o około 180 stopni
  • i ucieka na pełnej prędkości przez 50 cm
  • i przechodzi do zwykłego, powolnego poruszania się
  • ponadto w przypadku najechania na przeszkodę robot zatrzymuje się a program kończy działanie

Do powyższego celu zmodyfikowaliśmy przykład nr 2:

:- consult('plnxt.pl').

start:-

nxt_open,
go_on_buddy,
trigger_create(_,pushed,[nxt_stop,nxt_close]).

go_on_buddy :-

nxt_go(200),
      sleep(1),
trigger_create(_,clap,uciekaj).

uciekaj :-

nxt_stop,
nxt_play_tone(1000,500),
nxt_rotate(600,180,force),
      nxt_go_cm(600,50),
start.

clap :-

nxt_sound(Value,force),
Value > 50.

pushed :-

nxt_touch(Value,force),
Value=1.

Pliki z programami - jasio_sr_1100.zip

Problemy, propozycje zmian

Podczas realizacji problemem okazało się dodanie przez nas dźwięku podczas ucieczki. Niestety nie udało się nam to przy pomocy opcji force, gdyż nie pozwala ona na równoległe wykonywanie czynności a jedynie sekwencyjne. Tak więc robot najpierw wydawał dźwięk a dopiero potem brał się za ucieczkę. Drugim napotkanym problemem było dziwne zachowanie podczas jazdy z dużą prędkością, kiedy to czasem nie zamierzenie zmieniał kierunek.

pl/mindstorms/studenci/przedmioty/jsi/jsi2008/jsi20090114-11d.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