PodstR


Politechnika Aódzka
Instytut Automatyki
Laboratorium
Podstaw Robotyki
Aódz 2000
2
I. Zadania laboratoryjne
II. Program RoboWorks
III. Matlab  toolbox Robotics
Laboratorium Podstaw Robotyki stanowi rozwinięcie zagadnień omawianych na ćwiczeniach
i jednocześnie jest wprowadzeniem do problematyki sterowania rzeczywistych robotów.
Studenci zapoznają się z dwoma narzędziami inżynierskimi: pakietem Matlab (z toolboxem
Robotics) do modelowania i symulacji zachowań robotów oraz programem RoboWorks
umożliwiającym wizualizację modeli. Biblioteka Robotics, której autorem jest Peter I. Corke,
jest dostępna w internecie pod adresem: http://www.brb.dmt.csiro.au/dmt/programs/autom/pic/matlab.html, zaś
program RoboWorks autorstwa Chetana Kapoora  http://www.newtonium.com. Laboratorium
obejmuje pięć zagadnień do opracowania w grupach dwuosobowych. Grupa opracowuje
zadania dla manipulatora wskazanego przez prowadzÄ…cego. Instrukcja zawiera schematy
trzech rzeczywistych robotów L1, L2, Irp-6 do wyboru. Do zaliczenia wymagane jest
wykonanie co najmniej trzech pierwszych zadań, zaprezentowanie ich działania
prowadzącemu oraz przedstawienie zwięzłego sprawozdania. Ocena końcowa jest równa
ilości opracowanych zadań. W instrukcji kursywą wyróżniono nazwy występujące w
programie RoboWorks lub Matlab.
I. Zadania laboratoryjne
1. Na schemacie, wskazanego przez prowadzÄ…cego, manipulatora (Rys. 1 lub Rys. 2, lub
Rys.3) narysować układy współrzędnych zgodne z notacją Denavita-Hartenberga.
Określić parametry kinematyczne D-H. Utworzyć zmienną (odpowiednio ROBL1,
ROBL2, ROBIRP6) zawierajÄ…cÄ… model kinematyki robota zgodny z formatem opisanym
w pliku dh.m (patrz przykłady puma560.m, stanford.m).
2. Utworzyć model robota w programie RoboWorks. Zwrócić uwagę na wierność
odtworzenia oryginału oraz na zgodność kinematyczną z notacją D-H i parametrami
przyjętymi w punkcie 1. Należy pamiętać, aby osiami obrotu lub kierunkami przesunięć
złączy były lokalne osie z. Wyróżnić punkt roboczy efektora w postaci czarnej kulki.
3. Rozwiązać proste zadanie kinematyczne dla zmiennych złączowych określających
położenie bazowe manipulatora i dla zmiennych złączowych równych połowie zakresów
ruchów. Utworzyć trajektorię w zmiennych wewnętrznych łączącą te punkty oraz
wygenerować odpowiadającą jej trajektorię kartezjańską. Zweryfikować uzyskane
trajektorie za pomocą skryptu plotbot.m oraz w programie RoboWorks. Jeśli konieczne,
wprowadzić dodatkowe przeliczenie zmiennych złączowych występujących w Matlabie i
RoboWorks ie. Zapisać trajektorię w formacie określonym przez skrypt RWSave.m:
tytul='joint_1 joint_2 joint_3 joint_4 joint_5 joint_6';
fid = fopen('nazwa_robota.dat','w');
fprintf(fid,'%s\n',tytul);
%qs  zmienna zawierajÄ…ca trajektoriÄ™ robota
fprintf(fid,'%10.2f %10.2f %10.2f %10.2f %10.2f %10.2f\n',qs');
fclose(fid);
4. Utworzyć trajektorię w zmiennych kartezjańskich w postaci kwadratu i wpisanego weń
okręgu leżących w płaszczyznie poziomej lub pionowej. Rozwiązać odwrotne zagadnienie
kinematyczne dla tej trajektorii zachowując stałą orientację chwytaka (funkcje ctraj.m,
ikine.m). Wygenerować rysunki pokazujące zmiany x, y, z w czasie oraz zmiennych
złączowych w czasie. Przeprowadzić procedurę przeliczającą jak w p. 3. Przygotowany
plik uruchomić w środowisku RoboWorks (Animation / From File). Wprowadzić zarys
trajektorii do sceny z robotem. Sprawdzić wierność odtwarzania zadanego kształtu.
3
5. Oszacować parametry dynamiczne analizowanego manipulatora. Uzupełnić zmienną
ROBL1 (ROBL2 lub ROBIRP6) o elementy modelu dynamiki manipulatora (patrz
przykłady puma560.m, stanford.m). Dokonać syntezy zamkniętego układu regulacji
pozycji z regulatorem typu PD dla każdego stopnia swobody manipulatora (patrz
przykłada zawarty w opisie funkcji fdyn.m). Sprawdzić działanie układu dla trajektorii z
punktu 4. Dokonać modyfikacji układu sterowania uwzględniając kompensacje sił
grawitacji oraz sił odśrodkowych i Coriolisa. Porównać jakość śledzenia zadanej
trajektorii dla regulatora PD bez i z odprzężeniem nieliniowym. Wykreślić momenty
napędowe złączy manipulatora dla trajektorii z punktu 4.
Robot przemysłowo-dydaktyczny L1
Rys. 1
parametry mechaniczne robota L1:
4
Robot przemysłowo-dydaktyczny L2
Rys. 2
Obciążenie maksymalne z masą chwytaka 3.2 kg
Zakres ruchu zÅ‚Ä…cza 1 320°
Zakres ruchu zÅ‚Ä…cza 2 100°
Zakres ruchu zÅ‚Ä…cza 3 270°
Zakres ruchu zÅ‚Ä…cza 4 (nadgarstek) 170°
Zakres ruchu zÅ‚Ä…cza 5 (nadgarstek) 340°
Maksymalna prędkość złącza 1 0.3 rad/s
Maksymalna prędkość złącza 2 0.5 rad/s
Maksymalna prędkość złącza 3 0.5 rad/s
Maksymalna prędkość złącza 4 12rad/s
Maksymalna prędkość złącza 5 24rad/s
Maksymalny błąd podczas bazowania ą0.02mm
Dokładność pozycjonowania (ruchy globalne) ą0.05mm
Dokładność pozycjonowania (ruchy nadgarstka) ą0.15mm
Masa całkowita części manipulacyjnej 18kg
5
Robot przemysłowy Irp-6
Rys. 3
Dane umożliwiające rozwiązanie prostego i odwrotnego modelu kinematyki:
1) Enkodery - 2000 małych inkrementów/obrót
Ponieważ dokładność odczytu położenia osi zmniejszana jest programowo 4 razy to rozróżniać należy małe
inkrementy i duże inkrementy (1 duży=4 małe)
2) Przekładnie
a) oś FI - przekładnia harmoniczna 1:158
b) oś TETA - przekładnia śrubowa o skoku 5 mm/obrót
c) oś ALFA - przekładnia śrubowa o skoku 5 mm/obrót
d) oś T - przekładnia harmoniczna 1:128
e) oś V - przekładnia harmoniczna 1:128 i przekładnia stożkowa 32:19
3) Punkt synchronizacji (wyrażony w dużych inkrementach)
a) oÅ› FI - 37310
b) oÅ› TETA - 9277
c) oÅ› ALFA - 5176
d) oÅ› T - 2441
e) oÅ› V - 1758
4) Zakres ruchu dla poszczególnych osi (w dużych inkrementach)
a) oÅ› FI - 0-74620
b) oÅ› TETA - 0-18188
c) oÅ› ALFA - 0-15190
d) oÅ› T - 0-32320
e) oÅ› V - 0-39360
5) Zakresy ruchów i prędkości dla poszczególnych osi (w stopniach)
a) oÅ› FI - Ä… 170° - 95°/s
b) oÅ› TETA - Ä… 40° - 90°/s
c) oÅ› ALFA - -40°..+25° - 90°/s
d) oÅ› T - Ä…90° - 115°/s
e) oÅ› V - Ä…180° - 195°/s
6) Wymiary geometryczne poszczególnych osi zamieszczone są w DTR robota IRp-6
6
II. Program RoboWorks
Program RoboWorks umożliwia modelowanie struktury kinematycznej manipulatora przy
użyciu prostych brył geometrycznych oraz poruszanie takim modelem z poziomu klawiatury,
według trajektorii zapisanej w pliku lub z poziomu innego programu. Zadaniem studentów
jest utworzenie modelu jednego z robotów znajdujących się w laboratorium. Scenę z robotem
należy uzupełnić zarysem trajektorii, o kształcie kwadratu i wpisanego weń okręgu leżących
w przestrzeni osiÄ…galnej.
Podstawy projektowania modelu manipulatora.
Po wybraniu File / New należy utworzyć strukturę drzewiastą typu:
opisującą odpowiednio poszczególne elementy sceny roboczej:
Path Outline
Arm Robot
Manipulator
wykorzystujÄ…c w tym celu polecenie Edit / Insert After / Other / Group.
Każdy z elementów struktury składa się z określonego układu trzech elementów: bryły,
materiału i transformacji:
Przy czym możliwy jest wybór spośród następujących kształtów:
7
oraz transformacji w postaci: translacji, rotacji i skalowania. Każda z brył ma parametry
ustawiane w kolejnym oknie edycyjnym, takie jak: określenie orientacji przez wybór
położenia osi symetrii, wymiary geometryczne, rodzaj renderingu, barwa i rodzaj materiału.
Translacja i rotacja wymagają natomiast określenia osi, wartości przesunięcia lub obrotu oraz
parametrów sterowania. Te dwie transformacje mogą określać wzajemne położenie kilku brył
tworzących jedno ogniwo manipulatora (wówczas są statyczne) lub opisywać złącze
manipulatora  wówczas posiadają atrybut dynamiczne:
Pole Key Selector określa przycisk klawiatury przypisany danemu ruchowi (ruch w
przeciwnym kierunku z Shift), natomiast pole Tag Name określa etykietę stosowaną w pliku z
trajektorią (porównaj plik RWSave.m) dla zadania kolejnych położeń danego złącza. Kolejne
pola pozwalają na zadanie zakresów ruchu i opcji zatrzymania złącza na ograniczeniach.
Należy zwrócić uwagę aby osią złącza manipulatora zawsze była oś Z (notacja DH), w razie
konieczności należy dokonać odpowiedniego obrotu/przesunięcia statycznego przed
określaniem ruchu złącza. Kolejne układy współrzędnych związane z bryłami i
transformacjami można wyświetlić w oknie ze sceną roboczą ustawiając w Edit opcję
Coordinate Frames. Układ bazowy ma orientację jak na poniższym rysunku:
Nie jest wskazane obracanie tego układu w oknie ze sceną robotyczną celem dopasowania do
potrzeb modelowania. Należy dokonać transformacji tego układu (odpowiedniej translacji i
rotacji) dla uzyskania właściwego położenia i orientacji układu bazowego tworzonego modelu
robota.
8
Wygodną metodą tworzenia struktury manipulatora jest łączenie brył i transformacji jednego
ogniwa w grupę i wyróżnianie ruchu złącza pomiędzy takimi grupami jak na rysunku:
Podstawa manipulatora
Statyczne przesunięcie
układu
ZÅ‚Ä…cze 1 manipulatora,
rotacja dynamiczna
Ogniwo 1
Statyczne transformacje
układu
ZÅ‚Ä…cze 2 manipulatora,
rotacja dynamiczna
Użyteczną opcją pomagającą rozpoznać elementy struktury w scenie jest Highlighting w
menu Edit. Należy zwrócić uwagę, że górne menu Edit jest inne dla aktywnego okna ze sceną
i inne dla okna ze strukturą, w każdym z nich jest dodatkowo dostępne jako podręczne pod
prawym przyciskiem myszy.
Funkcje Transformation Start i Stop powodują, że zamknięte między nimi transformacje nie
są widziane poza nimi, czyli orientacja układu za Tranformation Stop jest taka jak przed Start.
Umożliwia to np. łatwe zdefiniowania dwóch szczęk chwytaka poruszających się
synchronicznie jak w przykładzie:
Przykłady zaczerpnięto z pliku ARMRobot.scn.
9
Opis struktury programu RoboWorks
File  umożliwia otwieranie nowych lub gotowych struktur robotów, a także wydrukowanie
i zamknięcie programu,
View  umożliwia dostosowanie obszaru roboczego programu do potrzeb użytkownika.
Składa się ono z dwóch poleceń:
" Toolbar  włącza lub wyłącza pasek przycisków,
" Status Bar  włącza lub wyłącza pasek stanu programu umieszczony na
dole obszaru roboczego,
" Tree View  włącza lub wyłącza okno umożliwiające edycję sceny.
Help  umożliwia skorzystanie z pomocy programu RoboWorks.
Po otworzeniu nowego lub gotowego modelu robota w głównym menu uaktywniają się
kolejne polecenia:
Edit  dostępne operacje zależą od tego jakie okno jest aktywne,
Animation  umożliwia obsługę animacji robota,
Window  umożliwia wzajemne położenie otwartych okien oraz wybranie jednego z nich.
      
Gdy aktywne jest okno z widokiem sceny menu Edit zawiera:
Background  pozwala zmienić tło w oknie podglądu,
Auto Rotation  włączenie automatycznego obrotu wokół osi Y układu bazowego,
Grid  włącza siatkę jednostek,
Coordinate Frames  włącza układy współrzędnych związane z bryłami,
Antialias  włącza
Iteractive mode:
Rotation  lewy przycisk myszy uaktywnia rotację brył w oknie podglądu wokół osi X i
Y układu bazowego,
Translation  lewy przycisk myszy uaktywnia translację brył w oknie podglądu wzdłuż
osi X i Y układu bazowego,
Zooming  lewy przycisk myszy uaktywnia zmianę wielkości brył w oknie podglądu,
Picking  pozwala na szybki dostęp do edycji atrybutów wskazanej bryły.
Projection:
Perspective  projekcja perspektywiczna,
Orthographic  projekcja płaska,
View  pozwala na wybór rodzaju widoku:
Reset  powrót do widoku na płaszczyznę XY,
Rendering  opcje widoku sceny:
Smooth Shaded  wygładzanie krawędzi brył,
Flat Shaded  bez wygładzania,
Wireframe  siatka krawędzi brył.
No Clear  wyłącza wymazywanie zarysów brył w trakcie poruszania modelem.
Gdy aktywne jest okno z widokiem struktury menu Edit zawiera:
Undo  cofnij,
Redo  powtórz,
Insert Child  wstaw poziom niżej w hierarchii,
Insert After  wstaw następny element na tym samym poziomie struktury,
Cut  wytnij,
Copy  skopiuj,
Paste  wstaw za danym obiektem na tym samym poziomie struktury,
Paste Child  wstaw na niższym poziomie w hierarchii,
Locate  wskaż dany element na podglądzie sceny,
Highlighting  wskazuj wszystkie elementy na podglÄ…dzie sceny,
Properties  parametry obiektu,
10
Menu Animation
From file - wczytanie parametrów animacji z pliku (*.dat)
Format pliku:
w pierwszej linii nazwy kolejnych transformacji (Tag name) oddzielone znakami
tabulacji,
w kolejnych liniach: wartości przesunięć (obrotów),
Po otworzeniu pliku pokazuje siÄ™ okno File Player: Nazwapliku.scn.
Kolejne przyciski od lewej to:
- odtwarzanie do przodu
- jedna klatka do przodu
- odtwarzanie do tylu
- jedna klatka wstecz
- pauza
- powtarzanie
- zatrzymanie odtwarzania
- zamknięcie okna File Player
Pole properties:
Number of set points = n  ilość wczytanych z pliku klatek animacji,
Speed rate  szybkość odtwarzania (co która klatka będzie pokazywana),
From IPC  włącza sterowanie modelem przez zewnętrzny program (IPC to InterProcess
Communications),
Reset all  powrót modelu do stanu/położenia zdefiniowanego podczas projektowania,
Teach pendant  ?
Monitor  pokazuje okno z nazwami transformacji i ich wartościami w czasie animacji
Make default  ?
      
Node selector  (wybór obiektu) uaktywniony poleceniem Insert z menu Edit udostępnia
obiekty z trzech grup pogrupowanych w zakładkach:
Shape  bryła, element składowy konstrukcji sceny o określonym kształcie, wymiarach i
usytuowaniu w przestrzeni:
- Cylinder  walec,
- Cone  stożek,
- Disk  dysk,
- Annular Disk  obręcz,
- Sphere  sfera,
- Cube  sześcian,
- Wedge  klin,
Transformation  przekształcenie układu odniesienia związanego z daną grupą obiektów:
11
- Rotation  rotacja,
- Translation  przesunięcie,
- Scaling  przeskalowanie,
- Transformation start  rozpoczęcie transformacji,
- Transformation stop  zatrzymanie transformacji,
Other  inne obiekty:
- Material  wybór materiału w oparciu o dostępną bazę,
- Group  utworzenie nowej grupy obiektów,
- OnOff  aktywacja/deaktywacja danego obiektu może odnosić się do wszystkich
obiektów opisanych powyżej.
      
Szczegółowe parametry ww. obiektów:
Cube  sześcian składa się z czterech zakładek :
Dimensions  wymiarowanie:
Pola tekstowe:
name  nazwa bloku,
location  położenie bloku w trójwymiarowej przestrzeni; poprzez podanie
współrzędnych X, Y, Z (kolejne pola) wpływamy na położenie środka
bryły względem bieżącego układu współrzędnych,
wymiary bloku:
- widht  szerokość (oś X)
- height  wysokość(oś Y)
- depth  głębokość(oś Z)
Rendering  pokrycie, wypełnienie:
Opcje do wyboru:
show bounding box  pokaż / ukryj krawędzie bryły,
bounding box color  wybór koloru krawędzi,
face to shade  cieniowana ściana:
- front - frontowa,
- back - tylnia,
- both  przednia i tylnia,
Pole tekstowe: bounding box line  grubość krawędzi bloku,
Opcje renderowania:
smooth shaded  cieniowanie wygładzone,
flat shaded  cieniowanie płaskie,
wireframe  brak wypełnienia (same krawędzie), możliwy jest także wybór koloru
krawędzi i ich grubości (pole tekstowe),
Material  wybór rodzaju materiału do budowy bloku,
Notes  notatki, komentarze.
Cylinder  walec, Cone  stożek:
12
Okno pokazane na rysunku zawiera cztery zakładki:
Dimensions  rozmiary:
Name  nazwa węzła, Top Radius  górny promień, Bottom Radius  dolny promień,
Height  wysokość walca, Start Angle  kąt początkowy, Stop Angle  kąt końcowy
(kÄ…t zawiera siÄ™ w przedziale [0°;360°]), Number of Facets  liczba Å›cian (boków
podstawy obiektu), Axis  oś wzdłuż ktorej węzeł będzie się obracał, Location 
położenie elementu.
Rendering:
Show Bounding Box  pokazuje ramkÄ™ ograniczajÄ…cÄ…, Bounding Box Color  kolor
ramki, Bounding Box Line  grubość ramki, Face To Shade  pozwala wybrać, która
strona ma być cieniowana.
Rendering: Smooth Shaded  gładko cieniowany, Flat Shaded  płasko cieniowany,
Wireframe  widok ramkowy, Wireframe Color  kolor ramki, Wireframe Line Width
 szerokość ramek.
Material  materiał, tworzywo:
Material Name  nazwa materiału  wybiera się rodzaj (wygląd) materiału węzła, Use
Previous Material  użyj poprzedniego materiału.
Notes  notatki  w oknie możemy zapisywać różne informacje, które mogą być przydatne
dla przyszłych użytkowników naszego robota.
Istotną informacją jest, iż tylko używając tego kształtu (Cylinder) możemy stworzyć stożek
ścięty. Przycisk OK. potwierdza zmiany i zamyka okno, Anuluj  zamyka okno nie
zatwierdzajÄ…c zmian, Pomoc  otwiera pomoc.Gdy zamiast Cylinder wybierzemy Cone
(stożek), to zmieni się tylko zakładka Dimensions: Rożnice polegają na tym, iż stożek posiada
tylko jedną średnicę:
13
Radius  średnica podstawy stożka, Height  wysokość stożka.
Pozostałe opcje są identyczne jak dla walca.
Disk  Dysk
Zakładka Dimensions
- Name  wpisujemy nazwÄ™ dysku
- Radius  podajemy promień dysku (liczba pomiędzy 0.01-100000)
- Start Angle  wycięcie dysku w stopniach
- Stop Angle  max. zakres dysku w stopniach
- Number of Facetes  kształt dysku  liczba boków w wielokącie
- Axis, Location  położenie dysku w przestrzeni
Zakładka Rendering jak poprzednio
Zakładka Material  jak poprzednio
Zakładka Notes  jak poprzednio
Annular-Disk - Pierścień
Zakładka Dimensions
- Outer  promień wewnętrzny pierścienia (liczba pomiędzy 0.01-100000)
- Iner Radius  promień zewnętrzny pierścienia (liczba pomiędzy 0.01-100000)
Pozostałe zakładki analogicznie jak dla  Disk
Sphere  Sfera
Zakładka Dimensions
- Vertical Radius  pionowy promień sfery
- Horizontal Radius  poziomy promień sfery
Pozostałe zakładki analogicznie jak dla  Disk
Cube  tworzy sześcian o następujących parametrach:
Dimensions  definiuje położenie i wymiary tworzonego sześcianu
Name  nazwa części
Location  położenie środka sześcianu w notacji X, Y, Z
Width  długość ( kier X)
Height  wysokość ( kier Y)
Depth  szerokość ( kier Z)
Rendering  jak poprzednio
Material  jak poprzednio
Notes  jak poprzednio
Wedge  tworzy prostopadłościan o następujących parametrach
Dimensions  definiuje położenie i wymiary tworzonej bryły
Name  nazwa części
14
Location  położenie środka sześcianu w notacji X, Y, Z
Bottom Width  długość ( kier X)
Height  wysokość ( kier Y)
Top Width  długość góry (kier X)
Depth  szerokość ( kier Z)
Top Offset  przesunięcie w zależności od wybranej osi (Axis ) X, Y, Z
Pozostałe zakładki analogicznie jak dla  Disk
      
Transformation-Rotation (obrót)
Zakładka Name
- Name  wpisujemy nazwÄ™ obrotu
- Axis  wybieramy oÅ› obrotu
- Other  możemy wprowadzić własną oś obrotu
- Initial Value  wartość kąta o jaki chcemy obrócić w stopniach
- Current Value  zapamiętywanie ostatniej wartości kąta obrotu i możliwość powrotu
do niej
Zakładka Control
- Static- stała wartość kąta obrotu
- Dynamic  dynamiczna zmiana kąta obrotu (w każdym kroku obraca o zadaną
wartość):
- Key Selector  możliwość definicji, który powoduje obrót
- Increment - wartość o jaką obróci się obiekt po naciśnięciu danego klawisza
- Tag Name  identyfikator (patrz menu Animation FromFile)
- Limits  określenie maksymalnej i minimalnej wartości
- Warnings  zatrzymanie przy uzyskaniu limitowanej wartości
Zakładka Notes umożliwia umieszczanie własnych komentarzy i adnotacji
Transformation-Translation (przesunięcie)
Okno dialogowe jest identyczne jak dla Rotation, jedynie zamiast obrotu jest przesunięcie.
Transformation-Scaling  skalowanie przestrzeni, trzy zakładki:
Name  nazwa skalowania, skalowanie jest możliwe względem osi X, Y, Z oraz Other
(względem dowolnie wybranego wektora). W polu tekstowym Initial value ustawiamy
krotność skalowania (natomiast pole current value wskazuje bieżącą krotność).
Control  wybór rodzaju skalowania:
static  statyczne, jednokrotne dla danej osi o wartości określonej w polu initial value,
dynamic  dynamiczne, wielokrotne, wywoływane przez klawisz określony w polu
Key selector
Opcje do wyboru:
Key selector  przyporzÄ…dkowanie klawisza na klawiaturze do skalowania,
Increment  krotność skalowania dla skalowania dynamicznego,
Tag name  określa etykietę tekstową stosowaną w pliku ze skalowaniem,
Kolejne pola pozwalają na zadanie zakresów ruchu i opcji zatrzymania złącza na
ograniczeniach:
Tag scaling  krotność skalowania dla wybranego znacznika,
Ograniczenia  Limits:
minimum value  minimalna wartość skalowania,
maximum value  maksymalna wartość skalowania,
Warnings  ostrzeżenia: Stop at limit crossing  zatrzymanie transformacji po
przekroczeniu limitu skalowania.
Notes  notatki, komentarze.
15
Funkcje Transformation Start i Transformation Stop powodują, że zamknięte między nimi
transformacje nie są widziane poza nimi, czyli orientacja układu za Transformation Stop jest
taka jak przed Transformation Start.
      
Other  inne obiekty:
Material  wybór koloru dla wszystkich następnych elementów umieszczanych w dalszej
części struktury
Group  pozwala zgrupować na niższym poziomie struktury poszczególne część robota np.
dotyczÄ…ce podstawy, ramienia, nadgarstka itd.
Name  pozwala nazwać daną grupę np. ramię, zawiera również spis wszystkich
potomków wraz z opisem
Notes  pozwala na zapisanie własnych uwag dotyczących danej grupy
On Off  wykorzystuje się w przypadkach gdy chcemy ukryć pewne części robota lub całość
zależnie od umiejscowienia w strukturze (okno Tree View)
Name  nazwa przełącznika
Apply to: określa zastosowanie do:
Shapes  kształtów
Transformation  przekształceń
Material  materiału
16
Initial Value  wartość początkowa włączony/wyłączony
Control  wybór wartości Dynamic umożliwia przypisanie klawisza oraz etykiety (patrz
menu Animation FromFile) którymi będzie można uaktywniać przełącznik,
deaktywacja następuje przy pomocy kombinacji shift + wybrany klawisz.
Notes  notatki
      
Biblioteka Robotalk  zawiera funkcje potrzebne do kontrolowania modelu w programie
RoboWorks z innego programu
int DllExport Connect(char* filename, char* ipAddress);
- połączenie z programem Roboworks.
filename - nazwa modelu - otwartego pliku *.scn (bez rozszerzenia)
ipAddress - IP komputera na którym uruchomiono RoboWorks
int DllExport SetTagValues(char** tagNames, float* tagValues, unsigned int noTags);
- ustawienie wartości transformacji
tagnames - tablica nazw zmiennych
tagvalues - tablica wartości
notags - ilość zmiennych
int DllExport GetTagValues(char** tagNames, float* tagValues, unsigned int noTags);
- odczytanie wartości transformacji
tagnames - tablica nazw zmiennych
tagvalues - tablica wartości
notags - ilość zmiennych
int DllExport Disconnect();
- zmaknięcie połączenia z roboworks
int DllExport SetTagValuesLabView(char* tagNamesArray, float* tagValues, unsigned
int noTags);
- jak wyżej w odniesieniu do komunikacji z programem LabView
int DllExport GetTagValuesLabView(char* tagNamesArray, float* tagValues, unsigned
int noTags);
- jak wyżej w odniesieniu do komunikacji z programem LabView
17
III. Matlab  toolbox Robotics
W bibliotece Robotics zgromadzono szereg skryptów Matlaba dla potrzeb robotyki.
Umożliwiają one między innymi: transformacje homogeniczne, analizę kinematyki i
dynamiki manipulatora, planowanie trajektorii i prostą wizualizację. W bibliotece użyto
następujących zmiennych oraz konwencji wymiarów macierzy i wektorów dla n-osiowego
manipulatora o otwartym łańcuchu kinematycznym:
symbol rozmiar opis
dh nx5 macierz zawierajÄ…ca parametry kinematyki manipulatora
dyn nx20 macierz zawierajÄ…ca parametry kinematyki i dynamiki manipulatora
q 1xn wektor zmiennych złączowych
q mxn macierz zawierajÄ…ca m-punktowÄ… trajektoriÄ™
qd 1xn wektor prędkości złączowych
qd mxn macierz zawierająca m-punktową trajektorię prędkości
qdd 1xn wektor przyspieszeń złączowych
qdd mxn macierz zawierająca m-punktową trajektorię przyspieszeń
T 4x4 macierz homogeniczna transformacji
T mx16 macierz zawierajÄ…ca m-punktowÄ… trajektoriÄ™ homogenicznych
transformacji
M 1x6 wektor maskujący stopnie swobody nie występujące w manipulatorze
o mniej niż 6 DOF
v 3x1 wektor położeń kartezjańskich
t mx1 wektor czasu
d 6x1 wektor przyrostów ruchu
Trajektoria jest wyrażona w postaci macierzy, w której każdy wiersz odpowiada jednemu z m
kroków trajektorii. Dla zmiennych złączowych, prędkości i przyspieszeń kolumny tej
macierzy odpowiadają kolejnym złączom manipulatora. Dla trajektorii macierzy
homogenicznych sytuacja jest bardziej skomplikowana (wersja 4.0 Matlaba nie obsługiwała
macierzy 3 wymiarowych), każdy wiersz jest rozwiniętą do postaci wektora macierza
transformacji. Każdy wiersz można odtworzyć do postaci macierzy funkcją reshape.
najważniejsze skrypty zawarte w bibliotece Robotics:
funkcja opis
rotx przekształcenie homogeniczne; rotacja wokół osi X
roty przekształcenie homogeniczne; rotacja wokół osi Y
rotz przekształcenie homogeniczne; rotacja wokół osi Z
dh parametry denavita-Hartenberga
fkine obliczanie kinematyki prostej manipulatora
ikine obliczanie kinematyki odwrotnej manipulatora
jakob0 obliczenie Jakobianu manipulatora w układzie bazowym
jakobn obliczenie Jakobianu manipulatora w układzie końcówki
accel obliczanie dynamiki prostej manipulatora
cinertia obliczanie kartezjańskiej macierzy inercji manipulatora
coriolis obliczanie wektora sił odśrodkowych i Coriolisa
dyn parametry dynamiki manipulatora
friction wektor tarcia złączowego
gravload obliczenie momentów sił grawitacji
inertia obliczenie macierzy inercji manipulatora
itorque obliczenie momentów pochodzących od macierzy inercji
18
rne obliczenie dynamiki odwrotnej metodÄ… rekurencyjnÄ… Newtona-Eulera
puma560 przykładowe dane dla robota Puma 560
stanford przykładowe dane dla robota Stanforda
ctraj generowanie trajektorii kartezjańskiej
jtraj generowanie trajektorii złączowej
plotbot prosta wizualizacja manipulatora
manipblty obliczenie wskaznika ruchliwości manipulatora
rtdemo demonstracja działania biblioteki Robotics
Dalej przedstawiono szczegółowe opisy wybranych funkcji biblioteki Robotics.
accel
Cel: oblicza dynamikę końcówki manipulatora
Wywołanie: qdd = accel(dyn,q,qd,torque)
Opis: Zwraca wektor przyspieszeń przegubów, wynikający z zastosowania momentów torque
w przegubach do manipulatora ze wspólnymi złączowych q i prędkościami qd . Stosowana
jest metoda 1 Walkera i Orin a obliczająca dynamikę końcówki. Ta forma jest przydatna do
symulowania dynamiki manipulatora, w połączeniu z całkowaniem numerycznym.
Zobacz także: rne, dyn, fdyn, ode45
cinertia
Cel: Oblicza macierz bezwładności dla manipulatora kartezjańskiego
Wywołanie: cinertia (dyn,q)
cinertia(dyn,q,M)
Opis: oblicza macierz bezwładności kartezjańską lub w przestrzeni zmiennych złączowych.
dyn  opisuje dynamikÄ™ i kinematykÄ™ manipulatora. q  jest n elementowym wektorem
współrzędnych przegubowych.
Dla przypadku manipulatora z mniej niż 6 DOF zadana przestrzeń nie zawiera wszystkich
współrzędnych kartezjańskich. Sześcioelementowy wektor M, którego elementami są  0 i
 1 odpowiadające osiom X Y Z oraz obrotom względem tych osi w kartezjańskim układzie
współrzędnych.  1 gdy układ współrzędnych należy do przestrzeni,  0  w przeciwnym
wypadku. Np. pięcioosiowy manipulator bez rotacji wokół osi Z ma wektor M=[1 1 1 1 1 0]
Algorytm: Macierz bezwładności manipulatora jest obliczana z macierzy inercji złączy wg
wzoru :
M (x) = J (q)-T M (q)J (q)-1
relacja między siłą a przyspieszeniem:
..
F = M (x) x
Zobacz także: inertia, dyn, rne
coriolis
Cel: Oblicza momenty odśrodkowe i dośrodkowe manipulatora
Wywołanie: tau_c=coriolis(dyn, q, qd)
Opis: coriolis zwraca momenty odśrodkowe i dośrodkowe złączy dla określonych wartości
zmiennych złączowych q i szybkości qd. dyn opisuje kinematykę i dynamikę manipulatora.
Jeżeli q i qd są wektorami to tau_c jest także wektorem momentów napędowych. Jeżeli q i qd
są macierzami, każdy wiersz jest traktowany jako wektor zmiennych złączowych, a tau_c jest
macierzą, której każdy wiersz odpowiada momentom złączowym.
19
Algorytm: Otrzymane z równania ruchu za pomocą rne przy czym przyspieszenia przegubów
i przyspieszenie ziemskie przyjęto jako zero,
. .
Ä = C(q, q)q
Ograniczenia: Jeśli dyn zawiera tarcie złączy to momenty tarcia będą dodane do momentów
zwróconych przez coriolis
Zobacz także : dyn, rne, itorque, gravload.
ctraj
Cel: Oblicza kartezjańską trajektorię pomiędzy dwoma punktami
Składnia: TC= ctraj (T0, T1, n)
TC=ctray (T0, T1, t)
Opis: ctraj zwraca kartezjańską trajektorię (bezpośredni ruch liniowy) TC od punktu
reprezentowanego przez przekształcenie jednorodne T0 do T1. Liczba punktów ścieżki jest
określona przez n lub dany wymiar wektora czasu t
Każdy wiersz TC reprezentuje jeden odcinek czasu i jest przekształconą w wektor macierzą
homogeniczną która może być odtworzona przez:
Ti = reshape (TC (i,:) , 4 , 4) , lub
Ti = ttg (TC, i)
Zobacz jeszcze: trinterp, divepar,transl, ttg
dh
Cel: Macierzowa reprezentacja kinematyki manipulatora.
Opis: dh macierz opisuje kinematykę manipulatora w ogólnej postaci używając standardowej
konwencji Denavita-Hartenberga. Każdy wiersz reprezentuje jedno łącze manipulatora a
kolumny są przydzielone zgodnie z poniższą tabelą
Kolumna Symbol Adnotacja
1 kąt skręcenia
Ä…i
2 Ai długość ogniwa
3 kąt rotacji złącze
¸i
4 Di przesunięcie złącza
5 typ przegubu, 0 dla obrotowego, różne od 0 dla translacyjnego
Ãi
Jeśli ostatnia kolumna nie jest dana zakłada się, że złącza są obrotowe. Dla n-osiowego
manipulatora dh jest macierzÄ… n x 4 lub n x 5.
Pierwsze 5 kolumn macierzy dyn zawiera parametry kinematyczne i może być używana
zamiennie, wszędzie gdzie jest wymagana macierz kinematyczna dh dane dynamiczne są
ignorowane.
Długości Ai i Di mogą być wyrażane w różnych jednostkach i wybór ich będzie wpływał na
jednostki, w których wyrażone będą transformaty homogeniczne i Jacobian. Wszystkie kąty
sÄ… w radianach.
Zobacz jeszcze: dyn, puma560, stanford, mdh
diff2tr
Cel: Konwersja wektora przyrostów ruchu na transformację homogeniczną.
20
Składnia: T = diff2tr(d)
Opis: Zwraca transformatę homogeniczną odpowiadającą różniczce ruchu postępowego i
obrotowego.
Algorytm: Różniczce ruchu " = dydz´ ´ ´ odpowiada transformata homogeniczna
îÅ‚d Å‚Å‚
x x y z
postaci:
0
îÅ‚ - ´ ´ dx
Å‚Å‚
z y
ïÅ‚
´z 0 - ´ dy śł
x
ïÅ‚ śł
" =
ïÅ‚- ´ ´ 0 dz
śł
y x
ïÅ‚ śł
0 0 0 0
ðÅ‚ ûÅ‚
Zwrócić uwagę, że podmacierz rotacyjna jest skośnie symetryczna.
Zobacz jeszcze: tr2diff
dyn
Cel: Macierzowa reprezentacja kinematyki i dynamiki manipulatora.
Opis: dyn macierz opisuje kinematyką i dynamiką manipulatora używając standardowej
konwencji D-H. Każdy wiersz reprezentuje jedno ogniwo manipulatora, a kolumny są
przypisane zgodnie z poniższą tabelą:
kolumna symbol opis
1 ą kąt skręcający ogniwa
2 A długość ogniwa
3 ¸ kÄ…t obrotu zÅ‚Ä…cza
4 D przesunięcie złącza
5 typ złącza; 0 gdy rotacyjne 1 gdy translacyjne
6 mass masa
7 rx położenie środka masy ogniwa
8 ry
9 rz
10 Ixx elementy tensora bezwładności względem środka masy ogniwa
11 Iyy
12 Izz
13 Ixy
14 Iyz
15 Ixz
16 Jm moment bezwładności twornika
17 G przekładnia redukcyjna; szybkość złącza/ szybkość przegubu
18 B tarcie lepkie, odniesione do silnika
19 Tc+ tarcie coulomba (kierunek dodatni), odniesione do silnika
20 Tc- tarcie coulomba (kierunek ujemny), odniesione do silnika
Dla n-osiowego manipulatora ,dyn jest macierzÄ… n x 20.Pierwsze 5 kolumn macierzy dyn
zawiera parametry kinematyczne i może być używane zamiast macierzy dh  parametry
dynamiczne są wówczas ignorowane.
Wszystkie dane są w radianach. Wybór wszystkich innych jednostek zależy od użytkownika i
wybór ten wpływa na jednostki, w jakich wyrażone będą transformaty jednorodne, Jakobiany,
bezwładności i momenty napędowe.
Zobacz jeszcze: dh
21
fkine
Cel: Kinematyka prosta dla manipulatora o otwartym łańcuchu kinematycznym
Składnia: T = fkine(dh, q)
Opis: fkine rozwiązuje proste zagadnienie kinematyki manipulatora dla zmiennej złączowej
q. dh określa parametry manipulatora w standardzie notacji Denavita-Hartenberga.
Jeżeli q jest wektorem, jest to interpretowane jako uogólnione współrzędne złączowe i fkine
zwraca jednorodne przekształcenie dla końcówki manipulatora. Jeżeli q jest macierzą,
wszystkie wiersze są interpretowane jako złączowe wektory stanu, i T jest macierzą, w której
każdy wiersz jest  spłaszczeniem jednorodnego przekształcenia dla odpowiedniego wiersza
q. Ta  spłaszczona transformacja może być odtworzona przez
Ti = reshape (T(i,:),4,4)
Ti = ttg(T, i)
Uwagi: Należy zauważyć że jednostki wymiarowe dla ostatniej kolumny macierzy T będą
takie same co jednostki używane w macierzy dh. Jednostki używane w macierzy dh mogą być
dowolne (metry, cale, łokcie) ale ich wybór będzie wpływać na wartości elementów w
ostatniej kolumnie macierzy T. Biblioteki puma560 i stanford używają jednostek SI z
wymiarami w metrach.
Zobacz też: dh, linktran, mfkine
Literatura: R. P. Paul. Robot Manipulators: Mathematics, Programming, and Control. MIT
Press, Cambridge, Massachusetts, 1981.
22


Wyszukiwarka