Programowanie robotów LEGO Mindstorms NXT



Podobne dokumenty
Programowanie robotów LEGO Mindstorms NXT

Załącznik Nr 5 do Zarz. Nr 33/11/12

Załącznik Nr 5 do Zarz. Nr 33/11/12

SKRÓCONY PODRĘCZNIK UŻYTKOWNIKA PROGRAMU. NOKIA PC SUITE 4.51a for Nokia Copyright 2002 Nokia Corporation. Wszelkie prawa zastrzeżone.

SKRÓCONY PODRĘCZNIK UŻYTKOWNIKA PROGRAMU. NOKIA PC SUITE 4.81 for Nokia 6310i. Copyright 2001 Nokia Corporation. Wszelkie prawa zastrzeżone.

Zastosowania Robotów Mobilnych

dr inż. Tomasz Krzeszowski

SKRÓCONY PODRĘCZNIK UŻYTKOWNIKA

HP OfficeJet 250 Mobile All-in-One series. Instrukcja instalacji Bluetooth

Opracowanie ćwiczenia laboratoryjnego dotyczącego wykorzystania sieci przemysłowej Profibus. DODATEK NR 4 Instrukcja laboratoryjna

Windows Vista Instrukcja instalacji

SI BIG InfoMonitor. Instrukcja instalacji oprogramowania do obsługi systemu informatycznego BIG InfoMonitor S.A.

Motorola Phone Tools. Krótkie wprowadzenie

LEKCJA 2 Program do zdalnego sterowania robotem

INSTRU KCJA UŻYTKOWNIKA

PANEL SŁONECZNY NXT. Rozpocznij

Instalacja Czytnika Kart GemPc Twin 1.4 dla przeglądarek 32 bitowych dla systemów Windows XP/Vista/2000/7/8 32 bity i 64 bity Wersja 1.

Laboratorium Podstaw Robotyki I Ćwiczenie Khepera dwukołowy robot mobilny

Systemy wbudowane i mobilne

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

WPROWADZENIE DO. Instalowania sterowników Nokia Connectivity Cable Drivers

Załącznik 1 instrukcje instalacji

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

Podręcznik komunikacji sieciowej Komputery Evo typu Desktop Stacje robocze Evo Stacje robocze Deskpro

Technologie informacyjne - wykład 12 -

Instrukcja instalacji oprogramowania pixel-fox

WPROWADZENIE DO. Instalowania sterowników Nokia Connectivity Cable Drivers

SYSTEMY CZASU RZECZYWISTEGO (SCR)

Koło zainteresowań Teleinformatyk XXI wieku

PROGRAMOWALNE STEROWNIKI LOGICZNE

INSTALACJA STEROWNIKÓW CZYTNIKA W SYSTEMIE MS WINDOWS

Automatyka i Robotyka Opracowanie systemu gromadzącego i przetwarzającego wyniki zawodów robotów.

Specyfikacja dla Zadania 1: Kurs programowania sterowników PLC dla uczniów grupy I w ZSP nr 2 w Brzesku.

SYLABUS/KARTA PRZEDMIOTU

INSTRUKCJA INSTALACJI OPROGRAMOWANIA MICROSOFT LYNC 2010 ATTENDEE ORAZ KORZYTANIA Z WYKŁADÓW SYNCHRONICZNYCH

Programowanie aplikacji mobilnych

Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink.

1 Moduł Inteligentnego Głośnika

Windows 10 - Jak uruchomić system w trybie

INSTRUKCJA OBSŁUGI PROGRAMU INSTAR 1.0

1 Moduł Inteligentnego Głośnika 3

Urządzenia zewnętrzne

SKRÓCONA INSTRUKCJA INSTALACJI MODEMU I KONFIGURACJA POŁĄCZENIA Z INTERNETEM NA WINDOWS 8 DLA AnyDATA ADU-510L

Podręcznik Google. Cloud Print. Informacje o usłudze Google Cloud Print. Drukowanie przy użyciu usługi Google. Cloud Print.

Portal

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy

SKRó CONA INSTRUKCJA OBSŁUGI

INTERFEJS LPG/CNG FTDI USB INSTRUKCJA INSTALACJI ORAZ KONFIGURACJI URZĄDZENIA

Client Management Solutions i Mobile Printing Solutions

Specyfikacja dla Zadania 1: Kurs programowania sterowników PLC dla uczniów grupy I w ZSP nr 2 w Brzesku.

Instytut Systemów Elektronicznych. Specjalność Systemy Informacyjno-Pomiarowe

Laboratorium Komputerowe Systemy Pomiarowe

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

OTOsuite. Podręcznik instalacji. Polski. Wersja 4.75

Parowanie urządzeń Bluetooth. Instrukcja obsługi

Strategiczny program badań naukowych i prac rozwojowych Profilaktyka i leczenie chorób cywilizacyjnych STRATEGMED

Instrukcja instalacji Mobile Marketing Pro

Referat pracy dyplomowej

Site Installer v2.4.xx

Instrukcja instalacji

Dell P2018H Dell Display Manager Instrukcja użytkownika

PRZEWODNIK PO PRZEDMIOCIE

Client Management Solutions i Mobile Printing Solutions

Informatyka studia stacjonarne pierwszego stopnia

ROBOT MOBILNY ZBIERAJĄCY INFORMACJE O POMIESZCZENIU

inode instalacja sterowników USB dla adaptera BT 4.0

Instrukcja instalacji

Lekcja budowania robotów na podstawie klocków LEGO Mindstorms NXT 2.0. Temat: GrabBot Budujemy robota, który przenosi przedmioty.

SKRÓCONA INSTRUKCJA INSTALACJI MODEMU I KONFIGURACJA POŁĄCZENIA Z INTERNETEM NA WINDOWS 8 DLA AnyDATA ADU-520L

Instrukcja. instalacji aplikacji testującej modemy i routery mobilne ZTE

Instrukcja konfigurowania sieci WiFi w Akademii Leona Koźmińskiego dla telefonów komórkowych z systemem Windows Mobile

System INFIDIO. Bezprzewodowy system sterowania oświetleniem przemysłowym

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Livebox podłączenie drukarki USB

Bezprzewodowa sieć kontrolno-sterująca z interfejsem Bluetooth dla urządzeń mobilnych z systemem Android

Podręcznik komunikacji sieciowej Komputery Evo typu Desktop Stacje robocze Evo

Załącznik 1 instrukcje instalacji

1. Prace rozwojowe usługi informatyczne w zakresie opracowania prototypu oprogramowania serwisowo-instalatorskiego dla systemu testowego

Share online 3.1. Wydanie 1

kodowanienaekranie.pl

Rozszerzony konspekt przedmiotu Inteligentne maszyny i systemy

Laboratorium Elektrycznych Systemów Inteligentnych

Spis treści. Opis urządzenia. Zawartość pudełka. Pierwsze użycie

Veronica. Wizyjny system monitorowania obiektów budowlanych. Instrukcja oprogramowania

SKRÓCONA INSTRUKCJA INSTALACJI MODEMU I POŁĄCZENIA Z INTERNETEM NA WINDOWS 7 DLA AnyDATA ADU-510L

Skrócona instrukcja obsługi

SYLABUS/KARTA PRZEDMIOTU

SYLABUS/KARTA PRZEDMIOTU

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

LEGO Segway. Budowa i analiza strukturalnie niestabilnego robota mobilnego na bazie projektu Segway

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2018/2019

Cennik dot. integracji z firmami wywozowymi i oprogramowania urządzeń mobilnych. Opis rozwiązania dla firm wywozowych.

Instrukcja konfiguracji funkcji skanowania

Automatyka i Robotyka studia stacjonarne drugiego stopnia

TURBINA WIATROWA NXT. Rozpocznij

Client Management Solutions i Universal Printing Solutions

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

Instalacja Stacji Pogodowej Netatmo (ios, Android, Windows) Pełna instrukcja obsługi przedstawiająca wszystkie możliwości

Instrukcja instalacji oprogramowania pixel-fox

Konspekt pracy inżynierskiej

Transkrypt:

Programowanie robotów LEGO Mindstorms NXT Laboratorium 11 i 12: Programowanie zaawansowanych modeli robotów w różnych językach. Wersja 1.3 6 września 2012

2 Zastrzeżenia prawne. Niniejszy dokument jest objęty prawami autorskimi. Rozpowszechnianie, kopiowanie i udostępnianie osobom trzecim jest możliwe wyłącznie za zgodą autora. Informacja zawarta w niniejszym dokumencie ma charakter niekomercyjny, edukacyjny i jako taka nie może stanowić bazy bezpośredniej lub pośredniej dla wszelakiej działalności komercyjnej. Jakkolwiek autor dołożył wszelkich starań podczas opracowania niniejszego dokumentu tak, aby informacje przedstawiane w tym dokumencie były najnowsze i zgodne ze stanem faktycznym opisywanych urządzeń, protokołów, sprzętów oraz stanu wiedzy, nie może zagwarantować pełnej poprawności dokumentu, w szczególności w związku ze zmieniającymi się uwarunkowaniami technicznymi, wersjami firmware, wersjami oprogramowania i sprzętu. W związku z tym dokument jest udostępniany w niniejszej postaci as is bez jakiejkolwiek gwarancji i nie może stanowić podstawy do roszczeń. Autor nie odpowiada za szkody materialne i niematerialne wyrządzone pośrednio lub bezpośrednio w wyniku zastosowania informacji zawartych w niniejszym dokumencie. Autor zwraca się do wszelkich osób korzystających z niniejszego dokumentu o zgłaszanie wszelkich dostrzeżonych usterek i nieścisłości celem ich usunięcia dla szeroko rozumianego dobra ogółu. Ponieważ dokument ten może funkcjonować w wielu wersjach, w celu weryfikacji nieścisłości konieczne jest porównanie stanu faktycznego z dokumentem o odpowiedniej wersji. Znaki towarowe znajdujące się w niniejszym dokumencie przynależą wraz z prawami autorskimi odpowiednim ich właścicielom, a w szczególności: LEGO, the LEGO logo, DUPLO, BIONICLE, MINDSTORMS, the BELVILLE, CLIKITS, KNIGHTS KINGDOM and EXO-FORCE logos, the Brick and Knob configurations and the Minifigure stanowią znaki towarowe LEGO Group. Microsoft, Robotics Studio,.NET logo, Visual Studio, ActiveX oraz Windows stanowią znaki towarowe Microsoft Corporation. Java, JDK oraz JAVA logo stanowią znaki towarowe Oracle Corp. ageia PhysX stanowi znak towarowy nvidia Corporation. NOKIA, NOKIA CONNECTING PEOPLE stanowi znak towarowy NOKIA Corporation. Symbian, S60 stanowią nazwy i znaki towarowe LG Electronics, Lenovo, Nokia i Samsung.

3 1 Wprowadzenie. W ramach niniejszego laboratorium zostaną zaprezentowane różne modele robotów. Ich programowanie (wraz z kooperacją NXT2NXT, NXT2PC), będzie prowadzona w poznanych na poprzednich zajęciach językach programowania. Elementy programów obejmują sterowanie robotów z wykorzystaniem kamer rozpoznających obraz, elementy kooperacji pomiędzy robotami oraz elementy komunikacji, sterowania i kooperacji z urządzeniami zewnętrznymi, takimi jak GPS, telefony komórkowe, PDA, etc. W ramach zajęć studenci opracowują zaawansowane algorytmy sterowania robotami z wykorzystaniem dotychczas poznanych technik programowania, sterowania i kooperacji.

4 2 Konstrukcja robotów. Tribot Średnica koła 55mm, rozstaw kół w osi 112mm. Dwa serwomechanizmy odpowiedzialne za niezależny obrót kół połączone do portów sterujących B oraz C. Opcjonalnie do portu A podłączony element wykonawczy zależny od zadania stawianego robotowi. Szczegółowy opis konstrukcji znajduje się w materiałach do wykładu poświęconych konstrukcji popularnych robotów http://www.piotrczekalski.pl/mindstorms/resources/lectures/pl/3/wykład %20nr%203.pdf. Ze względu na różnorodność podłączanych sensorów nie istnieje standardowe przyporządkowanie sensorów do portów. Jednakże w przypadku stosowania sensorów genuine LEGO (po jednej sztuce z każdego rodzaju) zwyczajowo jest to: port 1 sensor dotyku, port 2 sensor natężenia dźwięku, port 3 sensor natężenia światła, port 4 ultradźwiękowy sensor odległości. Roboarm T-56 Ramię robota sterowane za pomocą trzech serwomechanizmów. Obrót ramienia wokół własnej osi za pomocą serwomechanizmu podłączonego do portu C, pochylenie/podniesienie ramienia za pomocą serwomechanizmu podłączonego do portu B, zamknięcie / otwarcie elementu chwytnego za pomocą serwomechanizmu podłączonego do portu A. Sensory podłączone są do następujących portów: port 1 sensor dotyku (czujnik obecności obiektu w uchwycie), port 2 sensor koloru (rozpoznanie obiektu w uchwycie), opcjonalnie: port 3 sensor dotyku 2 (do sterowania ramieniem), port 4 sensor akcelerometryczny wychylenia. Kompas Obrotowy element z nieruchomą podstawą, wykorzystujący jeden serwomechanizm. Zarówno klocek inteligentny jak i wszystkie sensory i elementy wykonawcze umieszczone są w stałych pozycjach względem siebie na obrotowej podstawie, sterowanej tylko jednym serwomechanizmem podłączonym do portu C. Sensor-kompas podłączony do portu 1. Wariantywnie robot może być wyposażony w sensor dotyku, którego zadaniem jest uruchomienie procedury wyznaczania północy magnetycznej, podłączony do portu 2. W trakcie tworzenia programu należy uwzględnić procedurę kalibracji sensoru kompasu, opisaną w trakcie wykładów.

5 Sterownik do robota, wyposażony w akcelerometr. Sterownik stanowi kostka NXT obudowana w uchwyty wraz z sensorem przechylenia, pracującym w płaszczyznach XY. Dodatkowo kostka może być wyposażona w sensor dotyku (np. pozwalający na zatrzymanie robota w trybie awaryjnym lub też na przerwanie wykonywania programu). Standardowe przyporządkowanie sensorów: port 1 sensor dotyku (dodatkowy dla celów testowych lub nagłego zatrzymania robota), port 2 - akcelerometr firmy HiTechnic.

6 3 Plan pracy W celu przeprowadzenia zajęć należy przygotować środowiska LEGO Mindstorms EDU NXT software (dla języka NXT-G), środowiska Microsoft Robotics Studio 2008 (VPL, C#), LeJOS NXJ, icommand, JDK and Eclipse IDE (Java), Microsoft Visual Studio 2005 lub 2008 wraz z NOKIA Carbide oraz Windows Mobile Development Kit na stacjach roboczych, a w przypadku prowadzenia zajęć w terenie na komputerach przenośnych, z dodatkową instalacją modułu GPS. Środowisko do programowania w NXT-G należy skonfigurować do wykorzystania sensorów firm trzecich poprzez zaimporowanie ich wg instrukcji zaprezentowanej w materiałach do wykładów (wykład dot. prezentacji środowiska NI Labview LEGO Mindstorms Edu NXT Software). Pliki instalacyjne bloków można pobrać ze stron producentów (www.hitechnic.com oraz www.mindsensors.com) lub też z lokalnego zasobu sieciowego (dysk i:\). Pliki tymczasowe należy składować na dysku u:\. Uwaga programowanie w języku JAVA jest ograniczone do sterowania zdalnego i nie obejmuje instalacji firmware LejOS NXJ na kostkach NXT. Proszę nie flashować kostek! Przed rozpoczęciem zajęć należy zweryfikować, czy na kostkach NXT Intelligent Brick jest zainstalowany oryginalny firmware LEGO w wersji co najmniej 1.05. W przypadku innego firmware należy poinformować o tym prowadzącego. Oprogramowanie mobilne można pobrać spod adresu: http://mindstorms.lego.com/overview/mobile%20application.aspx, a niezbędne oprogramowanie dodatkowe do Visual Studio 2005/2008 pozwalające na programowanie urządzeń mobilnych ze stron http://www.forum.nokia.com/resources_and_information/tools/ dla platformy Symbian Series 60 oraz http://download.microsoft.com dla platformy Windows Mobile. Roboty należy powiązać z urządzeniami za pomocą interface Bluetooth poprzez odpowiednie sparowanie współpracujących urządzeń lub połączyć kablem USB w zależności od środowiska programowania. W przypadku komunikacji pomiędzy robotami lub z innymi urządzeniami (telefony, GPS, PDA) niezbędne jest powiązanie tych urządzeń na poziomie interfejsu Bluetooth. Kody źródłowe należy komentować zgodnie z ogólnie przyjętymi zasadami poprawnego programowania (dotyczy to również języków graficznych, tj. NXT-G i VPL).

7 4 Zadania do wykonania w trakcie laboratorium 1. Sterowanie robota klasy Tribot za pomocą drugiej kostki NXT wyposażonej w akcelerometr. Współpraca NXT2NXT. Zadanie jest przeznaczone dla dwóch zespołów. Należy je wykonać w języku NXT-G (alternatywnie VPL/C#). Jeden zespół oprogramowuje robota tak, aby przyjmował komunikaty poprzez BT od sparowanej kostki NXT. I przekazywał je do serwomechanizmów. Drugi zespół przygotowuje oprogramowanie dla kostki NXT sterownika, która odczytuje dane z akcelerometru i przekształca je w komunikaty BT. Zadanie nie narzuca interface komunikacyjnego poza następującymi ograniczeniami: robot musi poruszać się z prędkością proporcjonalną (ale nie liniowo) do wychylenia akcelerometru, do przodu i do tyłu, oraz zakręcać, w przypadku utraty komunikacji z kostką sterownika wskazane jest zatrzymanie robota (można w tym celu wykorzystać timer, zatrzymujący robota po upływie określonego czasu, o ile nie pojawi się komunikat z kostki sterującej), naciśnięcie przycisku enter na sterowniku w trakcie wykonywania programu sterującego powinno spowodować wysłanie komunikatu zatrzymującego robota oraz zakończenie programu w kostce sterownika. 2. Współpraca S602NXT i WindowsMobile2NXT. Zdalne sterowanie robotem klasy Tribot za pomocą Smartphone i Pocket PC. Zadanie składa się z dwóch etapów (poznawczy i programistyczny). Etap I. Pobrać i zainstalować oprogramowanie sterujące kostką NXT za pomocą Smartphone pracującego pod kontrolą systemu Symbian Series 60. Zainstalować oprogramowanie na telefonie, sparować kostkę z telefonem i uruchomić oprogramowanie sterujące. Wykorzystać Smartphone do sterowania robotem klasy Tribot poprzez protokół Bluetooth. Etap II. Opracować aplikację symulującą joystick za pomocą interfejsu pocket PC pracującego pod systemem Windows Mobile 5 lub 6, wyposażonego w interface Bluetooth analogiczne jak ww. aplikacja dla Symbian Series 60. Wykorzystać protokół LCP do sterowania serwomechanizmami. Aplikacja powinna być stworzona na platformie.net Compact Framework. 3. Program rozpoznawania otoczenia dla robota klasy Tribot. Napisać oprogramowanie sterujące robotem tak, aby unikał przeszkód. Wykorzystać sensor odległości (z przodu) oraz dotyku (z tyłu) w celu rozpoznawania otoczenia. Opracować algorytm unikania przeszkód bazujący na generatorze liczb losowych (obrót) lub z wykorzystaniem sztucznej inteligencji (w miarę posiadanych narzędzi/klas API).

8 4. Program śledzenia ścieżki dla robota klasy Tribot. Opracować program śledzenia trójkolorowej ścieżki dla robota klasy Tribot. Należy zapewnić algorytm wyszukiwania ścieżki w przypadku utracenia jej. Poruszanie się po ścieżce powinno być możliwie płynne. W tym celu należy minimalizować różnicę kątową pomiędzy bieżącym kierunkiem poruszania się oraz kierunkiem wyznaczanym przez styczną do środka śledzonej linii w punkcie pomiaru. W celu pomiaru/monitorowania ścieżki należy wykorzystać sensor kolorów z włączonym oświetleniem. Należy zapewnić kalibrację sensora do warunków oświetleniowych oraz zapewnić odpowiedni margines interpretacji kolorów pozwalający na maksymalne wyeliminowanie zmian oświetlenia pochodzących z dynamicznie następujących zmian pogodowych, cienia rzucanego przez osoby obecne w laboratorium, etc. Program należy wykonać w języku NXT-G, LeJOS (jako program nadzorowany) lub VPL/C#. 5. Sterowanie robota klasy Tribot za pomocą Joysticka podłączonego do komputera PC. Współpraca PC2NXT. Zadanie należy wykonać w języku VPL/C# lub LeJOS w trybie nadzorowanym. Sterowanie robota powinno odbywać się za pomocą Joysticka podłączonego do komputera PC (port USB). Należy w tym celu wykorzystać odpowiedni serwis dostępny w środowisku MRDS. Wymagania do algorytmu sterowania: robot musi poruszać się z prędkością proporcjonalną (ale nie liniowo) do wychylenia joysticka, do przodu i do tyłu, oraz zakręcać, w przypadku naciśnięcia przycisku fire na joysticku należy natychmiast zatrzymać robota. 6. Sterowanie robota klasy Tribot za pomocą drugiej kostki NXT wyposażonej w akcelerometr. Współpraca NXT2NXT. Zadanie jest przeznaczone dla dwóch zespołów. Należy je wykonać w języku NXT-G (alternatywnie VPL/C#). Jeden zespół oprogramowuje robota tak, aby przyjmował komunikaty poprzez BT od sparowanej kostki NXT. I przekazywał je do serwomechanizmów. Drugi zespół przygotowuje oprogramowanie dla kostki NXT sterownika, która odczytuje dane z akcelerometru i przekształca je w komunikaty BT. Zadanie nie narzuca interface komunikacyjnego poza następującymi ograniczeniami: robot musi poruszać się z prędkością proporcjonalną (ale nie liniowo) do wychylenia akcelerometru, do przodu i do tyłu, oraz zakręcać, w przypadku utraty komunikacji z kostką sterownika wskazane jest zatrzymanie robota (można w tym celu wykorzystać timer, zatrzymujący robota po upływie określonego czasu, o ile nie pojawi się komunikat z kostki sterującej), naciśnięcie przycisku enter na sterowniku w trakcie wykonywania programu sterującego powinno spowodować wysłanie komunikatu zatrzymującego robota oraz zakończenie programu w kostce sterownika.

9 7. Synchronizacja poruszania się dwóch robotów klasy Tribot. Zadanie przeznaczone dla dwóch zespołów. Opracować program synchronizujący dwa roboty klasy Tribot, jeden wyposażony w kompas. Robot wyposażony w kompas stanowi nadzorcę, wysyłającego komunikaty do drugiego robota. Robot nadzorca wykonuje obrót w celu poszukiwania północy magnetycznej (z dokładnością do 5st. kątowych). Robot nadzorowany powinien w tym czasie wykonywać obrót w tym samym kierunku i o taki sam kąt, jak robot nadzorujący (a więc powinien naśladować jego ruchy, niezależnie od swojej pozycji). Ocenić szybkość przesyłania i przetwarzania komunikatów Bluetooth. Programy dla obu robotów (tj. nadzorującego i nadzorowanego) należy napisać w języku NXT-G. Algorytm wyszukiwania północy magnetycznej jest dowolny. Należy zapewnić zakreślanie koła o rozsądnym promieniu, w zależności od aktualnych warunków panujących w laboratorium. 8. Rozpoznawanie i śledzenie obiektu za pomocą kamer NXTCam i robota klasy Tribot. Opracować program śledzenia obiektu za pomocą kamery Vision Subsystem v2 for NXT (NXTCam-v2). Algorytm powinien pozwalać na śledzenie uprzednio zdefiniowanego obiektu. Robot powinien poruszać się za obiektem. W przypadku utraty kontaktu z obiektem robot powinien zatrzymać się, a następnie rozpocząć generowanie ostrzegawczego sygnału dźwiękowego. Oprogramowanie należy napisać z wykorzystaniem języka NXT-G lub LeJOS NXJ. Postawione w niniejszym laboratorium zadania mają charakter poszukiwawczy i w większości wypadków wymagają pracy twórczej oraz szeroko pojętych zdolności programowania w wielu językach. W związku z powyższym, oceniane będą zarówno elementy programistyczne jak i algorytmiczne. Zaliczenie i ocena będą proporcjonalne do osiągniętych rezultatów oraz zbliżenia się z przedstawionym rozwiązaniem do modelu teoretycznego i postulowanych w zadaniach założeń. Stopień realizacji a tym samym decyzję o zaliczeniu/odrzuceniu stanu realizacji tematu ocenia prowadzący ćwiczenie.

10 5 Raport W raporcie należy umieścić opis sposobu rozwiązania problemu (wraz z przedstawieniem kroków dojścia do rozwiązania problemu), algorytmy sterujące w formie listy opisu, pseudokodu, diagramów blokowych i/lub języka UML, wszelkie wzory, w szczególności obliczające moc sterującą serwomechanizmów, komunikaty BT, kody źródłowe programów, etc. Raport powinien zawierać w jednym z ostatnich akapitów informację o trybie testowania oprogramowania i robota. Raport należy spakować w paczkę ZIP wraz z kodami źródłowymi i przesłać w wersji elektronicznej za pomocą tzw. bazy danych, o której mowa w regulaminie i zajęciach wprowadzających w terminie określonym w regulaminie.

11 6 Literatura LEGO MINDSTORMS NXT-G Programming Guide (Technology in Action), James Floyd Kelly, Apress, 2007. On-line: The NXT STEP LEGO MINDSTROMS NXT Blog, http://thenxtstep.blogspot.com/, Sierpień 2008. Maximum LEGO NXT: Building Robots with Java Brains, Brian Bagnall, 2007. On-line: LeJOS Tutorial, http://lejos.sourceforge.net/nxt/nxj/tutorial/index.htm, Sierpień 2008. On-line: NXJ API, http://lejos.sourceforge.net/nxt/nxj/api/index.html, Sierpień 2008. On-line: PC NXJ API: http://lejos.sourceforge.net/nxt/pc/api/index.html, Sierpień 2008. On-line: icommand API: http://lejos.sourceforge.net/nxt/icommand/api/index.html, Sierpień 2008. Maximum LEGO NXT: Building Robots with Java Brains, Brian Bagnall, 2007. On-line: portal Microsoft Robotics Studio,http://msdn.microsoft.com/enus/robotics/default.aspx, Styczeń 2009. On-line: Simply Sim MRDS i symulacja robotów Lego Mindstorms NXT, http://www.simplysim.net/index.php?scr=scrviewnews&t=2&idnews=18, Styczeń 2009. Programming Microsoft Robotics Studio, Sara Morgan, MS Press, 2008.