• Nie Znaleziono Wyników

R4-Robotyka-Opisy przestrzenne i przekształcenia

N/A
N/A
Protected

Academic year: 2021

Share "R4-Robotyka-Opisy przestrzenne i przekształcenia"

Copied!
8
0
0

Pełen tekst

(1)

1

OPISY PRZESTRZENNE I PRZEKSZTAŁCENIA

Wprowadzenie

W robotyce przez pojęcie manipulacji rozumiemy przemieszczanie w przestrzeni przedmiotów i narzędzi za pomocą specjalnego mechanizmu. W związku z tym pojawia się potrzeba opisu pozycji i orientacji przedmiotów, narzędzi, a także samego mechanizmu. W celu umożliwienia określenia i przekształcenia wielkości matematycznych, opisujących pozycję i orientację, musimy zdefiniować układy wsp6łrzędnych oraz opracować zasady ich opisu. Wiele przedstawionych rozwiązań w związku z opisem pozycji i orientacji, będzie stanowiło bazę dla późniejszych rozważań dotyczących prędkości liniowych i kątowych, jak również sił i momentów sil.

Przyjmujemy zasadę, że gdzieś w przestrzeni jest umieszczony globalny układ współrzędnych, względem którego będziemy mogli określać wszystkie rozpatrywane przez nas wielkości. Opiszemy wszystkie pozycje i orientacje względem globalnego układu osi współrzędnych lub względem innych układów współrzędnych kartezjańskich, których położenie jest (lub może być) określone względem układu globalnego.

W celu umożliwienia opisu właściwości różnych obiektów którymi operuje układ manipulacyjny, wprowadza się odpowiedni formalizm zapisu. Wyżej wymienionymi obiektami mogą. być przedmioty, narzędzia, a nawet sam manipulator.

Rozpatrujemy sposoby opisu pozycji, orientacji oraz bloków opisujących równocześnie pozycję i orientację.

Opis pozycji

Jeśli dany jest układ współrzędnych, to położenie dowolnego punktu w przestrzeni możemy określić za pomocą wektora pozycji (3x1). Ze względu na to, że obok globalnego układu współrzędnych będziemy często wprowadzać dodatkowo inne układy współrzędnych, wektory muszą zawierać również informację identyfikującą układ współrzędnych, w którym zostały określone.

Oznaczenia wektorów są poprzedzane górnym indeksem wskazującym układ współrzędnych, w którym zostały zdefiniowane (nawet wtedy, gdy wynika to w sposób oczywisty z kontekstu), np. A oznacza, że wartości liczbowe składowych wektora A odpowiadają współrzędnym wzdłuż osi układu (A). Wartości współrzędnych wzdłuż kolejnych osi odpowiadają miarom rzutów wektora na odnośną oś. 𝐴𝑝= [ 𝑝𝑥 𝑝𝑦 𝑝𝑧 ]

Na rysunku przedstawiono układ współrzędnych {A}. który tworzą trzy wzajemnie prostopadłe wektory jednostkowe (wersory), o ustalonych kierunkach. Punkt odpowiadający pozycji w przestrzeni, określa się za pomocą wektora lub prościej za pomocą uporządkowanej trójki liczb.

(2)

2

Poszczególne składowe wektora oznacza się odpowiednio indeksem x, y lub z, umieszczonym poniżej oznaczenia punktu (pozycji).

Położenie punktu w przestrzeni będziemy opisywać za pomocą wektora pozycji. Możliwy jest inny opis położeń punktów w przestrzeni trójwymiarowej, np. w układzie współrzędnych sferycznych lub cylindrycznych.

Opis orientacji

Często występuje konieczność nie tylko określenia pozycji punktu w przestrzeni, lecz również opisania orientacji ciała w przestrzeni. Na przykład, mimo że wektor Ap na rysunku wskazuje położenie punktu równo odległego od końcówek chwytaka manipulatora, to usytuowanie chwytaka pozostanie nadal nieokreślone, dopóki nie ustali się jego orientacji. Przyjmując, że manipulator ma wystarczającą liczbę połączeń ruchowych (jaka jest liczba wymagana dowiemy się kiedy indziej), chwytak mógłby być zorientowany dowolnie przy zachowaniu stałej pozycji w przestrzeni punktu leżącego między końcówkami chwytaka. W celu opisania orientacji ciała zwiążemy z nim układ współrzędnych, a następnie opiszemy położenie tego układu współrzędnych względem układu odniesienia.

Na rysunku z ciałem związano układ współrzędnych {B}. Opis położenia układu {B} względem {A} jest wystarczający do określenia orientacji ciała.

Zatem, pozycje punktów są, opisane przez wektory, a orientacje ciał przez związane z nimi układy współrzędnych. Jeden ze sposobów opisania układu {B}, związanego z ciałem, polega na zapisie wersorów jego trzech osi głównych1 w układzie {A}.

(2.2) Wersory opisujemy stosując oznaczenia głównych kierunków układu współrzędnych {B} w postaci

. Jeżeli zostaną one opisane w układzie współrzędnych {A}, wtedy zapis przyjmie postać . Wygodne jest równoczesne operowanie na trzech wersorach zestawionych

1 Często jest wygodne operowanie trzema wersorami, mimo że wystarczyłoby operowanie dowolną parą wersorów, ponieważ trzeci można zawsze uzyskać z iloczynu wektorowego dwóch danych.

(3)

3

w kolumnach macierzy 3x3 w kolejności: . Takie zestawienie będziemy nazywać

macierzą obrotu, a ponieważ ta szczególna macierz obrotu opisuje orientację układu {B} względem

{A}, będziemy ją zapisywać w postaci A

BR. (Wybór dolnych i górnych indeksów w zapisie macierzy

obrotu zostanie wyjaśniony kiedy indziej.)

Podsumowując, orientację opisujemy za pomocą zbioru trzech wektorów. Dla wygody, będziemy tworzyć macierz 3x3, której kolumny będą odpowiadały tym trzem wektorom. Zatem, jeżeli położenie punktu jest określone za pomocą wektora, to orientację ciała opisujemy za pomocą macierzy.

(Później omówimy inne sposoby zapisu orientacji, wymagające podania tylko trzech parametrów.) Każdy ze skalarów rij w macierzy możemy zastąpić wyrażeniem, jeśli zauważymy, że składowe

każdego wektora odpowiadają rzutom tego wektora na kierunki osi jego układu odniesienia. A zatem, każdy składnik macierzy obrotu w tej macierzy (2.2) może być zapisany w postaci iloczynu skalarnego

pary wersorów (2.3)

Dla zwięzłości pominęliśmy poprzedzające indeksy górne w prawej skrajnej macierzy w równaniu (2.3). W rzeczywistości wybór układu, w którym opisywane są wersory, może być dowolny, jednak pod warunkiem, że będzie on taki sam dla każdej pary wektorów mnożonych skalarnie. Ze względu na to, że iloczyn skalarny dwóch wersorów jest równy kosinusowi kąta między nimi, to elementy macierzy obrotu nazywane są często kosinusami kierunkowymi.

Z głębszej analizy (2.3) wynika, że wiersze macierzy A

BR są wersorami układu {A} wyrażonymi w

układzie {B}; a zatem (2.4)

Stąd macierz opisująca orientację układu (A) względem (B), otrzymuje się w wyniku transponowania

(2.3), to znaczy (2.5)

Można stąd wnioskować, że odwrotna macierz obrotu jest równa jej macierzy transponowanej, co

można łatwo sprawdzić jak poniżej (2.6)

(4)

4

Z algebry liniowej [1] wiemy, że odwrócenie macierzy z kolumnami ortonormalnymi jest równoważne z jej transponowaniem. Powyżej wykazaliśmy to na drodze geometrycznej 

Opis lokalnego układu współrzędnych

W celu jednoznacznego określenia położenia chwytaka manipulatora, jak np. na rys. 2.2, trzeba dysponować informacją o jego pozycji i orientacji. Punkt ciała, którego pozycję będziemy opisywać, może być wybrany dowolnie, jednak dla ułatwienia, wybrano punkt w początku lokalnego układu współrzędnych, związanego z ciałem. Równoczesny opis pozycji I orientacji występuje w robotyce bardzo często, dlatego też zdefiniujemy pojęcie bloku, będącego zbiorem czterech wektorów, zapisanych w postaci macierzy położenia, informującej o pozycji I orientacji układu. Na przykład na rys. 2.2 jeden wektor określa pozycję skrajnego punktu na osi symetrii końcówek chwytaka, a trzy pozostałe opisują jego orientację. Równoważnie, opis układu może być utożsamiany z wektorem pozycji i macierzą obrotu. Zauważmy, że macierz położenia opisuje lokalny układ współrzędnych, przy czym obok orientacji układu należy podać wektor pozycji, określający pozycję początku tego układu współrzędnych względem pewnego innego zewnętrznego układu współrzędnych.

Na przykład lokalny układ współrzędnych {B} jest opisany przez macierz obrotu oraz wektor , określający pozycję początku układu (B)

(2.3) (2.8

Na rysunku (2.3) przedstawiono trzy lokalne układy współrzędnych wraz z globalnym układem współrzędnych. Położenia układów {A} i {B} są określone względem globalnego układu współrzędnych, natomiast położenie układu {C} określono względem układu {A}.

Na tym rysunku (2.3) pokazano graficzną reprezentację układów, którą będziemy posługiwać się przy ich wizualizacji. Układ reprezentują trzy strzałki, będące wersorami, określającymi główne osie lokalnego układu współrzędnych.

Pogrubiona strzałka, łączącą początki układów współrzędnych, oznaczono wektor określający pozycję punktu początku układu współrzędnych, wskazanego strzałką, względem układu, z którego wyprowadzono strzałkę. Zwrot tej strzałki informuje nas, jak np. na rys. 2.3, że położenie układu {C} jest określone względem {A}, a nie odwrotnie.

Reasumując, macierz położenia można stosować do opisu Jednego układu współrzędnych względem drugiego. W tej macierzy zawarte są informacje zarówno o pozycji, jak i orientacji, dlatego będziemy

(5)

5

się nią posługiwać W przypadku równoczesnego operowania tymi dwoma pojęciami. Pozycję można opisać za pomocą macierzy położenia, której część dotycząca obrotu Jest macierzą jednostkowa, a część będąca wektorem pozycji lokalizuje opisywany punkt. Podobnie orientację można przedstawić za pomocą macierzy, której ostatnia kolumna, będąca wektorem położenia, byłaby wektorem zerowym.

W większości zadań robotyki zachodzi potrzeba wyrażania tej samej wielkości w różnych układach współrzędnych odniesienia. Poprzednio pokazaliśmy, jak opisuje się pozycję, orientację oraz macierz położenia, obecnie rozpatrzymy podstawy matematyczne odwzorowań, dzięki którym poznamy, jak opis zmienia się przy przechodzeniu z jednego układu współrzędnych do drugiego.

Odwzorowania przesunięć układów współrzędnych

Na rys. 2.4 wybraną pozycję określa wektor Bp. Nasze zadanie polega na opisaniu pozycji tego punktu w przestrzeni w układzie (A), przy czym (A) ma tę samą orientację co i (B). W tym przypadku układ (B) jest tylko przesunięty względem (A). Przesunięcie to jest dane wektorem , określającym pozycję punktu początku układu (B) względem (A).

Ze względu na to, że oba wektory są określone względem układów o tej samej orientacji, wektor Ap

pozycji punktu P względem (A) wyznacza suma wektorów (2.9)

Zauważmy, że tylko w szczególnych przypadkach równoważnych orientacji możemy dodawać wektory, określone względem różnych układów.

(2.4)

Na tym prostym przykładzie zilustrowano odwzorowanie w jednym układzie wektora opisanego w innym układzie. Odwzorowania lub zmiany opisu przy przejściu z jednego układu do drugiego są szczególnie ważne. Wielkość jako taka (w naszym przypadku punkt w przestrzeni) nie zmieniała się, natomiast zmieniał się jej opis. Zilustrowano to na rys.2.4 gdzie punkt opisany wektorem Bp nie został przesunięty, lecz pozostał w tym samym miejscu, natomiast znaleźliśmy nowy opis tego samego punktu, tym razem względem układu (A). Wektor określa to odwzorowanie, ponieważ wszystkie informacje, niezbędne do wykonania zmiany opisu, są zawarte w tym wektorze (dotyczy to oczywiście przypadku identycznych orientacji układów).

(6)

6

Odwzorowanie obrotów układów współrzędnych

Wcześniej wprowadzono opis orientacji za pomocą trzech wersorów, wyznaczających główne osie układu współrzędnych związanego z ciałem. Dla ułatwienia grupujemy te trzy wersory i przedstawiamy w postaci kolumn macierzy 3x3. Macierz tę będziemy nazywać macierzą obrotu i Jeśli ta szczególna macierz obrotu będzie opisywać układ (B) względem układu (A), to zapiszemy ją w postaci .

Zauważmy, że zgodnie z naszą definicją, wszystkie kolumny macierzy obrotu mają wartość jednostkową, a ponadto wersory te są ortogonalne2. W związku z tym, co wykazaliśmy wcześniej,

będzie (2.10)

Zatem kolumny macierzy są wersorami układu {B} opisanymi w układzie (A), a wiersze są wersorami {A} opisanymi w (B).

Stąd macierz obrotu może być interpretowana jako zbiór trzech wektorów kolumnowych lub jako zbiór trzech wektorów wierszowych, jak poniżej

(2.11)

Sytuację, jak na rys. 2.5, możemy scharakteryzować następująco: znany jest opis wektora względem

pewnego układu (B), natomiast chcielibyśmy poznać jego opis względem innego układu {A}, przy

czym początki obu układów pokrywają się. Rachunek taki, jest możliwy, o ile znany jest opis orientacji

układu (B) względem (A). Orientację określa macierz obrotu , której kolumny są wersorami układu (B) opisanymi w układzie (A).

W celu znalezienia Ap zauważmy, że składowe każdego wektora odpowiadają wprost rzutom tego wektora na osie jego układu współrzędnych. Składowe te znajdujemy z iloczynu skalarnego. Widzimy

zatem, że składowe wektora Ap można obliczyć z następujących zależności (2.12).

Zauważmy, że zgodnie z (2.11), kolejnym wierszom odpowiadają i . (2.12)

Zatem (2. 12) możemy przedstawić w zwartej postaci z macierzą obrotu (2.13).

(7)

7

Równanie (2.13) odpowiada odwzorowaniu, tzn. zmienia opis wektora z postaci Bp tzn. opisu punktu w przestrzeni względem układu (B), na postać Ap, tzn. opis tego samego punktu względem układu {A}.

Widzimy teraz, że nasz zapis ułatwi nam śledzenie zamian odwzorowań i układów odniesienia. Wprowadzony przez nas zapis można łatwo sprawdzić pod względem poprawności; należy tylko wyobrazić sobie, że dolny indeks poprzedzający kasuje I zastępuje górny indeks poprzedzający następną wielkość, np. indeksy B w zależności (2.13).

Przykład

Na rys. 2.6 pokazano układ (B), który został obrócony o pi/6 wokół osi układu (A). Oś jest prostopadła do płaszczyzny kartki i skierowana w naszą stronę.

Jeśli wersory układu (B) opiszemy względem układu (A), to po zgrupowaniu przedstawimy je jako

kolumny macierzy obrotu otrzymując (2.14)

Dany jest wektor (2.15)

Macierz odpowiada tutaj odwzorowaniu, które zastosowano w celu przekształcenia Bp tzn. wektora pozycji opisanego względem układu (B), w Ap, tzn. ten sam wektor opisany względem układu {A}. Tak samo jak w przypadku przesunięć, należy pamiętać, że odwzorowany wektor P nie zmienia swego położenia w przestrzeni. Ściśle mówiąc, znajdujemy nowy opis wektora względem innego układu.

(8)

8

Zadanie R4

Poniżej przedstawiono przykład (działający) wyświetlania animacji robota PUMA (Programmable Universal Machine for Assembly).

Zadanie polega na:

a) skorygowaniu zakresów ruchu poszczególnych członów robota (wektor qs)

b) uzyskaniu przebiegów prędkości i przyspieszeń chwytaka robota (wykorzystać funkcje omówione na wykładzie) exec('startup_rtsx.sce',-1); exec('./models/mdl_puma560.sce',-1) J0 = jacob0(p560,q_n) q0 = [0 0 0 0 0 0]; T=FKine(p560,q0) // uzupełnić t = [0:0.01:1]'; // "time" data

qs = [2*pi*t 2*pi*t 2*pi*t 2*pi*t 2*pi*t 2*pi*t];

qs = [pi*t pi*t pi*t pi*t pi*t pi*t]; AnimateRobot(p560,qs);

Odpowiedzieć:

Cytaty

Powiązane dokumenty

W pracy przedstawiono problem identyfikacji położenia defektu w elementach konstrukcji przy wykorzystaniu metod termograficznych, w warunkach ustalonego przewodzenia

Celem tego przykładu jest wykazanie równoważności entropii termodyna- micznej i statystycznej: Będziemy rozważać zmianę entropii podczas adia- batycznego rozprężania

Układ ten ma jedyne rozwiązanie wtedy i tylko wtedy, gdy jest niesprzeczny i macierz A nie ma kolumn wtórnych... przekształcenie L nie

Z podanego opisu wynika, że krążenie wieńcowe jest częścią (małego / dużego) obiegu krwi. b) Regularne ćwiczenia fizyczne są jednym ze sposobów zapobiegania i leczenia

Nerwy te mogą pełnić funkcje czuciowe, ruchowe lub mieszane (pełnią funkcje zarówno czuciowe, jak i ruchowe). Na podstawie podanych informacji określ, jakie funkcje

[r]

Ćwiczenie 2/116 możesz narysować układ współrzędnych i zaznaczyć w nich punkty A,B,C,D albo wyobrazić sobie tylko gdzie te punkty byłyby umieszczone w

Wyobrazimy sobie teraz, że w każdym punkcie, gdzie przecinają się pręty miernicze, znajduje się malutki zegar, którego wskazanie obserwator może odczytać dzięki światłu,