Laboratorium 4
Lab z iCommand
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:
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:
-
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”.
fragment kodu i zmienić wartość odczytu dla jakiej dana akcja nie wykonuje się prawidłowo. Oczywiście wszelki modyfikacje kodu wskazane:)
Program można też usunąć bezpośrednio z kostki NXT(My Software Siles → <nazwa programu> → Delete)
Lego Mindstorms
Ś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))
.
Podłącz robota poprzez USB do komuptera.
Uruchom środowisko Mindstorms NXT. Wybierz File→Open…, a następnie wskaż uprzednio rozpakowany plik z implementacją algorytmu.
Zapoznaj się z kodem algorytmów.
Załaduj program na kostkę.
Spróbuj porównać implementację algorytmów z diagramami aktywności, które je opisują:
BrixCC
Ściągnij implementację algorytmów dla środowiska BrixCC:
Podłącz robota poprzez USB do komputera.
Uruchom środowisko BrixCC.
W oknie, które się pojawi wybierz:
Port - Automatic
Brick Type - NXT
Otwórz plik z wcześniej ściągniętym kodem (File→Open…)
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).
Skompiluj oraz prześlij program na kostkę
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:
-
Upewnij się, że do komputera podłączony jest adapter BlueTooth
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
W środowisku Microsoft Robotics Studio otwórz projekt Messages, zapoznaj się z nim
Upewnij się czy blok LegoNXTBrickv2(pierwszy blok na schemacie wskazuje na właściwy port, przez który odbywa się koumunikacja)
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