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