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

Podobne dokumenty