Laboratorium 4

Laboratorium przygotowane w oparciu o MindsotrmsENV .

support: dziedzia@student.agh.edu.pl

Lab z iCommand

miw08_mindstormscontrolj support P. Gutowski

Cel

Celem tego laboratorium jest poznanie(porównanie) możliwości tworzenia programów dla LEGO Mindstorms przy pomocy różnych środowisk. Środowiska wykorzystywane w ramach tego ćwiczenia:

  • LEGO Mindsotrms
  • BrixCC
  • Microsoft Robotics Studio (opcjonalnie)

Waszym zadaniem będzie uruchomienie oraz przeanalizowanie dwóch algorytmów (ich implementacji).

Filmiki pokazujące działanie algorytmów:

Uwaga: Ostatanie 5 minut laboratorium proszę poświęcić na Sprawozdanie

Przygotowanie stanowiska

Do poprawnego przeprowadzenia ćwiczenia wymagane jest:

  • zbudowany robot TriBot
  • plansza testowa dostarczona z zestawem Lego - postaraj się, aby miała jak najmniej zagięć (zagięcia powodują błędne odczyty z czujnika natężenia swiatła).
  • zainstalowane środowiska: LEGO Mindstorms, BrixCC, Microsoft Robotics Studio
  • konstrukcja robota proponowana przez Lego charakteryzuje się tym, że czujnik natężenia światła jet umieszczony bardzo nisko - powoduje to często pojawianie się nieprawidłowych odczytów, a w konsekwencji błędne działanie algorytmów. Można dokonać niewielkiej modyfikacji konstrukcji TriBot'a.
  • konstrukcja robota Tribot(wysokie umieszczenie sonara) w zasadzie uniemożliwia stosowanie proponowanych przez LEGO platform z piłeczkami jako przeszkody(poza tym robot nie jest w stanie podnieść platformy, która przeszkadzałaby w ruchu). W tym celu należy (tymczasowo) użyć np.: telefonu komórkowego, lub przedmiotu który generalnie jest trochę wyższy od platformy i piłeczki (ewentualnie można testować algorytmy wskazując miejsce położenia przeszkody ręką).

Ćwiczenie

Uwagi ogólne

  • Kalibracja - jest to bardzo ważny krok który jest wykonywany przed każdym algorytmem. Dzięki niemu definiujemy jaki jest zakres możliwych wartości odczytywanych przez sensory. W naszym przypadku kalibrujemy czujnik natężenia światła. Po uruchomieniu każdego algorytmu na ekranie pojawi się napis „MAX:” oraz wartość liczbowa poniżej. Jest wartość odczytywana z czujnika natężenia światła (spróbuj umieścić czujnik nad jasną powierzchnią, a następnie nad ciemną i zauważ jak zmienia się wartość odczytu).

Przebieg kalibracji: Po uruchomieniu algorytmu (na ekranie widoczne jest „MAX: <wartość liczbowa>”) ustaw robota, tak aby czujnik światła znajdował się nad najciemniejszym z obszarów po którym będzie poruszał się robot (np. czarna linia na planszy testowej), zatwierdź używając przycisku lewej strzałki znajdującego się na kostce NXT. W ten sposób ustawiliśmy maksymalną wartość odczytu z czujnika natężenia światła względem, której dokonywana będzie normalizacja pomiaru. Na ekranie powinien być widoczny napis „MIN: <wartość liczbowa>”, umieść tym razem robota nad najjaśniejszym obszarem, po którym będzie się poruszał (białe tło planszy) i wciśnij przycisk prawej strzałki znajdujący się na kostce NXT. Gdy kalibracja jest zakończona na ekranie widoczny jest napis „Calibrated”.

  • Jeżeli po skalibrowaniu czujników robot nie zachowuje się jak powinien (nie rozpoznaję linii, nie rozpoznaję przeszkód, etc.) spróbuj zlokalizować

fragment kodu i zmienić wartość odczytu dla jakiej dana akcja nie wykonuje się prawidłowo. Oczywiście wszelki modyfikacje kodu wskazane:)

  • Usuwanie programów - ponieważ pamięć przeznaczona na przechowywanie plików jest ograniczona (124kB) prawdopodobnie konieczne będzie usuwanie plików z programami z kostki. W tym celu:
    1. otwórz Lego Mindstorms NXT
    2. wybierz File→New - pojawi się okno edytora
    3. z Menu znajdującego się w prawej-dolnej części ekranu wybierz „NXT Window”, a następnie zakładkę „Memory”
    4. w tym miejscu można zobaczyć ile pamięci zajmuje każdy z programów oraz usunąć, te które są już niepotrzebne

Program można też usunąć bezpośrednio z kostki NXT(My Software Siles → <nazwa programu> → Delete)

  • Komunikacja z robotem najlepiej działa przy użyciu USB (wyjątkiem jest Microsoft Robotics Studio, dla którego jedenym możliwym kanałem komunikacji jest BlueTooth)

Lego Mindstorms

  1. Ściągnij implementację algorytmów dla środowiska LEGO:
    • saper_rbt.zip - implementacja algorytmu Saper w natywnym środowisku LEGO Mindstorms.
    • patrol_rbt.zip - implementacja algorytmu Patrol w natywnym środowisku LEGO Mindstorms (wersja nieco różniąca się od wersji napisanej w BrixCC (uboższa))FIXME.
  2. Podłącz robota poprzez USB do komuptera.
  3. Uruchom środowisko Mindstorms NXT. Wybierz File→Open…, a następnie wskaż uprzednio rozpakowany plik z implementacją algorytmu.
  4. Zapoznaj się z kodem algorytmów.
  5. Załaduj program na kostkę.
  6. Spróbuj porównać implementację algorytmów z diagramami aktywności, które je opisują:

BrixCC

  1. Ściągnij implementację algorytmów dla środowiska BrixCC:
  2. Podłącz robota poprzez USB do komputera.
  3. Uruchom środowisko BrixCC.
  4. W oknie, które się pojawi wybierz:
    • Port - Automatic
    • Brick Type - NXT
  5. Otwórz plik z wcześniej ściągniętym kodem (File→Open…)
  6. Zapoznaj się z kodem algorytmów (czytanie kodu należy rozpocząć od metody main() znajdującej się na samym końcu pliku z kodem źródłowym).
  7. Skompiluj oraz prześlij program na kostkę
  8. Podobnie jak w poprzednim przykładzie porównaj implementację z diagramami algorytmów (diagramy są te same).

Microsoft Robotics Studio

Ponieważ środowisko Microsoft Robotics Studio udostępnia inne od ww. środowisk możliwości, przygotowane zostały inne programy pokazujące możliwości tego środowiska. Działanie przygotowanego programu zostało przedstawione tutaj.
Aby uruchomic program należy:

  1. Ściągnij plik messages.zip, a następnie go rozpakuj
  2. Upewnij się, że do komputera podłączony jest adapter BlueTooth
  3. W środowisku Lego Mindstorms NXT załaduj plik Msg.rbt, zapoznaj sie z nim, a następnie skompiluj i przeżlij do modułu NXT
  4. W środowisku Microsoft Robotics Studio otwórz projekt Messages, zapoznaj się z nim
  5. Upewnij się czy blok LegoNXTBrickv2(pierwszy blok na schemacie wskazuje na właściwy port, przez który odbywa się koumunikacja)
  6. Uruchom program

Po chwili powinno otworzyć się okno przegladarki internetowej zawierające informacje o połączeniu. Po uruchomieniu pojawiają się także 'alerty' informujące o sukcesie/niepowodzeniu kolejnych kroków.
Uwaga: Komunikacja poprzez BlueTooth dla niektórych adapterów jest uciążliwa. Jeżeli nie można się połączyć należy spróbować kilkakrotnie (za każdym razem upewniając się czy na kostce NXT widnieje symbol nawiązanego połączenia BlueTooth „B<>”)

Sprawozdanie

Proszę o przesłanie informacji dotyczących:

  • Waszych uwag (plusy/minusy) sprawdzanych środowisk
  • problemów z uruchamianiem algorytmów
  • problemów z działaniem algorytmów

na adres: dziedzia@student.agh.edu.pl

pl/mindstorms/lab/lab4.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