Rozpoczęcie pracy

Gdy przystąpiliśmy do pracy Franek był już zbudowany, jednak w robocie brakowało czujnika dźwięku, dołożyliśmy ramie, na którym zamontowany został czujnik. Dzięki temu mogliśmy przejść do testowania programów.

Po zmodyfikowaniu robota wykonaliśmy kilka testów przykładowego programu z konspektu laboratorium. Próg dla czujnika dźwięku podany w trigerze był jednak niezbyt trafnie dobrany przy panujących w laboratorium warunkach i być może przez to, iż czujnik zbierał szumy z otoczenia nie zawsze robot jechał do momentu klaśnięcia, a przy znacznej zmianie wartości nie reagował na klaśnięcia przejeżdżając cały dystans.

Algorytm 1

Kod programu

:- consult('./plnxt.pl').

start :-
    nxt_open,
    nxt_light_LED(activate),
    trigger_killall,
    trigger_create(_,check_distance,[nxt_stop,nxt_rotate(350,120),nxt_go(300)],inf),
    trigger_create(_,pushed,[nxt_stop,ext]),
    nxt_go(300).
                                                            
check_distance :-
    nxt_light(Distance,force),
    Distance <50.
                                                                    
% Sprawdzenie, czy sensor dotyku jest wciśnięty.
pushed :-
    nxt_touch(Value,force),
    Value=1.
                                                                            
ext :- nxt_light_LED(passivate),trigger_killall, nxt_close.

Komentarz

Podczas konstrukcji algorytmu z zadania Algorytm 1 szybko udało nam się dojść do momentu, w którym robot poruszał się tylko w wyznaczonym obszarze. Do obrotu użyliśmy nxt_rotate. Ze względu na początkowe zapętlanie się błędnych wersji programu postanowiliśmy dodać drugi trigger, który pozwoliłby nam na szybkie zakończenie wykonywania programu.

Stopień realizacji zadania poprzez napisany przez nas program ilustruje załączony filmik.

Napotkane problemy

  • Jednak ze względu na cień padający z okna na jedną część planszy robot wyjeżdżał poza pole w tym właśnie miejscu.

  • Na filmiku załączonym pod wcześniej umieszczonym linkiem widać także iż robot rozpoznaje także inne elementy planszy, które traktuje jak krawędzie wyznaczające obszar wewnątrz którego ma się poruszać
  • Nie zamykające się wątki
  • Ze względu na próby rozwiązania problemu z błędnym zamykaniem wątku nie zdążyliśmy zrealizować drugiego algorytmu
pl/dydaktyka/piw/2009/sprawozdania/piw20090408-14d.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