andrzej rygałło - plan rozwoju politechniki częstochowskiej · 6 rys.1.2., przy czym...

222
ROBOTYKA DLA MECHATRONIKÓW Andrzej Rygałło Częstochowa 2008

Upload: votuong

Post on 01-Mar-2019

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

ROBOTYKA DLA ME CHATRONIKÓW

Andrzej Rygałło

Częstochowa 2008

Page 2: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

2

Spis treści

1 WPROWADZENIE

1.1 Określenie robota jako maszyny…………………………………………………. 4

1.2 Definicja robot……………………………………………………………………. 9

1.3 Generacje robotów …..………………………………………………………….. 11

1.4 Klasyfikacja robotów ………………………………………………………….... 13

1.5 Struktura robota ………………………………………………………………..... 16

1.6 Łańcuch kinematyczny robota …………………………………………………...19

1.7 Układ kinematyczny robota ……………………………………………………...23

2 MANIPULATOR

2.1 Współczynniki charakteryzujące manipulator ………………………………….. 28

2.2 Nadmiarowość ruchliwości zespołu ruchu regionalnego ………………………..35

2.3 Rodzaje stref obsługowych ………………………………………………………40

2.4 Wpływ ograniczeń ruchowych na osiągalność …………………………………..44

2.5 Typy konfiguracji obrotowych par kinematycznych i konfiguracje osobliwe …..48

2.6 Wymiar ruchu i ruch monotoniczny ……………………………………………..50

2.7 Liczba wariantów struktur kinematycznych robotów …………………………... 55

2.8 Klasy ruchu robotów …………………………………………………………..... 61

3 STEROWANIE

3.1 Manipulator jako obiekt sterowania …………………………………………….. 64

3.2 Kinematyka manipulatora ………………………………………………………..78

3.3 Przykład zrobotyzowanego systemu ………………………………………….... 86

Page 3: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

3

3.4 Proste zadanie kinematyki. Określenie położenia i orientacji robota ………........89

3.5 Odwrotne zadanie kinematyki robota ……………………………………………95

3.6 Dynamika robotów ………………………………………………………………99

3.7 Serwomechanizm napędowy…………………………………………………...111

3.8 Sterowanie manipulatorem……………………………………………………..116

3.9 Sterowanie chwytakiem……………………………………………………….. 122

3.10 System sterowania manipulatorem robota ……………………………………123

3.11 Sensoryka chwytaka …………………………………………………………..126

3.12 Sterowanie ruchem (planowanie trajektorii) ………………………………….128

3.13 Chwytanie obiektu z użyciem sensoryki dotykowej ………………………….134

3.14 Stawianie przedmiotu z wykorzystaniem sensoryki siłowej ………………….138

3.15 Obrót korbki …………………………………………………………………..140

3.16 System wizyjny robota ……………………………………….……………….145

3.17 Wykorzystanie systemu wizyjnego w sterowaniu robotem………………….. 152

4 PROGRAMOWANIE

4.1 Programowanie robotów ……………………………………………………..... 167

4.2 Języki programowania robotów ……………………………………………….. 181

4.3 Przykładowy program montażu ……………………………………………...... 197

4.4 Inne języki programowania ………………………………………………….....210

4.5 System programowania robotów ……………………………………………….213

Literatura uzupełniająca ……………………………………………………………218

Spis rysunków i tablic ……………………………………………………………... 219

Page 4: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

4

1 WPROWADZENIE

1.1 Określenie robota jako maszyny

Współczesne techniki wytwarzania stawiają przed nami, na obecnym etapie rozwoju,

jeden z najważniejszych problemów – problem kompleksowej automatyzacji fizycznej i

umysłowej działalności człowieka. Wynika on z konieczności zastąpienia człowieka w

warunkach, gdzie jego działalność jest uciążliwa fizycznie, monotonna, niebezpieczna dla

jego życia lub po prostu jest niemożliwa. Systemy, za pomocą których planuje się rozwiązać

problemy automatyzacji działalności człowieka nazywa się robotami.

Termin „robot” pierwszy raz był użyty przez czeskiego pisarza Karela Čapka

w, napisanej przez niego w 1920 roku, sztuce teatralnej „R.U.R” (Rossumu’s Universal

Robots). Pisarz nazwał tak sztucznego człowieka – maszynę wolną od wszelkich uczuć i

zdolną do podejmowania samodzielnych decyzji, która miała zastąpić w fabryce robotnika.

W zastosowaniu do urządzeń technicznych termin ten upowszechnił się dopiero w drugiej

połowie XX wieku, kiedy pojawiły się pierwsze maszyny, przeznaczone do realizacji

niektórych funkcji manipulacyjnych i lokomocyjnych człowieka.

W tym czasie nastąpiło też rozszerzenie klasycznej definicji maszyny, sformułowanej

jeszcze w 1875 roku przez F.Reuleaux (1829­1905), która określała maszynę jako

„mechanizm lub zespół mechanizmów we wspólnym kadłubie, służący do przetwarzania

energii lub wykonywania określonej pracy mechanicznej”. Maszyna w sensie tej definicji

Page 5: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

5

spełnia tylko cześć działań produkcyjnych człowieka, których wyrazem jest ruch i siła

(działania energetyczne). Nie obejmuje ona automatyzacji działalności umysłowej, która nie

może być nie uwzględniona przy automatyzacji działalności fizycznej. Maszyna, która byłaby

zdolna do działań energetycznych i intelektualnych jest maszyną w sensie definicji

zaproponowanej w 1963 roku przez I.Artobolewskiego, który określił maszynę jako

„urządzenie techniczne przeznaczone do częściowego lub całkowitego zastępowania funkcji

energetycznych, fizjologicznych i intelektualnych człowieka”. Funkcje energetyczne

rozumiane są tutaj jako zastępowanie pracy fizycznej, funkcje fizjologiczne głównie jako

zastępowanie organów (np. kończyny górnej), a funkcje intelektualne jako interakcyjne

właściwości przy współdziałaniu maszyny z otoczeniem (np. z operatorem lub innym

urządzeniem). W ujęciu tej definicji maszyna jest więc maszyną cybernetyczną.

Jeżeli maszyna jest zdolna do pracy bez udziału człowieka to jest ona automatem. Schemat

struktury automatu pokazano na rys.1.1. Jak widać, automat jest to urządzenie zawierające,

odizolowane od środowiska, przetwornik informacji oraz sztuczne receptory i efektory, w

którym działanie receptorów, jako efekt wpływu otoczenia, wywołuje działanie efektorów,

przy czym odbywa się to bez udziału człowieka. Robot, w sensie cybernetycznym, jest

automatem, w którym strefa pomiarowa i strefa obsługowa przynajmniej częściowo się

pokrywają, tzn. występuje w nim zewnętrzne sprzężenie zwrotne. Strefy obsługowa i

pomiarowa łącznie wyznaczają tzw. otoczenie techniczne robota. Zbiór mechanizmów i

urządzeń nie wchodzących w skład robota tworzy środowisko, w którym pracuje robot.

Środowisko, sam robot i jego otoczenie techniczne pozostają w interakcji, jak ilustruje to

Page 6: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

6

rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem

niedoskonałości izolatorów i jest oddziaływaniem raczej niekorzystnym, w większości

Strefa pomiarowa VP

Strefa obsługowa VO

Przetwornik informacji

Efektor

Receptor

Sygnały sterujące

Sygnały informacyjne Strefa

wpływów otoczenia na robot

Strefa wpływów robota na otoczenie

Środowisko – fizyko­chemiczna przestrzeń wokół robota

Rys.1.1. Struktura systemu oddziaływania automatu z otoczeniem

Izolatory

Page 7: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

7

przypadków wywołującym zakłócenia w pracy robota lub zanieczyszczenie środowiska.

A zatem, tylko otoczenie techniczne jest tą częścią środowiska, która z założeń technicznych

jest obiektem oddziaływania robota i źródłem oddziaływania zewnętrznego na robot.

Przedstawione wyżej określenie robota cybernetycznego odpowiada, jak zostanie to

pokazane poniżej, wyższym generacjom robotów. Większość stosowanych obecnie robotów

są to roboty pierwszej generacji, bez zewnętrznego sprzężenia zwrotnego, które w sensie

cybernetycznym są automatami. W przypadku tych robotów cechą odróżniającą je od

zwykłych automatycznych maszyn jest ich duża funkcjonalność. Cecha ta może być

osiągnięta tylko w przypadku, gdy efektor ma możliwość wykonania różnorodnych ruchów

Robot

Otoczenie techniczne

Środowisko

Rys.1.2. Interakcje w systemie robot­otoczenie­środowisko

Page 8: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

8

i przyjęcia wielu pozycji w strefie obsługowej. Obszar pracy dowolnej maszyny

automatycznej jest ograniczony rozmiarami jej korpusu. Tylko robot, dzięki szczególnej

konstrukcji jego efektorów, może wykonywać pracę w strefie obsługowej, której zasięg

znacznie wykracza poza korpus robota. Przekraczanie przez strefę obsługową powierzchni

zajmowanej przez korpus jest więc również charakterystyczną cechą robotów.

Page 9: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

9

1.2 Definicja robota

Spośród wielu definicji robotów najbardziej zwięzłą jest podana przez A.Moreckiego,

która określa robot jako „urządzenie techniczne przeznaczone do realizacji niektórych funkcji

manipulacyjnych i lokomocyjnych człowieka, mające określony poziom energetyczny,

informacyjny i inteligencji maszynowej (autonomii działania w pewnym środowisku)”.

W całej grupie robotów wyróżnia się roboty przemysłowe. Są to roboty, w których

efektory tworzą manipulator, tj. mechanizm imitujący bardziej lub mniej dokładnie funkcje

ręki człowieka. Przy tym mechanizmem określa się tutaj urządzenie, w którego działaniu

wykorzystuje się procesy fizyczne, będące przedmiotem badań mechaniki jako działu fizyki

(ruch ciał i ich wzajemne oddziaływanie w postaci sił). Manipulator jest więc maszyną

przeznaczoną do wykonywania operacji związanych ze zmianą położenia przedmiotu,

materiału przy jego obróbce lub montażu.

Robot przemysłowy jest definiowany jako urządzenie techniczne przeznaczone do

automatycznej manipulacji z możliwością wykonywania programowalnych ruchów względem

kilku osi, zaopatrzone w chwytaki lub narzędzia i skonstruowane specjalnie do zastosowań

Page 10: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

10

w przemyśle. Należy zwrócić uwagę, że definicja ta nie uwzględnia warunku istnienia

zewnętrznego sprzężenia zwrotnego. Większość robotów przemysłowych są to roboty

pierwszej generacji.

Oddzielną grupę stanowią roboty kroczące, będące urządzeniami technicznymi

przeznaczonymi do realizacji funkcji lokomocyjnych, zbliżonych do funkcji zwierząt i

owadów. Efektorami tych robotów są pedipulatory, czyli jedno­, dwu­ lub trójczłonowe

mechanizmy imitujące kończyny lub odnóża.

Page 11: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

11

1.3 Generacje robotów

Obecnie wyróżnia się cztery generacje robotów.

Roboty pierwszej generacji są to roboty sterowane w układzie otwartym, działające

niezależnie od stanu otaczającego środowiska technicznego. Opis działania robota jest

zdeterminowany (sztywny, ściśle określony). Program działania jest wykonywany

bezwarunkowo. Roboty tej generacji wymagają uporządkowanego i niezmiennego otoczenia.

Mogą one być wyposażone w czujniki śledzenia stanów wewnętrznych (np. w

serwomechanizmach) tzw. sprzężenie wewnętrzne. Sterowanie jest więc realizowane

względem podstawy robota, a roboty są nazywane robotami programowymi.

Roboty drugiej generacji mają czujniki zewnętrzne, tworzące układy sensoryczne

(dotykowe, wizyjne, rzadko inne) do obserwowania otoczenia i wytworzenia zewnętrznego

sprzężenia zwrotnego w sterowaniu. Zdeterminowany jest opis działania robota w częściowo

nieuporządkowanym otoczeniu. Kontrola otoczenia jest realizowana w ściśle określonych

punktach programu. Warunkowe wykonanie programu adaptuje działanie robota do stanu

Page 12: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

12

otoczenia. Sterowanie jest realizowane względem przedmiotu manipulacji. Roboty drugiej

generacji są robotami adaptacyjnymi.

Roboty trzeciej generacji są to roboty z niezdeterminowanym opisem ich działania.

Obok układów sensorycznych mają one elementy sztucznej inteligencji działającej na

podstawie wytworzonego przez czujniki modelu otoczenia. Robot podejmuje decyzje o

sposobie wykonania pracy w otoczeniu, o niezbędnych pomiarach stanu otoczenia, o własnym

zachowaniu się w tym otoczeniu. Zadania dla robota formułowane są w sposób problemowy,

natomiast strategię działania opracowuje sam robot. Sterowanie jest realizowane względem

otoczenia, a roboty tej generacji są nazywane robotami inteligentnymi.

Roboty czwartej generacji to tzw. roboty tworzące systemy, które przez podejmowanie

samodzielnych decyzji o swoim działaniu, przy swobodnym przemieszczaniu się w

środowisku roboczym i dokonywaniu w nim niezbędnych i racjonalnych zmian, mają za

zadanie integrowanie (w sensie nadzorczo­sterującym, transportowym, obsługowym i

technologicznym) maszyn i urządzeń technologicznych w systemy wytwarzające zadany

produkt. Odbywa się to dzięki procesowi technologicznemu, samodzielnie zaprojektowanemu

przez robot i przy użyciu także samodzielnie dobranych materiałów, narzędzi i wyposażenia

technologicznego. Roboty czwartej generacji charakteryzują się adaptacyjnością wtórną tzn.

mają umiejętności dostosowania otoczenia w sposób korzystny dla swojego dalszego

działania. Sterowanie tego typu może być określone jako sterowanie względem

rozwiązywanego problemu. Roboty czwartej generacji nazywane są robotami integralnymi.

Page 13: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

13

1.4 Klasyfikacja robotów

Przedstawione wyżej generacje robotów prezentują klasyfikację robotów z punktu

widzenia zawansowania rozwoju i zakresu funkcji realizowanych przez układ sterowania.

Klasyfikacja robotów może być dokonana również w zależności od przyjętych innych

kryteriów podziału.

Przyjmując kryterium podziału według przeznaczenia, możemy wyróżnić następujące grupy

zastosowań robotów:

• do celów szkoleniowych,

• do badań naukowych,

• do celów przemysłowych,

• do celów badawczych.

Według kryterium sterowania wyróżniamy roboty:

• ze stałoprogramowym sterowaniem dwupołożeniowym (PAP – ang. pick and place – zabierz i umieść), gdzie ruch dla każdej osi ograniczony jest dwoma skrajnymi

położeniami,

Page 14: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

14

• ze sterowaniem punktowym (PTP – ang. point to point – od punktu do punktu), gdzie

ruch robota odbywa się po dowolnym torze między zadanymi punktami,

• ze sterowaniem wielopunktowym (MP – ang. multipoint ­ wielopunktowe), gdzie ruch

robota odbywa się po torze wyznaczonym przez punkty początkowy, pośrednie i

końcowy bez określenia kształtu toru ruchu,

• ze sterowaniem ciągłym (CP – ang. continuous path – ciągła droga), gdzie sterowanie

zapewnia ruch robota po zadanym torze.

Ze względu na rodzaj napędu roboty dzieli się na:

• pneumatyczne,

• hydrauliczne,

• elektryczne,

• z napędem mieszanym.

Ze względu na sposób zainstalowania wyróżniamy roboty:

• stacjonarne,

• zintegrowane z urządzeniem technologicznym,

• z możliwością przemieszczania się po torze jezdnym lub wózku samojezdnym,

• mobilne.

Dla robotów przemysłowych wprowadzono następującą klasyfikację opracowaną przez

Page 15: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

15

Amerykański Instytut Robotów (Robot Institute of America).

1. Roboty programowalne z serwomechanizmami napędowymi o sterowaniu ciągłym.

2. Roboty programowalne z serwomechanizmami napędowymi o sterowaniu

punktowym.

3. Roboty programowalne bez serwomechanizmów napędowych ogólnego

przeznaczenia.

4. Roboty programowalne bez serwomechanizmów napędowych do obsługi maszyn

odlewniczych oraz maszyn do przetwórstwa tworzyw sztucznych.

5. Manipulatory mechaniczne.

Według źródeł japońskich klasyfikacja robotów przemysłowych jest następująca.

A. Manipulatory z ręcznym sterowaniem.

B. Roboty pracujące według sztywnego programu. Kolejność ruchów nie może być w

prosty sposób zmieniona i wymaga ingerencji w strukturę logiczną sterownika.

C. Roboty pracujące według elastycznego programu. Kolejność ruchów robota można w

prosty sposób zmienić dzięki programowalności sterownika.

D. Roboty pracujące przez odtworzenie zapisanej informacji (programu pracy).

Kolejność ruchów jest określana na etapie uczenia robota.

E. Roboty sterowane numerycznie. Robot realizuje ruchy zgodnie z programem

numerycznym podobnym do stosowanych w sterowaniu numerycznym obrabiarek.

F. Roboty ze sztuczną inteligencją. Robot wyposażony jest w system sensoryczny i

charakteryzuje się adaptacyjnością, autonomicznością i samokształceniem.

Page 16: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

16

1.5 Struktura robota

Schemat strukturalny robota pokazano na rys.1.3. Przedstawiono na nim strukturę

funkcjonalną i konstrukcyjną.

Układ sterowania, wydzielony jako całość w strukturze funkcjonalnej, stanowią

urządzenia do poboru, przetwarzania i wydawania informacji potrzebnej do realizacji

programu działania robota. Konstrukcyjnie ta część struktury robota jest rozdzielona na szafę

i pulpit sterowniczy oraz inne urządzenia peryferyjne.

Część manipulacyjna wykonuje ruchy i pracę użyteczną. Do części tej przytwierdzone

są chwytaki i narzędzia, stanowiące wyposażenie technologiczne robota. W aspekcie

funkcjonalnym część tą stanowią układy napędowy i mechaniczny oraz czujniki pomiarowe

zamontowane w tych układach.

Struktura funkcjonalna Układ sterowania

Układ zasilania i napędowy

Układ mechaniczny

Struktura konstrukcyjna

Urządzenia peryferyjne

Szafa i pulpit

sterowniczy Część manipulacyjna

Rys.1.3. Schemat struktury konstrukcyjnej i funkcjonalnej robota

Czujniki

pomiarowe

Wyposażenie

technologiczne

Page 17: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

17

Do układu mechanicznego robota należą korpusy, prowadnice, łożyska, wzajemnie ze

sobą połączone i stanowiące zasadniczy mechanizm szkieletowy robota o określonych

możliwościach ruchowych oraz układ mechaniczny przeniesienia ruchu – przekładnie.

Układ napędowy robota zawiera elementy napędowe, jak silniki i siłowniki oraz

elementy bezpośrednio sterujące napędem, jak urządzenia wzmacniające, rozrządcze oraz

przetworniki pomiarowe, wchodzące w skład serwomechanizmów napędowych. Do układów

napędowych należą również urządzenia zasilania energetycznego, jak zasilacze hydrauliczne

lub pneumatyczne.

Dla każdego stopnia swobody manipulatora potrzebny jest napęd wraz z układem

przekazywania ruchu, umożliwiający zmianę współrzędnych konfiguracyjnych pary

kinematycznej danego stopnia swobody. W zależności od sposobu rozmieszczenia tych

elementów układu mechanicznego manipulatora wyróżniamy dwa rodzaje rozwiązań,

pokazane umownie na rys.1.4.

1. Z rozproszonymi układami napędowymi (rys.1.4a).

2. Ze skupionymi układami napędowymi (rys.1.4b).

Często też spotyka się rozwiązania mieszane, w których część osi ma napędy skupione, a

część rozproszone.

Pierwsze z wyróżnionych rozwiązań umożliwia zastosowanie prostszych zespołów

przekazywania ruchu, natomiast ogniwa łańcucha obciążone są masami układów napędowych

(silników), co często ma istotny wpływ na dynamikę ruchu manipulatora (przyspieszenia i

prędkości ruchu). W tym przypadku konstrukcja par kinematycznych jest mniej

skomplikowana. Rozwiązanie z rozproszonymi napędami jest typowe dla robotów

Page 18: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

18

pneumatycznych i hydraulicznych, gdzie napędy o specyficznej konstrukcji, w postaci

cylindrów o dużej sztywności własnej, są wykorzystywane jako elementy konstrukcyjne

ogniw łańcucha kinematycznego.

Drugie rozwiązanie nie obciąża układami napędowymi ogniw manipulatora, ale jest to

uzyskane kosztem rozbudowy zespołów przekazywania ruchu, które, w skrajnych

przypadkach, rozciągają się na wszystkie ogniwa oraz kosztem rozbudowy par ruchowych.

Rozwiązanie ze skupionymi napędami stosowane jest w większości przypadków

zastosowania napędów elektrycznych.

Rys.1.4. Rozproszony (a) i skupiony (b) sposób zabudowy napędów manipulatora

a) b)

Silnik

Zespół przekazywania

ruchu

Page 19: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

19

1.6 Łańcuch kinematyczny robota

Z punktu widzenia teorii mechanizmów i maszyn manipulator robota jest zespołem

mechanizmów przeznaczonym do wykonania pewnej pracy użytecznej. Mechanizm jest

układem połączonych ze sobą ciał, mogących wykonywać określony ruch względem siebie.

Ciała te, zazwyczaj sztywne, noszą nazwę ogniw mechanizmu. Dwa ogniwa ruchowo ze sobą

połączone tworzą parę kinematyczną, a szeregowy układ połączonych par kinematycznych

tworzy łańcuch kinematyczny manipulatora.

Jak wiadomo ciało sztywne ma w przestrzeni trójwymiarowej 6 stopni swobody, tj. ma

możliwość wykonania sześciu niezależnych ruchów (rys.1.5).

Z

Rys.1.5. Stopnie swobody swobodnego sztywnego ciała

T3

T2 T1

R3

R2

R1

Y

X

Page 20: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

20

Są to trzy obroty i trzy przemieszczenia. Tyle niezależnych ruchów mogłoby wykonać jedno

ogniwo względem drugiego, gdyby nie były one ze sobą połączone. Połączenie stałe dwóch

ogniw odbiera im całkowicie możliwość ruchu względnego, czyli odbiera sześć stopni

swobody. Połączenia ruchowe, zależnie od rodzaju, odbierają od jednego do pięciu stopni

swobody. Rozróżnia się zatem pięć klas par kinematycznych, odpowiednio do ilości więzów

nałożonych na parę kinematyczną. Wszystkie występujące klasy par kinematycznych

zestawiono w tablicy 1.1, gdzie stopień ruchu obrotowego oznaczono literą R, a stopień ruchu

postępowego literą T.W manipulatorach współczesnych robotów powszechnie (choć nie

zawsze) występują pary kinematyczne piątej klasy w postaci par obrotowych i postępowych,

w których jedno ogniwo ma możliwość obrotu lub przesuwu w stosunku do drugiego ogniwa,

względem jednej osi. Dlatego do określenia pary kinematycznej klasy piątej przyjął się termin

oś robota i określenie robot n­osiowy. Oś robota oznacza tu oś obrotu dla pary kinematycznej

obrotowej lub oś przesuwu dla pary kinematycznej postępowej.

Łańcuch kinematyczny ma określoną liczbę stopni swobody wynikającą z liczby ogniw i par

kinematycznych różnych klas, występujących w łańcuchu. Dla łańcucha, w którym jedno z

ogniw końcowych, zwane ostoją, jest unieruchomione, wzór określający ruchliwość, tj.

liczbę stopni swobody łańcucha ma postać:

( ) ∑ =

⋅ − − = 5

1 1 6

i i p i n r (1)

gdzie: n – liczba ogniw, pi – liczba par kinematycznych o klasie i.

Page 21: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

21

Tablica 1.1. Klasy par kinematycznych

Nr klasy Liczba więzów

Liczba stopni swobody

Rodzaje ruchów pary kinematycznej R – obrotowy T – postępowy

Przykład pary

1 1 5 3R2T 2R3T

2 2 4 3R1T 2R2T 1R3T

3 3 3

3R 2R1T 1R2T 3T

4 4 2 2R 1R1T 2T

5 5 1 1R 1T

R R

R

T T

R

T

R

R R

R R T

T

T

R T

R

R

T

T

R T

R

R R

R

R

Page 22: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

22

Łatwo sprawdzić, że dla łańcucha kinematycznego zbudowanego tylko z par kinematycznych

klasy piątej ruchliwość jest równa ilości tych par.

Page 23: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

23

1.7 Układ kinematyczny robota

Struktura robota opisuje możliwości kinematyczne manipulatora, tj. jego możliwości

ruchowe. Ruchy te dla poszczególnych osi uzyskiwane są za pomocą napędów,

przekazujących energię kinetyczną członom ruchowym za pomocą zespołów przekazywania

ruchu. Napędy są więc źródłami energii, natomiast zespoły przekazywania ruchu są to

przekładnie ruchu, niezbędne ze względu na konieczność dostosowania rodzaju i parametrów

ruchu elementów wykonawczych do potrzeb danego zespołu manipulatora.

Struktura robota charakteryzuje się zatem konkretnym układem kinematycznym, który

z kolei jest konkretnym rozwiązaniem konstrukcyjnym. Układ kinematyczny, obok opisu

możliwości ruchowych, przedstawia sposób ich uzyskania za pomocą napędu. Rozwiązanie

konstrukcyjne jest to schemat mechaniczny, który przedstawia fizyczną budowę

manipulatora, czyli jego konstrukcję.

Układ kinematyczny robota ma umożliwić nadanie chwytakowi lub narzędziu,

a ściślej mówiąc układowi współrzędnych związanemu z chwytakiem, określonego położenia

względem układu współrzędnych odniesienia, związanego najczęściej z podstawą robota.

Dla robotów mobilnych, dodatkowo, określa się jego położenie w otoczeniu. Wzajemne

usytuowanie tych trzech układów współrzędnych prostokątnych pokazano na rys.1.6.

Położenie układów współrzędnych określa się przez opisanie przemieszczenia początków

Page 24: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

24

układów i obrót ich osi. Na rys.6 pokazano trzy główne układy współrzędnych robota oraz

układ współrzędnych XoYoZo związany z obiektem manipulacji. W układzie XoYoZo

opisywana jest geometria obiektu manipulacji, a położenie i orientacja układu określa

położenie obiektu manipulacji. Układ prostokątny XwYwZw jest związany z podstawą robota.

Dla robotów stacjonarnych jest to podstawowy układ odniesienia, w którym opisuje się ruch

wszystkich członów manipulatora i położenie obiektu manipulacji.

Rys.1.6. Zastosowanie współrzędnych do opisu położenia robota

Robot

Tor ruchu robota

O

X’

Y’

Z’

Xw

C

Yw

Zw

Ye

Xe

Ze

Ow

Zo

Yo

Xo Obiekt manipulacji

Page 25: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

25

Układ współrzędnych XeYeZe jest układem, który jest przywiązany do centralnego punktu

efektora­chwytaka C (ang. tool center point – TCP). Przebieg przemieszczenia punktu C

tworzy tor ruchu chwytaka robota, a przestrzenne usytuowanie układu XeYeZe odpowiada

jego orientacji. Przy chwytaniu obiektu manipulacji układ chwytaka XeYeZe musi być

zorientowany w stosunku do układu obiektu manipulacji XoYoZo tak, aby spełniony był

warunek uchwycenia obiektu. Gdy robot jest mobilny wówczas jego przemieszczanie się jest

opisane w globalnym układzie współrzędnych X’Y’Z’.

W łańcuchu kinematycznym manipulatora robota wydziela się trzy odcinki, określane

jako zespoły ruchu (rys.1.7):

• lokalnego – fragment łańcucha realizujący działania orientowania i chwytania obiektu

(oznaczenie L). Zespół ten nazywany jest kiścią lub strukturą orientowania.

• regionalnego – fragment realizujący podstawowe działanie manipulatora, tj.

przemieszczenie kiści do zadanego punktu w przestrzeni roboczej (oznaczenie R). Zespół

ten jest nazywany ramieniem lub strukturą pozycjonowania.

•globalnego – fragment realizujący działania lokomocyjne robota (oznaczenie G). Ta część

nazywana jest strukturą przemieszczania.

Aby organ wykonawczy robota osiągnął dowolny punktu w przestrzeni roboczej

potrzebne jest sterowanie trzema osiami ruchu, czyli konieczne są trzy stopnie swobody w

zespole ruchu regionalnego. Natomiast, aby chwytak w osiągniętym punkcie mógł być

dowolnie ustawiony w stosunku do przedmiotu manipulacji, potrzebne jest sterowanie

kolejnymi trzema osiami w zespole ruchu lokalnego. Roboty uniwersalne mają minimum

sześć stopni swobody, które rozdzielone są na stopnie swobody ramienia i kiści, przy czym

Page 26: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

26

kiść ma maksymalnie trzy stopnie swobody. Często, w zespole ruchu regionalnego,

stosowanie są łańcuchy kinematyczne o większej niż trzy liczbie stopni swobody. Tworzona

jest wtedy nadmiarowość ruchowa, która jest korzystna przy niektórych zastosowaniach

robota. Problem nadmiarowości zostanie wyjaśniony dokładniej w dalszej części.

Wydzielone trzy struktury – lokalna, regionalna i globalna – wyznaczają osiągalne

strefy ruchów: odpowiednio strefa lokalna VL, strefa regionalna VR i strefa globalna VG

(rys.1.8). VL jest to obszar osiągany przez chwytak przy realizacji tylko ruchów lokalnych

(ruchów kiści).

R L

G

Tor ruchu robota

Chwytak

Kiść

Ramię

Rys.1.7. Zespoły ruchu układu kinematycznego robota

Page 27: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

27

Przy jednoczesnym ruchu kiści i ramienia wyznaczana jest strefa regionalna VR. Jeżeli

jednocześnie realizowane są ruchy wszystkich trzech struktur, to wyznaczana jest strefa

ruchów globalnych VG równoważna strefie obsługowej VO. Oczywiście dla robotów

stacjonarnych VO≡VR. W tej interpretacji strefa obsługowa VO jest to miejsce geometryczne

punktów członu roboczego robota osiąganych przy pełnym wykorzystaniu zakresów ruchów

we wszystkich parach kinematycznych. Dodatkowo jeszcze określa się strefę roboczą VW, w

której przemieszczają się ogniwa łańcucha kinematycznego robota, a w której nie mogą

znajdować się inne przedmioty ze względu na kolizyjność. Strefa VW nazywana jest też strefą

kolizyjną.

VL VR(VO) VG(VO) VW

Rys.1.8. Osiągalne strefy ruchów robota (VL ⊂ VR ⊂ VG ⊂ VO ⊂ VW)

Page 28: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

28

2 MANIPULATOR

2.1 Współczynniki charakteryzujące manipulator

Zadania, jakie może wykonywać manipulator, są zależne od jego konstrukcji i

ogólnych wskaźników, takich jak np. wymiary strefy obsługowej, udźwig, szybkobieżność,

dokładność i powtarzalność. Do oceny konstrukcji zaproponowano szereg współczynników

charakteryzujących manipulator.

Najprostszym współczynnikiem charakteryzującym poprawność przyjętego

rozwiązania struktury jednostki kinematycznej jest współczynnik, określający objętościowy

udział strefy obsługowej VO w strefie kolizyjnej VW i obliczany ze wzoru

W

O

V V w = , 1 ≤ w (2)

gdzie: VO oraz VW oznaczają odpowiednio objętość strefy obsługowej VO oraz strefy

kolizyjnej VW.

Dane rozwiązanie jest tym lepsze, im większą część strefy kolizyjnej zajmuje strefa

obsługowa, czyli im współczynnik w jest bardziej zbliżony do 1. Ocena taka jest oceną bardzo

przybliżoną i, w związku z tym, wprowadza się szereg innych współczynników,

pozwalających dokładniej ocenić jakość struktury manipulatora.

Ocena możliwości ruchowych manipulatora może być wykonana przy pomocy

współczynników, wyznaczanych na podstawie struktury łańcucha kinematycznego

Page 29: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

29

manipulatora. Jeden z nich został przedstawiony wcześniej – jest to ruchliwość r, określona

liczbą stopni swobody łańcucha kinematycznego względem ogniwa, przyjętego za

unieruchomione (podstawa robota). Drugim, podobnym współczynnikiem, jest manewrowość m, będąca liczbą stopni swobody łańcucha kinematycznego przy zadanym położeniu chwytaka (tj. przy jego unieruchomieniu). Określa on możliwość obejścia ramieniem robota

przeszkód w strefie obsługowej i możliwość wykonania złożonych operacji manipulacyjnych.

Manewrowość można obliczyć ze wzoru:

( ) ∑ =

⋅ − − = 5

1 2 6

i i p i n m (3)

gdzie, jak poprzednio: n – liczba ogniw, pi – liczba par kinematycznych o klasie i. Współczynnikiem, który zależy od parametrów geometrycznych łańcucha

kinematycznego jest wielkość objętości strefy obsługowej VO. Jest to ocena ilościowa jej

własności geometrycznych. Ocena ta jest często nazywana osiągalnością. Największy wpływ

na osiągalność mają długości ogniw, ograniczenia ruchowe w parach kinematycznych oraz

wymiary konstrukcyjne tych par.

Ocena wykonana za pomocą ruchliwości i manewrowości oraz osiągalność jest

znacznie przybliżona i ma stosunkowo niewielkie znaczenie użytkowe. Istotniejsze znaczenie

poznawcze ma współczynnik serwisu kc. Współczynnik ten charakteryzuje możliwość

podejścia chwytaka (końcowego ogniwa) do zadanego punktu strefy obsługowej z różnych

kierunków. Określenie współczynnika serwisu, dla każdego punktu strefy obsługowej, daje

dokładną informację o możliwościach ruchowych manipulatora.

Page 30: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

30

Zbiór możliwych położeń osi chwytaka, przy których jego środek znajduje się w zadanym

punkcie, określa kąt przestrzenny ψc, nazywany kątem serwisu (rys.2.1).

Kąt serwisu określony jest wzorem:

2 n

k c l

F = ψ (4)

gdzie: Fk jest to pole części sfery o promieniu ln=|CK|, które jest zbiorem punktów

swobodnego końca K manipulatora przy uchwyceniu punktu C.

n­1

n

ln

ψc

Fk

VO

C

Rys.2.1. Określenie współczynnika serwisu kc

K

Page 31: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

31

Bezwymiarowa wielkość:

π ψ 4

c c k = , 0 ≤ kc ≤ 1 (5)

nazywana jest współczynnikiem serwisu w punkcie C lub lokalnym współczynnikiem

serwisu. Wartość współczynnika kc może zmieniać się od 0, na granicy strefy obsługowej (gdzie oś chwytaka może mieć tylko jedno położenie), do wartości równej 1 dla punktów tzw.

obszaru 100% lub pełnego serwisu (w tych punktach oś chwytaka może mieć dowolne

położenie­orientację w przestrzeni). Obszar 100% serwisu strefy obsługowej określa się jako

strefę manipulacyjną (strefę pełnej manewrowości). W pozostałej części strefy obsługowej

orientacja chwytaka jest ograniczona w stopniu określonym współczynnikiem serwisu.

Chociaż współczynnik serwisu dobrze opisuje możliwości osiągnięcia danego punktu

w strefie obsługowej, to jednak nie można na jego podstawie stwierdzić, czy jest możliwe, w

tym punkcie, uchwycenie przedmiotu przy danej orientacji chwytaka. Kierunkowe

możliwości charakteryzuje kolejny współczynnik, zwany kierunkowym współczynnikiem

serwisu.

Przy zadanym położeniu kierunku osi chwytaka w strefie obsługowej VO, można

wyróżnić fragment strefy Vα , w którym jest możliwe takie ustawienie chwytaka.

Bezwymiarowa wielkość (rys.2.2):

O V V k α

α = , 0 ≤ kα ≤ 1 (6)

nazywana jest kierunkowym współczynnikiem serwisu. We wzorze tym VO i Vα są to

objętości stref VO i Vα .

Page 32: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

32

Współczynnikiem jakości serwisu przyjęto nazywać średnią wartość współczynnika

serwisu w przestrzeni obsługowej VO lub średnią wartość współczynnika kierunkowego dla

wszystkich możliwych kierunków orientacji:

∫ ∫ α π

= = α d k dV k V

S c O 4

1 1 (7)

Interpretując statystycznie, współczynnik jakości serwisu można uznać za

prawdopodobieństwo tego, że w przypadkowo wybranym punkcie strefy obsługowej efektor

manipulatora może być orientowany w dowolny sposób.

VO

α β

Rys.2.2. Określenie kierunkowego współczynnika serwisu kα

Page 33: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

33

Taka statystyczna interpretacja pozwala powiązać właściwości funkcjonalne manipulatora,

wyrażane serwisem, z prawdopodobieństwem wykonania zadań roboczych.

Współczynniki serwisu dają możliwość jakościowej oceny właściwości

kinematycznych manipulatora oraz pozwalają na optymalizację kinematyki poprzez taki

dobór długości ogniw, położenia osi i rodzaju par kinematycznych, aby uzyskać maksymalne

wartości współczynników. Jednocześnie istnieje ścisła zależność między objętością strefy

obsługowej a łączną długością członów manipulatora. Stosunek objętości VO strefy

obsługowej do objętości sześcianu o boku równym łącznej długości członów ∑ L jest

nazywany współczynnikiem objętości kV i jest określony wzorem:

const L V

p L

V k O

i i

n

i

O V = =

+ ∑

= ∑

=

3 3

1 ) (

(8)

gdzie: Li – długość i­tego ogniwa, pi – konstrukcyjne odsunięcie i­tego ogniwa w parze

obrotowej lub przedział ruchu w i­tej parze postępowej manipulatora o n członach. Współczynnik kV jest miarą efektywności wykorzystania długości członów ze względu na osiąganą strefę obsługową. Dla określonego manipulatora (tzn. dla danych wartości

wymiarów geometrycznych i przedziałów ruchów w parach kinematycznych) otrzymuje się

stałą wartość współczynnika objętości. Maksymalna wartość współczynnika kV jest określona

w przypadku, gdy dla łącznej długości członów manipulatora równej ∑ L za maksymalną

objętość strefy obsługowej przyjmie się kulę o promieniu ∑ L .

Page 34: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

34

Wówczas maksymalna wartość współczynnika objętości wynosi:

1888 , 4 3 4 3

4

3

3

max = = = ∑

∑ π π

L

L k V (9)

Na przykład dla manipulatora 3T (kartezjańskiego), przy takich samych przemieszczeniach w

parach kinematycznych ( ) 1111 , 0

9 1

)] ( 3 [ 3

3

= = + +

= p L p L k V . Dla manipulatora robota PUMA 600

współczynnik objętości 39 , 1 = V k , natomiast dla manipulatora robota Cincinnati Milacron T3

– 23 , 2 = V k .

Współczynnik objętości często podawany jest w postaci normalizowanej, łatwiejszej

do oceny, którą otrzymuje się przez podzielenie współczynnika przez maksymalną jego

wartość:

max V

V Vnorm k

k k = , 1 0 ≤ ≤ Vnorm k (10)

Dla przedstawionych powyżej przykładów wartości współczynnika objętości wynoszą: robot

kartezjański 0265 , 0 = Vnorm k , robot PUMA 331 , 0 = Vnorm k , robot Cincinnati 532 , 0 = Vnorm k . Z

porównania współczynników wynika, że ostatni z manipulatorów ma najlepsze wykorzystanie

długości członów.

Opracowano również inne współczynniki oceny manipulatora, które oparte są na

analizie przyspieszeń lub zdolności wywierania sił przez człon roboczy we wszystkich

kierunkach.

Page 35: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

35

2.2 Nadmiarowość ruchliwości zespołu ruchu regionalnego

Trzy stopnie swobody dla zespołu ruchu regionalnego są wystarczające do tego, aby

chwytak został przemieszczony do dowolnego punktu strefy obsługowej. Jednak niektóre

zadania, jakie ma wykonać manipulator, wymagają dodania do zespołu ruchu regionalnego

dodatkowych stopni swobody, czyli dodania nadmiarowych stopni ruchu. Zagadnienie to

omówione zostanie na przykładzie płaskiego manipulatora z parami obrotowymi.

Na rys.2.3a pokazano przykładowy łańcuch kinematyczny z trzema parami

obrotowymi, będący płaskim manipulatorem o trzech stopniach swobody. W rzeczywistych

konstrukcjach względny ruch ogniw w parach kinematycznych jest ograniczony do

niepełnego kąta, jak to umownie pokazano na rys.2.3b. Tego typu ograniczenie jest nazywane

wewnętrznym i dokładniej zostanie omówione w dalszej części. Nie wnikając w

konstrukcyjne uwarunkowania powodujące zastosowanie takich wewnętrznych ograniczeń,

zauważymy tylko, że mają one wpływ na możliwości ruchowe manipulatora. Na rys.2.3c

pokazano jedno ze skrajnych położeń rozpatrywanego łańcucha kinematycznego, który

przekształca się wówczas w sztywną ramę.

Page 36: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

36

Zewnętrzne ograniczenia, nałożone na łańcuch kinematyczny, również zmieniają

możliwości ruchowe manipulatora. Ograniczenia te powstają w efekcie współdziałania

manipulatora robota z obiektem manipulacji i wynikają z warunków ich współpracy. Na

rys2.4a pokazano ten sam, co poprzednio, manipulator, za pomocą którego należy

przemieścić przedmiot w jego prowadnicach. W przedstawionym na rysunku położeniu

manipulator ma trzy stopnie swobody i tymi ruchami należy sterować, aby przemieścić

chwytak do położenia pokazanego na rys.2.4b. Takie przemieszczenie można wykonać

nieskończenie wieloma sposobami, przy niezależnym sterowaniu przemieszczaniem każdego

z trzech ogniw. Jednak, w momencie gdy chwytak uchwyci przedmiot, ruchliwość całego

układu zmienia się. Chwytak zaciśnięty na przedmiocie tworzy z nim jedno ogniwo, a łańcuch

kinematyczny manipulatora z otwartego przekształca się w zamknięty z jednym stopniem

swobody (ruch wzdłuż prowadnic przedmiotu). W celu przemieszczenia przedmiotu należy

teraz tak koordynować położenia wszystkich trzech ogniw łańcucha manipulatora, aby

realizowany ruch chwytaka odbywał się po linii prostej.

ϕ3

0

1

2

3

ϕ2

ϕ1

a)

0

1

2 3

b)

0 1

2

3

c)

Rys.2.3. Ograniczenia wewnętrzne manipulatora

Page 37: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

37

Obiekt manipulacji może mieć różne formy oraz być w różny sposób położony i

orientowany w przestrzeni. Może nim być narzędzie robocze, przedmiot wyposażenia lub

część maszyny, ogniwo mechanizmu. Każdy przypadek wymaga, aby manipulator robota,

zarówno pod względem własności strukturalnych (liczba stopni swobody) jak również

własności geometrycznych strefy obsługowej, był w stanie zapewnić możliwość wykonania

założonego zadania manipulacyjnego. Zadanie manipulacyjne może być utrudnione z powodu

umieszczenia przedmiotu manipulacji w miejscu trudnodostępnym. Ograniczenia możliwości

uchwycenia przedmiotu mogą powodować przeszkody, jak pokazano to, dla przedmiotu

przesuwanego w prowadnicach, na rys.2.5a lub też mogą pojawiać się przy umieszczeniu

przedmiotu poza strefą manipulacyjną – rys.2.6a. W obu przypadkach nie jest możliwe

uchwycenie przedmiotu. W pierwszym nie ma możliwości dotarcia chwytakiem do

przedmiotu i jego uchwycenia. W drugim przypadku zaciśnięcie chwytaka na przedmiocie

może spowodować usztywnienie układu uniemożliwiając jakikolwiek ruch manipulatora.

1 2

3 1 2

3

a) b)

Rys.2.4. Ograniczenia zewnętrzne manipulatora wynikające z warunków współpracy z przedmiotem manipulacji

Page 38: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

38

1

2

3 1 2

3

4

1 2

3 4

Rys.2.5. Ograniczenia zewnętrzne wynikające z charakteru obiektu manipulacji

a) b)

c)

1

2

3

1

2

4

3

Rys.2.6. Ograniczenie zewnętrzne wynikające z pozycji obiektu manipulacji poza strefą manipulacyjną

a) b)

Page 39: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

39

Zadanie ruchowe, polegające na przemieszczeniu przedmiotu w prowadnicach, w obu

rozpatrywanych przykładach, może być zrealizowane tylko wtedy, gdy zwiększona zostanie

ruchliwość łańcucha kinematycznego manipulatora. Na rys.2.5b pokazano łańcuch

kinematyczny zmodyfikowany przez zamianę jego pierwszego ruchowego ogniwa na

dwuczłonowy fragment. W wyniku otrzymano nadmiarowy łańcuch o czterech stopniach

swobody, który po uchwyceniu przedmiotu (rys.2.5c) tworzy układ o dwóch stopniach

swobody, potrzebnych do przemieszczenia przedmiotu ograniczonego przeszkodami.

Podobnie, w przypadku przedmiotu znajdującego się poza strefą manipulacyjną, taka

modyfikacja wprowadza nadmiarowość ruchową manipulatora, która również umożliwia

przemieszczenie przedmiotu (rys.2.6b).

Nadmiarowością ruchliwości nazywa się różnicę między faktyczną ruchliwością

manipulatora, a minimalną liczbą stopni swobody, konieczną do wykonania konkretnego

zadania ruchowego. Ponieważ do przemieszczenia przedmiotu, w przedstawionych

przypadkach, jest konieczny i zarazem wystarczający zaledwie jeden stopień swobody, więc

nadmiarowość łańcuchów kinematycznych dla przykładowych ograniczeń zewnętrznych jest

równa jedności. Nadmiarowość ruchliwości wprowadzana jest w zespole ruchu regionalnego

manipulatora, ponieważ ta część łańcucha kinematycznego jest przeznaczona do

przemieszczania chwytaka w obszarze strefy obsługowej. W rzeczywistych manipulatorach

przestrzennych spotyka się rozwiązania z nadmiarowością od jednego do kilku stopni.

Page 40: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

40

2.3 Rodzaje stref obsługowych

Liczba osi sterowanych i układ kinematyczny, który umożliwia ich uzyskanie

decyduje o kształcie strefy obsługowej robota. Ze względu na minimalizację zużycia energii,

dąży się do tego, aby przemieszczenia w parach kinematycznych struktury regionalnej

manipulatora były jak najmniejsze. Ten warunek jest spełniony, gdy wymiary struktury

regionalnej są duże, natomiast struktury lokalnej – małe. Kształt strefy obsługowej jest wtedy

zdeterminowany przez strukturę regionalną.

Manipulatory są skonstruowane z ograniczeniami ruchów w połączeniach ruchowych.

Strefy obsługowe w postaci brył obrotowych są ograniczone nie tylko od góry i dołu, ale, w

większości przypadków, mają pionowe niedomknięcie, wynikające stąd, że ze względów

konstrukcyjnych obrót wokół osi pionowej jest realizowany w zakresie mniejszym od kąta

pełnego.

Dla struktury regionalnej o trzech stopniach swobody z parami kinematycznymi klasy

piątej występują cztery rodzaje przestrzeni obsługowych pokazane na rys.2.7. Wprowadzone

zostały tu uproszczenia, stosowane w rzeczywistych rozwiązaniach, polegające na

zredukowaniu kątów skręceń osi połączeń ruchowych do wartości 0 lub 2 π

± oraz przyjęciu

zerowych odsunięć ogniw w parach kinematycznych.

Page 41: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

41

Z Z a) b)

c)

Współrzędne kartezjańskie (x y z) Współrzędne cylindryczne (r ϕ z)

X

Y

C

x

y

z IBM (3T)

C

VERSATRAN (1R2T)

r

ϕ

z

UNIMATE (2R1T)

C r

θ

ϕ

Współrzędne sferyczne (r ϕ θ) Współrzędne torusowe (ϕ z x)

C

ϕ

x

z

ASEA (3R)

Rys.2.7. Rodzaje kształtów stref obsługowych robotów

d)

Page 42: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

42

Pierwszą grupę (rys.2.7a) stanowią roboty 3T, które konstruowane są pod kątem

uzyskania trzech ruchów liniowych (3T). Strefa obsługowa opisywana jest współrzędnymi

kartezjańskimi. Kinematyka tego typu jest charakterystyczna dla robotów pomiarowych.

Umożliwia ona uzyskanie precyzyjnych ruchów, a układy sterowania nie wymagają

generowania złożonego algorytmu obliczeniowego interpolacji. Dodatkową zaletą tej

struktury jest niezależność ruchów dla poszczególnych osi, co ułatwia opis pozycji chwytaka.

Do drugiej grupy (rys.2.7b) należą roboty 1R2T, umieszczone na stałej lub ruchomej

podstawie, przy czym ramię nośne przesuwa się po pionowej kolumnie. Kolumna może

obracać się wokół osi Z. Przy poziomych ruchach ręki ramię teleskopowe wydłuża się lub

skraca, albo całkowicie przesuwa na drugą stronę kolumny. W pierwszym przypadku w

pobliżu osi Z zostaje niewykorzystana przestrzeń, w drugim zaś przy instalowaniu robota

należy liczyć się z wolną przestrzenią, także po drugiej stronie kolumny. Strefa obsługowa ma

kształt cylindryczny.

Trzecią grupę (rys.2.7c) stanowią roboty 2R1T, których ramię nie tylko obraca się,

lecz także pochyla i w ten sposób umożliwia ruch pionowy kiści. Ruch poziomy uzyskuje się

przez wysuwanie ramienia. Zaletą tego rozwiązania jest lepsze usytuowanie strefy

obsługowej, niedogodnością zaś trudniejsze orientowanie kiści (przy zmianie orientacji

położenia ramienia trzeba także zmieniać ustawienie kiści, aby zachować stałe jej

zorientowanie). Strefa obsługowa ma kształt sferyczny.

Do czwartej grupy (rys.2.7d) należą roboty 3R, które konstruowane są pod kątem

uzyskania trzech ruchów obrotowych. Są to tzw. roboty o strukturze antropomorfnej

(gr. anthropos – człowiek i gr. morphe – kształt). Ich zaletą jest zwrotność, możliwość

Page 43: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

43

wykonywania pracy „złamanym” ramieniem w bezpośredniej bliskości osi Z przy podstawie,

jak również podejmowanie przedmiotów za przeszkodami. Strefa obsługowa ma kształt

torusowy.

Często spotykanym układem osi w robotach montażowych jest układ typu SCARA

(ang. selective complianec assembly robot arm – ramię robota montażowego ze zróżnicowaną

podatnością). Poziomo poruszające się ramię ma dwie pionowe osie obrotowe i jedną

pionową oś przesuwną. Taka struktura kinematyki zapewnia duże siły w kierunku pionowym.

Strefa obsługowa ma kształt złożony cylindryczny.

Najbardziej obecnie rozpowszechnione są roboty o strefach obsługowych sferycznych

i torusowych (po ok.30%). Ich udział nadal wzrasta kosztem robotów ze strefami

cylindrycznymi (ok. 25%). Roboty ze strefą obsługową kartezjańską stanowią ok. 20%.

Pozostałe 5% są to roboty o innych kształtach stref obsługowych.

Page 44: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

44

2.4 Wpływ ograniczeń ruchowych na osiągalność

Objętość strefy obsługowej może być ilościową oceną jej geometrycznych

właściwości. Właściwość ta, zwana osiągalnością, zależy od struktury kinematycznej

manipulatora, od wymiarów konstrukcyjnych i ograniczeń ruchowych w parach

kinematycznych. Ograniczenia ruchowe w parze kinematycznej postępowej wynikają z tego,

że nie jest możliwy do zrealizowania nieograniczony ruch w tej parze. Szczególne znaczenie,

dla kształtu strefy obsługowej, mają ograniczenia ruchowe nałożone na pary kinematyczne

obrotowe. Ograniczenia te wynikają z konkretnych rozwiązań konstrukcyjnych napędów par

kinematycznych. Powodują one powstanie niedomknięcia strefy obsługowej. Na przykład w

wyniku ograniczenia kątowego obrotu pary kinematycznej, realizującej obrót robota wokół

osi pionowej dla struktur 3R, 2R1T i 1R2T, pojawia się niedomknięcie strefy obsługowej,

pokazane na rys.2.7.

Ograniczenie strefy obsługowej, wynikające z niepełnego obrotu w obrotowych

parach kinematycznych, może prowadzić do powstania defektów, polegających na

wystąpieniu obszarów niedostępnych dla końcówki manipulatora. Problem ten jest

ilustrowany na rys.2.8, gdzie przedstawiono strukturę 2R.

Page 45: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

45

Dla ogniwa 1, obrót w parze kinematycznej O1 jest ograniczony do kąta ϕ1, dla pary

kinematycznej O2 ograniczenie obrotu wynosi ϕ2. Strefa obsługowa składa się z dwóch

obszarów. Pierwszy z nich obejmuje część wykropkowaną na rys.2.8 i jest to zbiór punktów

osiąganych przy jednej konfiguracji manipulatora. Drugi obszar tworzą punkty, które

Rys.2.8. Ilustracja niedomknięcia strefy obsługowej dla łańcucha 2R

ϕ1

ϕ2

L2

L1

L1+L2 L1−L2

P1

P2

D

1

2

O1

L 2 O

R 2 O

Page 46: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

46

osiągane są przy dwóch konfiguracjach. Ten fragment strefy obsługowej na rysunku jest

oznaczony jako P1 i P2.

W przykładzie przedstawionym na rys.2.8, dobrane parametry manipulatora, w postaci

długości ogniw L1 i L2 oraz kątów obrotu ϕ1 i ϕ2 par kinematycznych, powodują powstanie w

środku strefy obsługowej defektu D w postaci nieciągłości obszaru strefy obsługowej (jest to

fragment obszaru nieosiągalny dla końcówki manipulatora). Nieciągłość strefy obsługowej

można wyeliminować przez odpowiednie korygowanie parametrów manipulatora w procesie

projektowania konstrukcyjnego.

Ograniczenia kątowe dla par kinematycznych obrotowych, obok długości ogniw, mają

decydujące znaczenie przy kształtowaniu osiągalności strefy obsługowej (tj. jej objętości). Na

przykład, dla antropomorfnego manipulatora 3R, pokazanego na rys.2.9, osiągalność strefy

obsługowej zależy od pola powierzchni jej osiowego przekroju. Bezpośrednio osiągalność w

tym przypadku zależy od geometrycznych parametrów łańcucha kinematycznego, które

można zmieniać i obliczać na etapie wstępnego projektowania manipulatora lub

wykorzystywać do porównania różnych struktur i konstrukcji. W przypadku manipulatora 3R

parametrami geometrycznymi decydującymi o objętości strefy obsługowej są długości ogniw

L2 i L3 oraz kąty ustawienia ogniw ψ2, ψ3 i ograniczeń ruchowych w parach obrotowych ϕ2,

ϕ3. Odpowiednie ustalenie tych parametrów może prowadzić do zwiększenia powierzchni

przekroju osiowego i w efekcie do zwiększenia objętości strefy obsługowej.

Page 47: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

47

Rys.2.9. Strefa obsługowa dla łańcucha 3R przy niedomknięciu osi obrotowych

1 2

3 L3

L2

O2

ϕ3 ψ3

ψ2

ϕ2 Z

X O1

R 3 O

L 3 O

Page 48: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

48

2.5 Typy konfiguracji obrotowych par kinematycznych i konfiguracje osobliwe

Występujące dwa typy konfiguracji pokazano na rys.2.10. W zależności od wartości

kąta ψ, określającego położenie danego ogniwa w parze kinematycznej w stosunku do ogniwa

poprzedniego, wyróżnia się konfigurację ψ+ dla ustawienia ogniw przy dodatnich

wartościach kąta ψ i konfigurację ψ− dla ustawienia przy ujemnych wartościach kąta ψ oraz

szczególne ustawienie tzw. konfigurację ψ0 i ψπ, gdy ogniwa ustawione są współosiowo, tzn.

ogniwo 2 jest przedłużeniem ogniwa 1 lub leży na nim.

Rys.2.10. Typy konfiguracji pary kinematycznej obrotowej

O2

O2

ψ2 (dodatni)

ψ2 (ujemny)

Konfiguracja „ψ+”

Konfiguracja „ψ−”

1

2

O1

O3

Konfiguracja „ψ0”

O2

O3

Page 49: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

49

Praktyczne znaczenie ma konfiguracja ψ0, która jest częściej spotykana w manipulatorach

robotów. Położenie manipulatora, w którym wszystkie osie obrotowe znajdują się w

konfiguracji ψ0 określa się jako pozycję robota „sięgającego poza samego siebie”.

Konfiguracje ψ0 i ψπ nazywane są konfiguracjami osobliwymi. Robot znajdując się w

tych konfiguracjach traci co najmniej jeden stopień swobody. Zmiana typu konfiguracji

ogniwa obrotowego jest możliwa tylko przy przejściu przez konfigurację osobliwą. Ruch

manipulatora w pobliżu konfiguracji osobliwych wywołuje znaczny wzrost prędkości osi i

przyspieszeń osi. Wzrost ten może być tak duży, że napędy nie są w stanie wytworzyć

potrzebnych do tego momentów, co uniemożliwia osiągnięcie wysokiej dokładności

odwzorowania toru ruchu. W większości układów sterowania robotami przejście przez

konfigurację osobliwą wykonywane jest więc z silnie zmniejszoną prędkością ruchu po torze.

Innym rozwiązaniem jest zastosowanie strategii obejściowej, użycie której jest możliwe przy

nadmiarowej ruchowo kinematyce manipulatora.

Page 50: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

50

2.6 Wymiar ruchu i ruch monotoniczny

Ruch swobodnego końca łańcucha kinematycznego między dwoma punktami w strefie

obsługowej może być wykonywany po różnych torach, wynikających z wypadkowej ruchów

w poszczególnych parach kinematycznych. Jakość wygenerowanego toru można ocenić na

podstawie umownie przyjętego parametru, jakim może być suma przemieszczeń we

wszystkich parach kinematycznych, biorących udział w tym ruchu. Wielkość całkowitego

przemieszczenia (kątowego lub liniowego) wykonanego w danej parze kinematycznej

będziemy nazywać wymiarem ruchu tej pary. Sumę przemieszczeń we wszystkich parach

kinematycznych, wykonanych przy zadanym ruchu łańcucha kinematycznego nazwiemy

wymiarem ruchu manipulatora dla danego zadania ruchowego. Ruch wykonany między

dwoma punktami strefy obsługowej przy minimalnym wymiarze ruchu będzie określany jako

ekonomiczny.

Zagadnienia związane z ekonomicznością ruchów i ze sposobem ich realizacji w

strefie obsługowej, zostaną omówione na przykładzie płaskiej struktury 2R, pokazanej na

rys.2.11. Zadanie ruchowe polega tu na przemieszczeniu środka chwytaka C od punktu C1 do

punktu C2. Jak widać na rys.2.11b przy zadanych położeniach punktów C1 i C2 możliwe są

dwa początkowe położenia ogniw łańcucha kinematycznego 1 L 2 1 C O O i 1

L2 1 C O O ′ oraz dwa

Page 51: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

51

końcowe 2 R 2 1 C O O i 2

R2 1 C O O ′ . Konfiguracje 1

L 2 1 C O O i 2

R 2 1 C O O należą do typu ψ−,

natomiast 1 L2 1 C O O ′ i 2

R2 1 C O O ′ należą do typu ψ+.

Ponieważ dla rozpatrywanego zadania ważne są tylko początkowe i końcowe

położenia środka C, więc ruch może być wykonany po dowolnym torze. Może to być linia

prosta między punktami C1 i C2 (rys.2.11a). W tym przypadku ruchu punktu C chwytaka

odbywa się po najkrótszej drodze. Nie jest to jednak ruch ekonomiczny. Dowolny tor ruchu

między punktami C1 i C2 może być uzyskany dzięki obrotom w parach kinematycznych O1 i

O2 , na przykład może to być tor przedstawiony linią punktową na rys.2.11b. Uzyskanie

takiego ruchu jest możliwe dzięki odpowiedniemu złożeniu prawych i lewych kątowych

obrotów w parach kinematycznych, przy czym, wyznaczająca wymiar tego ruchu, suma

kątów tych obrotów okazuje się większa od pewnej minimalnej wielkości. W ogólnym

przypadku, przy dostatecznie złożonym torze ruchu, wymiar ruchu może być dowolnie duży.

Jest to zatem jednoznaczne z mniejszą ekonomicznością tego ruchu, który w tej sytuacji

można uznać za źle zorganizowany.

Przyjęcie konfiguracji manipulatora dla punktów C1 i C2 jednoznacznie określa

wielkości wymaganych kątów obrotów ϕ1 i ϕ2 w parach kinematycznych (rys.2.11a). Przy

tym zakładamy, że dla położenia początkowego i końcowego ruchu przyjęto ten sam typ

konfiguracji dla pary kinematycznej obrotowej. Ze zbioru wszystkich możliwych ruchów

manipulatora od punktu C1 do C2 wybierzemy takie, które są realizowane przy

monotonicznych ruchach w obu parach obrotowych. Ruch w parze kinematycznej jest

monotoniczny, gdy odbywa się bez zmiany kierunku. Na przykład może to być ruch

Page 52: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

52

Rys.2.11. Strefa ruchów monotonicznych dla płaskiego manipulatora 2R

C2 O1

C C′ b)

C1

L2

ψ2

ψ1 ϕ1

X

ϕ2

ϕ2 C2

C1

O1

L1

a)

1 C′

L2 O′

R2 O′

R 2 O

L 2 O

2 C′

L 2 O

2 C′

2 C ′ ′ R 2 O

1 C ′ ′ 1 C′

2

1

Page 53: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

53

wykonany przy sterowaniu odcinkowym manipulatora i przemieszczeniu punktu C końcówki

po torze 2 2 1 1 C C C C ′ ′ ′ ′ , pokazanym na rys.2.11a linią punktową. Zbiór wszystkich położeń

swobodnego końca manipulatora (punktu C) tworzy obszar ruchów monotonicznych przy

przemieszczeniu między zadanymi punktami C1 i C2 . Na rys.2.11 obszar ten

zaznaczono wypunktowaniem. Granica 2 1 1 C C C ′ obszaru ruchów monotonicznych

wyznaczona jest przy początkowym obrocie o kąt ϕ2 ogniwa 2 z nieruchomym ogniwem 1 do

punktu 1 C′ , a następnie przy obrocie o kąt ϕ1 ogniwa 1 razem z ogniwem 2 do punktu C2.

Granica 2 2 1 C C C ′ wyznaczona jest przy obrocie o kąt ϕ1 ogniwa 1, a następnie o kąt ϕ2

ogniwa 2. Dla innego położenia punktów C1 i C2 w strefie obsługowej obszar ruchów

monotonicznych będzie inny.

Ruch monotoniczny manipulatora, zawierający się w obrębie obszaru

wypunktowanego na rys.2.11, może być określony wymiarem ruchu, który w tym przypadku

jest minimalny i określony liczbowo zależnością:

WRmin = |ϕ1 |+ |ϕ2 | (11)

Inne przemieszczenia, w których ruch punktu C wykracza poza obszar monotoniczny,

związane są ze zmianami kierunków obrotów w parach kinematycznych, czyli

niemonotonicznością ich ruchów i przez to zwiększeniem wymiaru ruchu manipulatora, który

w tym przypadku wynosi:

WR= i ∑ |∆ϕ1i|+

j ∑ |∆ϕ2j|>WRmin (12)

Page 54: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

54

gdzie: ∆ϕ1i i ∆ϕ2j – elementarne obroty ogniw, odpowiednio w parach kinematycznych O1

i O2, będące składowymi przemieszczeń przy wykonaniu niemonotonicznego ruchu

manipulatora.

Page 55: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

55

2.7 Liczba wariantów struktur kinematycznych robotów

Możliwość tworzenia rozmaitych rozwiązań wykorzystujących pary kinematyczne

klasy piątej (obrotowe i postępowe) w strukturach kinematycznych robotów są bardzo duże.

Teoretyczna liczba struktur łańcuchów kinematycznych z parami klasy piątej (R i T) równa

jest ilości wariacji z powtórzeniami:

( ) f f k s N ⋅ = ∑ (13)

gdzie: s – liczba nierównoległych osi wymiarowych, k – liczba użytych rodzajów par

kinematycznych klasy piątej, f – liczba stopni swobody w strukturze łańcucha

kinematycznego.

Dla struktury przestrzennej s = 3 (trzy osie wymiarowe X, Y, Z), przy użyciu dwóch rodzajów par kinematycznych – obrotowej i postępowej (k = 2) – liczba struktur łańcuchów

kinematycznych o f = 6 stopniach swobody wynosi:

( ) 46656 2 3 6 6 = ⋅ = ∑ N .

Jest to teoretycznie możliwa liczba wariantów uniwersalnego robota o sześciu stopniach

swobody.

Jeżeli rozdzielimy strukturę kinematyczną na lokalną i regionalną otrzymamy:

1. Dla struktury lokalnej (kiść): f = 3, k = 1 (tylko R), s = 3 mamy:

Page 56: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

56

( ) 27 1 3 3 3 = ⋅ = L N wariantów.

2. Dla struktury regionalnej (ramię): f = 3, k = 2, s = 3 mamy:

( ) 216 2 3 3 3 = ⋅ = R N wariantów.

Odpowiednio liczba teoretycznych wariantów robotów wynosi 5832. Jest to bardzo duża

liczba wariantów. Wśród nich jest wiele nieprzydatnych, równoważnych i powtarzających się,

a także nie dających przestrzennych stref obsługowych. Wszystkie te warianty należy

wyeliminować stosując warunki przestrzenności strefy obsługowej.

Ruch jest nazywany przestrzennym, gdy przy braku ograniczeń na współrzędne

punktu C na swobodnym końcu ogniwa łańcucha, opisuje zamkniętą przestrzeń. Z tego

punktu widzenia konieczne i wystarczające warunki przestrzenności strefy obsługowej są

następujące:

1. Dla łańcucha kinematycznego 3T osie par kinematycznych nie mogą być równoległe.

2. Dla łańcucha kinematycznego 1R2T wymaga się, aby osie T były nierównoległe, a oś R

nie była prostopadła do płaszczyzny utworzonej przez osie T.

3. Dla łańcucha kinematycznego 2R1T, jeżeli osie R są równoległe to oś T nie może być

prostopadła do osi R.

4. Dla łańcucha kinematycznego 3R tylko dwie osie R mogą być równoległe.

Na rys.2.12 pokazano przypadki, gdy nie spełnione są powyższe warunki i strefa obsługowa

nie jest przestrzenna.

Page 57: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

57

Struktura 3T

Struktura 1R2T

Struktura 2R1T

Struktura 3R

Rys.2.12. Przykłady struktur regionalnych nie spełniających warunków przestrzenności strefy obsługowej

Page 58: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

58

Dla struktur lokalnych (orientujących) z ogólnej liczby wariantów teoretycznych,

eliminując, zgodnie z warunkiem 4, łańcuchy nie zapewniające przestrzenności ruchu oraz

powtarzające się i nie zapewniające dowolnej orientacji, otrzymujemy ostatecznie trzy

struktury, przedstawione na rys.2.13.

Dla struktur regionalnych, podobna eliminacja nieprzestrzennych struktur, daje

ostatecznie 20 wariantów, przedstawionych na rys.2.14. Na rysunku w postaci tablicy

przedstawiono 12 niepowtarzalnych struktur regionalnych, zapewniających otrzymanie

przestrzennych stref obsługowych. Cztery z tych struktur (1, 5, 7, 11), oznaczone podwójną

ramką, zapewniają otrzymanie takich samych stref obsługowych niezależnie od tego, który z

końcowych członów łańcucha kinematycznego zostanie unieruchomiony. Pozostałe osiem

struktur daje po dwie różne strefy. Ostatecznie mamy 20 topologicznie różnych wariantów

kinematycznych struktur regionalnych. Najczęściej spotykane struktury to 1, 3, 10, 12.

Struktura 12 nazywana jest strukturą antropomorfną.

Rys.2.13. Lokalne struktury orientacji chwytaka

Page 59: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

59

Wymiary ogniw 2 i 3 łańcucha kinematycznego, przedstawione na rys.2.14 jako h2 i h3, mogą być różne i one dopiero określają wymiary strefy obsługowej.

W skrajnych przypadkach ogniwa te mogą mieć zerową długość.

Parametrem, charakteryzującym sztywność statyczną struktury, może być odległość H między osiami pierwszej i trzeciej pary kinematycznej. Może ona być stała lub zmienna.

Dla struktur 10 i 11 H = const i nie zależy od h2 i h3.

Dla struktur 3, 5 i 6 H = const, ale zależy od h2 i h3 : ( ) 3 3 h H = , ( ) 2 6 h H = , ( ) 2 3

2 2 5 h h H + = .

Dla struktur 1 i 7 H = q2­3 = var (gdzie q2­3 jest to względne przemieszczenie ogniwa 3

względem ogniwa 2) i nie zależy od h2 i h3.

Dla struktur pozostałych 2, 4, 8, 9 i 12 H = var i zależy od q2­3, h2 i h3. Łatwo zauważyć, że struktury 2, 3 i 4, odwzorowujące cylindryczną strefę obsługową,

stanowią geometrycznie ekwiwalentne struktury przy h2 = 0. Podobnie struktury sferyczne 5

i 8 są geometrycznie analogiczne przy h3 = 0 lub h2 = h3 = 0, a struktury 6 i 9 przy h3 = 0.

Page 60: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

60

Współrzędne kartezjańskie

Współrzędne cylindryczne

Współrzędne sferyczne

Współrzędne torusowe

TTT TRT TTR i RTT RTR RRT i TRR RRR

1 2 3 5 8 11

4 6 9 12

7 10

Rys.2.14. Struktury regionalne manipulatorów o trzech stopniach swobody h 3

h2

4

3 2 1

1 2

3 4

h2

h3

4

h2

h 3

1 2 3

4

h2

h 3

1 2 3

h2

h 3

1 2 3

4

h2

h 3

1 2 3

4

h2

h 3

1 2 3

4

h2

h 3

1 2 3

4

h2

h 3

1 2 3

4

h2

h 3

2 3

4

1

h 3

h2

4 3

2 1 h2

h 3

2 3

4

1

Page 61: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

61

2.8 Klasy ruchu robotów

Możliwości ruchowe robotów w strefie obsługowej zależą od ilości par

kinematycznych w strukturze manipulatora, od wymiarów ogniw łańcucha kinematycznego

oraz od właściwości napędów. Istnieją różne modele wzajemnego oddziaływania robota i

otoczenia. W strefie obsługowej mogą znajdować się przeszkody, zarówno stacjonarne jak i

ruchome, obiekt manipulowania może być swobodny lub związany z innym obiektem, a robot

może być stacjonarny lub mobilny.

W zależności od charakteru strefy obsługowej i postaci obiektu manipulowania

istnieje sześć klas ruchu robota. Przedstawiono je na rys.2.15. Są to następujące klasy:

Klasa I – przenoszenie swobodnego obiektu w swobodnej strefie obsługowej (bez przeszkód).

Klasa II – przenoszenie po zadanym torze swobodnego obiektu w strefie obsługowej z

przeszkodami zdeterminowanymi.

Klasa III – chwytanie ruchomego obiektu o ruchu zdeterminowanym i przenoszenie go w

strefie bez przeszkód.

Klasa IV – chwytanie ruchomego obiektu o ruchu zdeterminowanym i przenoszenie go w

strefie z przeszkodami.

Klasa V – śledzenie i chwytanie przez robot obiektu ruchomego z niezdeterminowanym

torem ruchu w zdeterminowanej strefie obsługowej z przeszkodami.

Page 62: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

62

Klasa VI – śledzenie i chwytanie przez mobilny robot obiektu ruchomego z

niezdeterminowanym torem ruchu w niezdeterminowanej strefie obsługowej.

Klasy od I do IV dotyczą robotów stacjonarnych, klasy V i VI dotyczą robotów

przemieszczających się przy manipulowaniu przedmiotami lub realizowaniu procesu

technologicznego. Obiekty manipulacji są nieruchome w chwili uchwycenia w klasach I i II.

W tym przypadku mamy do czynienia ze swobodnym obiektem, który nie narzuca ograniczeń

na ruch manipulatora. Tego typu manipulowanie przedmiotem wykonywane jest ruchem

transportowym. W klasach III i IV obiekty manipulacji poruszają się po ściśle określonych

torach i ich uchwycenie wymaga określenia ich położenia w danej chwili. Można to wykonać

obliczeniowo, znany jest tor ruchu obiektu, lub można zastosować wspomagające układy

rozpoznające jego położenie. Jeżeli przedmiot nie jest swobodny i jego uchwycenie narzuca

ograniczenia na ruch manipulatora, tworząc z nim zamknięty łańcuch kinematyczny,

zmniejszający liczbę stopni swobody, lub ruch związany jest z przemieszczeniem po zadanym

torze przy wykonaniu procesu technologicznego, to ruch taki nazywany jest ruchem

roboczym. W przypadku, gdy tor chwytanego obiektu jest niezdeterminowany i nie można

jednoznacznie określić jego położenia, wówczas należy realizować proces śledzenia obiektu,

zgodnie z klasami V i VI. Dla klasy V proces sterowania robotem polega na wyznaczeniu

wektora tropizmu t r i jego minimalizacji. W przypadku klasy VI, ze względu na obecność

ruchomych przeszkód (np. innych robotów), dodatkowo wyznaczany jest wektor ujemnego

tropizmu k r dla każdej ruchomej przeszkody i przez odpowiedni ruch robota utrzymywany

na poziomie co najmniej minimalnej wartości. Tego typu ruchy nazywane są ruchami

śledzącymi.

Page 63: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

63

Klasa I Klasa II

Klasa III Klasa IV

Klasa V

Klasa VI

Rys.2.15. Klasy ruchu robotów

Przeszkody

t r

t r

k r

Page 64: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

64

3 STEROWANIE

3.1 Manipulator jako obiekt sterowania

Informacyjne powiązania pomiędzy elementami struktury funkcjonalnej robota,

operatorem i otoczeniem przedstawiono na rys.3.1.

Operator Sterownik

Wejścia

Wyjścia

Pulpit operatora

Otoczenie

… …

… …

Rys.3.1. Informacyjne powiązania w systemie zrobotyzowanym

Dyspozycje

Sygnały zwrotne

Sterowanie Wizualizacja

Kontrola wykonania

Dyrektywy

Układ sterowania Obiekt sterowania

Operator

Page 65: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

65

W systemie tym wyróżnia się dwa, powiązane ze sobą sprzężeniami, podsystemy: obiekt

sterowania – manipulator z napędami jako organami wykonawczymi oraz układ sterowania –

pełniący funkcję zadajnika układu regulacji położenia robota.

Zadaniem układu sterowania w tym systemie jest:

− zbieranie i przetwarzanie informacji o stanie obiektu,

− określenie, na podstawie modelu matematycznego obiektu, zmian wielkości sterujących,

zapewniających realizację celu postawionego przed obiektem sterowania,

− realizacja sterowania robota poprzez zastosowanie zmian wielkości sterujących,

− dokumentowanie przebiegów zmian wielkości sterujących i stanu obiektu.

Stanem obiektu w danej chwili nazywa się taki zbiór danych o tym obiekcie, którego

znajomość umożliwia wyznaczenie wartości sterujących dla tej chwili. Stan obiektu

przedstawia się najczęściej w postaci wektora, zwanego wektorem stanu, którego elementy

noszą nazwę współrzędnych stanu. W przypadku manipulatora, którego łańcuch

kinematyczny zestawiony jest z par kinematycznych klasy piątej, stan jest opisany wektorem

uogólnionych współrzędnych qi o postaci: ( ) Τ Τ = =

= ) ( q 2 1

2

1

i n

n

i q q q q

q

q

q q

L

M

M , i=1,2, …, n (14)

gdzie: qi – uogólniona współrzędna dla i­tej pary kinematycznej, reprezentująca kąt pomiędzy

Page 66: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

66

ramionami ogniw pary obrotowej R lub przesunięcie w parze kinematycznej postępowej T;

n – liczba par kinematycznych w łańcuchu równa liczbie stopni swobody manipulatora; indeks T – symbol transponowania kolumnowego wektora.

Przy tym zmiany wielkości qi są ograniczone przez techniczne możliwości zmian położenia ogniw w parze kinematycznej, tzn. dla każdej pary określony jest zakres zmian współrzędnej

qi jako:

qi ∈Qi =[qi min , qimax] ( 15 )

gdzie: Qi – jest to zbiór konfiguracji i­tej pary kinematycznej, którego elementami są dopuszczalne współrzędne konfiguracyjne qi . W niektórych manipulatorach ograniczenia

zmian współrzędnych konfiguracyjnych par kinematycznych nie są stałe i zależą od aktualnej

wartości współrzędnej qi­1 poprzedniej pary kinematycznej w łańcuchu, tzn.

qimin = qimin(qi­1) oraz qimax = qi max(qi­1) (16)

Zbiory konfiguracyjne wszystkich par kinematycznych łańcucha pozwalają określić

przestrzeń stanów wewnętrznych jako:

Q=Q1×Q2× …×Qn (17)

Przestrzeń Q nazywana jest również przestrzenią konfiguracyjną manipulatora, a stan

wewnętrzny q opisany współrzędnymi qi jest nazywany stanem konfiguracyjnym

manipulatora.

Aktualny stan konfiguracyjny manipulatora określa jednoznacznie położenie

manipulatora, nie pozwala jednak na opisanie relacji geometrycznych pomiędzy nim a

otoczeniem i obiektami w tym otoczeniu. Analiza takich relacji jest możliwa w przypadku,

gdy aktualne położenia par kinematycznych określone są w układzie współrzędnych

Page 67: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

67

kartezjańskich, związanym z podstawą robota (rys.1.6), w tzw. układzie bazowym lub w

układzie zewnętrznym. Wykorzystując ten układ współrzędnych można stan manipulatora

wyrazić jako wektor b, którego elementami są punkty w przestrzeni kartezjańskiej:

b=(bi) T , i=1,2, … , n (18)

gdzie: bi – punkty określające aktualne położenie kolejnych par kinematycznych w układzie

bazowym. Stan manipulatora opisany w ten sposób jest nazywany stanem bazowym b

manipulatora. Opisy stanu manipulatora w przestrzeni konfiguracyjnej (wewnętrznej) Q i

bazowej (zewnętrznej) B są wzajemnie jednoznaczne. W dalszej części rozważań wektor

stanu manipulatora będzie oznaczany przez x bez wskazywania układu odniesienia.

Zmiana położenia manipulatora, czyli zmiana stanu wewnętrznego jest wymuszana

przez zmienne wejściowe (sterujące) modelu matematycznego obiektu, którymi są uogólnione

siły ui przyłożone do poszczególnych par kinematycznych. Ograniczenia w napędach par kinematycznych określają przedział zmian wielkości wejściowych:

ui ∈Ui =[ui min , uimax] (19 )

przy czym ograniczenia poszczególnych wielkości sterujących zależą nie tylko od położenia

(czyli stanu), ale również od prędkości zmian położenia (czyli pochodnej stanu), tzn.:

uimin = ui min( q q, & ) oraz uimax = uimax( q q, & ) (20)

Wielkość wejściową modelu matematycznego manipulatora można wyrazić jako wektor

uogólnionych sił przyłożonych do każdej pary łańcucha kinematycznego:

u=(ui) T , i=1,2, … , n (21)

Wyjściowymi wielkościami (y), w modelu matematycznym manipulatora, są pozycja

i orientacja efektora w stosunku do otoczenia, które określa się w bazowym układzie

Page 68: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

68

współrzędnych. Możemy zapisać wyjście jako wektor, którego elementami są uogólnione

współrzędne położenia i orientacji chwytaka:

y=(yi) T , i=1,2, … , m (22)

W celu określenia modelu matematycznego manipulatora, jako obiektu sterowania,

rozpatrzymy model elementarnego manipulatora jednoosiowego przedstawionego na rys.3.2.

W układzie tym za pomocą silnika, wytwarzającego moment obrotowy M, przemieszczane jest ogniwo, reprezentowane przez masę skupioną m. Wielkością wejściową układu jest

Rys.3.2. Model elementarnego manipulatora jednoosiowego

m

y

x

r

M

u y

(wejście) (wyjście)

Silnik Przetwornik kąta obrotu

Ogniwo

Page 69: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

69

wielkość u sterująca silnikiem. Wielkością wyjściową, opisującą położenie ogniwa, jest kąt

jego obrotu y. Stan obiektu opisywany jest za pomocą współrzędnej x położenia środka masy ogniwa, a zmiany tej współrzędnej reprezentują zmiany stanu obiektu. Zakładamy, dla

uproszczenia, że ogniwo wykonuje obrót w parze kinematycznej o niewielki kąt.

Moment M silnika jest proporcjonalny do wielkości sterującej u, co można zapisać:

u M ⋅ = a (23)

Jeżeli przyjmie się, że masa skupiona m ogniwa jest położona na promieniu r od osi obrotu ogniwa, to siłę działającą na masę określa zależność:

r M F = (24)

Dla masy skupionej można zapisać zgodnie z zasadą ilości ruchu (druga zasada dynamiki):

x m F & & ⋅ = (25)

Zatem, korzystając z trzech ostatnich zależności, mamy:

r m u x ⋅ ⋅

= a & & (26)

Powyższe równanie różniczkowe drugiego stopnia można zastąpić układem równań

różniczkowych stopnia pierwszego, przyjmując x x = 1 i x x & = 2 . Równoważny układ równań

ma postać:

2 1 x x = & , r m u x ⋅ ⋅

= a 2 & (27)

Zapisując te równania w postaci macierzowej otrzymamy:

Page 70: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

70

u r m x

x x x

dt d

⋅ +

=

a 0

0 0 1 0

2

1

2

1 (28)

które można przekształcić do postaci równania różniczkowego pierwszego stopnia:

Bu Ax x + = & (29)

gdzie:

=

2

1 x x x

− wektor stanu (elementy x są to zmienne stanu),

=

0 0 1 0

A ,

⋅ =

r m a 0

B ,

u = u − wektor wejść.

Do określenia położenia masy skupionej wykorzystamy kąt y obrotu ogniwa, w czasie którego masa skupiona wykona przemieszczenie x:

r x y = (30)

Podobnie jak poprzednio, równanie to można przedstawić jako:

Cx y = (31)

gdzie: y = y − wektor wyjść ,

= 0 1 C r

i, jak poprzednio,

=

2

1 x x x

− wektor stanu.

Wyprowadzone powyżej zależności (30) i (31) określają matematyczny model

manipulatora, jako obiektu sterowania, w postaci systemu dynamicznego opisanego funkcją f przejść systemu i funkcją g wyjścia systemu:

( ) u x, x f = & (32)

( ) x y g =

Page 71: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

71

Postać tych funkcji zależy od sposobu specyfikacji poszczególnych wielkości x, y, u i spełnia

warunki opisu manipulatora wieloczłonowego.

Dla wieloczłonowego manipulatora stan obiektu opisany jest zestawem wielkości

) ( , ), ( ), ( ) ( ) 2 ( ) 1 ( t x t x t x k L i przedstawiony model matematyczny ma postać układu równań

różniczkowych pierwszego rzędu (poniżej, dla skrócenia zapisu, pomija się t, pamiętając, że występują tu funkcje czasu oraz że x & oznacza pochodną względem czasu):

) , , , ; , , , ( ) ( ) 2 ( ) 1 ( ) ( ) 2 ( ) 1 ( 1

) 1 ( p k u u u x x x f x L L & =

) , , , ; , , , ( ) ( ) 2 ( ) 1 ( ) ( ) 2 ( ) 1 ( 2

) 2 ( p k u u u x x x f x L L & = (33)

M

) , , , ; , , , ( ) ( ) 2 ( ) 1 ( ) ( ) 2 ( ) 1 ( ) ( p k k

k u u u x x x f x L L & =

Wybór współrzędnych stanu obiektu może być dokonany na nieskończenie wiele

sposobów. Jeżeli x jest wektorem stanu pewnego obiektu, to wektor k­wymiarowy

(x) w F = (34)

gdzie: F − jest przekształceniem wzajemnie jednoznacznym,

jest również wektorem stanu tego obiektu. W szczególności mamy do czynienia z obiektem

mierzalnym, gdy y=x, tzn. na wyjściu mierzymy stan obiektu. Jeżeli zatem, funkcja g jest

wzajemnie jednoznaczna, wtedy y można również nazwać stanem obiektu.

Aby zapewnić żądany ruch manipulatora, zwykle przed realizacją ruchu, należy

określić jego zachowanie się w każdej chwili czasowej ruchu. Można ten proces obliczeniowy

nazwać planowaniem trajektorii ruchu. Jeżeli można wykonać zaplanowaną trajektorię,

Page 72: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

72

określoną jako ciąg zmian stanu w czasie, tj. ) ( x ) x( t t ∗ = , to istnieje ciąg sterowań w czasie,

tj. ) ( u ) u( t t ∗ = , który zapewnia uzyskanie tej trajektorii. Przy tym ∗ x i ∗ u muszą spełniać

układ równań (33), tj.

( ) ∗ ∗ ∗ = u , x x f & (35)

czyli ∗ x i ∗ u − rozwiązania układu (33).

Planowanie trajektorii ruchu jest związane z realizowaniem zadania sterowania

manipulatorem w przestrzeni bazowej B, które może być sformułowane w sposób

następujący:

Z1: Dany jest punkt początkowy yP =QP i punkt końcowy ruchu yK =BK. Należy zaplanować

trajektorię przemieszczenia manipulatora od yP do yK.

Z2: Dany jest punkt początkowy yP =QP, punkt końcowy ruchu yK=BK oraz trajektoria

zmian wektora wyjściowego ( ) t d y : K P t t t ≤ ≤ , ( ) P P d y y = t , ( ) K K d y y = t . Należy

zaplanować ruch manipulator od yP do yK wzdłuż trajektorii yd .

Z3: Dany jest punkt początkowy yP =QP i punkt końcowy ruchu yK =BK. Należy

przeprowadzić manipulator od yP do yK w sposób optymalny.

Z4: Dany jest punkt początkowy yP =QP i punkt końcowy ruchu yK =BK oraz krzywa f(y) w strefie obsługowej łącząca punkty yP i yK. Należy przeprowadzić manipulator od yP do

yK w sposób optymalny wzdłuż krzywej.

Przedstawione zadania odpowiadają typowym sytuacjom spotykanym w pracy robotów

wykonujących operacje transportu, montażu i operacje technologiczne (np. spawanie,

Page 73: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

73

szlifowanie itp.). Zadania Z1 i Z2 są to, odpowiednio, zadania sterowania punktowego

i ciągłego. Zadania Z3 i Z4 są zadaniami sterowania optymalnego.

Układ sterowania robota musi zapewnić taki ruch robota, który będzie zbliżony do

zaplanowanego nawet przy występujących oddziaływaniach zakłócających, wywołujących

odchylenie stanu x od stanu założonego ∗ x . Załóżmy, że nastąpiło odchylenie od zadanego

stanu o wartość ∆x, czyli:

x x x ∆ + = ∗ (36)

Korektę odchylenia (dążymy do 0 x → ∆ , tj. ∗ → x x ), wywołać można odpowiednią zmianą

wejściowego wektora sterującego o ∆u, czyli:

u u u ∆ + = ∗ (37)

Podstawiając wyrażenia (36) i (37) do pierwszego równania układu (32) otrzymamy:

( ) u u x, x x x ∆ + ∆ + = ∆ + ∗ ∗ ∗ f & & (38)

Zakładając liniowy charakter równania różniczkowego stanu, np. dla równania (29),

otrzymamy:

( ) ( ) ( ) u u B x x A x x ∆ + + ∆ + = ∆ + ∗ ∗ ∗

dt d

u B Bu x A Ax x x ∆ + + ∆ + = ∆ + ∗ ∗ ∗ & & (39)

u B x A x x x ∆ + ∆ + = ∆ + ∗ ∗ & & &

i ostatecznie:

u B x A x ∆ + ∆ = ∆& (40)

Wyznaczając z powyższego równania wartość ∆u mamy:

Page 74: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

74

x AB ­ x B u ­1 ­1 ∆ ∆ = ∆ & (41)

gdzie: ∗ = ∆ x ­ x x .

Wynika z tego, że korektę sterowania zapewnia układ regulacji, w którym na podstawie

modelu dynamicznego obiektu (35), stanu planowanego x * i stanu rzeczywistego x

wyznaczany jest wektor sterujący u. Schemat układu regulacji ze sprzężeniem zwrotnym,

realizujący sterowanie zgodnie z powyższym algorytmem, pokazano na rys.3.3. Jeżeli z

wyrażenia (41) wyznacza się taką wielkość ∆u, przy której 0 x → ∆ , to na podstawie

sterowania u u u ∆ + = ∗ okazuje się, że ∗ → x x , co jest celem pokazanego układu

sterowania.

Obiekt ( ) u x f x , = &

Model dynamiczny ( ) ∗ ∗ ∗ = u x f x , &

∗ u u x

x

u ∆

Wyznaczenie wielkości ∆u

∗ x

∗ x

+ +

Rys.3.3. Sterowanie stanem robota w układzie regulacji ze sprzężeniem zwrotnym

Page 75: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

75

W przypadku realizacji zadania sterowania ciągłego wymagane jest przemieszczenie

punktu C chwytaka po zadanym w programie torze. Ruch taki jest uzyskiwany przez czasowo

dyskretne generowanie dla poszczególnych osi manipulatora, zgodnie z taktem układu

regulacji, pośrednich położeń, które odpowiadają pośrednim punktom na krzywej toru. Proces

generowania tego typu kroków regulacji nazywany jest interpolacją. Kolejne fazy procesu

interpolacji są następujące:

− obliczenie przyrostów ruchu na podstawie punktów pośrednich, które jednoznacznie

opisują krzywą trajektorii ruchu,

− transformacja współrzędnych w celu obliczenia współrzędnych konfiguracyjnych

manipulatora,

− regulacja położenia w poszczególnych osiach.

Obliczenia interpolacyjne związane są z przetwarzaniem danych o stanie

wewnętrznym manipulatora, które przedstawia się w postaci równań kinematyki. W procesie

interpolacji można wyróżnić dwa sposoby wykorzystania tych równań:

− obliczanie współrzędnych bazowych (kartezjańskich, zewnętrznych) na podstawie

współrzędnych konfiguracyjnych (np. zmierzonych) – jest to transformacja prosta,

− obliczanie współrzędnych konfiguracyjnych na podstawie współrzędnych bazowych (np.

otrzymanych z interpolacji) – jest to transformacja odwrotna.

Wykonywanie obliczeń związanych z procesem interpolacji może dotyczyć

przetwarzania danych wyrażonych zarówno we współrzędnych bazowych jak i we

współrzędnych konfiguracyjnych, co pokazano na rys.3.4. W obu przypadkach punkt

Page 76: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

76

początkowy ruchu jest wyrażony we współrzędnych konfiguracyjnych P q , a punkt końcowy

ruchu we współrzędnych bazowych K b . Współrzędne uzyskane w drodze transformacji

wyróżniono zaczernionym kółkiem. Sygnały sterujące ut, jako ciąg wartości określonych

zadanymi położeniami w układach regulacji poszczególnych osi, są formowane na podstawie

ciągu współrzędnych konfiguracyjnych qi, przy czym dla przypadku z rys.3.4a są one

uzyskane w wyniku transformacji wartości bi wyznaczonych przez interpolację, a dla

przypadku z rys.3.4b są one bezpośrednio wynikami obliczeń interpolacyjnych.

Page 77: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

77

Planowanie działań Wizualizacja

Punkt początko­ wy ruchu

Punkt końcowy ruchu

P q

i q

t u t y

t q

bt Przestrzeń stanów bazowych

B

Transformacja

współrzędnych

K b

Przestrzeń stanów konfiguracyjnych

Q

b)

I NTERPOLAC JA K q

Obiekt xt

Rys.3.4. Przetwarzanie danych podczas interpolacji; a) interpolacja we współrzęd­ nych bazowych, b) interpolacja we współrzędnych konfiguracyjnych

Transformacja

odwrotna

Transformacja

prosta

a)

I NTERPOLAC JA

Planowanie działań

Obiekt xt

Wizualizacja

Punkt początkowy ruchu

Punkt końcowy ruchu

P q

P b

i b

i q

t u t y

K b

t q

Przestrzeń stanów bazowych

B

Transformacja

współrzędnych

Przestrzeń stanów konfiguracyjnych

Q

Transformacja

prosta

Transformacja

odwrotna

Transformacja

prosta

bt

Page 78: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

78

3.2 Kinematyka manipulatora

Analitycznym opisem przestrzennego położenia manipulatora, a w szczególności

opisem geometrii ruchu bez uwzględnienia sił i momentów wywołujących ten ruch, zajmuje

się kinematyka. Równania kinematyki manipulatora pozwalają ustalić związki między

wartościami współrzędnych położenia chwytaka w systemie bazowym i konfiguracyjnym.

Zależności te, związane z transformacją współrzędnych, wyznaczają dwa zadania kinematyki:

• zadanie proste kinematyki – przy znanym wektorze współrzędnych konfiguracyjnych

q(t) i zadanych geometrycznych parametrach ogniw określa się położenie i orientację

chwytaka w bazowym systemie współrzędnych;

• zadanie odwrotne kinematyki – przy znanych geometrycznych parametrach ogniw

i przy zadanym, we współrzędnych bazowych, położeniu i orientacji chwytaka

poszukuje się wszystkie możliwe wektory współrzędnych konfiguracyjnych.

Współzależność między tymi dwoma zadaniami kinematyki manipulatora pokazano na

rys.3.5. Proste zadanie kinematyki ma istotne znaczenie przy projektowaniu i analizie

konstrukcji manipulatora. Zadanie odwrotne ma zastosowanie w procesie sterowania robotem,

kiedy określa się ustawienie każdej osi manipulatora na podstawie bazowych współrzędnych

zadających położenie i orientację chwytaka.

Page 79: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

79

Współrzędne konfiguracyjne stanowią system niezależnych współrzędnych

manipulatora (kątowych lub liniowych przemieszczeń w parach kinematycznych), a zadanie

zmiany położenia i/lub orientacji chwytaka jest zwykle formułowane w bazowym układzie

współrzędnych związanych z podstawą robota. Jednolity opis takiej przestrzennej geometrii

manipulatora przedstawili około 1955 roku Denavit i Hartenberg. Zaproponowali oni

zastosowanie jednorodnej macierzy o wymiarze 4H4 do przedstawienia wzajemnego

Współrzędne w przestrzeni konfiguracyjnej Q (wewnętrznej)

Ustawienia osi manipulatora

Współrzędne w przestrzeni bazowej B (zewnętrznej)

Położenie i orientacja chwytaka

Parametry geometryczne

ogniw

Proste zadanie

kinematyki

Odwrotne zadanie

kinematyki

Rys.3.5. Zadania kinematyki manipulatora

Page 80: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

80

przestrzennego położenia ogniw mechanizmu . Tym samym proste zadanie kinematyki

sprowadza się do określenia macierzy przekształcenia, ustalającej związek między

współrzędnymi bazowymi i konfiguracyjnymi. Ponieważ ogniwa mogą wykonywać w

stosunku do współrzędnych bazowych obrót lub przesunięcie, więc dla każdego ogniwa

określa się przynależny mu układ współrzędnych, a przemieszczenie w parze kinematycznej

(tj. położenie ogniwa w stosunku do układu współrzędnych ogniwa poprzedniego) opisuje

jednorodna macierz przekształcenia. W ten sposób jest możliwe przekształcenie

współrzędnych chwytaka manipulatora z układu związanego z ostatnim ogniwem do

bazowego układu.

Struktura jednorodnej macierzy jest przedstawiona na rys.3.6.

W macierzy tej mogą być wydzielone cztery podmacierze: lewa górna podmacierz o

rozmiarze 3H3 stanowi macierz obrotu; górna prawa podmacierz o rozmiarze 3H1 stanowi

macierz obrotu

przekształcenie perspektywy

przesunięcie

skala

4H4

3H3 3H1

1H3

Rys.3.6. Składniki macierzy przekształcenia o rozmiarze 4H4

Page 81: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

81

wektor położenia początku układu obróconego w stosunku do układu absolutnego; dolna lewa

podmacierz o rozmiarze 1H3 zadaje przekształcenie perspektywy; czwarty element

(jednoelementowa podmacierz) jest globalnym mnożnikiem skali. W robotyce elementy

macierzy przekształcenia perspektywy są zerowe, co odpowiada zerowemu przekształceniu

perspektywy, natomiast element skali jest równy 1, to znaczy, że przekształcenie

współrzędnych nie daje zmiany skali. Przy takich założeniach położenie układu

współrzędnych jest reprezentowany za pomocą macierzy kwadratowej postaci:

U =

1 0 0 0 p k j i

gdzie: ( ) T z y x i i i i , , = , ( ) T z y x j j j j , , = , ( ) T z y x k k k k , , = są wersorami osi układu, a p opisuje

położenie początku układu w innym układzie współrzędnych. Taka macierzowa reprezentacja

układu współrzędnych pozwala na łatwy opis jego położenia w innym układzie

współrzędnych. Macierz U opisana w układzie własnym jest diagonalną macierzą

jednostkową, tzn. ( ) T i 0 , 0 , 1 = , ( ) T j 0 , 1 , 0 = , ( ) T k 1 , 0 , 0 = i ( ) T p 0 , 0 , 0 = .

Załóżmy, że układ Ut został przesunięty względem układu U o wektor ( ) T c b a t , , = ,

jak pokazano to na rys.3.7. Położenie początku przesuniętego układu współrzędnych

określone jest położeniem wierzchołka wektora przemieszczenia, a więc parametr p ma

wartości równe współrzędnym wektora przemieszczenia, czyli ( ) T c b a p t , , = = .

Współrzędne wersorów osi przy tym nie zmieniają się. Transformację polegającą na

Page 82: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

82

przesunięciu układu współrzędnych o wektor (abc) można więc przedstawić w postaci

macierzy:

=

1 0 0 0 1 0 0 0 1 0 0 0 1

) , , ( c b a

c b a Trans (42)

Rozważmy przypadek, w którym układ Ur został obrócony o kąt " wokół osi z układu

U, co ilustruje to rys.3.8. W tym przypadku położenie początku układu współrzędnych nie

y

y

z z

x

x

Ut

U

i j k

t

Rys.3.7. Translacja układu współrzędnych

P

a

b

c

yP

xP

zP

zPt

yPt xPt

Page 83: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

83

zmienia się, więc ( ) T p 0 , 0 , 0 = . Natomiast współrzędne wersorów osi obróconego układu Ur

są określone zależnościami:

( ) T r i 0 , sin , cos α α = , ( ) T r j 0 , cos , sin α α − = , ( ) T r k 1 , 0 , 0 =

Macierz obrotu układu współrzędnych o kąt " wokół osi z ma zatem postać:

=

1 0 0 0 0 1 0 0 0 0 cos sin 0 0 sin cos

) , ( α α α α

α z Rot (43)

Podobnie można wyznaczyć macierze obrotu wokół pozostałych osi układu:

jr ir

α α cosα

sinα

—sinα

cosα

x

y x

y

U

U

Rys.3.8. Rotacja układu współrzędnych

Page 84: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

84

=

1 0 0 0 0 cos sin 0 0 sin cos 0 0 0 0 1

) , ( β β β β

β x Rot

− =

1 0 0 0 0 cos 0 sin 0 0 1 0 0 sin 0 cos

) , ( γ γ

γ γ

γ y Rot (44) (45)

Kolejnym złożeniom omówionych transformacji układów współrzędnych odpowiadają

mnożenia ich macierzy. Ta operacja pozwala na przedstawienie dowolnego wzajemnego

przesunięcia i obrotu układów współrzędnych oraz na jednoznaczny opis położenia punktów

względem dowolnego układu.

W przypadku manipulatora robota przedstawione transformacje układów

współrzędnych wykorzystuje się do znalezienia zależności pomiędzy wektorem stanu

manipulatora, a orientacją i położeniem jego efektora w bazowym układzie współrzędnych.

W tym celu każdemu ogniwu Li łańcucha kinematycznego manipulatora przypisujemy jego

własny układ współrzędnych Ei, jak schematycznie pokazano to na rys.3.9.

Oznaczmy przez Ai transformację układu współrzędnych Ei w układ Ei­1

Ai : Ei 6 Ei­1 (46)

Transformacja ta jest nazywana A­macierzą transformacji. Macierz A1 przedstawia pozycję i

orientację ogniwa pierwszego w układzie bazowym Ew, a macierz A2 pozycję i orientację

ogniwa drugiego w układzie współrzędnych przypisanym ogniwu pierwszemu E1. Zatem

złożenie transformacji

T2 = A1 A2

wyraża położenie i orientację drugiego ogniwa w bazowym układzie współrzędnych Ew.

Page 85: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

85

Ostatnie ogniwo Ln, będące efektorem w łańcuchu kinematycznym manipulatora i jego

własny układ En jest jednocześnie układem współrzędnych efektora Ee. Dokonując kolejnych

mnożeń macierzy Ai otrzymamy macierz transformacji

Tn = A1 A2 A3 þ An (47)

wyrażającą położenie i orientację efektora w bazowym układzie Ew. Problem znalezienia

macierzy Tn sprowadza się zatem do znalezienia wszystkich transformacji Ai.

Rys.3.9. Przypisanie układów współrzędnych ogniwom manipulatora

L1

L2

L3 Ln­1

Ln

Ew

E1

E2

E3 En­1

En=Ee

Tn=A1 A2 A3 þ An

A1

A2

A3

An

An­1

Page 86: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

86

3.3 Przykład zrobotyzowanego systemu

Ilustracja podstawowych problemów robotyki zostanie przeprowadzona na

przykładzie prostego systemu montażowego, przedstawionego na rys.3.10. System

zestawiony jest z robota, kamery i skanera laserowego.

Zastosowany robot ma manipulator o czterech stopniach swobody. Schemat

kinematyczny manipulatora pokazano na rys.3.11. Zespół ruchu regionalnego stanowią trzy

pary kinematyczne w układzie RTR. Ta część łańcucha kinematycznego przemieszcza

chwytak w przestrzeni roboczej. Czwarta para kinematyczna – obrotowa – tworzy zespół.

ruchu lokalnego, który zapewnia orientację kątową chwytaka w osi pionowej. Każdy przegub

manipulatora jest napędzany indywidualnym serwonapędem zapewniającym odpowiednie

przemieszczenie w każdej parze kinematycznej. W układzie bazowym położenie punktu

centralnego chwytaka C opisują współrzędne (xyz"), gdzie x, y, z określają współrzędne

punktu C w układzie bazowym, a " jest kątem obrotu chwytaka w stosunku do osi Z. W

układzie konfiguracyjnym położenie ogniw manipulatora opisują współrzędne (Θ1δ2Θ3Θ4),

gdzie stan pierwszego przegubu obrotowego opisuje kąt Θ1, stan drugiego przegubu

Page 87: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

87

translacyjnego opisuje przesunięcie δ2, stan trzeciego i czwartego przegubu obrotowego są to

odpowiednio kąty obrotu Θ3 i Θ4. Te cztery współrzędne są nazywane osiami manipulatora.

Rys.3.10. Przykładowy zrobotyzowany system montażowy

manipulator robota

skaner laserowy

kamera

scena robocza

czujnik sił

czujniki dotykowe

Page 88: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

88

Sterowanie serwomechanizmami odbywa się indywidualnie dla każdej osi, co pozwala

przemieścić i zorientować chwytak w przestrzeni roboczej. W kiści robota wbudowany jest

wieloosiowy czujnik siły. Urządzenie to mierzy wartości reakcji działających na kiść w trzech

osiach (FXFYFZ). Chwytak zbudowany jest z dwóch palców o równoległym ruchu. Na

powierzchni wewnętrznej palców znajdują się czujniki dotykowe. Układ wizyjny systemu

składa się z laserowego urządzenia skanującego, które za pomocą układu dwóch zwierciadeł

może dowolnie regulować kąt padania promienia laserowego na scenę roboczą. Kamera

telewizyjna umożliwia rozpoznawanie przedmiotów oraz, w połączeniu ze skanerem, pozwala

określić położenie plamki promienia laserowego w przestrzeni trójwymiarowej.

Rys.3.11. Schemat kinematyczny manipulatora przykładowego robota

Θ4

Θ3

δ2

Θ1

Zespół ruchu lokalnego

Zespół ruchu regionalnego

C

Page 89: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

89

3.4 Proste zadanie kinematyki. Określenie położenia i orientacji robota

Aby określić położenie i orientację chwytaka w przestrzeni trójwymiarowej bazowego

układu współrzędnych należy przyporządkować prostokątne układy współrzędnych ogniwom

manipulatora. Następnie wykonuje się przekształcenie współrzędnych ogniw w celu

wyznaczenia zależności istniejących między współrzędnymi konfiguracyjnymi (Θ1δ2Θ3Θ4) i

współrzędnymi bazowymi położenia i orientacji chwytaka (xyz"). Położenie współrzędnych

ogniw dla przykładowego robota pokazano na rys.3.12. Należy zwrócić uwagę na to, że

bazowy układ współrzędnych Ew związany jest z przestrzenią roboczą i jest podstawowym

układem przy wyznaczaniu współrzędnych bazowych. Układ E1 związany jest z ogniwem 1 i

może tylko obracać się o kąt Θ1 w stosunku do osi z układu bazowego Ew. Obrót ten jest

uwarunkowany stopniem swobody, który ma para kinematyczna podstawa/ogniwo_1. Układ

E2 związany jest z ogniwem 2. Ponieważ oś pary kinematycznej ogniwo_1/ogniwo_2

umożliwia ruch postępowy, więc układ E2 może przemieszczać się w kierunku osi z układu E1

o wartość δ2. E3 i E4 są układami związanymi z ogniwem_3 i ogniwem_4. Dla tych układów

możliwe są względne obroty o kąty odpowiednio Θ3 i Θ4. Układ współrzędnych efektora Ee

umiejscowiony w punkcie centralnym chwytaka jest wyznaczony przez równoległe

Page 90: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

90

przesunięcie w ujemnym kierunku osi z o wartość konstrukcyjnego odsunięcia chwytaka od

pary kinematycznej ogniwo_3/ogniwo_4.

podstawa

ogniwo_4

z2 z4

ogniwo_1

ogniwo_2 ogniwo_3

chwytak

Ew E1

E2

E3

E4

Ee

zw , z1

y1

yw

xw x1

x2

y2 z3

x3 y3

y4 x4

ze

ye xe

Rys.3.12. Manipulator przykładowego robota klasy RTR

Page 91: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

91

P(xeyeze) P(xwywzw)

P’ C’

Y

X

Z

xw

δ2

l2 l1 h

C

Θ1

Θ3

Θ4

"

z2 y2

x2 y3 z3

x3

z4 y4 x4 ze ye

xe

z1

yw

y1

x1

zw

Rys.3.13. Schemat obliczeniowy manipulatora przykładowego robota

.

Page 92: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

92

Schemat obliczeniowy omawianego manipulatora przedstawiono na rys.3.13. W celu

rozwiązania prostego zadania kinematyki rozpatrzymy punkt P, który w układzie

współrzędnych efektora­chwytaka Ee ma współrzędne xe, ye, ze. W bazowym układzie

współrzędnych Ew punkt ten ma współrzędne xw, yw, zw. Równanie wiążące współrzędne punktu P w tych dwóch układach jest następujące:

=

1 w

w

w

z y x

(A1: E1 6 Ew)(A2: E2 6 E1)(A3: E3 6 E2)(A4: E4 6 E3)(A5: Ee 6 E4)

1 e

e

e

z y x

(48)

gdzie macierze przekształcenia układów współrzędnych ogniw są następujące:

(A1: E1 6 Ew)

Θ Θ Θ − Θ

= Θ =

1 0 0 0 0 1 0 0 0 0 cos sin 0 0 sin cos

) , ( 1 1

1 1

1 z Rot (49)

(A2: E2 6 E1)

δ = δ =

1 0 0 0 1 0 0

0 0 1 0 0 0 0 1

) , 0 , 0 ( 2

2 Trans (50)

(A3: E3 6 E2) ( )

Θ Θ Θ − Θ

= Θ =

1 0 0 0 0 1 0 0 0 0 cos sin

0 sin cos

, ) , ( 3 3

1 3 3

1 3

l

l x Trans z Rot (51)

Page 93: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

93

(A4: E4 6 E3) ( )

Θ Θ Θ − Θ

= Θ =

1 0 0 0 0 1 0 0 0 0 cos sin

0 sin cos

, ) , ( 4 4

2 4 4

2 4

l

l x Trans z Rot (52)

(A5: Ee 6 E4)

− = − =

1 0 0 0 1 0 0

0 0 1 0 0 0 0 1

) , 0 , 0 ( h

h Trans (53)

Macierz transformacji T5 = A1 A2 A3 A4 A5 wyrażona w postaci iloczynu macierzy ma postać:

T5 =

Θ Θ Θ − Θ

1 0 0 0 0 1 0 0 0 0 cos sin 0 0 sin cos

1 1

1 1

δ 1 0 0 0

1 0 0 0 0 1 0 0 0 0 1

2

Θ Θ Θ − Θ

1 0 0 0 0 1 0 0 0 0 cos sin

0 sin cos

3 3

1 3 3 l

Θ Θ Θ − Θ

1 0 0 0 0 1 0 0 0 0 cos sin

0 sin cos

4 4

2 4 4 l

− 1 0 0 0

1 0 0 0 0 1 0 0 0 0 1

h

Po wykonaniu mnożenia macierzy równanie (48) przyjmuje postać:

− δ Θ + Θ + Θ Θ + Θ + Θ Θ + Θ + Θ Θ + Θ + Θ Θ + Θ + Θ − Θ + Θ + Θ

=

1 1 0 0 0 1 0 0

sin ) sin( 0 ) cos( ) sin( cos ) cos( 0 ) sin( ) cos(

1 2

1 1 3 1 2 4 3 1 4 3 1

1 1 3 1 2 4 3 1 4 3 1

e

e

e

w

w

w

z y x

h l l l l

z y x

(54)

Zależność ta opisuje przekształcenie z układu współrzędnych chwytaka do bazowego układu

współrzędnych. Ponieważ położenie chwytaka można opisać współrzędnymi punktu

Page 94: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

94

centralnego C, więc za pomocą podstawienia xe = ye = ze = 0 do równania (54) otrzymujemy

współrzędne chwytaka (XYZ), czyli:

=

− δ

Θ + Θ + Θ Θ + Θ + Θ Θ + Θ + Θ Θ + Θ + Θ Θ + Θ + Θ − Θ + Θ + Θ

=

1 0 0 0

1 0 0 0 1 0 0

sin ) sin( 0 ) cos( ) sin( cos ) cos( 0 ) sin( ) cos(

1 2

1 1 3 1 2 4 3 1 4 3 1

1 1 3 1 2 4 3 1 4 3 1

h l l l l

Z Y X

− δ

Θ + Θ + Θ Θ + Θ + Θ

=

1

sin ) sin( cos ) cos(

2

1 1 3 1 2

1 1 3 1 2

h l l l l

(55)

Jednocześnie można zauważyć, że podmacierz obrotu (patrz również rys.29) w macierzy

transformacji opisuje wynikowy obrót układu Ee w układzie bazowym Ew. Zgodnie z tą

podmacierzą układ Ee jest obrócony w stosunku do układu Ew o kąt Θ1+Θ3+Θ4 względem osi

z będący kątem orientacji chwytaka ". Zatem ostatecznie można przyjąć:

X = l2 cos(Θ1+Θ3) + l1cosΘ1

Y= l2 sin(Θ1+Θ3) + l1 sinΘ1 (56)

Z=δ2 – h

" =Θ1+Θ3+Θ4

Wykorzystując otrzymane wyżej wyniki rozwiązania prostego zadania kinematyki

przykładowego robota można, zgodnie z wartością współrzędnych konfiguracyjnych,

obliczyć położenie i orientację chwytaka w bazowym układzie współrzędnych.

Page 95: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

95

3.5 Odwrotne zadanie kinematyki robota

W procesie sterowania robota zadane w programie pracy współrzędne położenia i

orientacji chwytaka (XYZ") muszą być przekształcone na współrzędne konfiguracyjne

robota (Θ1δ2Θ3Θ4). Za ich pomocą można ustawić osie manipulatora i osiągnąć zadane w

programie położenie i orientację chwytaka. Wyrażenia opisujące zależności współrzędnych

konfiguracyjnych od współrzędnych bazowych wyznacza się przy rozwiązaniu odwrotnego

zadania kinematyki. Dla przykładowego robota odwrotne zadanie kinematyki rozwiążemy

metodą geometryczną. Rozpatrzymy w tym celu geometryczny schemat obliczeniowy

pokazany na rys.3.14.

Zbadamy trójkąt OM’N’. Z twierdzenia cosinusów dla kąta $2 mamy:

( ) 2 1

2 2 2 2

2 1

2 2 cos

l l Y X l l + − +

= β (57)

Jeżeli trzecia oś nie ma ograniczeń na kąt obrotu Θ3, to dla kąta $2 istnieją dwa rozwiązania.

Jeżeli na kąt Θ3 nałożone są ograniczenia, zgodnie z którymi 0#Θ3#B, to dla kąta $2 istnieje

tylko jedno rozwiązanie.

Page 96: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

96

W tym przypadku dla jednego kąta $2 można otrzymać rozwiązanie dla trzeciej osi

manipulatora:

2 3 β − π = Θ czyli ( ) 2 1

2 2 2 2

2 1

3 2 arccos

l l Y X l l + − +

− π = Θ (58)

Rys.3.14. Schemat obliczeniowy odwrotnego zadania kinematyki

M

M’

N

N’

C(XYZ)

Z

X

Y yw

xw

zw

δ2

l2

l1

h O

Θ4 " Θ3

Θ1 $1

$2

ze

xe

ye

Page 97: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

97

Analogicznie, z tego samego trójkąta i z twierdzenia cosinusów dla kąta $1, można zapisać:

2 2 1

2 2

2 1

2 2

1 2

) ( cos Y X l

l l Y X

+

− + + = β (59)

Dla $1 otrzymujemy również jedno rozwiązanie przy wprowadzonym wyżej ograniczeniu

nałożonym na współrzędną konfiguracyjną Θ3. Ponieważ z trójkąta prostokątnego ON’X

mamy:

( ) X Y

= Θ + β 1 1 tan (60)

i wówczas rozwiązanie dla osi pierwszej manipulatora ma postać:

+ β − = Θ X Y arctan 1 1 czyli: ( )

+

+

− + + − = Θ

X Y

Y X l l l Y X arctan

2 arccos

2 2 1

2 2

2 1

2 2

1 (61)

Kąt obrotu w czwartej osi manipulatora można określić z zależności kątowych dla orientacji

efektora, które pokazano na rys.3.15. ( ) 4 3 1 Θ − − Θ + Θ = α . Rozwiązanie dla czwartej osi

manipulatora wynosi:

( ) 3 1 4 Θ + Θ − α = Θ (62)

Rozwiązanie dla drugiej osi, czyli przemieszczenie w tej osi można określić bezpośrednio ze

schematu obliczeniowego (rys.3.14):

h Z + = δ 2 (63)

Page 98: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

98

Ponieważ przykładowy robot ma prosty układ kinematyczny manipulatora to

otrzymane wyżej rozwiązania odwrotnego zadania kinematyki mają postać względnie

prostych wyrażeń. Dla robotów o sześciu i większej liczbie stopni swobody, zadanie okazuje

się bardziej złożone. W zależności od przyjętych podczas projektowania manipulatora

możliwych przemieszczeń, głównie kątowych w obrotowych parach kinematycznych, może

zaistnieć sytuacja, gdy współrzędne konfiguracyjne mogą okazać się nie jedynymi dla

otrzymania tych samych wartości położenia i orientacji efektora. Wynika to z

niejednoznaczności rozwiązania odwrotnego zadania kinematyki. Pozostaje zatem do

rozstrzygnięcia trudny problem wyboru jednej konfiguracji położenia osi manipulatora

spośród wielu rozwiązań.

rzut osi ogniwa 3

rzut osi ogniwa 2

yw

xw

x4 2 xe

Θ1

Θ3 Θ4

"

Rys.3.15.Schemat kątowych zależności dla przykładowego robota

(x3’)

(x2’)

Page 99: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

99

3.6 Dynamika robotów

W dynamice rozpatruje się równania ruchu, które opisują parametry ruchu

manipulatora i związane z nim siły i momenty napędowe lub siły zewnętrzne przyłożone do

manipulatora. Równania ruchu są wyrażane przez układ równań różniczkowych, opisujących

związki między wejściowymi wielkościami sterującymi i wyjściowymi parametrami ruchu.

Należy zwrócić uwagę, że zależności wejściowych i wyjściowych parametrów opisane

równaniami różniczkowymi są zaledwie przybliżonym wyrażeniem charakterystyk

dynamicznych. Ze zwiększeniem dokładności odwzorowania następuje wzrost złożoności

równań różniczkowych. Często może to prowadzić do zwiększenia czasu obliczeń i

powodować sytuację, w której łatwo utracić sens rozwiązywanego problemu. Dlatego przy

wyprowadzaniu równań różniczkowych należy, w miarę możliwości je upraszczać i stosować

aproksymację w takim zakresie, aby charakterystyki dynamiczne rzeczywistego ruchu były

odwzorowane w sposób zadowalający.

W analizie dynamiki manipulatorów rozpatruje się dwa zadania.

• zadanie proste dynamiki – dany jest punkt trajektorii ruchu, prędkość oraz

przyspieszenia, a wyznacza się wektory sił i momentów napędowych;

Page 100: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

100

• zadanie odwrotne dynamiki – dany jest wektor sił i momentów napędowych, a

wyznacza się położenie, prędkość i przyspieszenia (wyznacza się ruch manipulatora

będącego pod działaniem sił i momentów napędowych).

Stosuje się dwie metody opisu dynamiki manipulatorów: Newtona­Eulera i Lagrange’a.

Równania Newtona­Eulera wynikają bezpośrednio z drugiego prawa dynamiki Newtona,

które opisuje dynamikę układu w zależności od przyłożonych sił i momentów sił. Równania

Lagrange’a opisują właściwości dynamiczne układu w zależności od energii kinetycznej

i potencjalnej, wyrażonych w funkcji współrzędnych konfiguracyjnych.

Pierwszym krokiem w kierunku zapisu równań Lagrange’a II rodzaju jest przyjęcie

chwilowego położenia manipulatora (kąty obrotu lub przesunięcia w przegubach), które

przedstawione jest współrzędnymi uogólnionymi n q q q , , , 2 1 K i ich pochodnymi względem

czasu, będącymi uogólnionymi prędkościami n q q q & K & & , , , 2 1 . W chwili t stan manipulatora jest

zatem opisany parą wektorów ( )t t q q & , , gdzie: ( ) ( ) ( ) ( ) T n t t q t q t q q , , , 2 1 K = ,

( ) ( ) ( ) ( ) T n t t q t q t q q & K & & & , , , 2 1 = . Jeżeli określimy całkowitą energię kinetyczną E i potencjalną V

układu, wówczas można wprowadzić pojęcie funkcji Lagrange’a (potencjału kinetycznego) w

postaci:

( ) ( ) ( )t t t t q V q E q q L − = & & , (64)

Dynamiczne równania ruchu zapisuje się następująco:

i i i

u q L

q L

dt d

=

∂ ∂

∂ ∂ &

(65)

Page 101: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

101

gdzie: ui – jest uogólnioną siłą odpowiadającą uogólnionemu przemieszczeniu qi . Siła ta

może być określona przez wyznaczenie pracy przygotowanej wykonanej przez siły czynne

(niezachowawcze) działające na układ. Przyjęto, że w połączeniach ruchowych działają siły i

momenty napędowe.

Energia kinetyczna członu i przedstawiona jest następującym wyrażeniem:

2 2

2 1

2 1

i i i i i J v m E ω + = (66)

gdzie: mi – masa członu, vi – prędkość liniowa członu, Ji – moment bezwładności, określony

względem prostej przechodzącej przez środek masy i wyrażony w układzie bazowym, ωi –

prędkość kątowa członu.

Pierwszy składnik powyższego wzoru oznacza energię kinetyczną ruchu postępowego z

prędkością środka masy, drugi jest energią kinetyczną ruchu obrotowego. Całkowita energia

kinetyczna manipulatora jest sumą energii kinetycznych poszczególnych członów:

∑=

= n

i i E E

1 (67)

Energia potencjalna członu i jest wyrażona jako:

i i gh m V = (68)

gdzie: g – przyspieszenie ziemskie, hi – wysokość środka masy członu od zerowego poziomu odniesienia energii potencjalnej.

Page 102: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

102

Całkowita energia potencjalna manipulatora jest sumą energii potencjalnej poszczególnych

członów:

∑=

= n

i i V V

1 (69)

W formalizmie Newtona­Eulera, odwrotnie jak w formalizmie Lagrange’a

manipulator traktuje się nie jako całość, lecz każdy człon jest traktowany oddzielnie i dla

każdego członu zapisywane jest równanie opisujące jego ruch postępowy i obrotowy.

Ponieważ każdy człon jest połączony z innymi członami, równania opisujące ten człon

zawierają sprzężenia od sił i momentów, które pojawiają się także w równaniach opisujących

sąsiednie człony. Siłę F, działającą w środku masy ciała i wywołującą ruch z przyspieszeniem

sm v & określa się równaniem Newtona:

sm v m F & = (70)

Moment M, który musi być wywierany na człon manipulatora, aby wywołać jego ruch obrotowy z przyspieszeniem kątowym ω & , jest dany przez równanie Eulera:

ω × ω + ω = sm sm I I M & (71)

gdzie: Ism – oznacza tensor bezwładności członu, określony w układzie o początku w jego środku masy.

Po obliczeniu przyspieszenia liniowego środka masy oraz prędkości i przyspieszenia

kątowego członu, określonych w układzie tego członu, można według równań (70) i (71)

obliczyć siłę i moment bezwładności. Obliczenie sił i momentów napędowych w

połączeniach ruchowych członów manipulatora można wykonać pisząc równania równowagi

Page 103: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

103

sił i momentów, działających na każdy wydzielony człon. Równania te uzupełnia się o siły i

momenty sił bezwładności. Ponieważ są one określone w układzie związanym z danym

członem, więc również siły i momenty sił oddziaływań członów sąsiadujących powinny być

określone w tym samym układzie. Równania równowagi sił i momentów sił działających na

człon i zapisane w układzie tego członu są następujące:

i i i i i i i R B R F , 1 , 1 , 1 + + − ⋅ − =

i i i i i i i smi i i i i i i i R B p F r M B M M , 1 , 1 , 1 , 1 , 1 , 1 + + + + + − ⋅ × − × − ⋅ − =

gdzie: Bi+1,i – macierz przemieszczenia układu członu i+1 względem układu członu i,

rsmi – wektor położenia środka masy członu i względem początku jego układu, pi+1,i – wektor położenia początku układu członu i+1 względem początku układu

członu i, Ri+1,i Mi+1,i ­ siła i moment siły oddziaływania członu i+1 na człon i,

Ri–1,i Mi–1,i ­ siła i moment siły oddziaływania członu i–1 na człon i. Równania (72) można przekształcić do postaci umożliwiającej sekwencyjne wyznaczanie sił i

momentów sił oddziaływania zaczynając od ostatniego członu n w łańcuchu kinematycznym manipulatora:

i i i i i i i F R B R + ⋅ = + + − , 1 , 1 , 1

i i i i i i i i smi i i i i i i M R B p F r M B M + ⋅ × + × + ⋅ = + + + + + − , 1 , 1 , 1 , 1 , 1 , 1

(72)

(73)

Page 104: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

104

Jeżeli na człon ostatni (roboczy) n nie działają żadne niepotencjalne siły zewnętrzne, to

0 , 1 = + n n R i 0 , 1 = + n n M . Jeżeli natomiast człon roboczy działa na otoczenie, to siła n n R , 1 +

i moment n n M , 1 + są niezerowe.

W celu wyznaczenia sił i momentów napędowych wykorzystuje się następujące zależności:

dla pary przesuwnej siła napędowa wynosi i i i i R e u , 1 − = ,

dla pary obrotowej moment napędowy wynosi i i i i M e u , 1 − = ,

gdzie: ei – wersor osi pary kinematycznej. Zależności powyższe wskazują, że siły i momenty napędowe w manipulatorze równoważą

składowe w kierunku osi pary, natomiast pozostałe składowe są przenoszone przez elementy

konstrukcyjne pary. Wszystkie siły i momenty napędowe można ująć razem w postaci

n­wymiarowego wektora:

( ) T n u u u U K 2 1 = (74)

Zależność między siłami i momentami napędowymi, a siłami i momentem sił zewnętrznych

przyłożonymi do członu roboczego określa się równaniem:

F J U T = (75)

gdzie: [ ] T n n n n M R F , 1 , 1 + + = ,

J – macierz o wymiarach n × 6 , zwana jakobianem manipulatora, która określa

różnicę między różniczkowymi przemieszczeniami w parach ruchowych i różniczkowymi

przemieszczeniami członu roboczego.

Page 105: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

105

Występujące siły i momenty napędowe nie uwzględniają sił ciężkości lub innych sił poza

tymi, które są przyłożone do członu roboczego w wyniku oddziaływania na otoczenie.

Jako przykład rozpatrzymy, pokazany na rys.3.16 manipulator o dwóch stopniach

swobody. Do opisu dynamiki tego manipulatora użyjemy formalizmu Lagrange’a.

Dane są momenty bezwładności J1, J2 względem osi przechodzącej przez środek ciężkości poszczególnych ogniw oraz ich masy m1, m2 skupione w punktach. Współrzędnymi

konfiguracyjnymi manipulatora są obrót pierwszego ogniwa o kąt Θ1 oraz wysunięcie

drugiego ogniwa na odległość q2. Załóżmy, że ruch manipulatora odbywa się w pionowej

płaszczyźnie. Zmiany współrzędnych konfiguracyjnych uzyskuje się dzięki napędom

dostarczającym uogólnionych sił ri – momentu dla wykonania obrotu Θ1 i siły do wykonania

x V= 0

q2

l1

Θ1

m1,J1

m2,J2 g

Rys.3.16. Manipulator dwuczłonowy RT

O

y

u1

u2

Page 106: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

106

przemieszczenia q2 (dokładniej Fi = ari – przyjmujemy dla uproszczenia a = 1). Położenie

środków ciężkości ogniw (x1y1) i (x2y2) można przedstawić następująco:

( ) ( ) 1 1 1 1 1 1 sin ; cos ; Θ Θ = l l y x

( ) ( ) 1 2 1 2 2 2 sin ; cos ; Θ Θ = q q y x

Dla prędkości ruchu środków ciężkości ogniw będziemy mieli:

( ) ( ) 1 1 1 1 1 1 1 1 cos ; sin ; Θ Θ Θ Θ − = & & & & l l y x

( ) ( ) 1 1 2 1 2 1 1 2 1 2 2 2 cos sin ; sin cos ; Θ Θ + Θ Θ Θ − Θ = & & & & & & q q q q y x

Energia kinetyczna dla ogniwa pierwszego wynosi:

( ) ( ) 2 1 1

2 1 1

2 1 1

2 1

2 1 1

2 1 1

2 1

2 1 1 1 2

1 2 1

2 1

2 1

2 1

Θ + = Θ + Θ = Θ + + = & & & & & & J l m J l m J y x m E (78)

Energia kinetyczna dla ogniwa drugiego wynosi:

( ) ( ) ( ) [ ] = Θ + Θ Θ + Θ + Θ Θ − Θ = Θ + + = 2 1 2

2 1 1 2 1 2

2 1 1 2 1 2 2

2 1 2

2 2

2 2 2 2 2

1 cos sin sin cos 2 1

2 1

2 1 & & & & & & & & J q q q q m J y x m E

( )+ Θ Θ Θ + Θ Θ + Θ + Θ Θ Θ − Θ Θ + Θ = 1 1 1 2 2 1 2 2

1 2 2 1

2 2 2 1 1 1 2 2 1

2 2 1

2 2 1

2 2 2 2 cos sin 2 cos sin cos sin 2 sin cos

2 1 & & & & & & & & q q q q q q q q m

= Θ + 2 1 2 2

1 & J

( ) 2 2 2

2 1 2

2 2 2

2 1 2

2 1

2 2 2

2 2 2 2

1 2 1

2 1

2 1

2 1 q m J q m J q m q m & & & & & + Θ + = Θ + Θ + = (79)

Całkowita energia kinetyczna:

( ) 2 2 2

2 1

2 2 2

2 1 1 2 1 2 1 2

1 2 1 q m q m l m J J E E E & & + Θ + + + = + = (80)

(76)

(77)

Page 107: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

107

Energia potencjalna pierwszego ogniwa:

1 1 1 1 1 1 sinΘ = ⋅ = gl m y g m V (81)

Energia potencjalna drugiego ogniwa:

1 2 2 2 2 2 sinΘ = ⋅ = gq m y g m V (82)

Całkowita energia potencjalna:

( ) 1 2 2 1 1 2 1 sinΘ + = + = g q m l m V V V (83)

Uogólnione siły u1 i u2 wywołują przemieszczenia w parach kinematycznych δΘ1 i δq2.

Wykonywana jest przy tym praca u1δΘ1 + u2δq2, którą można przedstawić w postaci różnicy

( ) ( ) 1 2 2 1 1 2 2 2

2 1

2 2 2

2 1 1 2 1 sin

2 1

2 1

Θ + − + Θ + + + = − = g q m l m q m q m l m J J V E L & & (84)

W efekcie można sformułować następujące równania Lagrange’a:

dt d

1 1 1

u L L =

Θ ∂ ∂

Θ ∂ ∂ &

dt d

2 2 2

u q L

q L

= ∂ ∂

∂ ∂ &

Odpowiednie pochodne mają następującą postać:

( ) 1 2 2 1 1 1

cosΘ + − = Θ ∂ ∂ g q m l m L (86)

( ) 1 2 1 2 2

2 sinΘ − Θ =

∂ ∂ g q m q L & (87)

(85)

Page 108: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

108

( ) 1 2 2 2

2 1 1 2 1

1

Θ + + + = Θ ∂ ∂ & & q m l m J J L (89)

2 2 2

q m q L

& &

= ∂ ∂ (90)

dt d ( ) 1 2

2 2 2 1 1 2 1 1 2 2 2

1 2 Θ + + + + Θ =

Θ ∂ ∂ & & & & & q m l m J J q q m L (91)

dt d

2 2 2

q m q L

& & &

=

∂ ∂ (92)

Podstawiając, otrzymujemy równania Lagrange’a dla dwuczłonowego manipulatora:

( ) ( ) 1 1 2 2 1 1 1 2 2 2

2 1 1 2 1 1 2 2 2 cos 2 u g q m l m q m l m J J q q m = Θ + + Θ + + + + Θ & & & &

( ) 2 1 2 1 2 2 2 2 sin u g q m q m = Θ − Θ − & & &

Powyższe dynamiczne równania ruchu umożliwiają analizę zadania prostego i odwrotnego

dynamiki. Z pierwszego równania otrzymano matematyczny opis momentu jaki należy

przyłożyć do członu pierwszego, natomiast z drugiego równania otrzymano opis siły jaką

należy zastosować dla członu drugiego.

Przekształcając równania Lagrange’a do postaci:

( ) ( ) 1 2 2 1 1 1 1 2 2 2 1 2 2 2

2 1 1 2 1 cos 2 Θ + − = Θ + Θ + + + g q m l m u q q m q m l m J J & & & &

1 2 2 2 1 2 2 2 2 sinΘ − = Θ − g m u q m q m & & &

(93)

(94)

Page 109: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

109

możemy je przedstawić w zwartej macierzowej formie:

( ) ( ) ( ) Q B U Q Q A Q Q W − = + & & & , (95)

gdzie:

Θ =

2

1

q Q

=

2

1

u u

U ( )

Θ − Θ

= 2 1 2 2

1 2 2 2 2 ,

&

& & & q m q q m Q Q A ( ) ( )

Θ

Θ + =

1 2

1 2 2 1 1

sin cos

g m g q m l m

Q B

Z wyrażenia tego widać, że równanie ruchu, w którym jako zmienną przyjęto parametr Q, jest

dość złożonym nieliniowym równaniem różniczkowym. Ponieważ ( ) Q W jest dodatnią stałą

wielkością, to dla niej istnieje macierz odwrotna ( ) 1 − Q W . Jeżeli obie strony równania (95)

pomnożymy przez ( ) 1 − Q W i przeprowadzimy odpowiednie przekształcenia, to otrzymamy

następujące wyrażenie:

( ) ( ) ( ) ( ) ( ) U Q W Q B Q W Q Q A Q W Q 1 1 1 , − − − + + − = & & & (96)

które jest równaniem różniczkowym drugiego rzędu postaci: ( ) U Q Q H Q , , & & & = .

Jeżeli dla [ ] T q Q 2 1 Θ = przyjąć: 1 1 Θ = x , 1 2 Θ = & x , 2 3 q x = , 2 4 q x & = i [ ] T x x x x X 4 3 2 1 =

to można otrzymać:

( )

( )

=

U X H x

U X H x

x x x x

dt d

,

,

2

4

1

2

4

3

2

1

(97)

Page 110: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

110

Można uważać, że prawa strona tego równania jest funkcją ( ) U X f , i zapisać to wyrażenie w

postaci:

( ) U X f X dt d , = (98)

która jest analogiczna wyrażeniu (32). Zatem dla dowolnego przestrzennego manipulatora

równanie ruchu przedstawione w ogólnej postaci można zapisać jak (98). Dlatego przy

analizie zagadnień teorii sterowania można używać tego równania.

Page 111: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

111

3.7 Serwomechanizm napędowy

Manipulator jest wieloogniwowym mechanizmem, którego człony ustawiane są za

pomocą systemu śledzącego do określonego (zadanego) położenia. W ten sposób realizowane

jest sterowanie położeniem i orientacją efektora. Schemat systemu śledzącego, zwanego

serwomechanizmem napędowym pokazano na rys.3.17.

C/A

A/C Program śledzący

Ustawienie osi ΘR

(wielkość zadająca) iw i i

Θ Θ

1:n

Θw

ogniwo

potencjometr pomiarowy

wzmacniacz silnik prądu stałego

przekładnia

Rys.3.17. Schemat serwomechanizmu napędowego obrotowej osi manipulatora

Θ

Page 112: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

112

Napęd ogniwa jest otrzymywany z silnika prądu stałego przez przekładnię o przełożeniu 1:n.

Moment napędowy M silnika jest proporcjonalny do natężenia prądu płynącego w wirniku. Wielkość tego prądu iw jest określana przez program śledzący na podstawie zadanej wielkości

przemieszczenia kątowego ogniwa ΘR, przetworzona do postaci analogowej i wzmocniona.

Zakładając, że zasilanie silnika jest realizowane za pośrednictwem idealnego wzmacniacza

prądu, moment obrotowy na wale wyjściowym silnika może być określony w sposób

następujący:

Wi k i k M S w S = = (99)

gdzie: kS – współczynnik momentu obrotowego silnika; i – prąd sterujący;

W– współczynnik wzmocnienia wzmacniacza prądowego.

Rozpatrzymy problem sterowania napędem śledzącym posługując się następującymi

oznaczeniami: Jm – moment bezwładności wirnika silnika;

Jo – moment bezwładności obciążenia; Mo – moment obciążenia;

Θ – kąt obrotu wału wyjściowego równy kątowi obrotu ogniwa;

P – siła działająca w punkcie zazębienia przekładni; n – wartość przełożenia przekładni; r – promień podziałowy przekładni.

Page 113: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

113

Równania ruchu wynikające z równowagi momentów dla dwóch osi (rys.3.17) mają postać:

r P M J w m ⋅ − = Θ & &

o o M r n P J − ⋅ ⋅ = Θ & &

Uwzględniając zależność (99) i przyjmując, że Θ ⋅ = Θ n w równanie pierwsze, po obustronnym

podzieleniu przez n, oraz równanie drugie, po podzieleniu przez n 2 , przyjmują postać:

n r P i

n W k J S

m ⋅

− ⋅ = Θ & &

2 2 n M

n r P

n J o o −

⋅ = Θ & &

Dodając stronami mamy:

2 2 n M i

n W k

n J J o S o

m − ⋅ = Θ

+ & & (102)

Układ śledzący pozycjonowania, zapewniający proporcjonalne i różniczkowe regulowanie napędu,

jest objęty pętlą sprzężenia zwrotnego tak, aby wejściowy sygnał sterujący i określony był zależnością:

q k q k i V P & ⋅ + ⋅ = (103)

gdzie: Θ − Θ = R q jest to uchyb położenia, który można uznać za błąd statyczny systemu

śledzącego;

Θ − Θ = & & & R q jest to uchyb prędkościowy systemu śledzącego;

kP i kV – współczynniki wzmocnienia pętli proporcjonalnego sprzężenia zwrotnego położeniowego i prędkościowego;

(100)

(101)

Page 114: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

114

ΘR – wielkość zadająca położenie (ustawienie) systemu śledzącego.

Podstawiając (103) do (102), mnożąc i porządkując składniki otrzymujemy równanie ruchu:

2 2 n M

n Wk k

n Wk k

n Wk k

n Wk k

n J J o

R P S

R V S P S V S o

m − Θ + Θ = Θ + Θ + Θ

+ & & & & (104)

Wprowadzając do tej zależności nowe oznaczenia: 2 n J J J o

m + = , n Wk k K P S = 1 ,

n Wk k K V S = 2 mamy:

2 1 2 1 2 n M K K K K J o

R R − Θ + Θ = Θ + Θ + Θ & & & & (105)

Jeżeli w dalszej części przekształcenia równania skorzystamy z następujących zależności:

Θ − Θ = R q

Θ − Θ = & & & R q

Θ − Θ = & & & & & & R q

wówczas z trzeciej zależności mamy q R & & & & & & − Θ = Θ , co wprowadzając do (105), mnożąc,

porządkując i podstawiając powyższe zależności daje ostatecznie równanie sterowania:

2 1 2 n M J q K q K q J o

R + Θ = + + & & & & & . (106)

Charakterystyki systemu śledzącego można regulować przez dobór dwóch parametrów K1

i K2. Za pomocą współczynnika K1 można zmieniać sztywność i częstotliwość drgań

własnych. Wybranie niewielkiej wartości K1 zmniejsza sztywność (staje się możliwe

Page 115: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

115

odchylenie położenia kątowego ogniwa pod działaniem niewielkiej siły zewnętrznej) i

jednocześnie pogarsza się szybkość reakcji systemu śledzącego. Współczynnik K2 określa

charakterystykę tłumienia systemu. Zwykle wybiera się taką wielkość K2, aby współczynnik

tłumienia wynosił 0,8.

Page 116: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

116

3.8 Sterowanie manipulatorem

W komputerowych systemach sterowania wszystkie operacje opisane odpowiednimi

algorytmami wykonywane są współbieżnie. Przy tym częstotliwość badania sygnałów

sprzężenia zwrotnego i wydawania sygnałów sterujących do serwomechanizmów osi robota

osiąga wartość 8 ÷ 30 kHz, co odpowiada czasowi 125 ÷ 33 µs na każdy cykl obliczeniowy

poprzedzający wydanie sygnału. Wyznaczenie współrzędnych konfiguracyjnych na podstawie

współrzędnych bazowych wymaga zaangażowania procesora przez czas znacznie dłuższy.

Utrudnia to zorganizowanie cyklu pracy programu śledzącego, szczególnie w przypadku

wieloosiowego manipulatora robota, jak pokazano to na rys.3.18, gdy każda z osi jest

sterowana indywidualnie.

Dla przykładowego robota wielkości zadające, określające położenie punktu C

efektora i jego orientację (przypiszemy im indeks R) są przedstawiane w układzie bazowym.

Można je zapisać (XRYRZR"R). Aby sterować położeniem chwytaka należy znaleźć

rozwiązanie odwrotne kinematyki wychodząc z bazowych wielkości zadających.

Współrzędne ogniw, odpowiadające współrzędnym (XRYRZR"R), dla przykładowego robota,

można zapisać w postaci (Θ1Rδ2RΘ3RΘ4R). Są to zadające wielkości pozycjonujące

programów śledzących i wywołują w serwomechanizmach napędowych osi ruch ogniw do

Page 117: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

117

wyznaczonej pozycji. Sterowanie odbywa się w ten sposób, aby wartości kątów obrotów

w parach kinematycznych zgadzały się z wartościami zadającymi i w rezultacie efektor

osiągnął zadane położenie.

Regulator 1 Oś 1 – +

Regulator 2 Oś 2 – +

Regulator n Oś n – + Pr

ocedura rozw

iązania zadania

odwrotnego kinematyki

Procedura rozw

iązania zadania

prostego kinem

atyki

bR b

q1R

q2R

qnR

q1

q2

qn …

Rys.3.18. Uproszczony schemat sterowania napędami n osi robota

Page 118: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

118

Mamy tu zatem do czynienia z dwoma rodzajami algorytmów:

− szybkie i krótkie algorytmy programów śledzących, które są wykonywane cyklicznie z

dużą częstotliwością i kończone są w ramach każdego cyklu obliczeniowego;

− wolne i długie algorytmy przekształcania współrzędnych, które są wykonywane w ramach

kilkunastu cykli obliczeniowych i nie są uwarunkowane cyklicznością obliczeń.

Cyklogram współdziałania szybkich i wolnych procesów pokazany jest na rys.3.19.

Cykl obliczeniowy jest zawarty między dwoma impulsami przerwań zegarowych

generowanych ze stałą częstotliwością, która odpowiada maksymalnej prędkości ruchu osi

robota. Część obliczeń nie wychodzi poza ramy jednego cyklu – są to obliczenia związane z

wydaniem rozkazów sterujących serwomechanizmami, rozpędzaniem/hamowaniem,

wyznaczaniem prędkości ruchu, podtrzymaniem stałej prędkości wzdłuż toru ruchu, analizą

stanów awaryjnych itd. Całkowity czas wykonania tych obliczeń w każdym cyklu przerwań

zegarowych jest różny. Pozostały fundusz czasowy wykorzystywany jest do wykonania

obliczeń związanych z przekształcaniem współrzędnych, przygotowaniem danych, analizą

sygnałów sensoryki itd. Procesy obliczeniowe realizowane w układzie sterowania są zatem

obsługiwane w czasie maszynowym (algorytmy wolne przygotowania danych) i w czasie

rzeczywistym (szybkie algorytmy sterowania). Podział na szybkie i wolne procesy wynika z

dopuszczalnego opóźnienia w reakcji oraz z czasu ich wykonania. Mimo znacznych różnic

między nimi procesy te muszą być wzajemnie synchronizowane. Synchronizacja

przygotowania danych i sterowania zadaniami może być wypełniona na poziomie bazowego

systemu operacyjnego czasu rzeczywistego, który wymaga szczegółowego rozdzielenia czasu

maszynowego procesora obliczeniowego.

Page 119: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

119

Rys.3.19. Cyklogram przerwań zegarowych procesu sterowania manipulatorem

Przedział stałej częstotliwości zegarowej

Przetwarzanie procesów szybkich Przetwarzanie procesów wolnych

Przerwanie zegarowe

Przechowanie danych na stosie

Analiza stanów

awaryjnych

Sterowanie serwomechanizmami

Odtworzenie danych ze stosu

Kontynuacja obliczenia odwrotnego i prostego zadania kinematyki Obliczenia

procesów rozpędzania i hamowania

Interpolacja

Oś1 Oś2 Oś3 Oś4 Oś5 Oś6

Odczyt położenia osi i obliczenie uchybu

Obliczenie i wydanie sygnału sterującego osią

Fundusz czasowy

Page 120: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

120

Wykorzystując opisany mechanizm przerwań zegarowych można zorganizować

sterowanie manipulatorem za pomocą następującego algorytmu.

Algorytm sterujący manipulatorem: 1. Wykorzystując fundusze czasowe przedziałów wygenerowanych przez przerwania

zegarowe, na podstawie zadanych współrzędnych bazowych obliczane są współrzędne

konfiguracyjne.

2. Dla każdej osi manipulatora wykonywane są kroki 2.1 – 2.4 z częstotliwością zegarową.

2.1. Mierzona jest wartość położenia ogniwa w parze kinematycznej osi, przetwarzana

przez przetwornik A/C i odczytywana.

2.2. Obliczana jest wartość uchybu położeniowego q w parze kinematycznej. Na

podstawie wartości uchybu określana jest wartość q & .

2.3. Obliczana jest wartość wielkości sterującej q k q k i V P & ⋅ + ⋅ = .

2.4. Wielkość i podawana jest w postaci sygnału sterującego do wejścia przetwornika C/A i wzmacniacza.

W czasie pracy robota należy znać rzeczywiste położenie i orientację efektora.

Pozwala to na bieżące wyświetlanie tych informacji dla operatora i nadzorowanie pracy

robota lub wykonywanie ręcznego sterowania np. w sytuacjach awaryjnych. Należy więc

mieć taki podsystem układu sterowania, który określałby, na podstawie odczytanych wartości

współrzędnych osi, położenie i orientację chwytaka dla rozpatrywanego momentu

przemieszczenia manipulatora. Zadanie to wykonuje poniższy algorytm.

Page 121: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

121

Algorytm wyznaczający położenie i orientację chwytaka:

1. Aktualne współrzędne konfiguracyjne osi manipulatora 1 zmierzone przez czujnik sprzężenia zwrotnego (rys.38) są przekształcane przez przetwornik A/C i

odczytywane;

2. Na podstawie odczytanych wartości współrzędnych konfiguracyjnych są obliczane

współrzędne bazowe położenia i orientacji efektora;

3. Obliczone w kroku 2 wartości współrzędnych przesyłane są do wyświetlacza.

Page 122: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

122

3.9 Sterowanie chwytakiem

Dla przykładowego robota sterowanie chwytakiem polega na sterowaniu szerokością

rozsunięcia dwóch palców chwytnych U i sterowaniu ich siłą zacisku F. Sterowanie

rozstawem palców chwytnych może być realizowane przez program śledzący i

serwomechanizm napędowy, który pozwala na sterowanie pozycjonujące palcami. Sterowanie

siłą zacisku palców może być wykonane dzięki wykorzystaniu proporcjonalności między

natężeniem prądu sterującego obrotami silnika napędowego a otrzymywanym przy tym

momentem na wale silnika (w efekcie uzyskanej sile zacisku). Wyznaczony dla zadanej siły

zacisku prąd i podawany jest na wejście przetwornika C/A i do wzmacniacza układu serwonapędowego. Mechanizm palców rozwija przy tym moment równy (patrz rys.3.17)

Wi nk S . Praca chwytaka wymaga więc dwóch postaci sterowania:

1. sterowanie związane z regulacją położenia palców – rozsunięciem U;

2. sterowanie siłą F wywieraną przez palce chwytaka na trzymany przedmiot.

Typ sterowania chwytakiem jest określany w programie pracy robota. Na początku cyklu

pracy serwonapędu chwytaka następuje przełączenie na, zgodne z programem, sterowanie

pozycjonujące lub sterowanie siłą.

Page 123: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

123

3.10 System sterowania manipulatorem robota

Oprogramowanie niezbędne do funkcjonowania przykładowego robota tworzy system

sterowania, którego schemat pokazano na rys.3.20. System sterowania przetwarza

oprogramowanie w cyklu wyznaczonym przez zegar czasu rzeczywistego, który co 2ms

generuje impuls przerwań inicjujący pracę programów śledzących dla każdej osi

manipulatora. Jednocześnie, współbieżnie z tymi obliczeniami, wykonywane są

przekształcenia wartości współrzędnych zapisanych w rejestrze wielkości zadanych

XRYRZR"R. W ten sposób realizowane jest takie sterowanie, które dąży do zapewnienia

zgodności wartości parametrów charakteryzujących stan manipulatora z wartościami

wynikającymi z zapisanych w rejestrze wielkości zadanych. Rzeczywiste wartości położenia i

orientacji chwytaka są zapisywanie w rejestrze XYZ" na podstawie danych z odpowiednich obliczeń. Podobnie wykonywane jest sterowanie chwytakiem, przy czym sterowanie to zależy

od typu sterowania ustawionego na początku cyklu obliczeniowego. Przy sterowaniu

położeniowym chwytaka stosuje się układ ze sprzężeniem zwrotnym kontroli rzeczywistego

rozsunięcia palców, natomiast sterowanie siłą zacisku jest wykonywane w torze otwartym bez

wykorzystania sprzężenia zwrotnego. Wielkościami zadającymi są położenie palców

chwytaka UR lub siła zacisku FR. Wizualizacji podlega jedynie rzeczywiste położenie palców

chwytaka U.

Page 124: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

124

Ze sterowaniem manipulatorem jest związany zestaw następujących pięciu

podstawowych funkcji programowych:

1. ODCZYTAJ_POZYCJE (X,Y,Z,") – dla każdej osi manipulatora odczytywane są położenia

ogniw, a następnie obliczane jest położenie i orientacja we współrzędnych bazowych.

Wynik obliczeń jest zapisywany do zmiennych wyjściowych X, Y, Z, ".

XRYRZR"R XYZ" U

Program śledzący

Program śledzący

Program śledzący

Program śledzący

Program obliczający (Θ1Rδ2RΘ3RΘ4R) na podstawie (XRYRZR"R)

Program obliczający (XYZ") na

podstawie (Θ1δ2Θ3Θ4)

Ramię Chwytak

M A N I P U L A T O R

UR FR

Program śledzący

Rys.3.20. Schemat systemu sterującego manipulatora

Θ1R Θ3R Θ4R δ2R

1 3 2 4 5

Page 125: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

125

2. USTAW_POZYCJE (XR, YR, ZR, "R) – zmienne wejściowe są zapisane w rejestrze wielkości

zadanych, a następnie wykorzystywane do wyznaczenia ustawień osi manipulatora

podawanych do programów śledzących serwomechanizmów. W ten sposób chwytak jest

przemieszczany do zadanego położenia i przyjmuje zadaną orientację.

3. ODCZYTAJ_OTWARCIE (U) – odczytywana jest wartość otwarcia palców chwytaka i

przekazywana jest wyjściowemu argumentowi funkcji U.

4. USTAW_OTWARCIE (UR) – szerokość otwarcia chwytaka, przekazana zmienną wejściową

UR, jest umieszczana w rejestrze wielkości zadanych, program śledzący chwytaka jest

przełączany do trybu pozycjonowania i wykonane jest zadane otwarcie palców.

5. USTAW_ZACISK (FR) – zmienna wejściowa FR określająca wartość siły zacisku umieszczana

jest w rejestrze wielkości zadanych, program śledzący chwytaka jest przełączany do trybu

sterowania siłą i wykonywane jest zamknięcie palców przez serwomechanizm

wytwarzający zadany moment.

Page 126: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

126

3.11 Sensoryka chwytaka

Chwytak przykładowego robota ma dwa palce, które przy zaciskaniu i rozsuwaniu

pozostają równoległe. Na wewnętrznych powierzchniach palców umieszczone są elementy

czuciowe tworzące czujniki reagujące na dotyk. Chwytak jest mocowany do manipulatora za

pośrednictwem czujnika pomiaru siły, który mierzy siłowe obciążenia chwytaka w postaci

trzech składowych w kierunkach zgodnych z osiami efektora. Schemat sensoryki dotykowej i

siłowej chwytaka pokazano na rys.3.21. Działanie sensoryki chwytaka opisują programowe

funkcje:

6. ODCZYTAJ_SENSORY_DOTYKU (Lewy, Prawy) – odczytywane są stany czujników

dotykowych lewego i prawego palca, a następnie są zapisywane w binarnych zmiennych

Lewy i Prawy.

7. ODCZYTAJ_SKLADOWE_SILY (Fx, Fy, Fz) – odczytywane są sygnały z czujnika siły,

wyznaczane wartości składowych w układzie współrzędnych efektora i wyniki obliczeń są

zapisywane w wyjściowych zmiennych funkcji.

Page 127: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

127

Wejście cyfrowe

Program analizujący obciążenie chwytaka

FxFyFz Lewy Prawy

6 7

A/C

Rys.3.21. Schemat sensoryki dotykowej i siłowej chwytaka

Page 128: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

128

3.12 Sterowanie ruchem (planowanie trajektorii)

Planowanie trajektorii ruchu manipulatora polega na wygenerowaniu czasowej funkcji

zmiany stanów wewnętrznych (konfiguracyjnych) na zadanym odcinku czasu T, zwanej

cyklem pracy robota. Trajektorii ruchu manipulatora odpowiada tor ruchu manipulatora i

ścieżka ruchu efektora manipulatora. Torem ruchu manipulatora nazywamy uporządkowany

podzbiór stanów wewnętrznych, przez który przechodzi funkcja czasowa zmiany stanów q(t).

Ścieżką ruchu efektora nazywany jest geometryczny tor ruchu efektora w przestrzeni

bazowej.

Przedstawione na stronie 72 cztery systemy sterowania Z1 – Z4 wymagają jako

wielkości zadanej kolejnych wartości trajektorii z przestrzeni wewnętrznej stanu q(t). Takie

sterowanie odbywa się dzięki wygenerowaniu dyskretnej trajektorii ruchu reprezentowanej

ciągiem punktów, zwanych punktami węzłowymi opisanymi uporządkowanymi trójkami

postaci:

N i i t i q i q L & 1 ) ( ), ( ), ( = (107)

gdzie: i – krok sterowania, q(i) – położenie manipulatora w kroku i,

i v i q = ) ( & – prędkość ruchu w kroku i,

t(i) – czas trwania ruchu w kroku i.

Page 129: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

129

Załóżmy, że chwytak wykonuje ruch w strefie roboczej przykładowego robota. Ruch

odbywa się po zadanej linii prostej od punktu początkowego P do punktu końcowego K. Ruch

wzdłuż takiego toru może odbywać się dzięki wygenerowaniu sygnałów sterujących

serwomechanizmami osi robota przez interpolator. Przyjmiemy, że znane jest położenie i

orientacja chwytaka zarówno w punkcie początkowym P(xPyPzP"P) jak i w punkcie

końcowym K(xKyKzK"K). Jeżeli przyjmie się, że przemieszczenie robota odbywa się z

prędkością v, to dzieląc odległość między punktami P i K przez tą prędkość otrzymamy czas

konieczny do wykonania ruchu między tymi punktami. Czas ten wygodnie jest przedstawić w

postaci iloczynu NT0, gdzie: T0 – jednostka czasu, N – liczba kroków wykonanych przy przemieszczeniu od punktu P do punktu K (rys.3.22). Przyrosty położeń i orientacji w jednostce czasu T0 (między dwoma sąsiednimi punktami

węzłowymi) można przedstawić następująco:

( ) N x x dx P K −

= ( )

N y y dy P K −

= ( )

N z z dz P K −

= ( )

N d P K α − α

= α (108)

Można przyjąć, że zadawane wartości x, y, z, " w jednostce czasu T0 (wykonanie kroku do kolejnego punktu węzłowego) zwiększą się o przyrosty dx, dy, dz, d", co może być

wykonane przez programową funkcję USTAW_POZYCJE.

Page 130: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

130

Rys.3.22. Planowanie trajektorii ruchu między punktami P i K

P(xPyPzP"P)

K(xKyKzK"K)

v

T0

Krok N

Krok 1 Krok 2

Krok i

Punkty węzłowe

Page 131: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

131

Program przemieszczenia chwytaka po linii prostej do punktu zadanego współrzędnymi

(XRYRZR"R) ma postać:

process RUCH_PROSTY (XR, YR, ZR,"R);

begin

obliczenie wartości N, dx, dy, dz, d"

for I:=1 to N do

begin

xc:=xc+dx;

yc:=yc+dy;

zc:=zc+dz;

"c:= "c+d";

start_IO USTAW_POZYCJE (xc, yc, zc, "c);

delay(T0);

end;

end;

Przemieszczenie od punktu początkowego P do punktu końcowego K częściej jest

wykonywane w bardziej złożony sposób. Schemat takiego ruchu chwytaka pokazano na

rys.3.23. Robot chwyta obiekt w punkcie początkowym ruchu P i podnosi do punktu P’ bez

zmiany orientacji "P. Podniesienie to jest wykonane na wysokość hP po linii prostej i może być wygenerowane przez proces programowy RUCH_PROSTY. Zmiana orientacji chwytaka

odbywa się przy przeniesieniu przedmiotu od punktu P’ do punktu K’ po linii prostej. Na

koniec przedmiot zorientowany pod kątem "K jest opuszczany od punktu K’ do punktu K. Ten ruch odbywa się z wysokości hK. Przemieszczenie ze zmianą orientacji chwytaka

Page 132: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

132

i opuszczanie do punktu końcowego mogą być wygenerowane również przez programowy

proces RUCH_PROSTY.

K’(xKyKzK+hK"K)

P(xPyPzP"P) K(xKyKzK"K)

P’(xPyPzP+hP"P)

zw

yw

xw

hP

hK Podniesienie na wysokość hP bez zmiany orientacji

Przeniesienie do punktu K’ ze zmianą orientacji

Opuszczenie z wysokości hK bez zmiany orientacji

Rys.3.23. Schemat ruchu chwytaka od punktu początkowego P do punktu końcowego K

Page 133: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

133

Program opisujący przemieszczenie wykonane w sposób pokazany na rys.3.23 może mieć

postać:

process RUCH_ZLOZONY (XK, YK, ZK,"K);

begin

RUCH_PROSTY (xP, yP, zP+hP, "P);

RUCH_PROSTY (xK, yK, zK+hK, "K);

RUCH_PROSTY (xK, yK, zK, "K);

end;

Page 134: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

134

3.13 Chwytanie obiektu z użyciem sensoryki dotykowej

Chwytak przykładowego robota ma dwa palce chwytne, które przemieszczają się

równolegle. Podczas chwytania przedmiotu dąży się do tego, aby przedmiot nie był

przemieszczany przez zaciskające się palce. Jeżeli zapewni się dokładne pozycjonowanie

chwytaka w stosunku do przedmiotu, to jest możliwe jego uchwycenie bez przemieszczenia.

Jednak jeżeli wystąpi, niezależnie od przyczyn, niedokładne względne ustawienie chwytaka i

przedmiotu, to przy zaciskaniu palców nastąpi niepożądane przesunięcie przedmiotu.

Przesunięcia przedmiotu przy chwytaniu można uniknąć przy jednoczesnym stykaniu się obu

palców chwytaka z powierzchniami przedmiotu. Taka sytuacja zaistnieje, gdy centralne

położenie palców chwytaka pokrywa się z centralnym położeniem przedmiotu. Moment styku

palców z powierzchniami przedmiotu jest rozpoznawany przez czujniki dotykowe

zamontowane na wewnętrznych powierzchniach palców. Proces ustawienia chwytaka

centralnie w stosunku do przedmiotu nazywany jest centrowaniem chwytaka.

Program wykonujący centralne chwytanie przedmiotu składa się z dwóch równolegle

biegnących procesów. W czasie pierwszego wykonywane jest powolne zsuwanie palców.

Page 135: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

135

W momencie gdy jeden z palców dotknie powierzchni przedmiotu inicjowany jest drugi

proces, który zapewnia korekcyjne przemieszczenie całego chwytaka w kierunku odsunięcia

od przedmiotu.

Rozpatrzmy sytuację pokazaną na rys.3.24, kiedy prawy palec dotknął przedmiotu. Aby nie

nastąpiło przesunięcie przedmiotu (palce chwytaka powoli zbliżają się) należy przesunąć

chwytak w kierunku e y − o wielkość ω , ponieważ odległość między palcami w jednostce

czasu zmniejsza się o ω 2 . W bazowym układzie współrzędnych, przy orientacji chwytaka

zw yw

xw

ye

xe "

Lewy czujnik dotyku na lewym palcu chwytaka

Prawy czujnik dotyku na prawym palcu chwytaka

Chwytak

Obiekt ze

Rys.3.24. Centrowanie chwytaka

Page 136: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

136

określonej kątem ", należy przemieścić go w kierunku yw o wartość – α ωcos , a w kierunku

xw o wartość α ωsin . Synchronizując proces zaciskania palców i proces korekcyjnego

przemieszczenia chwytaka można uchwycić przedmiot bez jego poruszenia. Jeżeli czujniki

dotyku na obu palcach zadziałają jednocześnie, to będzie to oznaczało, że przedmiot został

uchwycony. Jeżeli w dalszym ciągu zwiększy się siłę zacisku, to w ten sposób zwiększy się

siłę uchwycenia. Proces zamykania palców chwytaka jest kontrolowany i przy przekroczeniu

minimalnego zamknięcia g wywoływana jest procedura obsługi błędu chwytu BL_CHWYTU.

Równoległe przetwarzanie procesu zamykania palców i korekty położenia chwytaka jest

wykonywane w bloku procedury ROWNOLEGLE ( … ).

Page 137: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

137

Program centralnego chwytu jest następujący: process CENTROWANIE (sila_zacisku);

begin

start_IO ODCZYTAJ_SENSORY_DOTYKU (Lewy, Prawy);

ROWNOLEGLE (ZAMKNIECIE, KOREKTA);

if uR<g then BL_CHWYTU;

start_IO USTAW_ZACISK (sila_zacisku);

end;

process ZAMKNIECIE;

begin

while (Prawy = 0) or (Lewy = 0) do

begin

uR := uR –ω ;

start_IO USTAW_OTWARCIE (uR);

delay(T0);

start_IO ODCZYTAJ_SENSORY_DOTYKU (Lewy, Prawy);

end;

end;

process KOREKTA;

begin

while (Prawy = 0) or (Lewy = 0) do

begin

start_IO ODCZYTAJ_SENSORY_DOTYKU (Lewy, Prawy);

if (Prawy = 1) and (Lewy = 0) then

begin

xR := xR + α ωsin ;

yR := yR – α ωcos ;

end;

else if (Prawy = 0) and (Lewy = 1) then

begin

xR := xR – α ωsin ;

yR := yR + α ωcos ;

end;

start_IO USTAW_POZYCJE (xR, yR, zR, "R);

delay(T0);

end;

end;

Page 138: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

138

3.14 Stawianie przedmiotu z wykorzystaniem sensoryki siłowej

Proces stawiania przedmiotu polega na opuszczaniu chwytaka z przedmiotem,

a następnie rozwarciu palców chwytaka w momencie, gdy nie spowoduje to upadku

przedmiotu i przedmiot nie będzie zbyt mocno dociskany do podłoża. Jeżeli sterowanie tym

procesem jest realizowane tylko za pomocą rozkazów pozycjonowania, to ukazane wyżej

problemy mogą okazać się trudne do rozwiązania. Zastosowanie sensoryki siłowej pozwala

zorganizować proces ostrożnego stawiania przedmiotu w momencie styku przedmiotu z

podłożem. Algorytm stawiania przedmiotu z wykorzystaniem sensoryki siłowej jest

następujący. Podczas unoszenia przedmiotu mierzona jest siła obciążająca chwytak działająca

w kierunku osi z. Przy tym można przyjąć, że początkowa wartość tej siły 0 z F zależy od masy

utrzymywanego przedmiotu. Prowadząc pomiary siły z F należy powoli ( o wartość T)

opuszczać chwytak z przedmiotem. Jeżeli uwzględni się wartość progową g, według której

można rozpoznać moment styku przedmiotu z podłożem, to przy ε ≤ − z z F F 0 można przyjąć,

że przedmiot został postawiony na podłożu. Wykorzystując informacją o sile reakcji i

upewniwszy się, że przedmiot jest ustawiony prawidłowo można rozsunąć palce chwytaka.

Page 139: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

139

Program stawiania przedmiotu z wykorzystaniem sensoryki siłowej jest następujący: process STAWIANIE_OBIEKTU;

begin

start_IO ODCZYTAJ_SKLADOWE_SILY (Fx, Fy, Fz); 0 z F := z F ;

while ( ε < − z z F F 0 ) do

begin

zR := zR – T;

start_IO USTAW_POZYCJE (xR, yR, zR,"R);

delay(T0);

start_IO ODCZYTAJ_SKLADOWE_SILY (Fx, Fy, Fz);

end;

uR:= pelne_otwarcie;

start_IO USTAW_OTWARCIE (uR);

delay(T0);

end;

Page 140: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

140

3.15 Obrót korbki

Jedną z najtrudniejszych do wykonania przez manipulator operacji jest obracanie

korbką. Korbka obraca się po okręgu zadanym w przestrzeni. Zapewnienie ruchu korbki przy

takim ograniczeniu jest dość złożonym zadaniem. Współczesne roboty potrafią prawie

dokładnie wygenerować trajektorię kołową i wykonać ruch chwytaka po okręgu. Jednak jeżeli

kołowa trajektoria nawet niewiele różni się od okręgu po którym porusza się korbka, to

obracanie korbką w takich warunkach może zakończyć się połamaniem korbki lub

uszkodzeniem samego robota. Aby przy pracy robota nie pojawiły się zbyt duże obciążenia

(rys.3.25a) i obrót korbką zachodził płynnie należy przy automatycznym pozycjonowaniu

korzystać z informacji otrzymanej z układu sensoryki siłowej. Należy zatem określać siłę

działającą na manipulator i w taki sposób sterować ruchem manipulatora, aby niwelować to

oddziaływanie siłowe.

Schemat obciążenia korbki przy jej obracaniu przez manipulator pokazano na

rys.3.25b. Korbka ma promień r i środek obrotu położony w punkcie o współrzędnych xo, yo,

zo. Korbka ma być obracana ze stałą prędkością. Warunek stałości prędkości w kierunku

stycznym do okręgu obrotu korbki można uzyskać drogą automatycznego pozycjonowania,

przy którym w każdym odcinku czasowym T0 punkt centralny chwytaka C przemieszcza się

Page 141: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

141

z

b)

y

x

.

ye

xe Fn Fx

Fy

vx vy v

r$

. . Cv

O(xoyozo)

C(xcyc zc)

Ft

Fn

$ a

$

b

b

F Fy

Fx xe

ye

c)

Rys.3.25. Schemat obciążenia przy obracaniu korbką

ze

ye

xe

$

a)

F

.

.

Page 142: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

142

na stałą odległość w kierunku stycznej. Sytuację taką ilustruje rys.3.25b. Załóżmy, że

położenie korbki jest opisane położeniem punktu centralnego C chwytaka o współrzędnych

xc, yc, zc. Punktem końcowym ruchu chwytaka w czasie jednostkowym T0 jest punkt Cv, który

odpowiada przemieszczeniu po stycznej na odległość v, odpowiadającą wielkości prędkości obrotu. Składowe wektora v rozpatrywane w kierunkach osi x i y są wyrażone zależnościami:

vx = –vsin" = –v r y y o c −

⋅ vy = vcos" = v r x x o c −

⋅ (109)

Aby przemieścić chwytak do punktu Cv należy wyznaczyć nowe zadające położenie, które

określają zależności:

xR = xc – v r y y o c −

⋅ yR = yc + v r x x o c −

⋅ (110)

Określone powyżej współrzędne zadające nowe położenie niekoniecznie będą

odpowiadały współrzędnym punktu leżącego na okręgu trajektorii obrotu korbki. Korekta

tego położenia może być wykonana przy wykorzystaniu sygnałów z czujnika sił

oddziałujących na chwytak. Układ korygujący będzie tak modyfikował położenie chwytaka,

aby siła reakcji w kierunku normalnej została zredukowana do zera. To pozwoli na

utrzymanie położenia chwytaka na kołowej trajektorii ruchu korbki. Przyjmijmy, że kąt

orientacji chwytaka " = 0. Mając zmierzone wartości składowych Fx i Fy można w

następujący sposób wyznaczyć siłę reakcji działającą w kierunku normalnym do toru ruchu

(rys.3.25c):

Page 143: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

143

Fn = a + b gdzie a = Fx cos" , b= Fy sin" (111)

czyli

Fn = Fx r x x o c −

⋅ + Fy r y y o c −

⋅ (112)

Aby ta siła reakcji była zredukowana do zera chwytak należy przemieścić w kierunku

działania tej siły. Można to osiągnąć wyznaczając zadające współrzędne, które będą

proporcjonalne do odpowiednich składowych siły Fn (przyjmiemy współczynnik

proporcjonalności równy K). Zatem:

r x x F K x cos F K x : x o c

n c n c c −

⋅ − = α ⋅ ⋅ − = (113)

r y y F K y sin F K y : y o c

n c n c c −

⋅ + = α ⋅ ⋅ + = (114)

Program sterujący obrotem korbką przetwarza równolegle dwa opisane wyżej procesy:

pozycjonowanie chwytaka z zadaną prędkością na torze obrotu korbki,

korygowanie położenia chwytaka do pozycji redukcji siły normalnej.

Page 144: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

144

Treść programu obrotu korbki jest następująca: process OBROT_KORBKI;

begin

ROWNOLEGLE (OBRACANIE, KORYGOWANIE);

end;

process OBRACANIE;

begin

while stop = 0 do

begin

xc := xc – v * (yc – yo)/r;

yc := yc + v * (xc – xo)/r;

start_IO USTAW_POZYCJE (xc, yc, zc, 0);

delay (T0);

end;

end;

process KORYGOWANIE;

begin

while stop = 0 do

begin

start_IO ODCZYTAJ_SKLADOWE_SILY (Fx, Fy, Fz);

Fn := Fx * (xc – xo)/r + Fy * (yc – yo)/r;

xc := xc – K * Fn * (xc – xo)/r;

yc := yc + K * Fn * (yc – yo)/r;

zc := zc + K * Fz;

start_IO USTAW_POZYCJE (xc, yc, zc, 0);

delay (T0);

end;

end;

Page 145: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

145

3.16 System wizyjny robota

Percepcja wizyjna robota zapewniona jest najczęściej przez zastosowanie kamery

telewizyjnej z przetwornikiem cyfrowym. Stosowanie innych czujników wizyjnych znacznie

ogranicza możliwości rozpoznawania obrazów, choć daje mniej złożone sygnały cyfrowe,

które można poddać dalszemu przetwarzaniu.

Warianty rozmieszczenia czujnika wizyjnego w robotach pokazano na rys.3.26.

Są to następujące możliwości:

1. Nieruchomy, dwuwymiarowy czujnik wizyjny umieszczony nad przestrzenią roboczą.

2. Nieruchomy, trójwymiarowy czujnik wizyjny umieszczony nad przestrzenią roboczą.

3. Ruchomy, dwuwymiarowy czujnik wizyjny umocowany na chwytaku.

4. Dwa nieruchome, dwuwymiarowe czujniki wizyjne umieszczone pod odpowiednim

kątem nad przestrzenią roboczą.

5. Trzy nieruchome, dwuwymiarowe czujniki wizyjne umieszczone wzajemnie

prostopadle dające trzy, wzajemnie prostopadłe, projekcje przestrzeni roboczej.

Page 146: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

146

Niezależnie od sposobu rozmieszczenia czujnika wizyjnego oraz niezależnie od zastosowanej

metody obróbki informacji graficznej i sposobu rozpoznawania obiektów system wizyjny

robota składa się z elementów pokazanych na schemacie umieszczonym na rys.3.27. Obraz

przestrzeni roboczej jest rejestrowany przez czujnik wizyjny i przetwarzany w procesorze, na

1. 2.

4. 3.

5.

Rys.3.26. Warianty umiejscowienia czujnika wizyjnego

Page 147: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

147

wyjściu którego otrzymuje się zniekształcone wyobrażenie obrazu. Wyobrażenie to jest

następnie przetwarzane w celu wyznaczenia cyfrowej reprezentacji obrazu. Tworzenie

reprezentacji jest przeprowadzane najczęściej dwuetapowo. W pierwszym etapie

przetwarzania usuwane są zniekształcenia wyobrażenia spowodowane wadami czujnika

wizyjnego. W etapie drugim wyeksponowane są te elementy wyobrażenia, które uważane są

za najbardziej informacyjne. Tutaj również dane są grupowane w elementy tworzące obraz.

Mogą to być na przykład figury obrazu płaskiego.

Procesor wizji

Tworzenie reprezentacji wyobrażenia

Wydzielenie charakterystyk wyobrażenia obrazu

Rozpoznanie Uczenie

Rys.3.27. Schemat modelu systemu wizyjnego

Page 148: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

148

Wyobrażenie jest obrazem binarnym utworzonym przez uporządkowany ciąg bitów,

tj. ij b B = , gdzie bij = 1 lub bij = 0 oznacza, że element obrazu jest jasny lub ciemny w

porównaniu z wartością progową. Spotyka się rozwiązania, kiedy w dalszej części

przetwarzany jest właśnie obraz binarny. Jednak, aby kompresować dane i zwiększyć

szybkość przetwarzania często stosuje się kodowanie długości ciągów elementów o tej samej

wartości bitu. Sposób takiego kodowania wyjaśnia rys.3.28. Kiedy wzdłuż linii skanowania

występują w kolejności dwa lub więcej elementów obrazu o wartości 1, wyznacza się

położenie początkowego punktu i określa się długość ciągu bitów o wartości 1. Na przykład

dla dwóch linii skanowania i i j pokazanych na rys.3.28 można zapisać ciągi bitów w sposób następujący:

(Numer skanowania i),(Punkt początkowy 1)(Długość ciągu 1); (Numer skanowania j),(Punkt początkowy 2)(Długość ciągu 2),(Punkt początkowy 3)(długość

ciągu 3);

Przy długości ciągu równej 1 można przyjąć, że jest to błąd szumu i kodowania nie

przeprowadzać.

Dane zakodowane w długości ciągów można grupować i tworzyć w ten sposób figury będące

elementami obrazu. Grupowaniu podlegają te ciągi bitów w dwóch przylegających liniach

skanowania, w których dwa lub więcej przylegających bitów ma wartość 1. Załóżmy, że Sin jest początkowym punktem, a Lin jest długością n­tego ciągu w i­tym wierszu skanowania. W

takim przypadku warunek grupowania ciągów w figury będzie miał postać:

m i m i n i L S S , 1 , 1 , 2 + + + ≤ + i n i n i m i L S S , , , 1 2 + ≤ + + (115)

Page 149: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

149

Pogrupowane w ten sposób figury na obrazie istnieją niezależnie od siebie.

Wyznaczona reprezentacja wyobrażenia obrazu w postaci figur służy dalej do

wydzielenia charakterystyk. Charakterystycznymi parametrami figur, które następnie mogą

być wykorzystane w procesie rozpoznania są:

1. S – pole powierzchni (określone liczbą punktów przedstawiających figurę);

2. L – długość przekątnej figury;

Rys.3.28. Kodowanie długości ciągów bitów

Num

er sk

anow

ania

i

j

Punkt początkowy 2

Punkt początkowy 1

Punkt początkowy 3

Długość ciągu 3 Długość ciągu 2

Długość ciągu 1

Page 150: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

150

3. xs, ys – współrzędne środka figury;

4. xc, yc – położenie środka ciężkości figury;

5. nx, ny – kierunek przekątnych najmniejszego prostokąta opisanego na figurze;

6. Rmax, Rmin, Rśr – długość promieni wychodzących ze środka ciężkości do punktu na

obwodzie (maksymalny, minimalny i średni);

7. "max, "min – kąty między maksymalnym i minimalnym promieniem a osią x;

8. n – liczba otworów w figurze; 9. Minor, Major – podwojona mała i duża półosie ekwiwalentnej elipsy bezwładności;

10. $ – kąt utworzony przez oś x i dużą oś ekwiwalentnej elipsy bezwładności;

11. Length, Width – długości dłuższego i krótszego boków prostokąta opisanego, którego boki są równoległe do głównych osi bezwładności;

12. Xmax, Xmin, Ymax, Ymin – maksymalna i minimalna wartości rzutów figury na osie x i y;

13. różne wskaźniki kształtu figury (np. Minor Major ,

max

min

R R ,

min

max

α α , 2 L

S 4π , L S ).

Rozpoznanie ma na celu znalezienie odpowiedzi na dwa podstawowe pytania:

1. Jakie obiekty znajdują się w przestrzeni roboczej?

2. Jakie są ich położenia i orientacje względem układu bazowego, czyli nieruchomego

układu współrzędnych związanego z podstawą robota?

Jeżeli rozpoznawane obiekty są znane wcześniej, to analizując podstawowe charakterystyki

można określić parametry klasyfikacji rozpatrywanych obiektów. Rejestrowanie modelowych

charakterystyk obiektów i budowanie dla każdego z nich bazy danych jest wykonywane na

etapie uczenia. Uwzględnia się w trakcie uczenia między innymi informację o wszystkich

Page 151: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

151

możliwych przesłonięciach obiektów. Jeżeli kształty obiektów są bardziej skomplikowane

uczenie polega na wykonaniu zdjęć obiektów, które następnie są przetwarzane w komputerze.

Rozpoznanie polega na porównaniu otrzymanych charakterystyk informacyjnych

wyobrażenia obrazu z bazami danych. Stosuje się przy tym różne strategie rozpoznawania.

Wynikiem rozpoznania jest określenie, z jakim obiektem mamy do czynienia i jakie jest jego

położenie oraz orientacja, najczęściej względem układu bazowego. Te informacje są

następnie użyte przy planowaniu działań robota.

Page 152: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

152

3.17 Wykorzystanie systemu wizyjnego w sterowaniu robotem

W rozpatrywanym przypadku manipulator ma ruchliwość ograniczoną do czterech

stopni swobody i jest przeznaczony do manipulowania przedmiotami, znajdującymi się na

płaskiej powierzchni sceny roboczej. W systemie wizyjnym przykładowego robota jako

czujnik wizyjny użyto kamerę telewizyjną z przetwornikiem cyfrowym, którą umieszczono

centralnie nad sceną roboczą. Zadanie systemu wizyjnego polega na rozpoznaniu jednego z

trzech obiektów, którymi są płaskie przedmioty o kształcie kwadratu, koła i sześciokąta

foremnego oraz na określeniu położenia i orientacji obiektu, aby można było nim

manipulować. Pomiar odległości i wyznaczanie położenia rozpoznanych figur jest

wspomagane przez laserowy skaner. Zestawienie wybranych charakterystyk dla trzech

obiektów pokazano na rys.3.29. Posługując się wskaźnikami kształtu można łatwo rozpoznać

wskazane typy figur.

Rozpoznanie można również wykonać z zastosowaniem strategii nakładania szablonu.

W tym przypadku można posłużyć się prymitywnym sposobem, polegającym na porównaniu

identyfikowanych wyobrażeń obiektu z szablonami. Przed wykonaniem porównania należy

normalizować wyobrażenie co do wielkości oraz wykonać niezbędne operacje związane

Page 153: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

153

Figura Parametr

Kwadrat Koło Sześciokąt

Szerokość S a 2 b 2 c 2

Wysokość W a 2 b 2 c ⋅ 3

Długość obwodu L a 8 b π 2 c 6

Podstawow

e cechy

Pole powierzchni P 2 4a 2 b π 2

2 3 3 c

W S P ⋅ 1 785 , 0

4 =

π 75 , 0 4 3

=

Wskaźniki

kształtu

S W

1 1 865 , 0 2 3

=

Rys.3.29. Rozpoznawanie figur na podstawie wskaźnika kształtu

a b c

Page 154: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

154

z zapewnieniem pokrycia się środków ciężkości i kierunków osi symetrii. W trakcie

porównania szablon lub normalizowane wyobrażenie mogą być przemieszczane równolegle

względem siebie, obracane, mogą podlegać zmianie skali itd. Jednak należy mieć na uwadze,

że przy zastosowaniu takiego prymitywnego sposobu należy zużyć dużo czasu na

przeszukiwanie zbioru szablonów i efektywność, przy większej ich liczbie, okazuje się

niedostateczna. Efektywność tą można znacznie zwiększyć, jeżeli przy równoległych

przemieszczeniach i obrotach wyobrażenia obiektu posłużymy się charakterystykami

Rys.3.30. Rozpoznawanie figury przez porównanie z szablonem

Obraz pierwotny Przemieszczenie do środka ekranu

Obrót do pozycji normalnej

Dobór szablonu

Page 155: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

155

położenia środka ciężkości. Na przykład w przypadku pokazanym na rys.3.30, najpierw

wykonuje się równoległe przemieszczenie takie, aby środek ciężkości wyobrażenia pokrył się

ze środkiem ramki przetwornika. Następnie wykonuje się obrót wyobrażenia tak, aby główna

oś bezwładności była położona prostopadle i dopiero wtedy porównuje się je z trzema

szablonami. Przy najprostszym porównaniu wykorzystuje się operację EXOR, która pozwala

na podstawie liczby niepokrywających się elementów dokonać oceny tego, który szablon jest

najbardziej zbliżony. Aby robot mógł podjąć działanie manipulacyjne z obiektem, po jego

rozpoznaniu należy jeszcze określić położenie i orientację obiektu. Przy określeniu położenia

obiektu można posłużyć się charakterystyką położenia środka ciężkości figury, a przy

określeniu orientacji – kierunkiem główniej osi bezwładności.

W systemie wizyjnym z kamerą wynik rozpoznawania jest przedstawiany w prostokątnym

układzie współrzędnych kamery. Wyobrażenie rozpoznawanego obiektu jest generowane na

płaskiej powierzchni matrycy kamery. Aby robot mógł manipulować obiektem należy

zapewnić jednoznaczne przejście z systemu współrzędnych kamery do bazowego układu

współrzędnych. Rozpatrzmy przypadek pokazany na rys.3.31, gdy kamera umieszczona jest

centralnie nad sceną roboczą. Początek układu współrzędnych kamery jest położony w środku

obiektywu, a płaszczyzna obrazu (płaszczyzna matrycy rejestrującej) znajduje się za

obiektywem w odległości równej ogniskowej obiektywu. Dla ułatwienia analizy

geometrycznej płaszczyzna obrazu jest przeniesiona jednokładnością przed obiektyw.

Przyjmiemy, że punkt obiektu P leży na płaszczyźnie położonej nad powierzchnią sceny na

wysokości h. W układzie współrzędnych kamery punkt P ma współrzędne xK, yK, zK.

Założymy, że płaszczyzna xwyw układu bazowego pokrywa się z powierzchnią sceny

Page 156: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

156

Rys.3.31. Powiązanie układu kamery z bazowym układem współrzędnych

xw

zK

yK xK

yw

zw

O(x0y0z0)

P(xKyKzK)

h

f

f

O’

O P

O M

P M (xMyM)

Układ współrzędnych kamery

Bazowy układ współrzędnych

Obiektyw kamery o ogniskowej f

Matryca (płaszczyzna obrazu)

Page 157: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

157

roboczej. W układzie bazowym położenie początku układu współrzędnych kamery można

opisać współrzędnymi x0, y0, z0, a obrót tego układu w stosunku do osi zw układu bazowego

może być określony kątem ψ. Bazowy układ współrzędnych z układem współrzędnych

kamery można powiązać w sposób następujący:

ψ ψ ψ − ψ

=

1 1 0 0 0 1 0 0 0 cos sin 0 sin cos

1 0

0

0

K

K

K

w

w

w

z y x

z y x

z y x

(116)

Ponieważ w rozpatrywanym przypadku przyjęto założenie, że punkt obiektu P znajduje się na

wysokości h nad powierzchnią sceny roboczej, więc

( ) h z h z z K + − = − − = 0 0 (117)

Z rys.3.31 widać, że trójkąty OO M P M i OO P P są trójkątami prostokątnymi i podobnymi, i

wtedy z twierdzenia Talesa P

M

P

M M

OO OO

P O P O

= , czyli również:

= K

M

x x

= P

M

OO OO

h z f − 0

z czego wynika: f h z x x M K

− = 0 (118)

i analogicznie:

f h z y y M K

− = 0 (119)

Page 158: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

158

Jeżeli przyjmiemy uproszczenie, że układ współrzędnych kamery nie jest skręcony w

stosunku do układu bazowego, czyli ψ = 0, to z zależności (116) przy uwzględnieniu (118),

(119) i (117) otrzymamy:

0 0

0 x f h z x x x x M K w +

− = + = (120)

0 0

0 y f h z y y y y M K w +

− = + = (121)

h z z z K w = + = 0 (122)

Są to zależności za pomocą których, mając wyznaczone przy rozpoznaniu współrzędne

położenia wyobrażenia obiektu, można określić współrzędne położenia obiektu we

współrzędnych bazowych, co umożliwia podjęcie działań manipulacyjnych przez robot.

Przedstawione wyżej użycie kamery do określenia położenia obiektu w układzie

bazowym nie daje możliwości zmierzenia wysokości w kierunku osi xw (powyżej przyjęto, że

wysokość h jest znana). Taki pomiar można wykonać za pomocą jednoczesnego użycia laserowego skanera i kamery. Laserowy skaner wysyła promień świetlny w dowolnym

kierunku. Za pomocą kamery można określić współrzędne małej plamki, pojawiającej się

przy padaniu promienia na obiekt. Jeżeli znany jest kąt padania promienia (jest on ustawiony

w skanerze) i jeżeli zostaną określone współrzędne wyobrażenia plamki na matrycy kamery,

to korzystając z metod triangulacyjnych można obliczyć położenie plamki w przestrzeni

trójwymiarowej i w ten sposób określić wysokość obiektu, na który pada promień.

Schemat pomiaru przy użyciu laserowego skanera pokazano na rys.3.32.

Page 159: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

159

Promień lasera wychodzi z punktu SL i jest kierowany w kierunku sceny roboczej pod kątami

α i β. Początek układu współrzędnych kamery i punkt SL położone są na tej samej wysokości

H w stosunku do powierzchni sceny roboczej. Dodatkowo punkt SL leży na płaszczyźnie xKzK. W rozpatrywanym przypadku plamka świetlna w przestrzeni trójwymiarowej jest

Rys.3.32. Schemat pomiaru przy wykorzystaniu kamery i urządzenia skanującego

SL "

$

" $

L(xLyLzL)

xK

zK

yK

d

h

H

f

L M (xMyM)

B

A

p

d+xL

Page 160: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

160

opisana współrzędnymi xL, yL, zL, a na matrycy rejestrującej obraz w kamerze –

współrzędnymi xM i yM. Jeżeli założyć, że plamka znajduje się na wysokości h to można zapisać analogicznie do (118), (119) i (117) :

f h H x x M L

− = (123)

f h H y y M L

− = (124)

h H z L + − = (125)

Z trójkąta prostokątnego SLAB mamy p h H −

= α cos czyli α

− = cos

h H p

Z trójkąta prostokątnego SLBL mamy p x d L +

= β tan czyli β

+ =

tan L x d p

Porównując p i wyznaczając xL otrzymamy:

β α

− + − = tan cos

h H d x L (126)

Porównując xL ze wzorów (123) i (126) i wyznaczając wyrażenie (H – h) otrzymujemy:

α ⋅ − β ⋅ α ⋅ ⋅

= − cos tan

cos M x f

d f h H (127)

Jeżeli wyrażenie to podstawi się do wzorów (123), (124), (125), to otrzymamy ostateczne

zależności określające współrzędne położenia plamki w trójwymiarowej przestrzeni:

Page 161: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

161

M M

L x x f

d x ⋅ α ⋅ − β ⋅

α ⋅ =

cos tan cos (128)

M M

L y x f

d y ⋅ α ⋅ − β ⋅

α ⋅ =

cos tan cos (129)

f x f

d z M

L ⋅ α ⋅ − β ⋅

α ⋅ − =

cos tan cos (130)

System wizyjny przykładowego robota montażowego wypełnia zatem cztery

następujące funkcje:

• oblicza podstawowe cechy wyobrażenia obiektu z wykorzystaniem danych

otrzymanych przez kodowanie długości ciągów bitów i grupowanie ciągów;

• za pomocą wskaźników kształtu rozpoznaje obiekty;

• przetwarza binarne obrazy, dobiera szablony i rozpoznaje obiekty ich położenie i

orientację w związanym z podstawą robota bazowym układzie współrzędnych;

• za pomocą skanera laserowego i kamery wykonuje pomiar obiektu w przestrzeni

trójwymiarowej.

Uproszczony schemat struktury systemu wizyjnego, realizującego wymienione funkcje

pokazano na rys.3.33. Funkcje programowe związane z działaniem systemu wizyjnego są

następujące:

8. WYZNACZ_SZABLON (listaszablon, wynik, x, y, n) – wykonywane jest porównanie obrazu z

szablonami umieszczonymi w zbiorze listaszablon, a następnie nazwa szablonu, dla

którego otrzymano najlepsze pokrycie umieszczona jest w zmiennej wynik. W x, y, n

umieszczane są wyznaczone współrzędne środka i kąt obrotu figury;

Page 162: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

162

9. OBLICZ_BAZOWE (x, y, n, h, xw, yw, αw) – współrzędne środka i kąt obrotu figury,

wyznaczone z porównania z szablonem, które zawarte są w wejściowych argumentach

x, y, n, przekształcane są na współrzędne bazowe zapisywane w zmiennych wyjściowych

xw, yw, αw. W obliczeniach przyjmuje się, że wysokość obiektu zapisana jest w zmiennej h;

10. OBLICZ_WSKAZNIKI (listawskaznik) – na podstawie wejściowego obrazu binarnego

otrzymanego z kamery obliczane są charakterystyki parametrów figury i wskaźniki

umieszczane następnie w wyjściowej zmiennej listawskaznik;

Kamera

Dobór szablonu

Przetwarza­ nie obrazu binarnego i kodowanie ze zmienną długością ciągów bitów

Charakterystyki podstawowych parametrów

Przejście z układu współrzędnych

kamery do bazowego układu współrzędnych

Pomiar za pomocą

skanowania laserowego

Wskaźniki kształtu

Skaner

Rys.3.33. Schemat struktury systemu wizyjnego przykładowego robota

8 9 10 11

Page 163: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

163

11. OBLICZ_POZYCJE_PLAMKI (α, β, x, y, z) – obliczane jest położenie w trójwymiarowej

przestrzeni plamki świetlnej promienia laserowego skierowanego pod kątami α i β.

Użycie systemu wizyjnego do obsługi robota zostanie pokazane na przykładzie

sortowania przedmiotów. Zrobotyzowany system sortujący trzy rodzaje przedmiotów –

dysków, kwadratów i sześciokątów – jest pokazany na rys.3.34. Załóżmy, że na nachyloną

rynnę, po której przedmioty zsuwają się na powierzchnię roboczą, podawane są losowo

pojedyncze płaskie przedmioty. Należy je sortować i układać w określonych miejscach.

Rozpatrzymy organizację programu umożliwiającego wykonanie zadania sortowania.

(xyϕ) (xwywαw) (xKyK)

(xSyS) (xDyD)

Rys.3.34. Użycie systemu wizyjnego do sortowania przedmiotów: 1 – manipulator, 2 – kamera, 3 – pochylona rynna, 4 – dyski, 5 – sześciokąty, 6 – kwadraty

1 2

3

4 5

6

Page 164: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

164

Rozpoznanie położenia przedmiotów wymaga zastosowania systemu wizyjnego, chwytanie

jest możliwe z zastosowaniem sensoryki dotykowej, zaś układanie przedmiotów jeden na

drugim wymaga zastosowania sensoryki siłowej. Omawiany przykład sensoryki ilustruje

zatem kompleksowe podejście w zastosowaniu współdziałających systemów sensoryki

przykładowego robota.

Przy rozpoznaniu typu przedmiotu można użyć metody doboru szablonu. Kształty

trzech płaskich przedmiotów można określić w procesie uczenia systemu wizyjnego

szablonami używanymi do porównania o nazwach: dysk, szesciokat, kwadrat. Funkcja

wizyjnego rozpoznawania WYZNACZ_SZABLON (listaszablon, wynik, x, y, n) zapewnia

porównanie wyobrażenia obiektu z szablonami zapisanymi w listaszablon. Nazwa szablonu,

który okazał się zgodny z wyobrażeniem, jest umieszczana w zmiennej wynik, współrzędne

środka ciężkości zapisywane są w zmiennych x i y, a zwrot głównej osi bezwładności w

zmiennej n. Ponieważ wartości x, y, i n są współrzędnymi w układzie kamery więc należy

użyć funkcji OBLICZ_BAZOWE (x, y, n, h, xw, yw, αw) do wyznaczenia współrzędnych w

układzie bazowym, które dopiero mogą być wykorzystane do sterowania przemieszczeniem

manipulatora.

Przy uchwyceniu zlokalizowanego przedmiotu należy posłużyć się funkcją

CENTROWANIE (sila_zacisku). W przypadku dysku i kwadratu dokładne uchwycenie wymaga

dwukrotnego wykonania uchwycenia centrującego. Po wykonaniu jednorazowego

centrującego uchwycenia należy rozsunąć palce chwytaka, wykonać obrót chwytaka o kąt 90 o

i ponownie przeprowadzić centrujące uchwycenie. W przypadku sześciokąta drugie

centrowanie wykonywane jest po obrocie chwytaka o kąt 60 o . Opisane działanie pozwala na

Page 165: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

165

uzyskanie takiego uchwycenia przedmiotu, przy którym jego środek dokładnie pokrywa się ze

środkiem chwytaka.

Uchwycony przedmiot należy następnie przenieść w jedno z miejsc, w którym

układane są przedmioty danego typu. Operację tą można wykonać przemieszczając

manipulator wzdłuż trajektorii wyznaczonej przez punkty początkowy o współrzędnych

(xwywαw) i końcowy o współrzędnych zależnych od typu przenoszonego przedmiotu:

dla dysku – (xDyD), dla sześciokąta – (xSyS), dla kwadratu – (xKyK). Przenoszenie realizuje

procedura RUCH_ZLOZONY (xw, yw, zw, "w). Jeżeli przy kładzeniu przenoszonych przedmiotów

w punktach końcowych użyje się procedury KLADZENIE_OBIEKTU to będzie możliwe

układanie jednego przedmiotu na drugim. Po uwolnieniu przedmiotu należy manipulator

przemieścić do położenia oczekiwania (xHyHzHαH) i przystąpić do rozpoznania za pomocą

systemu wizyjnego następnego przedmiotu.

Page 166: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

166 Program sortowania przedmiotów jest następujący:

process SORTOWANIE;

begin

start_IO USTAW_OTWARCIE (pelne_otwarcie);

while TRUE do

begin

start_IO WYZNACZ_SZABLON (listaszablon, wynik, x, y, n);

start_IO OBLICZ_BAZOWE (x, y, n, h, xw, yw, αw);

case wynik of

dysk:

begin

RUCH_ZLOZONY (xw, yw, h,"w);

CENTROWANIE (sila_zacisku);

start_IO USTAW_OTWARCIE (pelne_otwarcie);

delay (T0);

"w := "w + 90;

start_IO USTAW_POZYCJE (xw, yw, h,"w);

delay (T0);

CENTROWANIE (sila_zacisku);

RUCH_ZLOZONY (xD, yD, zD, 0);

KLADZENIE_OBIEKTU;

RUCH_ZLOZONY (xH, yH, zH,"H);

end;

kwadrat:

begin

RUCH_ZLOZONY (xw, yw, h,"w);

CENTROWANIE (sila_zacisku);

start_IO USTAW_OTWARCIE (pelne_otwarcie);

delay (T0);

"w := "w + 90;

start_IO USTAW_POZYCJE (xw, yw, h,"w);

delay (T0);

CENTROWANIE (sila_zacisku);

RUCH_ZLOZONY (xK, yK, zK, 0);

KLADZENIE_OBIEKTU;

RUCH_ZLOZONY (xH, yH, zH,"H);

end;

szesciokat:

begin

RUCH_ZLOZONY (xw, yw, h,"w);

CENTROWANIE (sila_zacisku);

start_IO USTAW_OTWARCIE (pelne_otwarcie);

delay (T0);

"w := "w + 60;

start_IO USTAW_POZYCJE (xw, yw, h,"w);

delay (T0);

CENTROWANIE (sila_zacisku);

RUCH_ZLOZONY (xS, yS, zS, 0);

KLADZENIE_OBIEKTU;

RUCH_ZLOZONY (xH, yH, zH,"H);

end;

end;

end;

Page 167: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

167

4 PROGRAMOWANIE

4.1 Programowanie robotów

Przetwarzanie informacji w systemie sterowania robota polega na przekształceniu programu

pracy robota, formułowanego w procesie programowania, na sygnały generowane w procesie

sterowania. Schemat przetwarzania informacji w systemie sterowania robota przedstawiono

na rys.4.1. Sterowanie robotem polega na przemieszczaniu w przestrzeni elementów łańcucha

kinematycznego z określoną dokładnością, wg zadanej trajektorii ruchu. Zadany ruch

podzespołów robota jest realizowany zgodnie z rozkazami wejściowymi zapisanymi przez

operatora w programie pracy robota. Formułowanie rozkazów wejściowych tworzących

program odbywa się na etapie programowania i wykorzystuje się przy tym oprogramowanie

użytkowe. Układ sterowania robota, używając oprogramowanie systemowe, przetwarza

program i w jego wyniku generuje rozkazy sterujące manipulatorem.

Funkcjonalna organizacja przepływu informacji w procesie programowania

i sterowania robota jest pokazana na rys.4.2. Można wyróżnić tu cztery poziomy transformacji

danych.

Page 168: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

168

Program pracy robota oprogramowanie

użytkowe

Układ przetwarzania informacji

oprogramowanie systemowe

Rozkazy sterujące

manipulatorem

Operator­programista

Manipulator

Układ sterow

ania

Sterowanie

Programowanie

Rys.4.1. Schemat przetwarzania informacji w systemie sterowania robota

Page 169: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

169

Poziom pierwszy, najwyższy A jest poziomem działania operatorskiego, na którym

realizowane jest formułowanie programu robota, tj. opis zadania robota oraz nadzór i kontrola

jego realizacji. Poziom reprezentowany przez bloki B i C jest nazywany poziomem

algorytmicznym. Dane są tu przetwarzane przez ściśle określone algorytmy obróbki danych.

Wyniki tego przetwarzania, w postaci odpowiednich informacji o chwilowym stanie systemu,

są przesyłane do wyższych poziomów. Jako dane do wykonania czynności robota są one

przesyłane do poziomów niższych. Przetwarzanie zadania operatora na bieżące rozkazy

realizowane jest na poziomie B, natomiast dalsze przetwarzanie przez układ sterowania z

uzupełniającymi danymi, pochodzącymi od sensorów, jest realizowane przez odpowiednie

algorytmy na poziomie sterowania C. W otoczeniu robota jest osadzony poziom D. Tu jest

realizowana interakcja pomiędzy elementami systemu robota a otoczeniem. Na poziomie tym

jest generowana wielka liczba informacji, związanych ze sterowaniem robotem i przebiegiem

procesu.

Page 170: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

170

OPERATOR − wybór i opis zadania − kontrola realizacji zadania

TRANSFORMACJA − określenie pozycji końca trajektorii − uzupełnienie o dane pochodzące od sensorów

TRANSFORMACJA − współrzędne naturalne ruchu robota − powiązania logiczne w programie

TRANSFORMACJA − współrzędne sensorów wewnętrznych − zakresy ruchu napędów robota

OBSERWACJA sceny przez operatora

DANE Z SENSORÓW śledzących strefę roboczą

A

B

C

D

Opis zadania robota

Warunki osiągnięcia celu ruchu

Bieżące współrzędne ruchu

Bieżące instrukcje ruchu

Programowany ruch robota

Rys.4.2. Przetwarzanie informacji w systemie programowanie­sterowanie

Program pracy robota

Plan trajektorii ruchu

Page 171: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

171

Program pracy robota jest tworzony za pośrednictwem systemu programowania.

W zależności od funkcjonalności układu sterowania, program może zawierać różne

informacje dotyczące zadań robota. W ogólnym przypadku informacja zapisywana

w programie może dotyczyć:

− kolejności wykonywanych czynności,

− zależności czasowych czynności,

− warunków blokad i uzależnień czynności,

− wartości współrzędnych ruchów,

− wartości parametrów ruchów,

− czasu wykonania czynności w szczególności ruchów,

− sterowania chwytakiem,

− sterowania wyposażeniem technologicznym,

− opisu strefy roboczej,

− opisu położenia przedmiotu,

− obsługi układów sensorycznych i/lub układu wizyjnego,

− obsługi stanów awaryjnych,

− sposobu wykonania niezbędnych obliczeń,

− sposobu współpracy z innymi maszynami (również robotami) w systemach.

Page 172: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

172

Systemy programowania dla robotów przemysłowych służą do tworzenia,

sprawdzania, redagowania i korekty programu robota. Aby możliwie skutecznie zadania te

były spełniane, systemom tym stawia się następujące wymagania:

− możliwość prostego opisu zadań,

− prosta obsługa programu przez personel nie przeszkolony w technice przetwarzania

danych,

− łatwe wykonywanie czynności kontrolnych i korygujących,

− krótki czas programowania,

− łatwość rozbudowy programu.

Różne układy sterowania można podzielić wg różnych kryteriów. Układ sterowania

posiada ogólną cechę, która jednoznacznie charakteryzuje proces sterowania robotem. Jest nią

sposób programowania robota i stopień zaangażowania operatora­programisty w procesie

tworzenia programu użytkowego robota. Układ sterowania można zatem podzielić według

tego kryterium. Podział taki ilustruje rys.4.3. Wyróżniamy układy sterowania z systemami

programowania:

− ręcznego poprzez klawiaturę, systemy wtyczek lub z pamięcią mechaniczną programu,

w których programowanie polega na ręcznym, czyli fizycznym ustawieniu zakresu

punktów charakterystycznych trajektorii ruchu, wykorzystując do tego celu zderzaki,

listwy programowe, szyny krzyżowe, matryce diodowe. Typowym przedstawicielem są

mechaniczne i elektryczne układy sekwencyjne;

Page 173: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

173

− półautomatycznego:

• „playback” – programowanie przez wstępne przejście, na przykład przy

ręcznym prowadzeniu wzdłuż toru ruchu i zapamiętaniu współrzędnych.

Programista w trakcie przekazu informacji o kształcie trajektorii ruchu robota

i jego zadaniach stosuje sterowanie ręczne, a jednocześnie ma możliwość

zapisania programu robota w pamięci jego układu sterowania i całkowitego

Systemy programowania robotów przemysłowych

RĘCZNE układ sterowania typu PTP − krzywkowe i

cięgnowe − analogowe

mechaniczne − analogowe

elektryczne

PÓŁAUTOMATYCZNE układ sterowania typu PTP, MP − przez nauczanie

­ teach­in − przez prowadzenie po

torze ruchu ­ playback

AUTOMATYCZNE układ sterowania typu CP − języki zorientowane

na model otoczenia − języki zorientowane

na ruch manipulatora

Rys.4.3. Klasyfikacja sposobów programowania robotów

Page 174: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

174

jego odtworzenia. Programowanie playback może być przeprowadzane na

robocie z wyłączonymi napędami lub na specjalnej maszynie­fantomie;

• uczącego (teach­in) – programowanie poprzez najazd na punkty kontrolne

i zapamiętanie wartości współrzędnych. Do realizacji programowania używa

się panelu zwanego teach­box. W tym przypadku przebieg logiczny programu

może być ustalony niezależnie, poprzez ręczne wprowadzanie danych

dotyczących parametrów ruchu takich, jak rodzaj pozycjonowania

(interpolowany lub nie), prędkość ruchu, czas przejazdu robota itp. W tak

tworzony program można wprowadzać korekcje – usuwać instrukcje,

uzupełniać, zmieniać parametry itp.

− automatycznego – programowanie jest realizowane za pomocą języka programowania.

Dane i zadania robota są opisywane w sposób symboliczny, najczęściej tekstowo.

Metoda programowania ręcznego sekwencji ruchów robota związana była z otwartymi

systemami sterowania bez pętli sprzężenia zwrotnego położeniowego. Przemieszczenia w

parach kinematycznych odbywały się bez pomiaru aktualnej pozycji, a ruch zatrzymywany

był za pomocą ręcznie ustawianego ogranicznika. Ograniczniki miały różną konstrukcję

fizyczną, od ograniczników zderzakowych i dotykowych wyposażonych w mikrowyłączniki

do ograniczników fotoelektrycznych. System ograniczników, poprzez ich ręczne rozstawienie

na osi manipulatora, umożliwiał zadanie skończonej liczby (najczęściej dwóch krańcowych)

punktów pozycjonowania osi robota. Oś wykonywała ruchy zatrzymując się jedynie w

punktach wyznaczonych przez położenie ogranicznika. Najczęściej roboty takie wyposażone

były w napędy pneumatyczne lub hydrauliczne. Skończona liczba możliwych punktów

Page 175: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

175

zatrzymań ruchu każdej osi daje skończoną liczbę konfiguracji, jakie manipulator może

przyjąć w przestrzeni stanów. Pozycje robota są zatem ustalone, a programowanie polegało

jedynie na ustaleniu kolejności ruchów osi pomiędzy ogranicznikami.

Obecnie programowanie ręczne nie ma praktycznego znaczenia, ponieważ rzadko

spotyka się roboty z otwartymi systemami sterowania.

Najprostszą formą programowania półautomatycznego, stosowaną we wcześniejszych

programatorach ruchów robota, była metoda „playback”. Polegała ona na ręcznym

przeprowadzeniu przez operatora robota wzdłuż całego toru, w czasie którego układ

programowania, co stały interwał czasu, zapamiętywał pozycje robota mierzone

wewnętrznymi sensorami osi. Tak więc pierwszy cykl pracy wykonywał operator, następne

zaś cykle odtwarzane były na podstawie automatycznie zapamiętywanych konfiguracji. Rola

systemu programowania sprowadzała się jedynie do wprowadzania kolejnych konfiguracji do

pamięci trajektorii. Odtwarzanie trajektorii odbywało się w trybie sterowania punktowego

PTP.

Rozwinięciem metody „playback” jest programowanie metodą uczenia.

Programowanie tą metodą nosi znamiona programowania w postaci ciągu instrukcji. Operator

wprowadza wybrane położenia robota ustawiane ręcznie za pomocą panelu i w ten sposób

określa punkty węzłowe trajektorii. Położenia wybrane przez operatora stanowią kolejne

instrukcje programu ruchu, które muszą być uzupełnione sposobem planowania trajektorii

pomiędzy punktami węzłowymi. Określane jest, czy punkt węzłowy ma być osiągnięty w

trybie planowania dokładnego, zgrubnego, w wewnętrznym układzie współrzędnych, czy też

w układzie bazowym. Instrukcje ruchowe mogą być poprzedzone instrukcjami sterowania

Page 176: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

176

chwytakiem, instrukcjami oczekiwania i postoju robota lub instrukcjami warunkowymi.

Programowanie przez uczenie wymaga rozbudowanego systemu programowania, który

bazuje na określonej syntaktyce tworzenia instrukcji i kontrolowania poprawności ich zapisu

podczas wprowadzania. Możliwa jest również edycja poszczególnych instrukcji

i w niewielkim zakresie ich modyfikacja, usuwanie i wstawianie nowych.

Programowanie automatyczne polega na tworzeniu symbolicznego opisu operacji

robota, w postaci ciągu instrukcji specjalizowanego języka wysokiego poziomu

programowania. Poszczególne instrukcje języka opisują symbolicznie operacje ruchowe

robota, działanie chwytaka czy też obsługę wejść/wyjść robota. W zależności od sposobu

opisu operacji wykonywanych przez robot, języki programowania wysokiego poziomu można

podzielić na dwie grupy. Są to języki zorientowane na model otoczenia oraz zorientowane na

ruch manipulatora.

W językach zorientowanych na model otoczenia podstawą jest znane otoczenie robota, które

musi zostać wcześniej opisane. W modelu są opisywane w pełny sposób uwarunkowania

przestrzenne (obszar roboczy, obszar kolizji), budowa robota, jego położenie w stosunku do

obiektu. Programista opisuje tylko przebieg manipulacji. Wszystkie inne dane potrzebne do

ustalenia torów ruchu dla bezkolizyjnego przebiegu obróbki są samodzielnie wytworzone

przez program.

Przy użyciu języka programowania zorientowanego na ruch manipulatora właśnie ruch

manipulatora pomiędzy poszczególnymi położeniami jest opisywany przez programistę.

W programie musi być przy tym zapewniona bezkolizyjna praca robota, o którą zadbać musi

programista na etapie pisania programu. Stan otoczenia nie jest definiowany w programie.

Page 177: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

177

Porównanie półautomatycznego i automatycznego sposobów programowania robotów

przedstawiono w tablicy 4.1.

Tablica 4.1. Porównanie sposobów programowania Rodzaj programowania

Zalety Wady Główne zastosowania

poprzez wstępne przejście playback lub przez najazd na punkty teach­in

− łatwe nauczanie − małe wymagania,

co do mocy obliczeniowej procesora

− duże zapotrzebowa­ nie pamięci w metodzie playback

− złe możliwości korekty

− złe możliwości dokumentowania

− programowanie bezpośrednie; zwiększone koszty związane z wyłączeniem robota z produkcji

− malowanie − zgrzewanie

punktowe − manipulowanie

przedmiotem

z zastosowaniem języków programowania

− dobra dokumentacja

− względnie prosty opis złożonych przebiegów logicznych

− prostota korekcji − programowanie

pośrednie poza robotem

− konieczna znajomość języka programowania

− duże wymagania, co do mocy obliczeniowej procesora

− montaż − spawanie spawem

ciągłym

Page 178: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

178

Układy sterowania, budowane najczęściej na bazie komputera, wymagają

odpowiedniego oprogramowania systemowego i użytkowego (rys.4.1) umożliwiającego

realizację wymaganej logiki użytkowej pracy robota, zawartej w jego programie pracy.

Oprogramowanie użytkowe może być formułowane bezpośrednio z wykorzystaniem robota

(programowanie bezpośrednie – on­line) lub za pomocą specjalnego systemu programowania

z wykorzystaniem języka wyższego rzędu i komputera zewnętrznego (programowanie

pośrednie – off­line). W systemie programowania on­line, którego schemat pokazano na rys.4.4, programowanie jest realizowane za pomocą wewnętrznego oprogramowania układu sterowania robota.

Oznacza to, że sposób programowania, tj. formułowanie zadań robota, wynika wprost z

możliwości i jakości oprogramowania układu sterowania. System programowania robota jest

w tym przypadku integralną częścią układu sterowania, czyli kompilator i interpreter

instrukcji są modułami systemu oprogramowania podstawowego układu sterowania.

Funkcjonalność, możliwości syntaktyczne i semantyczne systemu programowania są

określone przez konfigurację pulpitu programowania układu sterowania robota.

System programowania off­line, pokazany schematycznie na rys.4.5, jest systemem zewnętrznym w stosunku do układu sterowania robota. Jest on utworzony w postaci

oprogramowania funkcjonującego niezależnie od układu sterowania, a więc programowanie

nie obciąża czasowo układu sterowania. System off­line bazuje na języku programowania wyższego rzędu, dla którego opracowano gramatykę odpowiednią do celów programowania

robotów, a kompilator dostosowano do wybranego typu robota poprzez odpowiedni

postprocesor i interpreter możliwych do wykonania zadań.

Page 179: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

179

Panel operatora (środki programowania robota)

Oprogramowanie zarządzające (program nadrzędny układu

sterowania)

Oprogramowanie sterujące ruchem ramienia robota

Oprogramowanie komunikacji wewnętrznej układu sterowania

Oprogramowane detektorów błędów i diagnostyki

Oprogramowanie generatora zadań robota

Oprogramowane interpretera zadań robota

Sygnały sterujące robota

Rys.4.4. System programowania on­line robotów

Układ sterowania i programowania robota

Programowanie

Page 180: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

180

Sygnały sterujące robota

Układ sterowania robota

Rys.4.5. System programowania off­line robotów

Panel programowania (środki programowania robota)

Interfejs robota

Kompilator (procesor robota) Edytor

Postprocesor robota Interpreter zadań robota

System programowania robota

Programowanie

Page 181: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

181

4.2 Języki programowania robotów

Istnieją różne języki programowania robotów. Można je podzielić na następujące kategorie:

1. Języki programowania zorientowane na sterowanie numeryczne. Są to języki stworzone

przez zaadaptowanie systemu programowania obrabiarek sterowanych numerycznie do

potrzeb programowania robotów. Opisowi w tych językach podlegają głównie zagadnienia

geometryczne takie, jak trajektorie ruchów, kształty obiektów, chwytaków, układów

manipulacyjnych. Przykładami takich języków są: RAPT (Uniwersytet w Edynburgu),

Robex (WZL Akwizgran).

2. Języki programowania komputerowego uzupełnione bibliotekami podprogramów

robotowych. Uniwersalny język programowania (np. Pascal lub Basic) rozwinięto przez

dołączenie biblioteki podprogramów realizujących specyficzne potrzeby robota.

Użytkownik pisze program w uniwersalnym języku, korzystając z częstych przywołań

pakietów specjalnych podprogramów. Jako przykład można podać: Robot­Basic

(Intelledex), ML (IBM).

3. Specjalne języki manipulacyjne. Są to języki programowania robotów opracowane

specjalnie do wykorzystania w specyficznych zastosowaniach. Często struktura takiego

języka jest uproszczona w stosunku do uniwersalnych języków programowania

Page 182: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

182

komputerów (np. nie operują danymi zmiennoprzecinkowymi lub łańcuchowymi).

Przykładowe języki tego typu to: VAL (Unimation), AL (Uniwersytet w Stanford).

4. Nowy język ogólnego przeznaczenia z biblioteką podprogramów robota. Języki

programowania tej grupy zostały opracowane dzięki stworzeniu nowego języka, jako bazy

programowej, a następnie dołączeniu biblioteki podprogramów robotowych. Przykłady

takich języków to: AML (IBM), KAREL (GMF Robotics).

5. Języki programowania wykorzystujące nowoczesne zintegrowane systemy CAD­CAM,

posiadające systemy graficzne dla robotów (np. CATIA, GRASP, MEDUSA). Pozwalają

one na wykorzystanie interaktywnego modelowania zarówno środowiska roboczego

robota, jak i jego kinematyki. Przykładem takiego systemu jest Modulesh – Robot Design

and Animation (Uniwersytet w Michigan).

Programy, zapisane dla robotów, składają się z dwóch części. W jednej części opisana

jest kolejność działań robota, w drugiej znajduje się opis środowiska i obiektów, którymi

manipuluje robot. Pierwsza część jest zaprogramowana jako procedura, w której

wykorzystuje się struktury odnoszące się do sensoryki i działań robota. W niej oprócz

zwykłych operatorów sterujących należy przewidzieć konstrukcje, które pozwalają

zastosować procesy równoległe. Część druga zawiera opis trójwymiarowej strefy roboczej.

Zawiera ona również opis położenia i orientacji obiektów i ramienia robota oraz powiązań

między nimi. Fizyczne kształty obiektów, powierzchnie, objętości, masy lub inne właściwości

nie są częścią takiego opisu.

W dalszej części przedstawiony zostanie zmodyfikowany dla celów dydaktycznych

język programowania AL (Assembly Language) opracowany w Uniwersytecie w Stanford.

Page 183: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

183

Został on zaprojektowany tak, aby umożliwiał utworzenie bazy danych dotyczących obiektów

w sposób, który umożliwia łatwe programowanie operacji na obiektach trójwymiarowych.

W tym celu wprowadza się dla każdego obiektu własny układ współrzędnych, które następnie

mogą być powiązane ze sobą, tworząc specyfikację przestrzennych cech sceny roboczej. Na

rys.4.6 pokazano przykład położenia w strefie roboczej kilku układów współrzędnych. Są to

układy: bazowy, w którym opisane jest położenie i orientacja pozostałych układów; EFEKTOR,

który określa położenie i orientację chwytaka; obiekt, który związany jest z przedmiotem

manipulacji. Położenie układu efektor określone jest wektorem położenia jego środka

i macierzą obrotu w układzie bazowy. W przedstawionym przykładzie wprowadzono

ograniczenie na zmianę orientacji chwytaka – można go tylko obracać względem osi z (kąt

αe). Analogicznie określone jest położenie i orientacja układu obiekt. Dla przedmiotu

manipulacji wprowadzono jeszcze dwa dodatkowe układy współrzędnych. Są to obiekt_chwyt,

wykorzystywany przy chwytaniu przedmiotu przez chwytak, i obiekt_góra, który można

wykorzystać np. przy stawianiu na tym przedmiocie innego obiektu manipulacji. Konieczność

wprowadzania opisu położenia układów współrzędnych w układzie BAZOWY narzuca wymóg

definiowania transformacji układów współrzędnych. Do tego celu dostosowane są typy

danych języka AL.

Podstawowym typem danych jest SCALAR. Dane tego typu reprezentują liczbę

rzeczywistą, która może mieć miano, czyli jednostkę fizyczną. W naszej uproszczonej wersji

SCALAR nie będzie uwzględniał miana. Za pomocą danych typu VECTOR przedstawia się

wielkości wektorowe. Do tego wykorzystuje się funkcję VECT, której argumentami są trzy

Page 184: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

184

dane typu SCALAR. Na przykład w układzie bazowy wektory jednostkowe można przedstawić

w sposób następujący:

xhat ← VECT(1,0,0);

yhat ← VECT(0,1,0);

zhat ← VECT(0,0,1);

gdzie: symbol ← jest operatorem przypisania, a xhat, yhat, zhat są zarezerwowanymi w AL

zhat

yhat xhat

bazowy obiekt

obiekt_góra obiekt_chwyt

αp

efektor αe xe ye

ze

Rys.4.6. System współrzędnych chwytaka i obiektu manipulacji

dł szer

wys yp

xp

zp

Page 185: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

185

nazwami osi x, y, z układu bazowego.

Za pomocą danych typu ROTATION wyraża się obrót, który można przedstawić wektorem osi

obrotu i kątem obrotu względem tej osi. Dane typu ROTATION określone są funkcją ROT z

dwoma argumentami. Na przykład obracając xhat względem osi zhat o kąt 90 o otrzymujemy

yhat. Operację taką można zapisać w postaci:

yhat ← ROT(zhat, 90)∗xhat;

Typ danych COORDINATE obejmuje dane, za pomocą których można opisać system

współrzędnych. System współrzędnych można przedstawić wektorem położenia początku

współrzędnych i kątem obrotu w stosunku do bazowego układu. Jeżeli na rys.4.6 położenie

układu współrzędnych efektor określone jest współrzędnymi początku układu (xeyeze), a jego

orientacja jest określona kątem αe obrotu względem osi zhat, to wówczas, wykorzystując

funkcję COORD z argumentami ROT i VECT, można przedstawić ten układ w sposób

następujący:

efector ← COORD(ROT(zhat,α),VECT(xe,ye,ze));

FRAME jest typem danych służącym do wyrażania położenia i orientacji danego układu

współrzędnych w innym układzie współrzędnych. Argumentami tego typu są dane ROT i

VECT. Identyczną strukturę ma typ TRANSFORM, za pomocą którego używając funkcji TRANS

można wykonać przekształcenie współrzędnych i wektorów.

Strefę roboczą robota, pokazaną na rys.4.6 można opisać korzystając z przedstawionych

wyżej typów danych następującym fragmentem programu:

SCALAR dł, szer, wys, xe, ye, ze, αe, xp, yp, zp, αp;

VECTOR xhat, yhat, zhat;

Page 186: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

186

COORDINATE efector, obiekt, obiekt_chwyt, obiekt_góra;

efector ← COORD(ROT(zhat, αe),VECT(xe,ye,ze));

obiekt ← COORD(ROT(zhat, αp),VECT(xp,yp,zp));

obiekt_chwyt ← OBIEKT + VECT(dł/2, szer/2, wys/2);

obiekt_góra ← OBIEKT + VECT(0, 0, wys);

Trzy układy współrzędnych obiekt, obiekt_chwyt, obiekt_góra, związane z opisem przedmiotu

manipulacji, powinny pozostawać w niezmiennym wzajemnym stosunku. Kiedy

przemieszcza się jeden układ współrzędnych , wówczas razem z nim muszą przemieszczać się

dwa pozostałe, ponieważ wszystkie są związane z jednym obiektem manipulacji. Powiązanie

tego systemu układów współrzędnych można zapisać za pomocą operatora AFFIX: AFFIX obiekt_góra TO obiekt RIGIDLY;

AFFIX obiekt_chwyt TO obiekt RIGIDLY;

Oba operatory AFFIX pozwalają rozpatrywać trzy wymienione wyżej układy współrzędnych

jako wzajemnie powiązane. Jeżeli przemieści się jeden z układów, to również przemieszczą

się pozostałe. Przemieszczenie każdego z powiązanych układów obiekt, obiekt_góra,

obiekt_chwyt jest związane z przemieszczeniem przedmiotu manipulacji. Operator AFFIX

pozwala na powiązanie układów współrzędnych i jednoczesne określenie jednego z nich. Na

przykład instrukcja: AFFIX obiekt_chwyt TO obiekt AT TRANS(NILROT, VECT(dł/2, szer/2, wys/2)) RIGIDLY;

jednocześnie określa położenie układu współrzędnych obiekt_chwyt. Użyte tutaj słowo NILROT

ukazuje na nieobecność obrotu.

Page 187: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

187

Również w przypadku, kiedy przedmiot utrzymywany jest przez chwytak robota tworzone są

takie same współzależności powiązań, tym razem z układem efector. Zatem, jeżeli przyjąć

obecność opisu: AFFIX obiekt_chwyt TO efector RIGIDLY;

to cztery układy współrzędnych obiekt, obiekt_góra, obiekt_chwyt i efector będą sterowane jako

jedna całość.

Ponieważ każdy element przestrzeni roboczej robota jest opisany układem współrzędnych,

więc można połączyć jeden element z przyporządkowanym mu układem jeden z drugim

elementem przez powiązanie z jego układem drugi. Taki przypadek może wystąpić przy

montażu dwóch detali, w wyniku którego tworzona jest jedna całość. Opis takiego połączenia

jest następujący: AFFIX jeden TO drugi RIGIDLY;

Występujący tutaj warunek RIGIDLY oznacza trwałe połączenie elementów opisanych

układami współrzędnych jeden i drugi, na przykład za pomocą nita, śruby lub innego trwałego

połączenia fizycznego. Przemieszczenie jednego z elementów spowoduje przemieszczenie

drugiego.

Zapis: AFFIX nadstawka TO podstawa NONRIGIDLY;

przedstawia połączenie nietrwałe, kiedy na podstawie ustawiono nadstawkę. Jeżeli przemieści

się podstawę, to razem z nią przemieści się również nadstawka. Jeżeli jednak przemieści się

nadstawkę, to podstawa nie zmieni swojej pozycji.

Page 188: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

188

Odłączenie układów współrzędnych przeprowadza się za pomocą operatora UNFIX. Na

przykład, jeżeli chwytak przestaje trzymać przedmiot należy wykonać operację: UNFIX obiekt_chwyt FROM efektor;

Od tego zapisu chwytak będzie się przemieszczał, podczas gdy przedmiot pozostanie

nieruchomy.

Instrukcjami programującymi przemieszczenia obiektów są instrukcje typu MOVE.

Przemieszczenie chwytaka do pozycji i orientacji pozwalającej uchwycić przedmiot można

opisać następująco: MOVE efector TO obiekt_chwyt;

Do określenia orientacji i pozycji ramienia robota w języku AL zarezerwowano zmienną typu

FRAME o nazwie ARM. W przypadku większej ilości ramion stosuje się nazwy ARM1 …

ARM7. Instrukcja:

MOVE ARM TO ARM ∗ TRANS(ROT(zhat,30∗DEG), VECTOR(50,60,70));

oznacza względne przesunięcie efektora do pozycji określonej wynikiem transformacji układu

ARM.

Instrukcje ruchu mogą zawierać dodatkowe informacje o sposobie ruchu. Niektóre z nich to:

MOVE ARM TO obiekt WITH SPEED FACTOR = a; ruch odbędzie się z 1/a prędkości

maksymalnej,

MOVE ARM TO obiekt WITH DURATION = t∗SEC; ruch odbędzie się w czasie t sekund,

MOVE ARM TO obiekt WITH MULLING; położenie obiekt ma być osiągnięte dokładnie,

MOVE ARM TO obiekt VIA pozycja1, pozycja2; ruch do położenia obiekt odbędzie się przez

pozycje pośrednie pozycja1 i pozycja2, które są typu FRAME,

Page 189: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

189

MOVE ARM TO obiekt VIA pozycja1 WHERE VELOCITY = v∗CM/SEC; ruch poprzez pozycję

pośrednią pozycja1 ma się odbyć z prędkością v cm/s,

MOVE ARM TO obiekt WITH WOBBLE = k; w trakcie ruchu do celu obiekt, kiść robota zostanie

wprowadzona w sinusoidalne drgania o amplitudzie k,

co ma zastosowanie przy operacjach montażu w otworach,

MOVE ARM TO pozycja WITH TORQUE = b∗GCM ABOUT wektor; ruch wykonywany jest z

kontrolowaną wartością momentu wokół zadanego wektora,

MOVE narz TO pozycja WITH FORCE = 900∗G ALONG xhat; ruch narzędzia narz wykonywany

jest w środowisku stawiającym opór z siłą 900 G wzdłuż osi x.

Przy wykonywaniu operatora MOVE może pojawić się sytuacja, kiedy z powodu

pojawiających się warunków, wskazane jest przełączenie na inne działanie. W takim

przypadku można posłużyć się łącznikiem ON, o następującej strukturze: ON warunek DO działanie;

Przykład działania operatora z zastosowaniem łącznika :

MOVE ARM TO finalna ON FORCE(zhat) > fmax DO STOP ARM; przemieszczenie do pozycji

finalna jest realizowane do momentu, kiedy siła reakcji w kierunku

osi z nie przekroczy wartości fmax – wówczas ramię jest zatrzymywane.

Powyższą strukturę można wykorzystać do zaprogramowania procesu stawiania przedmiotu z

wykorzystaniem sensoryki siłowej. Fragment programu jest następujący: MOVE obiekt TO finalna + VECTOR(0,0,­10) ON FORCE(zhat) < fmin DO

begin

STOP efektor;

OPEN efektor TO pełne_otwarcie;

end;

Page 190: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

190

Operatory innych działań to na przykład OPEN, CLOSE, CENTER, SQUEEZE, OPERATE. Za

pomocą operatorów OPEN i CLOSE reguluje się szerokością otwarcia i zamknięcia palców

chwytaka: OPEN efektor TO s∗CM;

CLOSE efektor TO s∗CM; otwarcie i zamknięcie z określeniem odległości między palcami, OPEN efektor BY s∗CM;

CLOSE efektor BY s∗CM; otwarcie i zamknięcie określone jako względne przesunięcie palców.

Operator CENTER pozwala, nie przemieszczając obiektu, chwycić go centralnie. Za pomocą

operatora SQUEEZE reguluje się siłę zacisku palców. Użycie tych operatorów ilustruje

następujący fragment: OPEN efektor TO otwarcie_palców;

MOVE efektor TO pokrywa;

SQUEEZE efektor BY siła_zacisku;

CENTER efektor;

AFFIX pokrywa TO efektor RIDIGLY;

MOVE pokrywa TO obiekt_góra;

OPEN efektor TO otwarcie_palców;

UNFIX pokrywa FROM efektor;

AFFIX pokrywa TO obiekt NONRIDIGLY;

MOVE efektor TO …

Do sterowania urządzeniami peryferyjnymi, do których można zaliczyć np. elektrowkrętak,

magazyn detali, uchwyt, imadło itd., służy operator OPERATE. Pracę elektrowkrętaka można

opisać w sposób następujący:

Page 191: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

191

OPERATE elektrowkrętak WITH TORQUE=moment_zacisku;

gdzie zmienna moment_zacisku charakteryzuje moment pojawiający się przy dokręcaniu

śruby.

Mimo że język AL jest językiem zorientowanym obiektowo istnieje w nim również

możliwość programowania ruchów poszczególnych osi manipulatora. Służą do tego

instrukcje:

DRIVE JOINT(n) OF ARM1 TO α;

DRIVE JOINT(n) OF ARM2 BY β;

Instrukcje te powodują obrót n­tego przegubu ramienia ARM1 do pozycji α w pierwszym

przypadku lub, w przypadku drugim dla ramienia ARM2, przyrostowo o wartość β.

Przemieszczenie ramienia manipulatora do położenia spoczynkowego programuje się

specjalną instrukcją: PARK ARM

Przy tworzeniu programu wskazane jest posługiwanie się strukturą blokową, w której bloki

programowe wydzielone są operatorami begin i end. Na przykład poniższa struktura pozwala

wykonać blok programowy zawsze po pojawieniu się odpowiedniej wartości sygnału z

wybranego sensora: ALWAYS WHEN SENSOR(n) <(≥) a DO

begin

end;

Page 192: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

192

Jako struktury syntaktyczne sterujące przebiegiem przetwarzania programu używane są

operatory sterujące zapożyczone z języka programowania Pascal. Są to operatory IF, FOR,

WHILE, CASE.

Do opisu działań równoległych wprowadzono operatory wydzielające bloki programowe

równoległego przetwarzania cobegin i coend. Na przykład zapis: cobegin

MOVE białe_ramię TO b_pozycja;

MOVE czerwone_ramię TO c_pozycja;

coend;

programuje jednoczesne przemieszczenie dwóch ramion do dwóch pozycji zatrzymania.

W przypadku konieczności synchronizacji działań równoległych używa się operatorów

SIGNAL i WAIT korzystających z semaforów zezwalających lub blokujących działania.

Semafor jest zmienną całkowitą przypisaną danemu procesowi. Jego wartość początkowa jest

równa zero. Kiedy semafor przyjmuje wartość ujemną, wykonanie rozpatrywanego procesu,

który określił tę wartość, jest wstrzymywane. Przy nieujemnej wartości semafora wykonanie

rozpatrywanego procesu jest kontynuowane. Za pomocą operatora WAIT sem; zmniejsza się

wartość semafora sem o 1. Operator SIGNAL sem; zwiększa wartość semafora o 1. Jeżeli,

zgodnie z wartością sem, mamy do czynienia z procesem, który po wykonaniu operatora WAIT

sem; był wstrzymany, to jego wykonanie jest wznawiane. Kiedy nie istnieje proces

wstrzymany, to nie są wykonywane żadne działania.

Page 193: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

193

Przykład programu działań równoległych podczas uchwycenia przedmiotu manipulacji obiekt

przez ramię_lewe i przełożenia go do ramię_prawe jest następujący: cobegin

begin (początek działania ramię_lewe) MOVE ramię_lewe TO obiekt; ramię_lewe przemieszcza się do miejsca położenia obiektu

CENTER ramię_lewe; chwycenie obiektu przez ramię_lewe

AFFIX obiekt TO ramię_lewe;

MOVE obiekt TO pozycja_oddania; obiekt przemieszczany jest do miejsca przekazania

SIGNAL gotowy; zakończenie przygotowania do przekazania obiektu WAIT przekaz; oczekiwanie na przejęcie obiektu przez ramię_prawe

OPEN ramię_lewe TO pełne_otwarcie; przekazanie obiektu UNFIX obiekt FROM ramię_lewe;

SIGNAL koniec; koniec działania ramię_lewe

end;

begin (początek działania ramię_prawe) OPEN ramię_prawe TO pełne_otwarcie;

MOVE ramię_prawe TO pozycja_przejęcia; przemieszczenie ramię_prawe do miejsca przejęcia

WAIT gotowy; oczekiwanie na zakończenie przygotowania do przekazania przez ramię_lewe

CENTER ramię_prawe; chwycenie obiektu przez ramię_prawe

AFFIX obiekt TO ramię_prawe;

SIGNAL przekaz; sygnał o przejęciu obiektu przez ramię_prawe

WAIT koniec; oczekiwanie na zakończenie działania ramię_lewe

MOVE obiekt TO paleta; dalsze przemieszczanie obiektu przez ramię_prawe

end;

coend;

Page 194: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

194

Często upraszcza się strukturę programu sterującego robota przez stosowanie makroinstrukcji,

które opisują wielokrotnie powtarzające się fragmenty związane z typowymi działaniami.

Efektywność stosowania makroinstrukcji wynika z stosowania argumentów w postaci

parametrów, przyjmujących różne wartości przy każdym odwołaniu się do makroinstrukcji.

W programie głównym makroinstrukcja jest wywoływana przez podanie jej indywidualnej

nazwy. Rozpatrzmy przykład definiowania makroinstrukcji: DEFINE chwyt ($obiekt, $siła_zacisku)

macrobegin

MOVE efektor TO miejsce_chwytu($obiekt);

CENTER efektor;

SQUEEZE efektor BY $siła_zacisku;

AFFIX $obiekt TO efektor RIDIGLY;

macroend;

W definicji tej określono nazwę makroinstrukcji , która służy do jej wywoływania w

programie głównym, określono argumenty w postaci parametrów, które mają przypisane

konkretne wartości przy wywołaniu makroinstrukcji, oraz określono treść makroinstrukcji

zawartą między operatorami macrobegin … macroend. W powyższym przykładzie zastosowana

w treści makroinstrukcji funkcja miejsce_chwytu(…) oblicza punkt chwytu obiektu. Jeżeli w

programie głównym znajduje się opis chwyt (pokrywa, 900) to realizowane jest wywołanie

zdefiniowanej wyżej makroinstrukcji i w jej treści wprowadzane są konkretne wartości

argumentów. W ten sposób dla tego wywołania makroinstrukcja jest wykonywana jako

następujący fragment programu:

Page 195: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

195

MOVE efektor TO miejsce_chwytu(pokrywa);

CENTER efektor;

SQUEEZE efektor BY 900;

AFFIX pokrywa TO efektor RIDIGLY;

Na rys.4.7 zestawiono omówione podstawowe struktury syntaktyczne języka AL

Page 196: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

196 Moduł programowy

begin

<operator>;

<operator>;

… ;

<operator>;

end;

Typy danych SCALAR VECTOR ROTATION COORDINATE TRANSFORM

Funkcje programowe

VECT(scalar,scalar,scalar)

ROT(vector,scalar)

COORD(rotation,vector)

TRANS(rotation,vector)

Operatory podstawiania <zmienna> ← <wyrażenie>;

Operatory sterujące

IF <warunek> THEN <działanie> [ELSE <działanie>];

FOR <zmienna> = <początek>, <koniec> [STEP <krok>] DO <działanie>;

WHILE <warunek> DO <działanie>;

CASE <zmienna> OF begin <wartość1>:<moduł>;<wartość2>:<moduł>; … ; end;

Operatory powiązania i rozłączenia układów współrzędnych

AFFIX <układ> TO <układ> [AT <trans>];

UNFIX <układ> FROM <układ>;

Operatory działań

MOVE <układ> TO <układ> [DIRECTLY] [VIA <układ>, <układ>, …]

[ON <warunek> DO <działanie>]

[WITH <wskazanie sensora>];

OPEN <efektor> TO <otwarcie>;

CENTER <efektor>;

SQUEEZE <efektor> BY <parametr>;

OPERATE <urządzenie>;

STOP <urządzenie>;

Procedury PROCEDURE <nazwa> [(argument, … , argument)]

<moduł programowy>

Działania równoległe

cobegin

<operator>;

… ;

<operator>;

coend;

Synchronizacja SIGNAL <semafor>;

WAIT <semafor>;

Makroinstrukcje DEFINE <nazwa> [(argument, … , argument)]

macrobegin

<moduł programowy>

macroend;

Rys.4.7. Struktury syntaktyczne języka AL

Page 197: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

197

4.3 Przykładowy program montażu

Proces montażu dotyczy korpusu, do którego za pomocą czterech śrub należy

przykręcić pokrywę. Korpus ma wysokość H i cztery gwintowane otwory rozmieszczone

symetrycznie w odległości 2a wzdłuż krótszego boku i 2b wzdłuż dłuższego boku. Pokrywa o

wysokości h ma cztery otwory nie gwintowane i rozmieszczone tak samo jak otwory w

korpusie. Przedmioty niezbędne do montażu oraz narzędzia rozmieszczone są na scenie

roboczej w sposób pokazany na rys.4.8. Montaż będzie wykonany przy użyciu

przykładowego robota, wyposażonego w chwytak z czujnikami dotyku oraz w układ

sensoryki siłowej i system wizyjny z kamerą. Dodatkowymi elementami wspomagającymi

montaż są: uchwyt montażowy (imadło) do mocowania obiektu, dwa trzpienie bazujące

wstawione do stojaka, elektrowkrętak wstawiony do stojaka, podajnik ze śrubami.

Kolejność montażu może być następująca:

1. zlokalizować korpus i umieścić go w uchwycie montażowym;

2. wyjąć dwa trzpienie ustalające ze stojaka i wstawić do otworów korpusu, które

znajdują się na przekątnej górnej ściany;

3. zlokalizować pokrywę i wykorzystując trzpienie ustalające osadzić na korpusie;

4. wkręcić dwie śruby do nie zajętych otworów;

Page 198: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

198

5. usunąć trzpienie ustalające i wstawić je do stojaka;

6. wkręcić pozostałe dwie śruby;

7. poprawić dokręcenie wszystkich śrub;

8. wyjąć zmontowany korpus z uchwytu i umieścić w określonej pozycji.

Program wykonania montażu ma dwie części. W pierwszej części opisana jest

kolejność operacji montażowych, w części drugiej opisano elementy sceny roboczej.

2

5

6

1

Rys.4.8. Zadanie montażowe dla przykładowego robota. 1 – manipulator, 2 – kamera, 3 – korpus, 4 – pokrywa, 5 – imadło, 6 – dwa trzpienie bazujące, 7 – elektrowkrętak, 8 – podajnik śrub, 9 – śruby

8

4 5

3

7 9

Page 199: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

199

W języku AL położenie i orientację obiektów sceny oraz rozmieszczenie ważnych

elementów tych obiektów opisuje się wykorzystując układy współrzędnych i relacje

powiązania tych układów i w ten sposób buduje się system współrzędnych

wykorzystywany w procesie programowania. Na rys.4.9 pokazano system

współrzędnych dla omawianego procesu montażu. W programie należy umieścić

informację o typach układów współrzędnych, a także o ich powiązaniach. Jako

przykład takiego opisu rozpatrzymy korpus, do opisu którego należy użyć siedmiu

układów współrzędnych wzajemnie powiązanych. W języku programowania robota

dane o tych układach współrzędnych i ich powiązaniach można zapisać w następujący

sposób: korpus ← COORD(ROT(zhat, αk), VECT(xk,yk,0);

AFFIX korpus_chwyt TO korpus AT TRANS(NILROT, VECT(0,0,H/2));

AFFIX korpus_góra TO korpus AT TRANS(NILROT, VECT(0,0,H));

AFFIX ok1 TO korpus_góra AT TRANS(NILROT, VECT(–a,–b, 0));

AFFIX ok2 TO korpus_góra AT TRANS(NILROT, VECT(a,–b,0));

AFFIX ok3 TO korpus_góra AT TRANS(NILROT, VECT(a,b,0));

AFFIX ok4 TO korpus_góra AT TRANS(NILROT, VECT(–a,b,0));

W opisie tym układ współrzędnych korpus, związany z korpusem, zajmuje położenie

opisane współrzędnymi środka układu (xkyk0) i orientacją, którą można przedstawić

kątem obrotu αk względem osi z. Układ współrzędnych korpus_chwyt, który opisuje

sposób uchwycenia korpusu i układ współrzędnych korpus_góra, który opisuje miejsce

położenia otworów na śruby mocujące pokrywę są powiązane z układem korpus.

Położenie otworów opisane są za pomocą przyporządkowanych im układów ok1, ok2,

Page 200: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

200

ok3, ok4. Są one powiązane z układem korpus_góra, a więc również z układem korpus.

W ten sposób układy te zachowują stałe istniejące powiązania. Dla pozostałych

obiektów na scenie wykonuje się opisy powiązań układów współrzędnych w podobny

sposób.

Przed wykonaniem programowania działań montażowych, korzystnie jest zdefiniować

makroinstrukcje podstawowych czynności, jakie są wykonywane wielokrotnie w procesie

montażu.

Rys.4.9. System współrzędnych do opisu sceny roboczej

śruba

korpus_chwyt korpus

korpus_góra

pokrywa_chwyt pokrywa

pokrywa_góra

imadło

trzpień1_poz trzpień2_poz elektrowkręt_poz

elektrowkręt

elektrowkręt_chwyt

trzpień1_dół

trzpień1_chwyt

trzpień1_góra trzpień2_góra

trzpień2_chwyt

trzpień2_dół

ok1 ok2

ok4

ok3

op1 op2

op3

op4

Page 201: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

201

Jedną z ważniejszych czynności, z którymi mamy do czynienia w trakcie montażu jest

osadzanie trzpienia w otworze. Operację tą można podzielić na dwa etapy. Pierwszy polega

na dostatecznie dokładnym ustawieniu osi trzpieni w osi otworu, a drugi polega na

precyzyjnym wstawieniu trzpienia do otworu. Jeżeli czoło trzpienia i krawędź otworu mają

fazy to wstawienie trzpienia do otworu nie jest trudne. Jeżeli fazowania nie ma i dodatkowo

luz między trzpieniem i otworem jest niewielki to należy przeprowadzić złożony proces

poszukiwania krawędzi otworu i osadzania trzpienia. W omawianym przypadku końce

trzpieni bazujących mają stożkowe zakończenie. Jeżeli błąd pozycjonowania jest dostatecznie

mały to wykorzystując sensorykę siłową można płynnie wsuwać trzpień do otworu. Należy

przy tym zapewnić takie warunki realizacji tej operacji, przy których siła reakcji w

płaszczyźnie poziomej przyjmuje wartość zerową. Badając siłę reakcji pojawiającej się w

kierunku pionowym można określić moment, kiedy trzpień osiągnie dno otworu. Wówczas

można zakończyć proces osadzania trzpienia w otworze. Opisane wyżej działania można

zaprogramować jako makroinstrukcję wstaw_do_otworu. Jej definicja jest następująca: DEFINE wstaw_do_otworu

macrobegin

MOVE efektor TO @start – VECTOR(0,0,d) ON FORCE(zhat)>f1 DO STOP efektor;

MOVE efektor TO @start – VECTOR(0,0,g) WITH FORCE(xhat)=0;

WITH FORCE(yhat)=0;

ON FORCE(zhat)>f2 DO STOP efektor;

macroend;

Działanie makroinstrukcji zaczyna się od stanu, w którym czoło trzpienia jest położone nieco

ponad powierzchnią otworu, co odpowiada początkowemu położeniu efektora opisanemu

Page 202: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

202

jako @start. Wówczas @start – VECTOR(0,0,d) jest to położenie, w którym stożkowa część

trzpienia jest w otworze, natomiast @start – VECTOR(0,0,g) określa położenie efektora, przy

którym trzpień dotyka dna otworu. Należy też zaznaczyć, że f1 i f2 są to graniczne wartości sił

reakcji pojawiające się w momencie, gdy część walcowa trzpienia jest wprowadzana do

otworu i gdy trzpień osiąga dolną powierzchnię otworu.

Po osadzeniu trzpieni bazujących należy wykonać wkręcanie śrub, które podawane są w

podajniku. Uchwycenie śruby można realizować za pomocą odpowiedniej końcówki

elektrowkrętaka, która wchodzi do sześciokątnego otworu we łbie śruby. W pierwszej

kolejności należy pozycjonować osiowo elektrowkrętak, a następnie włączając obroty

przesuwać z niewielkim dociskiem końcówkę do sześciokątnego otworu. Można wówczas

podnieść i przemieścić śrubę razem z elektrowkrętakiem. Definicja odpowiedniej

makroinstrukcji jest następująca: DEFINE przechwyt_śruby

macrobegin

cobegin

MOVE efektor TO @start – VECTOR(0,0,l) WITH FORCE(zhat)=–f1;

OPERATE elektrowkręt WITH TORQUE=m1;

ON DURATION=1 DO

begin

STOP elektrowkręt;

STOP efektor;

end;

coend;

macroend;

Page 203: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

203

Jeżeli śruba ma lekko fazowany koniec, to operacja wkręcania do otworu w początkowym

etapie może być taka sama, jak w przypadku osadzania trzpienia. Śruba jest wsuwana do

otworu do momentu, gdy jej koniec znajdzie się przy brzegu nagwintowanego otworu.

Następnie, lekko dociskając śrubę i obracając ją, wykonuje się wkręcanie do otworu. Należy

przy tym zachować warunek, aby siła reakcji działająca na śrubę w kierunku poziomym była

równa zeru. Definicja makroinstrukcji programującej proces wkręcania śruby jest

następująca: DEFINE wkręt_śruby

macrobegin

MOVE efektor TO @start – VECTOR(0,0,d) ON FORCE(zhat)>f1 DO STOP efektor;

cobegin

MOVE efektor TO @start – VECTOR(0,0,L) WITH FORCE(zhat)=–fd;

WITH FORCE(xhat)=0;

WITH FORCE(yhat)=0;

OPERATE elektrowkręt WITH TORQUE=moment_zacisku;

ON TORQUE(elektrowkręt)>md DO

begin

STOP elektrowkręt;

STOP efektor;

end;

coend;

macroend;

Zaprogramowano tutaj przemieszczanie efektora z przyłożoną stałą siłą nacisku fd w kierunku

osi z. Przy tym w kierunku osi x i y siły reakcji mają być zredukowane do zera.

Page 204: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

204

Takie działanie ma być realizowane równolegle z obrotem elektrowkrętaka. Dokręcanie śruby

jest zakończone kiedy moment obrotowy wytwarzany przez elektrowkrętak przekroczy

wartość md.

Pozostałe definicje makroinstrukcji używanych w programie montażu są następujące:

DEFINE załóż_chwyt ($obiekt, $siła_chwytu)

macrobegin

CENTER (siła_chwytu);

AFFIX $obiekt TO efektor;

macroend;

DEFINE centralny_chwyt ($obiekt, $siła_chwytu)

macrobegin

CENTER (10);

OPEN efektor TO 100;

MOVE efektor TO @start∗COORD(ROT(zhat,90), VECT(0,0,0));

CENTER ($siła_chwytu);

AFFIX $obiekt TO efektor;

macroend;

DEFINE zwolnij_chwyt ($obiekt)

macrobegin

OPEN efektor TO pełne_otwarcie;

UNFIX $obiekt FROM efektor;

macroend;

Page 205: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

205

DEFINE uchwyt_śruby ($śruba)

macrobegin

przechwyt_śruby;

$śruba ← śruba – VECT(0,0,d);

AFFIX $śruba TO elektrowkręt;

macroend;

Poniżej przytoczono podstawowe fragmenty programu montażu korpusu i pokrywy,

w których użyto omówione makroinstrukcje.

1. Ustawienie korpusu w uchwycie montażowym:

MOVE efektor TO korpus_chwyt;

centralny_chwyt (korpus, siła_chwytu_korpusu);

MOVE korpus TO imadło;

OPERATE imadło WITH siła_zamknięcia;

zwolnij_chwyt (korpus);

2. Wstawienie dwóch trzpieni ustalających: MOVE efektor TO trzpień1_chwyt;

centralny_chwyt (trzpień1_chwyt, siła_ujęcia);

MOVE trzpień1_dół TO ok1;

wstaw_do_otworu;

zwolnij_chwyt (trzpień1_chwyt);

MOVE efektor TO trzpień2_chwyt;

centralny_chwyt (trzpień2_chwyt, siła_ujęcia);

MOVE trzpień2_dół TO ok3;

wstaw_do_otworu;

Page 206: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

206

zwolnij_chwyt (trzpień2_chwyt);

3. Ustawienie pokrywy na korpusie za pomocą trzpieni ustalających:

MOVE efektor TO pokrywa_chwyt;

centralny_chwyt (pokrywa_chwyt, siła_chwytu_pokrywy);

MOVE pokrywa TO korpus_góra;

wstaw_do_otworu;

AFFIX pokrywa TO korpus;

zwolnij_chwyt (pokrywa_chwyt);

4. Wkręcenie dwóch śrub:

MOVE efektor TO elektrowkręt_chwyt;

centralny_chwyt (elektrowkręt, siła_ujęcia);

MOVE elektrowkręt TO śruba;

uchwyt_śruby (śruba2);

MOVE śruba2 TO op2;

wkręt_śruby;

UNFIX śruba2 FROM elektrowkręt;

MOVE elektrowkręt TO śruba;

uchwyt_śruby (śruba4);

MOVE śruba4 TO op4;

wkręt_śruby;

UNFIX śruba4 FROM elektrowkręt;

MOVE elektrowkręt TO elektrowkręt_poz;

wstaw_do_otworu;

zwolnij_chwyt (elektrowkręt);

Page 207: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

207

5. Wyjęcie trzpieni ustalających:

MOVE efektor TO trzpień2_chwyt;

centralny_chwyt (trzpień2_chwyt, siła_ujęcia);

MOVE trzpień2_dół TO trzpień2_poz;

wstaw_do_otworu;

zwolnij_chwyt (trzpień2_chwyt);

MOVE efektor TO trzpień1_chwyt;

centralny_chwyt (trzpień1_chwyt, siła_ujęcia);

MOVE trzpień1_dół TO trzpień1_poz;

wstaw_do_otworu;

zwolnij_chwyt (trzpień1_chwyt);

6. Wkręcenie pozostałych dwóch śrub:

MOVE efektor TO elektrowkręt_chwyt;

centralny_chwyt (elektrowkręt, siła_ujęcia);

MOVE elektrowkręt TO śruba;

uchwyt_śruby (śruba1);

MOVE śruba1 TO op1;

wkręt_śruby;

UNFIX śruba1 FROM elektrowkręt;

MOVE elektrowkręt TO śruba;

uchwyt_śruby (śruba3);

MOVE śruba3 TO op3;

wkręt_śruby;

UNFIX śruba3 FROM elektrowkręt;

MOVE elektrowkręt TO elektrowkręt_poz;

Page 208: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

208

wstaw_do_otworu;

zwolnij_chwyt (elektrowkręt);

7. Dokręcenie czterech śrub:

MOVE elektrowkręt TO śruba1;

przechwyt_śruby;

OPERATE elektrowkręt WITH TORQUE = moment_dokręcenia;

AFFIX śruba1 TO pokrywa;

MOVE elektrowkręt TO śruba3;

przechwyt_śruby;

OPERATE elektrowkręt WITH TORQUE = moment_dokręcenia;

AFFIX śruba3 TO pokrywa;

MOVE elektrowkręt TO śruba2;

przechwyt_śruby;

OPERATE elektrowkręt WITH TORQUE = moment_dokręcenia;

AFFIX śruba2 TO pokrywa;

MOVE elektrowkręt TO śruba4;

przechwyt_śruby;

OPERATE elektrowkręt WITH TORQUE = moment_dokręcenia;

AFFIX śruba4 TO pokrywa;

MOVE elektrowkręt TO elektrowkręt_poz;

wstaw_do_otworu;

zwolnij_chwyt (elektrowkręt);

Page 209: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

209

8. Wyjęcie z uchwytu zmontowanego zespołu i umieszczenie go w zadanej pozycji:

MOVE efektor TO korpus_chwyt;

załóż_chwyt (korpus, siła_chwytu_zespołu);

OPERATE imadło WITH OPENING = pełne_otwarcie;

MOVE korpus TO pozycja_palety – VECTOR(0,0,10) ON FORCE(zhat)>siła_ustawienia DO

stop efektor;

zwolnij_chwyt (korpus);

AFFIX korpus TO pozycja_palety;

MOVE efektor TO pozycja_spoczynku;

Page 210: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

210

4.4 Inne języki programowania

Języki programowania robotów są językami wysokiego poziomu zorientowanymi

obiektowo. Oferują one różnorodne typy danych i operacji arytmetycznych i logicznych,

pozwalają na swobodne wykorzystywanie operatorów programowania ruchu, sensorowania,

programowania mechanizmów komunikowania się pomiędzy obiektami technologicznymi

itp. Wspólnym elementem wszystkich języków programowania robota jest istnienie

specjalnych typów geometrycznych. Na przykład wprowadzane są typy, służące do

przedstawiania zbiorów współrzędnych wewnętrznych, jak również pozycji i orientacji

układów kartezjańskich. W wielu językach programowania możliwość definiowania

zmiennych różnych typów geometrycznych umożliwia tworzenie modelu otoczenia. Fizyczne

kształty obiektów nie są częścią takiego modelu, podobnie jak nie są jego częścią

powierzchnie, objętości, masy lub inne właściwości. Sposób modelowania obiektów w

otoczeniu robota jest jedną z podstawowych cech różniących języki programowania robotów.

Inną cechą rozróżniającą języki programowania robotów jest zdolność do wykonywania

operacji matematycznych na typach strukturalnych, takich jak układy, wektory i macierze

Page 211: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

211

obrotu. Podobne znaczenie ma możliwość zadawania celów w różnych układach odniesienia i

w różnych dogodnych reprezentacjach z możliwością przekształceń między reprezentacjami.

Porównanie możliwości programowania robotów i modelowania otoczenia przy pomocy

niektórych języków programowania pokazano w tablicy 4.2.

Prace prowadzone nad rozwojem języków programowania robotów są ukierunkowane

na zbliżenie składni i wyrażeń tego języka do języka naturalnego. Języki tego typu muszą

zawierać instrukcje syntezy modelu otoczenia w sposób problemowy oraz rozbudowany blok

sztucznej inteligencji, dokonujący planowania działań robota na podstawie zadań określonych

problemowo.

Page 212: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

212

Tablica 4.2. Porównanie wybranych języków programowania robotów

Możliwości programowe Oznaczenie języka

Znaczenie skrótu

Twórca

Instrukcje ruchu

Instrukcje obsługi

chwytaka

Instrukcje obsługi

sensorów

Geometryczny opis

obiektu

Geometryczny opis

położenia

Dane specjalne

Podstawow

e operacje

arytmetyczne

Relacje

Kontrola przebiegu

wykonania

Procedury

Podprogram

y

Wielozadaniow

ość

AL Assembly language

Uniwersytet w Stanford + + + + + + + + + + +

Autopass Automated parts assembly system

IBM + + + + + + + + + ML Manipulator

language IBM + + + + Sigla Sigma

language Olivetti + + + + + + + MAL Multipurpose

assembly Uniwersytet w Mediolanie + + + + + + +

RPL Robot programming language

Uniwersytet w Berlinie + + + +

RAPT Robot automatic programmed tools

Uniwersytet w Edymburgu + + + +

Robex Robot exapt

WZL Akwizgran + + + + + + +

TL Toyota language Toyota + + + + + +

Page 213: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

213

4.5 System programowania robotów

Pod pojęciem systemu programowania robota rozumiemy zespół środków programowych

niezbędnych do wprowadzania, zapisu programu użytkowego i jego przetwarzania wraz

z oprogramowaniem narzędziowym.

System programowania robota ma realizować dwa zasadnicze zadania:

− wykonać konsolidację programu i jego przetworzenie na sygnały sterujące manipulatorem;

− dokonać uruchomienia i wykonania przetworzonego programu.

Systemy programowania mogą być zorientowane na programowanie ruchu manipulatora,

w których operator bezpośrednio określa ruchy robota i algorytmy analizy informacji

sensorycznej. Podstawowymi komponentami takiego systemu programowania robotów są:

− system operacyjny;

− moduł wprowadzania danych;

− edytor;

− kompilator;

− interpreter.

Page 214: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

214

W bardziej rozwiniętych systemach programowania zorientowanych na model otoczenia, dla

których danymi wyjściowymi są opisy wymaganych oddziaływań na obiekty wprowadza się

dodatkowo:

− bazę danych modelu otoczenia;

− symulator;

− moduł procesora geometrycznego;

− moduł reprezentacji sensorów zewnętrznych.

Schemat pełnej wersji systemu programowania robota w języku wysokiego poziomu

pokazano na rys.4.10. System składa się z dwóch warstw. Procesor nadrzędny ma za zadanie

przetworzenie instrukcji programu działania do postaci kodów instrukcji odpowiednich dla

interpretera procesora podrzędnego. Zadanie przetworzenia instrukcji realizuje kompilator

systemu w oparciu o bazę danych modelu otoczenia. Procesor podrzędny dokonuje dalszego

przetworzenia instrukcji na sygnały sterujące manipulatorem. Procesem przetwarzania

informacji w systemie programowania zarządza system operacyjny. System operacyjny

wykonuje zadania związane z obsługą przydziału obszarów pamięci, organizacją danych,

sterowaniem wejściami i wyjściami, obsługą przerwań zewnętrznych, realizacją funkcji

oczekiwań, realizacją cyklicznych startów procesu wykonania programu. Informacja w

systemie jest przetwarzana w ciągu edytor – kompilator – interpretator.

Edytor systemu programowania robota jest standardowym programem pomocniczym,

pozwalającym na syntezę programu, jego redagowanie, modyfikowanie i poprawianie.

Oprócz standardowych procedur edytora tekstu edytor systemu programowania

Page 215: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

215

Edytor Procesor

geometryczny

Kompilator Model otoczenia

off­line

Symulator

Interpretator Model otoczenia

on­line

Moduł wprowadzania

danych

Moduł reprezentacji sensorów

Ręczne sterowanie

Protokół translacji

Lista błędów syntaktycznych

Programowanie Modelowanie otoczenia

Kody instrukcji

Meldunki kontrolne

Sterowanie Sensory

Procesor podrzędny

Procesor nadrzędny

Rys.4.10. Struktura systemu programowania robota

Page 216: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

216

charakteryzuje się dodatkowymi procedurami edycji układów współrzędnych, które ułatwiają

użytkownikowi operowanie zmiennymi typu frame.

Kompilator systemu programowania robota wykonuje analizę leksykalną i syntaktyczną

tekstu programu, wykrywanie błędów syntaktycznych, kodowanie instrukcji programu do

postaci pośredniej, protokołowanie procesu translacji i formułowanie odpowiednich

komentarzy. Szczególną cechą niektórych kompilatorów języków programowania robotów

jest realizowanie planowania toru ruchu manipulatora na podstawie modelu otoczenia, który

jest generowany przez procesor geometryczny na podstawie proceduralnych opisów obiektów

wprowadzonych przez programistę.

Interpreter, na podstawie kodów instrukcji otrzymanych z kompilatora, generuje

odpowiadające im sygnały sterujące robotem. W tym celu dokonywane jest wprowadzenie

wygenerowanych ciągów sygnałów sterujących do zarezerwowanych w tym celu obszarów

pamięci i wytworzenie ciągu komend systemu operacyjnego do sterowania i zarządzania

wykonaniem programu działania robota. Interpretator wykonuje również interpretację

sygnałów zwrotnych z robota, sygnałów z systemu sensorycznego i sygnałów podawanych

przez urządzenia z otoczenia robota.

Tylko niektóre, najbardziej rozbudowane systemy programowania robotów, wyposażone są

w symulator wykonania programu. Symulator taki umożliwia trójwymiarową wizualizację

robota i otoczenia. Podczas symulacji, sygnały sterowania robotem otrzymywane z

interpretatora powodują komputerową animację ruchów robota i manipulowanych obiektów,

wraz z symulacją uwarunkowań sensorycznych ruchów. Często symulatory wyposażane są

Page 217: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

217

w procedury wykrywania kolizji manipulatora z obiektami, co pozwala na częściowe

zautomatyzowanie procesu testowania programów działania robotem.

Page 218: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

218

Literatura uzupełniająca

1. Brzózka J.: Regulatory cyfrowe w automatyce. Wydawnictwo MIKOM, Warszawa 2002.

2. Bubnicki Z.: Teoria i algorytmy sterowania. Wydawnictwo Naukowe PWN,

3. Warszawa 2002.

4. Craig J.J.: Wprowadzenie do robotyki. WNT, Warszawa 1993.

5. Giergiel M.J., Hendzel Z., Żylski W.: Modelowanie i sterowanie mobilnych robotów kołowych. Wydawnictwo Naukowe PWN, Warszawa 2002.

6. Heimann B., Gerth W., Popp K.: Mechatronika. Komponenty, metody, przykłady. Wydawnictwo Naukowe PWN, Warszawa 2001.

7. Kaczorek T.: Teoria sterowania i systemów. Wydawnictwo Naukowe PWN,

8. Warszawa 1999.

9. Morecki A., Knapczyk J.: Podstawy robotyki. WNT, Warszawa 1999.

10. Pritschow G.: Technika sterowania obrabiarkami i robotami przemysłowymi. Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 1995.

11. Spong M.W., Vidyasagar M.: Dynamika i sterowanie robotów. WNT, Warszawa 1997

12. Zielińska T.: Maszyny kroczące. Podstawy, projektowanie, sterowanie i wzorce biologiczne. Wydawnictwo Naukowe PWN, Warszawa 2003

Page 219: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

219

Spis rysunków i tablic

Rys.1.1 Struktura systemu oddziaływania automatu z otoczeniem………………………...6

Rys.1.2 Interakcje w systemie robot­otoczenie­środowisko ……………………………......7

Rys.1.3 Schemat struktury konstrukcyjnej i funkcjonalnej robota ………………………..16

Rys.1.4 Rozproszony i skupiony sposób zabudowy napędów manipulatora ……………... 18

Rys.1.5 Liczba stopni swobody swobodnego członu sztywnego …………………………19

Rys.1.6 Zastosowanie współrzędnych do opisu położenia robota ……………………….. 24

Rys.1.7 Zespoły ruchu układu kinematycznego robota …………………………………... 26

Rys.1.8 Osiągalne strefy ruchów robota (VL ⊂ VR ⊂ VG ⊂ VO ⊂ VW) …………………...27

Rys.2.1 Określenie współczynnika serwisu kc ……………………………………………. 30

Rys.2.2 Określenie kierunkowego współczynnika serwisu kα …………………………….32

Rys.2.3 Ograniczenia wewnętrzne manipulatora …………………………………………. 36

Rys.2.4 Ograniczenia zewnętrzne manipulatora wynikające z warunków

współpracy z przedmiotem manipulacji ……………………………………………37

Rys.2.5 Ograniczenia zewnętrzne wynikające z charakteru obiektu manipulacji …………38

Rys.2.6 Ograniczenie zewnętrzne wynikające z pozycji obiektu manipulacji poza

strefą manipulacyjną ………………………………………………………………. 38

Rys.2.7 Rodzaje kształtów stref obsługowych robotów ………………………………….. 41

Page 220: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

220

Rys.2.8 Ilustracja niedomknięcia strefy obsługowej dla łańcucha 2R ……………………. 45

Rys.2.9 Strefa obsługowa dla łańcucha 3R przy niedomknięciu osi obrotowych …………47

Rys.2.10 Typy konfiguracji pary kinematycznej obrotowej ……………………………….48

Rys.2.11 Strefa ruchów monotonicznych dla płaskiego manipulatora 2R …………………52

Rys.2.12 Przykłady struktur regionalnych nie spełniających warunków

przestrzenności strefy obsługowej ………………………………………………. 57

Rys.2.13 Lokalne struktury orientacji chwytaka ………………………………………….. 58

Rys.2.14 Struktury regionalne manipulatorów o trzech stopniach swobody……………...60

Rys.2.15 Klasy ruchu robotów …………………………………………………………….63

Rys.3.1 Informacyjne powiązania w systemie zrobotyzowanym………………………… 64

Rys.3.2 Model elementarnego manipulatora jednoosiowego …………………………….. 68

Rys.3.3 Sterowanie stanem robota w układzie regulacji ze sprzężeniem zwrotnym………74

Rys.3.4 Przetwarzanie danych podczas interpolacji; a) interpolacja we współrzęd­

nych bazowych, b) interpolacja we współrzędnych konfiguracyjnych ………….. 77

Rys.3.5 Zadania kinematyki manipulatora …………………………………………………79

Rys.3.6 Składniki macierzy przekształcenia o rozmiarze 4H4 ……………………………. 80

Rys.3.7 Translacja układu współrzędnych …………………………………………………82

Rys.3.8 Rotacja układu współrzędnych …………………………………………………….83

Rys.3.9 Przypisanie układów współrzędnych ogniwom manipulatora …………………….84

Rys.3.10 Przykładowy robot montażowy…………………………………………………..87

Rys.3.11 Schemat kinematyczny manipulatora przykładowego robota ……………………88

Rys.3.12 Manipulator przykładowego robota klasy RTR ………………………………….90

Page 221: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

221

Rys.3.13 Schemat obliczeniowy manipulatora przykładowego robota …………………….91

Rys.3.14 Schemat obliczeniowy odwrotnego zadania kinematyki …………………………96

Rys.3.15 Schemat kątowych zależności dla przykładowego robota ……………………….98

Rys.3.16 Manipulator dwuczłonowy RT ………………………………………………….105

Rys.3.17 Schemat serwomechanizmu napędowego obrotowej osi manipulatora …………111

Rys.3.18 Uproszczony schemat sterowania napędami n osi robota ……………………….117

Rys.3.19 Cyklogram przerwań zegarowych procesu sterowania manipulatorem…………119

Rys.3.20 Schemat systemu sterującego manipulatora ……………………………………..124

Rys.3.21 Schemat sensoryki dotykowej i siłowej chwytaka ………………………………127

Rys.3.22 Planowanie trajektorii ruchu między punktami P i K ……………………………130

Rys.3.23 Schemat ruchu chwytaka od punktu początkowego P do punktu końcowego K ..132

Rys.3.24 Centrowanie chwytaka …………………………………………………………...135

Rys.3.25 Schemat obciążenia przy obracaniu korbką …………………………………….. 141

Rys.3.26 Warianty umiejscowienia czujnika wizyjnego ………………………………….. 146

Rys.3.27 Schemat modelu systemu wizyjnego …………………………………………….147

Rys.3.28 Kodowanie długości ciągów bitów ………………………………………………149

Rys.3.29 Rozpoznawanie figur na podstawie wskaźnika kształtu …………………………153

Rys.3.30 Rozpoznawanie figury przez porównanie z szablonem………………………….154

Rys.3.31 Powiązanie układu kamery z bazowym układem współrzędnych ……………….156

Rys.3.32 Schemat pomiaru przy wykorzystaniu kamery i urządzenia ……………………. 159

Rys.3.33 Schemat struktury systemu wizyjnego przykładowego robota …………………. 162

Rys.3.34 Użycie systemu wizyjnego do sortowania przedmiotów …………………………163

Page 222: Andrzej Rygałło - Plan Rozwoju Politechniki Częstochowskiej · 6 rys.1.2., przy czym bezpośrednie oddziaływanie między robotem i środowiskiem jest efektem niedoskonałości

222

Rys.4.1 Schemat przetwarzania informacji w systemie sterowania robota ………………168

Rys.4.2 Przetwarzanie informacji w systemie programowanie­sterowanie ………………170

Rys.4.3 Klasyfikacja sposobów programowania robotów ………………………………..173

Rys.4.4 System programowania on­line robotów……………………………………….. 179

Rys.4.5 System programowania off­line robotów……………………………………….. 180

Rys.4.6 System współrzędnych chwytaka i obiektu manipulacji ………………………...184

Rys.4.7 Struktury syntaktyczne języka AL ………………………………………………196

Rys.4.8 Zadanie montażowe dla przykładowego robota …………………………………198

Rys.4.9 System współrzędnych do opisu sceny roboczej ……………………………….. 200

Rys.4.10 Struktura systemu programowania robota …………………………………….. 215

Tablica 1.1 Klasy par kinematycznych …………………………………………………….21

Tablica 4.1. Porównanie sposobów programowania ……………………………………..174

Tablica 4.2. Porównanie wybranych języków programowania robotów ………………... 209