Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:mindstorms:lab:lab4 [2008/05/29 23:58] miw feedback update |
pl:mindstorms:lab:lab4 [2008/06/03 09:39] miw |
====== Laboratorium 4 ====== | |
| |
Laboratorium przygotowane w oparciu o [[pl:miw:miw08_mindstormsenv | MindsotrmsENV ]]. | |
| |
support: <dziedzia@student.agh.edu.pl> | |
| |
===== Lab z iCommand ===== | |
| |
[[pl:miw: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 | |
| |
Waszym zadaniem będzie uruchomienie oraz przeanalizowanie [[pl:miw:miw08_mindstormsenv#Propozycje_algorytmow|dwóch algorytmów]] (ich implementacji). | |
| |
Filmiki pokazujące działanie algorytmów: | |
* [[http://www.youtube.com/watch?v=dollW5dg_v0 | Saper]] | |
| |
Uwaga: Ostatanie 5 minut laboratorium proszę poświęcić na [[pl:mindstorms:lab:lab4#sprawozdanie | Sprawozdanie]] | |
| |
===== Przygotowanie stanowiska ===== | |
| |
Do poprawnego przeprowadzenia ćwiczenia wymagane jest: | |
* zbudowany robot [[http://mindstorms.lego.com/Overview/MTR_Tribot.aspx|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 [[pl:miw:miw08_mindstormsenv:materialy#Modyfikacja_konstrukcji_TriBot_a | 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: | |
- otwórz Lego Mindstorms NXT | |
- wybierz File->New - pojawi się okno edytora | |
- z Menu znajdującego się w prawej-dolnej części ekranu wybierz "NXT Window", a następnie zakładkę "Memory" | |
- 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 ==== | |
| |
| |
- Ściągnij implementację algorytmów dla środowiska LEGO: | |
* {{:pl:miw:miw08_mindstormsenv:saper_rbt.zip|saper_rbt.zip}} - implementacja algorytmu Saper w natywnym środowisku LEGO Mindstorms. | |
* {{:pl:miw:miw08_mindstormsenv:patrol_rbt.zip|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. | |
- 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ą: | |
* [[pl:miw:miw08_mindstormsenv:materialy#Saper|algorytm Saper]] - diagram | |
* [[pl:miw:miw08_mindstormsenv:materialy#Patrol|algorytm Patrol]] - diagram | |
| |
| |
==== BrixCC ==== | |
| |
- Ściągnij implementację algorytmów dla środowiska BrixCC: | |
* {{:pl:miw:miw08_mindstormsenv:saper_nxc.zip|saper_nxc.zip}} - implementacja algorytmu Saper w języku NXC. | |
* {{:pl:miw:miw08_mindstormsenv:patrol_nxc.zip|patrol_nxc.zip}} - implementacja algorytmu Patrol w języku NXC. | |
- 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ę (F6) | |
- Podobnie jak w poprzednim przykładzie porównaj implementację z diagramami algorytmów (diagramy są te same). | |
| |
==== Microsoft Robotics Studio ==== | |
| |
===== 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> | |
| |
| |
| |