Symulator łazika „Spirit”
Transkrypt
Symulator łazika „Spirit”
Symulator łazika „Spirit” Krystian Turczyn Nr albumu: 149168, rok: IV, ARR, W-4 17 czerwca 2009 1 Opis rozwiązywanego problemu Stworzony został symulator marsjańskiego łazika „Spirit”. Program wyświetla sylwetkę łazika poruszającego się po płaskim terenie. Użytkownik może oglądać obraz z sześciu kamer, w które robot jest wyposażony. Dodatkowo zaimplementowana została symulacja mikroskopu łazika w postaci manipulatora z efektorem — kamerą. Użytkownik ma możliwość przemieszczania robota oraz sterowania głowicą i wysięgnikiem z mikroskopem. Aplikacja stworzona została z wykorzystaniem bibliotek: Qt (http:// www.qtsoftware.com/), libQGLViewer (http://www.libqglviewer.com/) i OpenGL (http://www.opengl.org/). 2 Wyniki pracy Udało się zrealizować: • konstrukcję szkieletu łazika i jego kinematykę, • animację ruchu łazika, masztu z kamerami oraz manipulatora, • interfejs użytkownika. Zrezygnowano z budowania sylwetki łazika oraz z konstruowania sceny. Podjęto taką decyzję z uwagi na dużą ilość czasu potrzebną na opanowanie takich umiejętności. Utworzono tylko wycinek płaszczyzny, na którym położono teksturę imitującą spękany grunt. 1 Rysunek 1: Wygląd aplikacji tuż po uruchomieniu 3 Opis funkcjonalności programu Program umożliwia symulowanie działania robota o konfiguracji takiej, jak robot „Spirit” poruszającego się po płaskiej powierzchni. Możliwe jest: • zadanie parametrów łuku, po którym przemieszczać ma się robot, • sterowanie poszczególnymi przegubami wysięgnika. 4 Interfejs graficzny Widok interfejsu przedstawia rysunek 1. 5 Diagram klas w języku UML Rysunek 2 przedstawia uproszczony diagram klas (bez klas modelujących macierz, wektor, itp.), które zostały zaimplementowane. 6 Zarys sposobu działania programu 1. Użytkownik zadaje wybrane parametry ruchu. 2 Rysunek 2: Diagram zaimplementowanych klas 2. Parametry te są przekazywane do metody implementującej animację danego elementu robota. 3. Uruchomiona zostaje animacja. 4. Następnie co określony interwał czasowy (tutaj 40ms) przeliczana zostaje nowa pozycja i orientacja robota, jego wszystkich części składowych oraz kamer. Po skończeniu obliczeń dla jednej klatki wysyłany jest sygnał o odświeżeniu danych. 5. Klasa modelująca reaguje na ww. sygnał odświeżając widoki. Koniec animacji jest również sygnalizowany. Pozwala to na wygodne zablokowanie części interfejsu na czas animacji. 7 Podsumowanie Główna i najtrudniejsza część projektu została zrealizowana. Powstała aplikacja, za pomocą której można zobaczyć, jak porusza się robot o konfiguracji podobnej do konfiguracji robota „Spirit” oraz obserwować widoki z jego kamer. 3