Zad. 7: Sterowanie manipulatorem przypadek 3D

Podobne dokumenty
Zad. 5: Sterowanie dronem

Zad. 6: Sterowanie robotem mobilnym

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Zad. 5: Sterowanie robotem mobilnym

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

Zad. 7: Fabryka obiektów i singleton

Zad. 7: Fabryka obiektów i singleton

Zad. 10: Sterowanie manipulatorem cz. 2 i 3

Zad. 5: Układ równań liniowych liczb zespolonych

Zad. 7: Sterowanie robotami mobilnymi w obecności przeszkód

Zad. 6: Sterowanie robotami mobilnymi w obecności przeszkód

Zad. 5: Rotacje 3D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Zad. 3: Układ równań liniowych

Zad. 1: Sterowanie mimika

Zad. 4: Rotacje 3D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Laboratorium nr 4: Arytmetyka liczb zespolonych

Zad. 6: Sterowanie dronami w obecności przeszkód

Zadanie nr 3: Sprawdzanie testu z arytmetyki

Zadanie 2: Arytmetyka symboli

Laboratorium nr 5: Mnożenie wektorów i macierzy

Zad. 4: Szablonu dla układu równań liniowych

Układ równań liniowych

Zadanie nr 2: Arytmetyka liczb zespolonych

5. Mechanizm szablonów.

Manipulatory i roboty mobilne AR S1 semestr 5

Podręcznik użytkownika Obieg dokumentów

Księgarnia PWN: Andrzej Jaskulski - AutoCAD 2010/LT Podstawy projektowania parametrycznego i nieparametrycznego

CMS- kontakty (mapa)

Szablony funkcji i szablony klas

System imed24 Instrukcja Moduł Analizy i raporty

MultiCash współpraca z systemami finansowo-księgowymi

Programowanie obiektowe

Microsoft PowerPoint 2003 efektywne tworzenie i prezentacji multimedialnych

5.4. Efekty specjalne

Spis treści. 1: Wyszukiwanie elementu : Do linii modelu : Powiel arkusze : Długość kabla : Rozmieszczenie widoków...

Programowanie obiektowe

Elementy animacji sterowanie manipulatorem

Podstawy Programowania Obiektowego

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

TEMAT : KLASY DZIEDZICZENIE

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Programowanie obiektowe

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Grafika Komputerowa Materiały Laboratoryjne

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

Programowanie obiektowe

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

KATEDRA MECHANIKI I PODSTAW KONSTRUKCJI MASZYN. Instrukcja do ćwiczeń laboratoryjnych z elementów analizy obrazów

Projektowanie systemów zrobotyzowanych

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne.

OPROGRAMOWANIE DEFSIM2

Backend Administratora

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

6.4. Efekty specjalne

Spis treści CZĘŚĆ I. NIEPARAMETRYCZNE PROJEKTOWANIE 2D...31

Symfonia Produkcja. Kreator raportów. Wersja 2013

6.4. Efekty specjalne

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

1. Opis okna podstawowego programu TPrezenter.

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Menu Narzędzia w Edytorze symboli i Edytorze Widoku aparatów

Wybrane zmiany wprowadzone w pakiecie Oprogramowanie: SyriuszStd

Układy współrzędnych GUW, LUW Polecenie LUW

Lab 9 Podstawy Programowania

Programowanie urządzeń mobilnych. projekt 6 ( )

Programowanie obiektowe

1. Wybierz polecenie rysowania linii, np. poprzez kliknięcie ikony W wierszu poleceń pojawi się pytanie o punkt początkowy rysowanej linii:

Studia Podyplomowe Grafika Komputerowa i Techniki Multimedialne, 2017, semestr II Modelowanie 3D - Podstawy druku 3D. Ćwiczenie nr 4.

KATEGORIA OBSZAR WIEDZY

54. Układy współrzędnych

7. Podstawy zarządzania szablonami

DARMOWA PRZEGLĄDARKA MODELI IFC

Programowanie obiektowe

Deklaracja i definicja metod, zwracanie wartości z metod, przekazywania parametrów do metod

Język Java część 2 (przykładowa aplikacja)

Opis konfiguracji ST do współpracy z kolektorem DENSO BHT 8000

Diagramy UML, przykład problemu kolizji

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Scilab - podstawy. Wersje instalacyjne programu Scilab mogą zostać pobrane ze strony

Platforma e-learningowa

Wprowadzenie do UML, przykład użycia kolizja

3.4. Opis konfiguracji layoutów.

Pomorski Czarodziej 2016 Zadania. Kategoria C

Moduł kontrakty służy do przechowywania danych o zakontraktowanych cenach zakupu od wybranych kontrahentów.

BRIDGE CAD ABT - INSTRUKCJA OBSŁUGI

Dia rysowanie diagramów

37. Podstawy techniki bloków

W dowolnej przeglądarce internetowej należy wpisać poniższy adres:

Ćwiczenie nr 8 - Modyfikacje części, tworzenie brył złożonych

W nowej wersji Aplikacji wprowadzono udoskonalenia w funkcjonowaniu legendy.

Kurs walut. Specyfikacja projektu. Marek Zając

47. Ćwiczenia przejściowe

Zaliczenie przedmiotu:

Kilka prostych programów

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Transkrypt:

Zad. 7: Sterowanie manipulatorem przypadek 3D 1 Cel ćwiczenia Wykorzystanie w praktyce mechanizmu dziedziczenia. Wykształcenie umiejętności korzystania z szablonu list<> oraz dalsze rozwijanie umiejętności projektowania struktur danych oraz definiowanie odpowiednich przeciążeń operatorów. 2 Program zajęć Ocena realizacji zadania z poprzedniego laboratorium ocenie podlega poprawność realizacji zadania, styl pisania programu oraz dokumentacja wygenerowana za pomocą systemu doxygen. Ocena przygotowania do zajęć ocenie podlega diagram klas (patrz rozdział 4). Modyfikacja programu wg wskazań osoby prowadzacej ocenie będzie podlegała poprawność realizacji modyfikacji. Pracę nad modyfikacją programu (wszystkie operacje należy wykonywać na kopii) należy rozpocząć już w trakcie pierwszej fazy laboratorium, gdyż prowadzący nie będzie w stanie ocenić wcześniejszego programu wszystkim jednocześnie. Realizacja wstępnej fazy prac nad nowym zadaniem należy stworzyć uproszczoną wersję programu, która jest w stanie rozpoznać typ obiektu na podstawie wczytywanego pliku opisującego prostopadloscian lub parawan. Aby to zrealizować, zalecane jest wykorzystanie dostarczone przykladu w katalogu bk/edu/kpo/zad/z7/przyklad Ocena realizacji wstępnej fazy zadania 3 Opis zadania programowego Niniejsze zadanie jest kontynuacją i rozszerzeniem wcześniejszego zadania. Bazując na wcześniejszym programie należy napisać program, który będzie umożliwiał sterowanie dwóch manipulatorów. Manipulatory te będą różnego typu. Pierwszy z nich będzie miał, tak jak manipulator w poprzednim zadaniu, tylko przeguby rotacyjne. Oprócz tego będzie miał obrotową kolumnę. Drugi z manipulatorów również będzie miał obrotową kolumnę. Jednak pozostałe ogniwa będą tylko translacyjne. Oznacza to, że będą one mogły zmieniać swoją długość. Oprócz tego program powinien być w stanie wizualizować dwa typy przeszkód, które będą znajdowały się na scenie roboczej razem z manipulatorami. Pierwszy z rodzai przeszkód to prostopadłościan. Drugi rodzaj przeszkód to parawany składające się z trzech ścianek. Te ostatnie są niczym innym jak rozpiętym prostopadłościanem pozbawionym dwóch przeciwległych ścianek. Zakładamy, że liczba przeszkód nie jest ograniczona. Dlatego też każdy z dwóch rodzai przeszkód trzeba przechowywać na osobnych listach wykorzystując szablon list<>. W przypadku przeszkód należy również wykorzystać mechanizm dziedziczenia i zdefiniować odpowiednią klasę wykorzystując wspólną klasę bazową. Użycie mechanizmu dziedziczenia jak też szablonu list<> jest obligatoryjne. 1

4 Przygotowanie do zajęć Należy przygotować wstępny diagram klas modelujący struktury danych programu realizującego niniejsze zadanie. Oprócz manipulatorów i przeszkód należy również uwzględnić fakt, że wszystkie te elementy znajdują się na wspólnej scenie roboczej. Stworzony diagram musi mieć formę elektroniczna w postaci odpowiedniego pliku graficznego. 5 Działanie programu Program wywołujemy z zestawem plików. Pierwsze dwa opisują konfigurację manipulatorów. Jeden z nich musi się odnosić do manipulatora z przegubami rotacyjnymi zaś drugi z przegubami translacyjnymi. Ich kolejność jest dowolna. Kolejne pliki zawierają opis obiektów takich jak prostopadłościan oraz parawan. Ich ilość nie jest jawnie ograniczona. Przykład wywołania programu../scena konfig_manip_rot.dat konfig_manip_trans.dat obiekt1.dat obiekt2.dat Pliki konfiguracyjne manipulatorów zawierają informacje o typie manipulatora, jego nazwie, położeniu względem początku układu współrzędnych (wektor translacji T patrz rys. 1) wartość kąta q r (wartości kątów wyrażone są w stopniach) oraz pary wartości q i 1, l i. Tak więc plik ten zadaje położenie manipulatora, jego strukturę oraz początkową posturę. Ogólna składnia pliku ma postać: typ_maniputora nazwa_manipulatora T x T y T y q r q 0 l 1 Przykład zawartości pliku: manipulator_trans manip1_t 20 40 0 0 90 40 30 30 10 40 q n 1 l n Dopuszczalne nazwy typów manipulatorów to: manipulator_trans, manipulator_rot. Pliki opisujące obiekty takie jak prostopadłościan lub parawan, zawierają informację o typie obiektu, jego nazwę, współczynniki skalowania względem poszczególnych osi oraz współrzędne wektora translacji. Składnia takiego pliku ma postać: Przykład zawartości pliku: typ_obiektu_geometrycznego nazwa_obiektu_geometrycznego S x S y S y T x T y T y 2

Rysunek 1: Współrzędne wierzchołków prostopadloscian bryla1 5 3 2 20 0 40 Dopuszczalne nazwy typów obiektów w tym przypadku to: prostopadloscian, parawan. Obiekty te powinny być zainicjalizowane jako pewnego rodzaju obiekt wzorcowy (patrz rys. 2). Pożądany obiekt możemy dalej otrzymać poprzez odpowiednie skalowanie osi i translację. a) b) Rysunek 2: Współrzędne wierzchołków dla a) wzorcowego prostopadłościanu b) wzorcowego parawanu Nazwy wszystkich obiektów sceny (tzn. manipulatorów, prostopadłościanów lub parawanów) muszą być unikalne. Należy je wykorzystać do skonstruowania odpowiednich nazw plików, do których będą wpisywane współrzędne wierzchołków dla programu gnuplot. Przykład takiej konstrukcji jest dostępny w dostarczonym kodzie w ramach materiałów pomocniczych. Program powinien udostępniać proste menu, które będzie pozwalało na realizację następujących operacji: wyświetlenie nazw wszystkich obiektów na scenie (tzn. manipulatorów, prostopadłościanów i parawanów), dla wybranego poprzez nazwę obiektu sceny należy wczytać plik zawierający zestaw liczb zmiennoprzecinkowych. Zbór ten określa nowy stan danego obiektu. Jeżeli wybranym obiektem jest manipulator, to wspomniany zbiór liczb należy traktować jako wartości, determinujące jego nową posturę. Przy czym w przypadku manipulatora z przegubami rotacyjnymi, zbiór ten określa wartości kolejnych kątów: q r,q 0,q 1,...,q n 3

(wyrażone w stopniach). W przypadku manipulatora zawierającego przeguby translacyjne, pierwsza wartość, to kąt q r, zaś pozostałe to nowe długości kolejnych ramion l 1,l 2,...,l n. Dla obiektów takich jak prostopadłościany oraz parawany, zawartością pliku są współrzędne wektora translacji względem aktualnego położenia obiektu. ponowne wyświetlenie menu, zakończenie działania programu. Reakcja na błędy ma analogiczna do tego jak w programach z zadania nr 5 i 6. Wszystkie realizowane akcje powinny być wizualizowane za pomocą programu gnuplot. 6 Przykład działania programu Niniejszy przykład nie obejmuje widoku okienka z rysunkiem wygenerowanym przez program gnuplot. Przedstawioną formę interakcji z użytkownikiem należy traktować jako obowiązującą. jk@panamint>./scena konfig_manipr.dat konfig_manipt.dat pro1.dat pro2.dat par1.dat Konfiguracje manipulatora wczytano z pliku: konfig_manipr.dat Konfiguracje manipulatora wczytano z pliku: konfig_manipt.dat Dodano obiekt sceny z pliku: pro1.dat Dodano obiekt sceny z pliku: pro2.dat Dodano obiekt sceny z pliku: par1.dat n - podaj nazwe obiektu, ktory ma byc podany dzialaniu w - wyswietl nazwy wszystkich obiektow m - wyswietl menu k - koniec dzialania programu Twoj wybor? (m - menu) > w Manip1_R Manip2_T Bryla1 Bryla2 Zaslona <- Manipulator (przeguby rotacyjne) <- Manipulator (przeguby translacyjne) <- Prostopadloscian <- Prostopadloscian <- Parawana Twoj wybor? (m - menu) > n Nazwa obiektu> ManipR Podaj nazwe pliku> postura1_rot.dat Wykonano polecenie dla: Manip1_R <- Manipulator (przeguby rotacyjne) Twoj wybor? (m - menu) > k 4

Koniec dzialania programu jk@panamint>_ Przedstawiony przykład należy uznać za obligatoryjny pod względem rodzaju i sposobu wyświetlania informacji. 7 Wymagania i zarys programu zajęć w okresie realizacji zadania Oprócz samego programu należy stworzyć i wygenerować za pomocą programu doxygen dokumentację programu. Powinna ona zawierać diagramy wymagane w ramach przygotowania do zajęć. Diagramy powinny zostać odpowiednio zaktualizowane, aby odzwierciedlały stan faktyczny zaimplementowanego rozwiązania. Oprócz tego pozostają w mocy wszystkie wcześniejsze wymagania dotyczące struktury katalogów, pliku Makefile, modułowej struktury programu, jak też opisów. 7.1 Tydzień 0 Wymagania co do tygodnia 0 zostały opisane w rozdziale 4. 7.2 Tydzień 1 Należy zaimplementować wczytywanie konfiguracji manipulatorów (dwa pierwsze pliki w przykładzie wywołania programu). Na ich podstawie należy utworzyć manipulatory i wyświetlić. W tym przypadku nie jest jeszcze wymagany ich obrót wokół osi OY. Należy skorygować diagram klas z poprzedniego tygodnia, tak aby uwzględniał bieżący stan projektu struktur danych, zarówno w części już zaimplementowanej, tzn. manipulatory, jak też w części przewidzianej do implementacji (tzn. listy prostopadłościanów i parawanów). Należy stworzyć odpowiedni diagram czynności dla operacji wyszukiwania danego obiektu geometrycznego po nazwie spośród manipulatorów, prostopadłościanów oraz parawanów. Diagramy muszą być w wersji elektronicznej w postaci odpowiedniego pliku graficznego. Operacja eksportowania diagramów UML tworzonych za pomocą programu dia została przedstawiona w prezentacji wcześniej już umieszczonej na stronie kursu. Stworzony kod musi być zdokumentowany w systemie doxygen. Aktualne wersje diagramów powinny być włączone do dokumentacji. Opis tworzenia dodatkowych stron dokumentacji i włączania plików graficznych przedstawiony jest w materiałach do wykładu nr 5 na slajdach od 183 do 189. Zapis w konfiguracji generowanej dokumentacji przez doxygen, który pozwala podać ścieżki do plików graficznych przedstawiony jest na slajdzie nr 150. 7.3 Tydzień 2 Należy zaktualizować wcześniej stworzone diagramy klas i diagramy czynności. Ponadto w programie należy stworzyć menu, które będzie pozwało odnaleźć właściwy manipulator po nazwie oraz wczytać dla niego plik zawierający nową posturę. Powinno to spowodować odpowiednie przeliczenie położenia przegubów manipulatorów oraz ich odrysowane. Program musi 5

również zawierać struktury danych tworzących listy manipulatorów oraz parawanów (należy do tego wykorzystać szablon list<>, nie należy tworzyć własnych list). Program powinien ponadto być w stanie wczytać z linii polecenia, oprócz plików konfiguracji manipulatorów, również pliki opisujące przeszkody, zgodnie z przykładem wywołania programu demonstrowanym we wcześniejszym rozdziale. Stworzony kod musi być zdokumentowany w systemie doxygen. Aktualne wersje diagramów powinny być włączone do dokumentacji. 7.4 Tydzień 3 Rozliczenie się z gotowego programu i rozpoczęcie następnego zadania. 8 Materiały pomocnicze W podkatalogu bk/edu/kpo/zad/z7/przyklad znajduje się przykład użycia modułu lacze_do_gnuplota. Uwaga: Jest on inny niż wcześniejsze wersje, gdyż teraz domyślną pionową osią układu współrzędnych jest oś OY. Ponadto zawiera on przykład czytania pliku i rozpoznawania typu manipulatora. Zawiera on również przykład definicji i użycia szablonu Wektor<>. 6