Skład zespołu:

  • Drożdż Tomasz
  • Jamróz Piotr
  • Żywioł Maciek

1. Wstęp

  • Laboratorium pozwoliło nam dowiedzieć się jak konstruować algorytmy oparte na jednym lub na wielu wątkach.
  • Zadaniem głównym było rozwiązanie jednego z podanych problemów. Nasz wybór padł na Panikarza.

2. Konstrukcja robota

Do ćwiczenia (ku naszej radości) przystąpiliśmy z gotowym robotem. Jak się przekonaliśmy - za bardzo uwierzyliśmy w ekipę, która montowała robota przed nami. Algorytmy, które testowaliśmy nie chciały działać. Jak się okazało - wszystkie czujniki były do robota przymocowane, jednak czujnik dźwięku miał odłączony kabelek. Na szczęście w krótkim czasie udało się odnaleźć „usterkę”.

przepraszamy za słabą jakość ;(

3. Opracowanie algorytmów

  • Jak już wspomnieliśmy - za algorytm do opracowania obraliśmy Panikarza. Pomysł bardzo nam się spodobał i nad algorytmem pracowało się nam bardzo przyjemnie.
  • Algorytm miał na celu sprawienie aby nasz robocik (Henio) stał się strachliwym robotem. Po uruchomieniu miał poruszać się bardzo wolno do przodu. Na głośny dźwięk miał dostawać przysłowiowego „cykora”, obrócić się o losowy kąt i w szybkim tempie przejechać kilka(naście) centymetrów. Następnie po ucieczce miał znów poruszać się powoli do przodu.
  • Postanowiliśmy delikatnie zmodyfikować algorytm. Sprawiliśmy, że nasz Henio po panicznej ucieczce znów obierał kierunek poruszania się taki sam jak na początku. Dzięki temu nie musieliśmy go często przestawiać na właściwy kierunek tak aby nie zrobił sobie krzywdy o meble
Algorytm
:- consult('plnxt.pl').
 
start :-
	nxt_open,
	thread_create(go_on_buddy,_,[detached(true)]).
 
go_on_buddy :-
	nxt_go(200),
        sleep(1), % Chwila przerwy, żeby jedno klaśnięcie nie zostało rozpoznane jako dwa.
	trigger_create(_,clap,run_away).
 
run_away :-
	nxt_stop,
	Angle is 120 + random(120),
	nxt_rotate(900, Angle),
	Time is 2 + random(2),
	nxt_go(900),
        sleep(Time),
	nxt_stop,
	AngleBack is -1 * Angle,
	nxt_rotate(900, AngleBack),
	go_on_buddy.
 
% Sprawdzenie, czy natężenie dźwięku przekracza progową wartość.
clap :-
	nxt_sound(Value,force),
	Value > 60.
 
stop :-
	trigger_killall,
	nxt_stop,
	nxt_close.

A tuaj można zobaczyć efekty w postaci wideo:

Więcej wideo na: http://student.agh.edu.pl/~mzywiol/projekty/prolog/gienio/ oraz w salonach sieci Empik

4. Napotkane problemy

Początkowo natpotkaliśmy problem z połączeniem robota za pomocą bluetooth. Nie pomagały próby resetowania komputera ani resetowania robota. Za poradą prowadzącego pousówaliśmy wszystkie połączenia z samego NXT i dopiero wtedy udało się nawiązać połączenie.

Kolejnym problem(???) było robienie złych laboratoriów. Z samego początku zaczeliśmy pisać algorytmy dla Automatyki które okazały się trudniejsze :). Dopiero po pewnej chwili zorientowaliśmy się, że robimy złe ćwiczenia i znaleźliśmy odpowiednie labolatorium.

Podczas pracy z NXT natrawialiśmy na dziwny błąd(a może to nie błąd). Problem stwarzały wątki które najprawdopodobniej blokowały koła robota i nie mogliśmy odpalić tego samego algorytmu 2 razy pod rząd, dopiero resetowanie robota dawało taką możliwość.

5. Co zmienić w laboratorium?

Według nas przydała by się przejrzystsza wiki ponieważ dość ciężko połapać się które laboratorium trzeba wykonywać i które jest dla kogo. Do tego mieliśmy problem z znalezieniem informacji odnośnie synchronizacji robota. Informacje te w końcu znaleźliśmy ale zajęło nam to dość sporo czasu który mógł być wykorzystany bardziej pożytecznie.

6. Wnioski

Pisząc kolejne algorytmy trzeba uważać na progi jakie są przekazywane przez sensory. Początkowo dla algorytmu panikarza mieliśmy bardzo niski próg i sam silnik powodował reakcje robota (wartość około 5) poźniej podnieśliśmy próg do 15 ale dalej mieliśmy ten problem i zastanawialiśmy się czy nie ma gdzieś błędu w algorytmie, później poszliśmy do progu 60 i wtedy robot zaczoł prawidłowo reagować.

Ćwiczenia z NXT po napisaniu podstawowych algorytmów zamieniają się w dość wesołą zabawa dzięki czemu można zacząć udziwniać algorytmy i tworzyć dziwaczne rzeczy :).

7. Pliki

pl/dydaktyka/piw/2009/sprawozdania/piw20090422-08d.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