Elementy animacji – sterowanie manipulatorem


Elementy animacji  sterowanie manipulatorem
1 Cel zadania
Wykształcenie umiejętności korzystania z szablonów std::vector<> i std::list<>.
2 Opis zadania
Należy napisać program, który umożliwi wyznaczenie konfiguracji (postury) manipulatora. Za-
kładamy, że manipulator przedstawiony jest schematycznie w postaci łamanej (patrz rysunek
poniżej). Każdy z segmentów łamanej ma symbolizować pojedynczy segment ramienia mani-
pulatora. Tak więc w ten sposób przedstawione zadanie sprowadza się do wyznaczenia położe-
nia poszczególnych przegubów manipulatora i jego efektora. Postura manipulatora jest zadana
poprzez wartości kątów q0, q1, q2, ... między jego kolejnymi segmentami ramienia. Dla uprosz-
czenia, postury manipulatora będą rozważane tylko w jednej płaszczyznie XOY . Zakłada się,
Rysunek 1: Szkielet manipulatora i zaznaczonymi kÄ…tami pozwalajÄ…cymi sterowanie nachyle-
niem poszczególnych segmentów manipulatora.
że ilość segmentów ramienia nie jest ograniczona (w uproszczonej wersji zadania  słabiej oce-
nianej  można przyjąć, że liczba ta jest stała i wynosi 3). Ponadto przyjmuje się, że długość
wszystkich segmentów jest jednakowa. Wartość parametru określającego długość może być
zmieniana w trakcie działania programu. Wyznaczone współrzędne mają być zapisane do pliku
o ustalonej nazwiemanipulator.dat.
3 Format zapisu współrzędnych
Przyjmuje się, że współrzędne kolejnych przegubów zapisywane są w pliku tekstowym. Każda
para współrzędnych zapisana zostaje w osobnej linii. W pierwszej linii zapisane są zawsze
współrzędne początku układu współrzędnych. Przykładowa postać pliku ze współrzędnymi
przedstawiona jest poniżej.
0 0
-2.4 10.23
7.3 20.14
15.1 16.23
18.21 23.19
4 Wizualizacja
Chcąc zobaczyć, posturę manipulatora w środowisku systemu Unix/Linux można skorzystać z
programugnuplot(znajduje się on w każdej dystrybucji Linuksa). Program ten jest dostępny
również dla systemu MS Windows. Adres strony umożliwiającej pobranie programu to:
http://sourceforge.net/project/showfiles.php?group_id=2055
4.1 Wersja uproszczona
W tej wersji zadania można ograniczyć się do ręcznego uruchamiania programugnuplotpo
każdorazowym przeliczeniu współrzędnych przegubów. Programgnuploturuchamiamy w
osobnym okienku terminala graficznego po wcześniejszym przejściu do podkatalogu, w którym
znajduje siÄ™ plikmanipulator.dat.
4.1.1 Uruchomienie rysowania z linii polecenia
Przykładowy sposób uruchomienia programu:
echo "plot  manipulator.dat ; pause 999" | gnuplot
Przerwanie działania programu realizujemy poprzez naciśnięcie przyciskówCtrl-C, gdy focus
znajduje się w okienku, w którym on został uruchomiony.
4.1.2 Uruchomienie rysowania z w trybie interakcjnym
Z programemgnuplotmożna pracować w trybie interakcyjny. Uruchamiamy go poleceniem
gnuplot, następnie wydajemy polecenieplot  manipulator.dat . Wyjście z programu po-
przez polecenieexit.
Uwaga: W przypadku pracy w trybie interakcyjnym nie ma sensu kończyć jego działanie po jed-
nokrotnym narysowaniu łamanej. Po ponownym przeliczeniu współrzędnych można powtórzyć
polecenieplot  manipulator.dat (programgnuplotpamięta historię poleceń, przejście
do poprzedniego polecenia dokonuje się poprzez naciśnięcie strzałki w górę), które spowoduje
zaktualizowanie poprzedniego rysunku. Przykład sesji z programemgnuplot.
diablo@jkowalsk> gnuplot
G N U P L O T
Version 4.0 patchlevel 0
last modified Thu Apr 15 14:44:22 CEST 2004
System: SunOS 5.10
...
gnuplot> plot  manipulator.dat
gnuplot> plot  manipulator.dat
...
gnuplot> plot  manipulator.dat
gnuplot> exit
diablo@jkowalsk> _
4.2 Wersja podstawowa
W tej wersji proponuje się użycie zewnętrznego modułulacze_do_gnuplota. Znajduje się
on kartoteceÜbk/edu/po/zad/z-manipulator1/przyklad_2Dwraz z przykÅ‚adem jego wy-
korzystania. Wspomniany moduł pozwala uruchomić programgnuplotz poziomu własnego
programu i przesłać do niego polecenie wykonania rysunku. Ponadto umożliwia na ustalenie
zakresu osi współrzędnych OX i OY .
5 Przykład działania programu
Niniejszy przykład nie obejmuje widoku okienka z rysunkiem wygenerowanym przez program
gnuplot.
jkowalsk@panamint: rozwiazanie> ./manipulator
Aktualne wspolrzedne i parametry:
q0 = 105 Przegub_0: (0, 0)
q1 = -70 Przegub_1: (-2.59, 9.66)
q2 = -60 Przegub_2: (5.6, 15.4)
Efektor: (14.7, 11.2)
l = 10
Menu:
0 - Zmiana kata q0
1 - Zmiana kata q1
2 - Zmiana kata q2
z - zmiana ilosc segmentow
l - zmiana dlugosci segmentu
? - ponowne wyswietlenie menu
k - koniec programu
Twoj wybor?> 0
Wprowadz q0: 82
Aktualne wspolrzedne i parametry:
q0 = 82 Przegub_0: (0, 0)
q1 = -70 Przegub_1: (1.39, 9.9)
q2 = -60 Przegub_2: (11.2, 12)
Efektor: (17.9, 4.55)
l = 10
Menu:
0 - Zmiana kata q0
1 - Zmiana kata q1
2 - Zmiana kata q2
z - zmiana ilosc segmentow
l - zmiana dlugosci segmentu
? - ponowne wyswietlenie menu
k - koniec programu
Twoj wybor?> k
jkowalsk@panamint: rozwiazanie> _
6 Rozszerzenie (nieobowiÄ…zkowe)
W wersji rozszerzonej proponuje siÄ™ dodatkowe elementy:
" Animację zmiany pozycji danego segmentu. Chodzi o zapewnienie płynnej zmiany po-
zycji segmentu (tak jak to jest zrealizowane w dostarczonym przykładzie).
" Skonstruowanie trójwymiarowego rysunku manipulatora. Można tego dokonać wykorzy-
stując modułlacze_do_gnuplota. Przykład jego użycia dla wersji 3D jest umieszczony
w kartotece
Übk/edu/po/zad/z-manipulator1/przyklad_3D
Wspomniany moduł pozwala uruchomić programgnuplotz poziomu programu i prze-
słać do niego polecenie wykonania rysunku. W tej wersji programu zakłada się, że kon-
strukcja manipulatora jest w programie zaszyta na sztywno (bez możliwości zmiany ilości
segmentów i ich długości). Przykład wizualizacji manipulatora znajduje się na zamiesz-
Rysunek 2: Przykład wizualizacji manipulatora zrealizowany w ramach studenckich zajęć la-
boratoryjnych
czonym rysunku.
7 Obliczanie współrzędnych przegubów
Wyznaczanie współrzędnych przegubów i efektora najłatwiej jest zrealizować łącząc z każdym
z przegubów i efektorem lokalny układ współrzędnych. Przeguby znajdują się w początku ta-
kich układów współrzędnych. Dzięki temu i-ty przegub (oznaczony jako punkt Pi) w swoim
lokalnym układzie współrzędnych XiOYi ma współrzędne Pii = (0,0). Zastosowane oznacze-
nie Pii odzwierciedla fakt, że są to współrzędne punktu Pi w układzie współrzędnych i-tego
przegubu. To samo dotyczy efektora.
Naszym zadaniem jest wyliczenie współrzędnych poszczególnych punktów w układzie glo-
balnym XOOYO. W przedstawionym przykładzie można to zrealizować dokonując następują-
Rysunek 3: Lokalne układy współrzędnych związane z każdym z przegubów.
cych transformacji:
P00 = [0 0]T ,
P10 = R(q0) · (P11 + T ),

P20 = R(q0) · R(q1) · (P22 + T ) + T , (1)

P30 = R(q0) · R(q1) · R(q2) · (P33 + T ) + T + T .
Współrzędne punktu we wzorze przedstawionym powyżej reprezentowane są jako macierz jed-
nokolumnowa. Natomiast T to wektor translacji reprezentowany przez macierz jednokolum-
nową [l 0]T , gdzie l jest długością segmentu. R(qi) jest macierzą rotacji w współczynnikach
postaci:

cosqi -sinqi
R(qi) = (2)
sinqi cosqi
Należy zauważyć, że wyliczanie współrzędnych przegubu np. P2 jest ciągiem transformacji
do układów współrzędnych kolejnych przegubów reprezentowanych przez punkty P1 i P0. Po-
dobnie dla P3 jest to ciąg transformacji do układów współrzędnych związanych z przegubami
reprezentowanych przez punkty P2, P1 oraz P0. Tak więc wyliczenie współrzędnych przegubu
P3 można byłoby rozpisać następująco:
P32 = R(q2) · (P33 + T ),
P31 = R(q1) · (P32 + T ), (3)
P30 = R(q0) · (P31 + T ).
To spostrzeżenie należy wykorzystać przy implementacji rozwiązania zadania.
8 Materiały pomocnicze
Dodatkowe pomocnicze elementy ułatwiające rozpoczęcie realizację zadania znalezć można na
serwerzediablolubpanamintw kataloguÜbk/edu/po/zad/z-manipulator1. W katalogu
tym znajdują się następujące podkatalogi i pliki:
Übk/edu/po/zad/z-manipulator1/.
bin.diablo/manipulator
bin.panamint/manipulator
przyklad_2D/Makefile
przyklad_2D/src/start.cpp
przyklad_2D/src/lacze_do_gnuplota.cpp
przyklad_2D/inc/lacze_do_gnuplota.hh
przyklad_3D/Makefile
przyklad_3D/src/start.cpp
przyklad_3D/src/lacze_do_gnuplota.cpp
przyklad_3D/inc/lacze_do_gnuplota.hh
przyklad_3D/inc/prostopadloscian1.dat
przyklad_3D/inc/prostopadloscian2.dat
przyklad_3D/inc/prostopadloscian3.dat
bin.diablo/manipulator, bin.panamint/manipulator SÄ… to programy binarne. StanowiÄ… one
przykład realizacji programu, w wersji podstawowej (z dodatkiem animacji), który został skom-
pilowany odpowiednio na serwerzediabloi na serwerzepanamint.
przyklad_2D Katalog zawiera przykład użycia modułulacze_do_gnuplotapozwalającego
uruchomić programgnuplotz poziomu własnego programu i nawiązać z nim komunikację. W
przykładzie pokazane jest rysowanie z wykorzystaniem grafiki 2D.
przyklad_3D Katalog zawiera przykład użycia modułulacze_do_gnuplotapozwalającego
uruchomić programgnuplotz poziomu własnego programu i nawiązać z nim komunikację. W
przykładzie pokazane jest rysowanie z wykorzystaniem grafiki 3D.


Wyszukiwarka

Podobne podstrony:
Sterowanie manipulatora Scorbot er 4u
Sterowanie manipulatorem w obecno´ sci przeszkód
Elementy systemów sterowania związane z bezpieczeństwem
Sterowanie manipulatorów
1c algorytmy sterowania manipulatorów
24?danie i naprawa elektronicznych elementów sterowania
Oznakowania elementów sterowniczych
DEMONTAÅ» MONTAÅ» ELEMENTY STEROWNICZE POD KIEROWNICÄ„
Stosowanie elementów sterowania i zabezpieczeń w urządzeniach precyzyjnych
option extended valid elements
manipulacje GWna
Christmas elementary
elements
identify?sign elements?84AB82
Elementy wymagan organizacyjne
automatyka i sterowanie wyklad

więcej podobnych podstron