Programowanie robotów LEGO Mindstorms NXT

Podobne dokumenty
Programowanie robotów LEGO Mindstorms NXT

dr inż. Tomasz Krzeszowski

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

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

Site Installer v2.4.xx

Zastosowania Robotów Mobilnych

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

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

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

Parowanie urządzeń Bluetooth. Instrukcja obsługi

Samsung Universal Print Driver Podręcznik użytkownika

Politechnika Śląska w Gliwicach

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Instalowanie certyfikatów celem obsługi pracy urządzenia SIMOCODE pro V PN z poziomu przeglądarki internetowej w systemie Android

Materiały dodatkowe. Simulink Real-Time

Zdalne zarządzanie systemem RACS 5

Sterowanie, uczenie i symulacja robotów przemysłowych Kawasaki

Instrukcja instalacji oprogramowania do składania podpisu elektronicznego, pod umową o zarządzanie PPK, przy uz yciu certyfikatu kwalifikowanego

1.Wstęp. 2.Generowanie systemu w EDK

Instrukcja obsługi serwera FTP v

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

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

Zdalny podgląd wizualizacji z panelu XV100 przez przeglądarkę internetową (WebServer)

Kabel USB 2.0 do połączenia komputerów PCLinq2 (PL-2501) podręcznik uŝytkownika

Asix. Konfiguracja serwera MS SQL dla potrzeb systemu Asix. Pomoc techniczna NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows

Instrukcja instalacji i konfiguracji Karty EDGE/GPRS SonyEricsson GC85

Motorola Phone Tools. Krótkie wprowadzenie

Instrukcja obsługi Podręcznik aktualizacji oprogramowania sprzętowego

Przewodnik instalacji i rozpoczynania pracy. dla DataPage+ 2012

Instrukcja obsługi notowań koszykowych w M@klerPlus

Dell P2018H Dell Display Manager Instrukcja użytkownika

Aplikacja do podpisu cyfrowego npodpis

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

Spis treści

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

Drukarka serii HP LaserJet P2015 Uwagi dotyczące instalacji systemu drukowania

INSTRU KCJA UŻYTKOWNIKA

UNIFON podręcznik użytkownika

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Sterowniki Programowalne (SP)

SKRó CONA INSTRUKCJA OBSŁUGI

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Dell Display Manager - przewodnik użytkownika

Tablet bezprzewodowy QIT30. Oprogramowanie Macro Key Manager

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

Instrukcja użytkownika Dell Display Manager

asix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008)

Instrukcja użytkowania

Migracja Business Intelligence do wersji

Rys. 1. Brama przesuwna do wykonania na zajęciach

R 1. Robot o równoległej strukturze kinematycznej i czterech stopniach swobody. Pracownia Nauki Programowania i Aplikacji Robotów Przemysłowych

Laboratorium Badanie topologii i budowa małej sieci

Instalacja Czytnika Kart w systemie Windows 7

Załącznik 1 instrukcje instalacji

Nagrywamy podcasty program Audacity

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Instrukcja aktywacji tokena w usłudze BPTP

Instrukcja użytkownika

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Instrukcja instalatora kart mikroprocesorowych od Windows XP do Windows Wstęp 1 2. Wymagania instalacji 1 3.

Dr hab. inż. Marek Pawełczyk, prof. nzw. w Politechnice Śląskiej Koordynator Projektu POKL /10

Forte Zarządzanie Produkcją Instalacja i konfiguracja. Wersja B

Załącznik 1 instrukcje instalacji

1 Moduł Bramki xcomfort

Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Microsoft Windows 8

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

Czym jest MIT App Inventor. App Inventor jest to zbiór bloków jako język programowania używany do tworzenia mobilnych aplikacji na androida.

FAQ Systemu EKOS. 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen?

Dell UltraSharp UP3017 Dell Display Manager Instrukcja użytkownika

Instalacja programu:

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

Instrukcja obsługi programu DS150E. Dangerfield March. 2009V3.0 Delphi PSS

INSTRUKCJA OBSŁUGI Program konfiguracji sieciowej Net configuration Drukarka A11

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Migracja Comarch ERP Altum Business Intelligence do wersji

Podręcznik AirPrint. Informacje o funkcji AirPrint. Procedura konfiguracji. Drukowanie. Appendix

Referat pracy dyplomowej

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Instrukcja instalacji Control Expert 3.0

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

kodowanienaekranie.pl

PRZEWODNIK PO PRZEDMIOCIE

Instalacja i konfiguracja IIS-a na potrzeby dostępu WEB do aplikacji Wonderware InTouch Machine Edition

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

Krok 2 (Mac). Konfigurowanie serwera WD Sentinel (czynność jednorazowa)

BLUETOOTH INSTRUKCJA PODŁĄCZENIA I KONFIGURACJI.

CoDeSys 3 programowanie w języku FBD

Instrukcja obsługi przełącznika KVM ATEN CS661. Opis urządzenia. Instalacja urządzenia

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla nauczyciela

Migracja XL Business Intelligence do wersji

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator

Instrukcja instalacji programu STATISTICA

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Instalacja sterowników w systemie operacyjnym WINDOWS 8 ; 8.1 ; 10

Transkrypt:

Programowanie robotów LEGO Mindstorms NXT Laboratorium 7: Programowanie robotów klasy Tribot w MRDS - programowanie graficzne w VPL #1 (zdalne sterowanie robotem). Wersja 1.3 8 października 2012

2 Zastrzeżenia prawne 2008,2012 Politechnika Śląska w Gliwicach, mgr Adrian Nowak. 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.

3 1 Wprowadzenie. W ramach niniejszego laboratorium zaprezentowane zostaną podstawowe informacje dotyczące programowania w środowisku Microsoft Robotics Studio przy użyciu Visual Programming Language. Podstawą zajęć będzie zapoznanie się z koncepcją tworzenia oprogramowania w środowisku MSRS. Dodatkowym elementem zajęć będzie wykorzystanie urządzenia wejścia podłączonych do PC (joystick, desktop joystick, kontroler Kinect) do sterowania robotem klasy Tribot.

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.

5 3 Plan pracy Roboty należy łączyć z komputerami za pomocą protokołu Bluetooth. Jest to jedyna standardowa możliwość połączenia robota Lego NXT ze środowiskiem Microsoft Robotics Studio. Przed uruchomieniem programu konieczne jest sparowanie robota i komputera PC. W niniejszym ćwiczeniu wykorzystywane jest środowisko Microsoft Robotics Developer Studio 2008 CTP July. Możliwe jest wykorzystanie innych wersji środowiska MRDS 2008 R3 oraz wersji MRDS 4. Nie jest wskazane korzystanie z wcześniejszych wersji CTP ze względu na błędy w środowisku. W przypadku sterowania kontrolera Kinect niezbędne jest zainstalowanie odpowiedniego SDK. Kody źródłowe w języku VPL należy komentować (korzystając z dostępnych komentarzy).

6 4 Krótkie wprowadzenie teoretyczne Środowisko Microsoft Robotics Studio Środowisko Microsoft Robotics Studio opiera się na dwóch podstawowych modelach uruchomieniowych: Concurrency and Coordination Runtime (CCR) - model zorientowany na asynchroniczne przesyłanie komunikatów, eliminuje konieczność ręcznego tworzenia i zarządzania wątkami, używanie blokad czy semaforów, Decentralized Software Services (DSS) - model zorientowany na usługi sieci Web (Service Oriented Application),.NET Common Language Runtime (CLR) 2.0 obsługuje oba powyższe modele i dostarcza dostęp do.net Framework umożliwiając wygodne tworzenie oprogramowania. Usługi Jednym z podstawowych pojęć używanych w środowisku MSRS jest usługa. Usługa jest niezależnym modułem programowym zbiorem kodów źródłowych. Usługa może się składać z innych usług. Aplikacja stworzona w MSRS jest tak naprawdę zbiorem niezależnych od siebie, działających w sieci usług, które komunikują się pomiędzy sobą (tutaj znajduje zastosowanie model DSS). Do prawie każdej usługi można uzyskać dostęp poprzez przeglądarkę internetową z użyciem protokołu DSSP (DSS Protocol) bazującego na protokołach HTTP i SOAP. Po uzyskaniu interaktywnego dostępu do usługi możemy monitorować jej działanie w czasie rzeczywistym. W większości przypadków usługi są zbiorem czynności wykonywanych na określonych elementach fizycznych lub wirtualnych (np. zachowanie jakiegoś sensora). Usługi komunikują się między sobą asynchronicznie, umożliwiając równoległą pracę kilku usług (np. ruch dwóch silników jednocześnie) tutaj zastosowanie znajduje model CCR. W uproszczeniu CCR jest biblioteką.net, stanowiącą nakładkę na operacje asynchroniczne i chroniącą programistów przed pisaniem ich własnego kodu wielowątkowego. Visual Programming Language Tworzenie aplikacji w środowisku Microsoft Robotics Studio może odbywać w dwojaki sposób: bezpośrednio w Visual Studio w jednym z języków bazujących na.net Framework, w graficznym języku programowania Visual Programming Language (VPL). W ramach niniejszego laboratorium wykorzystany zostanie VPL. VPL składa się z dwóch podstawowych rodzajów elementów: usług (services) czyli bloków reprezentujących opisane wcześniej usługi, akcji/czynności (activities) bloków realizujących działania na komunikatach wymienianych przez poszczególne usługi.

7 Każdy z bloków wykorzystywanych podczas programowania może zawierać trzy rodzaje odprowadzeń, które opisuje poniższy rysunek. W ramach niniejszego laboratorium wykorzystane zostaną głównie usługi ze zbirou Lego NXT (rysunek). Aplikacja napisana w VPL może być w prosty sposób przekonwertowana na kod C#, jednak operacja odwrotna nie jest możliwa do zrealizowania. Język VPL nie jest zorientowany obiektowo i nie dostarcza bezpośredniego dostępu do.net Framework. Co więcej, po uchomieniu aplikacji w języku VPL nie jest ona konwertowana do C#, a następnie uruchamiana, lecz od razu uruchamiana bezpośrednio z poziomu języka VPL.

8 5 Zadania do wykonania w trakcie laboratorium dla wszystkich sekcji Utworzyć przykładowy program w języku VPL, przedstawiony na poniższym rysunku. Konstrukcję programu przedstawia krokowo poniższy tutorial. Należy przejść przez kolejne kroki przewodnika starając się zrozumieć zasady tworzenia aplikacji w VPL. 1. Przeciągnąć blok usługi LegoNxtBrickv2 na powierzchnię diagramu i rozwinąć opcję konfiguracji tej usługi (np. przez dwukrotne kliknięcie na bloku). 2. Opcję Set Configuration ustawić na Set initial configuration, a następnie ustawić odpowiedni ConnectionType czyli sposób połączenia z robotem. 3. Przeciągnąć usługę LegoNXTUltrasonicSensorv2 oraz akcję If na powierzchnię diagramu. 4. Połączyć wyjście bloku czujnika odległości z wejściem bloku If. 5. Kliknąć w polu edycyjnym bloku If - powinna rozwinąć się lista podpowiedzi z dostępnymi wartościami i zmiennymi do porównania. 6. Z listy wybrać atrybut Distance (po najechaniu na niego myszką zapoznać się z podpowiedzią dotyczącą tego atrybutu). 7. Dokończyć warunek akcji If: Distance < 50. 8. Kliknąć na przycisk + bloku If spowoduje to dodanie kolejnego warunku do akcji. 9. W dodanym polu warunku analogicznie wpisać warunek: Distance < 90.

9 10. Przeciągnąć blok akcji Data na powierzchnię diagramu. 11. Ustawić wartość w polu bloku Data na 45 typu int. 12. Połączyć warunek Distance < 50 akcji If z wejściem bloku Data. 13. Przeciągnąć blok usługi LegoNXTDrivev2 na powierzchnię diagramu. 14. Połączyć wyjście bloku Data z wejściem usługi LegoNXTDrivev2 w efekcie pojawi się okno Data Connections. 15. W oknie Data Connections dla Target = Degrees wybrać wartość Value = value (rysunek). 16. Postępując analogicznie do powyższej instrukcji zrealizować pozostałe części przykładowego diagramu. 17. Uwaga: podczas przeciągania kolejnej usługi LegoNxtBrickv2 na powierzchnię diagramu środowisko zapyta, czy dodawany blok ma być kolejną instancją danej usługi czy ma być tożsamy z już istniejącą instancją. Należy w tym przypadku wybrać istniejącą instancję. 18. Zaznajomić się z oknem Properties po prawej stronie edytora. Obejrzeć dostępne tam opcje po kliknięciu na poszczególne bloki i połączenia. 19. Zaznajomić się z podpowiedziami w dymkach wyświetlającymi się po najechaniu poszczególne bloki i połączenia. 20. Zaznajomić się z opcją lupy dostępnej w prawym dolnym rogu edytora. 21. Korzystając z okna Project umiejscowionego po prawej stronie edytora zmienić nazwę oraz opis aktywnego diagramu. 22. Uruchomić utworzony program na robocie klasy Tribot.

10 6 Zadania do wykonania w trakcie laboratorium (po jednym na każdą sekcję) 1. Wykorzystując utworzony przykład stworzyć program w języku VPL pozwalający na zdalne sterowanie ruchem robota klasy Tribot przy pomocy joysticka. Jako usługi sterujące wykorzystać bloki GameController (jeśli jest dostępne fizyczne urządzenie sterujące) oraz DesktopJoystick. Należy pamiętać o poprawnej konfiguracji początkowej usługi GameController. 2. Wykorzystując utworzony przykład napisać program w języku VPL pozwalający na zdalne sterowanie ruchem robota klasy Roboarm za pomocą joysticka. Jako usługi sterujące wykorzystać bloki GameController (jeśli jest dostępne fizyczne urządzenie sterujące) oraz DesktopJoystick. Należy pamiętać o poprawnej konfiguracji początkowej usługi GameController. 3. Wykorzystując robota Tribot utworzyć aplikację w języku VPL, która steruje robotem w oparciu o usługi rozpoznawania głosu. Do tego zadania niezbędny jest mikrofon oraz system operacyjny (co najmniej Windows Vista) z zainstalowaną funkcją rozpoznawania głosu. Należy utworzyć odpowiednią konfigurację robota, a następnie utworzyć switch-case sterujący ruchem robota w zależności od podanej ustnie komendy. 4. Stworzyć aplikację sterującą robotem klasy roboarm w oparciu o gesty rozpoznawane za pomocą kontrolera Kinect. Utworzyć aplikację sterującą robotem Roboarm T56 z wykorzystaniem kontrolera Kinect. Wskazane użycie MRDS w wersji 4. Zaliczenie każdego z zadań polega na uruchomieniu i prezentacji prowadzącemu zajęcia działającego robota, spełniającego postawione we wskazanym zadaniu warunki. Prowadzący przeprowadza przy pomocy studentów pełne testy funkcjonalności robota, testy niezawodności i wykrywania sytuacji awaryjnych i radzenia sobie z nimi (przy założonych warunkach brzegowych dla zadania).

11 7 Raport W raporcie należy umieścić: 1. Krótki opis działania programu utworzonego w pkt. 5 instrukcji. 2. Zrzuty ekranu z VPL w postaci plików graficznych, prezentujące zawartość wybranego programu z pkt. 6 instrukcji (wraz z komentarzami). 3. Stałe i początkowe wartości liczbowe użyte w programie (np. odległości, wartości mocy, kąty obrotów itp.) 4. Powiązanie portów z sensorami i elementami wykonawczymi (o ile jest ono różne od standardowego). 5. W przypadku, gdy zespół realizujący projekt poczynił dodatkowe założenia / ustalenia dot. projektu, które muszą być uzgodnione z prowadzącym, należy je umieścić w raporcie. 6. Opis empirycznych testów programu z pkt. 6 wykonanych przy użyciu robota. 7. Wnioski dotyczące ograniczeń działania programu i ewentualnie przeprowadzonych optymalizacji. 8. Odpowiedzi na pytania: Czy podobały Ci się zajęcia? Co byś w nich ewentualnie zmienił? 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.

12 8 Literatura Programowanie robotów Lego Mindstorms NXT wykład nr 6, dr inż. Piotr Czekalski, Politechnika Śląska 2008. Programming Microsoft Robotics Studio, Sara Morgan, Microsoft Press, Washington 98052-6399, 2008 LEGO MINDSTORMS NXT Programming Guide (Technology in Action), James Floyd Kelly, Apress, 2007. On-line: NXT Tutorial created by Camtasia Studio, http://www.ortop.org, 2008. On-line: The NXT STEP LEGO MINDSTROMS NXT Blog, http://thenxtstep.blogspot.com/, Sierpień 2008.