Elementy animacji – sterowanie manipulatorem

background image

Elementy animacji – sterowanie manipulatorem

1

Cel zadania

Wykształcenie umiej˛etno´sci korzystania z szablonów std::vector<> i std::list<>.

2

Opis zadania

Nale˙zy napisa´c program, który umo˙zliwi wyznaczenie konfiguracji (postury) manipulatora. Za-
kładamy, ˙ze manipulator przedstawiony jest schematycznie w postaci łamanej (patrz rysunek
poni˙zej). Ka˙zdy z segmentów łamanej ma symbolizowa´c pojedynczy segment ramienia mani-
pulatora. Tak wi˛ec w ten sposób przedstawione zadanie sprowadza si˛e do wyznaczenia poło˙ze-
nia poszczególnych przegubów manipulatora i jego efektora. Postura manipulatora jest zadana
poprzez warto´sci k ˛

atów q

0

, q

1

, q

2

, . . . mi˛edzy jego kolejnymi segmentami ramienia. Dla uprosz-

czenia, postury manipulatora b˛ed ˛

a rozwa˙zane tylko w jednej płaszczy´znie X OY . Zakłada si˛e,

Rysunek 1: Szkielet manipulatora i zaznaczonymi k ˛

atami pozwalaj ˛

acymi sterowanie nachyle-

niem poszczególnych segmentów manipulatora.

˙ze ilo´s´c segmentów ramienia nie jest ograniczona (w uproszczonej wersji zadania – słabiej oce-

nianej – mo˙zna przyj ˛

a´c, ˙ze liczba ta jest stała i wynosi 3). Ponadto przyjmuje si˛e, ˙ze długo´s´c

wszystkich segmentów jest jednakowa. Warto´s´c parametru okre´slaj ˛

acego długo´s´c mo˙ze by´c

zmieniana w trakcie działania programu. Wyznaczone współrz˛edne maj ˛

a by´c zapisane do pliku

o ustalonej nazwie manipulator.dat.

3

Format zapisu współrz˛ednych

Przyjmuje si˛e, ˙ze współrz˛edne kolejnych przegubów zapisywane s ˛

a w pliku tekstowym. Ka˙zda

para współrz˛ednych zapisana zostaje w osobnej linii. W pierwszej linii zapisane s ˛

a zawsze

współrz˛edne pocz ˛

atku układu współrz˛ednych. Przykładowa posta´c pliku ze współrz˛ednymi

przedstawiona jest poni˙zej.

0

0

-2.4

10.23

7.3

20.14

15.1

16.23

18.21

23.19

1

background image

4

Wizualizacja

Chc ˛

ac zobaczy´c, postur˛e manipulatora w ´srodowisku systemu Unix/Linux mo˙zna skorzysta´c z

programu gnuplot (znajduje si˛e on w ka˙zdej dystrybucji Linuksa). Program ten jest dost˛epny
równie˙z dla systemu MS Windows. Adres strony umo˙zliwiaj ˛

acej pobranie programu to:

http://sourceforge.net/project/showfiles.php?group_id=2055

4.1

Wersja uproszczona

W tej wersji zadania mo˙zna ograniczy´c si˛e do r˛ecznego uruchamiania programu gnuplot po
ka˙zdorazowym przeliczeniu współrz˛ednych przegubów. Program gnuplot uruchamiamy w
osobnym okienku terminala graficznego po wcze´sniejszym przej´sciu do podkatalogu, w którym
znajduje si˛e plik manipulator.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´sni˛ecie przycisków Ctrl-C, gdy focus
znajduje si˛e w okienku, w którym on został uruchomiony.

4.1.2

Uruchomienie rysowania z w trybie interakcjnym

Z programem gnuplot mo˙zna pracowa´c w trybie interakcyjny. Uruchamiamy go poleceniem
gnuplot

, nast˛epnie wydajemy polecenie plot ’manipulator.dat’. Wyj´scie z programu po-

przez polecenie exit.
Uwaga: W przypadku pracy w trybie interakcyjnym nie ma sensu ko´nczy´c jego działanie po jed-
nokrotnym narysowaniu łamanej. Po ponownym przeliczeniu współrz˛ednych mo˙zna powtórzy´c
polecenie plot ’manipulator.dat’ (program gnuplot pami˛eta histori˛e polece´n, przej´scie
do poprzedniego polecenia dokonuje si˛e poprzez naci´sni˛ecie strzałki w gór˛e), które spowoduje
zaktualizowanie poprzedniego rysunku. Przykład sesji z programem gnuplot.

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> _

2

background image

4.2

Wersja podstawowa

W tej wersji proponuje si˛e u˙zycie zewn˛etrznego modułu lacze_do_gnuplota. Znajduje si˛e
on kartotece ˜bk/edu/po/zad/z-manipulator1/przyklad_2D wraz z przykładem jego wy-
korzystania. Wspomniany moduł pozwala uruchomi´c program gnuplot z poziomu własnego
programu i przesła´c do niego polecenie wykonania rysunku. Ponadto umo˙zliwia na ustalenie
zakresu osi współrz˛ednych 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

3

background image

Twoj wybor?> k

jkowalsk@panamint: rozwiazanie> _

6

Rozszerzenie (nieobowi ˛

azkowe)

W wersji rozszerzonej proponuje si˛e dodatkowe elementy:

• Animacj˛e 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˙zna tego dokona´c wykorzy-

stuj ˛

ac moduł lacze_do_gnuplota. Przykład jego u˙zycia dla wersji 3D jest umieszczony

w kartotece

˜bk/edu/po/zad/z-manipulator1/przyklad_3D

Wspomniany moduł pozwala uruchomi´c program gnuplot z poziomu programu i prze-
sła´c do niego polecenie wykonania rysunku. W tej wersji programu zakłada si˛e, ˙ze kon-
strukcja manipulatora jest w programie zaszyta na sztywno (bez mo˙zliwo´sci zmiany ilo´sci
segmentów i ich długo´sci). Przykład wizualizacji manipulatora znajduje si˛e na zamiesz-

Rysunek 2: Przykład wizualizacji manipulatora zrealizowany w ramach studenckich zaj˛e´c la-
boratoryjnych

czonym rysunku.

7

Obliczanie współrz˛ednych przegubów

Wyznaczanie współrz˛ednych przegubów i efektora najłatwiej jest zrealizowa´c ł ˛

acz ˛

ac z ka˙zdym

z przegubów i efektorem lokalny układ współrz˛ednych. Przeguby znajduj ˛

a si˛e w pocz ˛

atku ta-

kich układów współrz˛ednych. Dzi˛eki temu i-ty przegub (oznaczony jako punkt P

i

) w swoim

lokalnym układzie współrz˛ednych X

i

OY

i

ma współrz˛edne P

i

i

= (0, 0). Zastosowane oznacze-

nie P

i

i

odzwierciedla fakt, ˙ze s ˛

a to współrz˛edne punktu P

i

w układzie współrz˛ednych i-tego

przegubu. To samo dotyczy efektora.

Naszym zadaniem jest wyliczenie współrz˛ednych poszczególnych punktów w układzie glo-

balnym X

O

OY

O

. W przedstawionym przykładzie mo˙zna to zrealizowa´c dokonuj ˛

ac nast˛epuj ˛

a-

4

background image

Rysunek 3: Lokalne układy współrz˛ednych zwi ˛

azane z ka˙zdym z przegubów.

cych transformacji:

P

0

0

= [0 0]

T

,

P

1

0

= R(q

0

) · (P

1

1

+ T ),

P

2

0

= R(q

0

) ·

³

R

(q

1

) · (P

2

2

+ T ) + T

´

,

P

3

0

= R(q

0

) ·

³

R

(q

1

) ·

³

R

(q

2

) · (P

3

3

+ T ) + T

´

+ T

´

.

(1)

Współrz˛edne punktu we wzorze przedstawionym powy˙zej reprezentowane s ˛

a jako macierz jed-

nokolumnowa. Natomiast T to wektor translacji reprezentowany przez macierz jednokolum-
now ˛

a [l 0]

T

, gdzie l jest długo´sci ˛

a segmentu. R(q

i

) jest macierz ˛

a rotacji w współczynnikach

postaci:

R

(q

i

) =

· cos q

i

− sin q

i

sin q

i

cos q

i

¸

(2)

Nale˙zy zauwa˙zy´c, ˙ze wyliczanie współrz˛ednych przegubu np. P

2

jest ci ˛

agiem transformacji

do układów współrz˛ednych kolejnych przegubów reprezentowanych przez punkty P

1

i P

0

. Po-

dobnie dla P

3

jest to ci ˛

ag transformacji do układów współrz˛ednych zwi ˛

azanych z przegubami

reprezentowanych przez punkty P

2

, P

1

oraz P

0

. Tak wi˛ec wyliczenie współrz˛ednych przegubu

P

3

mo˙zna byłoby rozpisa´c nast˛epuj ˛

aco:

P

3

2

= R(q

2

) · (P

3

3

+ T ),

P

3

1

= R(q

1

) · (P

3

2

+ T ),

P

3

0

= R(q

0

) · (P

3

1

+ T ).

(3)

To spostrze˙zenie nale˙zy wykorzysta´c przy implementacji rozwi ˛

azania zadania.

8

Materiały pomocnicze

Dodatkowe pomocnicze elementy ułatwiaj ˛

ace rozpocz˛ecie realizacj˛e zadania znale´z´c mo˙zna na

serwerze diablo lub panamint w katalogu ˜bk/edu/po/zad/z-manipulator1. W katalogu
tym znajduj ˛

a si˛e nast˛epuj ˛

ace podkatalogi i pliki:

˜bk/edu/po/zad/z-manipulator1/.

bin.diablo/manipulator

bin.panamint/manipulator

przyklad_2D/Makefile

5

background image

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 ˛

a to programy binarne. Stanowi ˛

a one

przykład realizacji programu, w wersji podstawowej (z dodatkiem animacji), który został skom-
pilowany odpowiednio na serwerze diablo i na serwerze panamint.

przyklad_2D

Katalog zawiera przykład u˙zycia modułu lacze_do_gnuplota pozwalaj ˛

acego

uruchomi´c program gnuplot z poziomu własnego programu i nawi ˛

aza´c z nim komunikacj˛e. W

przykładzie pokazane jest rysowanie z wykorzystaniem grafiki 2D.

przyklad_3D

Katalog zawiera przykład u˙zycia modułu lacze_do_gnuplota pozwalaj ˛

acego

uruchomi´c program gnuplot z poziomu własnego programu i nawi ˛

aza´c z nim komunikacj˛e. W

przykładzie pokazane jest rysowanie z wykorzystaniem grafiki 3D.

6


Wyszukiwarka

Podobne podstrony:
Elementy animacji – sterowanie manipulatorem
Sterowanie manipulatorem w obecno´ sci przeszkód
Projekt 2 - 3dof, Automatyka i Robotyka studia, 3 rok, ELEMENTY I UKŁADY STEROWANIA ROBOTÓW, projekt
Projekt 1 - 3dof, Automatyka i Robotyka studia, 3 rok, ELEMENTY I UKŁADY STEROWANIA ROBOTÓW, projekt
Elementy systemów sterowania maszyn zwiazane z bezpieczenstwem
sprawko robotyka, Automatyka i Robotyka studia, 3 rok, ELEMENTY I UKŁADY STEROWANIA ROBOTÓW, projekt
Projekt3, Automatyka i Robotyka studia, 3 rok, ELEMENTY I UKŁADY STEROWANIA ROBOTÓW, projekt góra, R
projekt1hubert, Automatyka i Robotyka studia, 3 rok, ELEMENTY I UKŁADY STEROWANIA ROBOTÓW, projekt g
projekt 1 hubert, Automatyka i Robotyka studia, 3 rok, ELEMENTY I UKŁADY STEROWANIA ROBOTÓW, projekt
Charakterystyka dynamiczna wybranego elementu ukladu sterowania, Inż + seminarium
1c algorytmy sterowania manipulatorów
Elementy informacyjne i sterownicze
Dobór parametrów oraz elementów układu sterowania pieca
praca dyplomowa sterowanie ruchem manipulatora 34B5NKP667NNVLV4KF3B37RICEOPWVJMZUAHENI

więcej podobnych podstron