Identifiering av stelkroppsmodell för industrirobot



Relevanta dokument
LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 03/04. Laboration 3 3. Torsionssvängningar i en drivaxel

Inlämningsuppgift 4 NUM131

Signalanalys med snabb Fouriertransform

Reglerteori, TSRT09. Föreläsning 4: Kalmanfiltret & det slutna systemet. Torkel Glad. Reglerteknik, ISY, Linköpings Universitet

Partiklars rörelser i elektromagnetiska fält

TSRT09 Reglerteori. Sammanfattning av Föreläsning 3. Sammanfattning av Föreläsning 3, forts. Sammanfattning av Föreläsning 3, forts.

Reglerteknik M3, 5p. Tentamen

SF1624 Algebra och geometri Tentamen Onsdagen 29 oktober, 2014

Tentamen Mekanik F del 2 (FFM520)

STYRNING AV PORTFÖLJER MED FLERA TILLGÅNGAR

Beräkningsuppgift I. Rörelseekvationer och kinematiska ekvationer

MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2

Reglerteknik M3. Inlämningsuppgift 3. Lp II, Namn:... Personnr:... Namn:... Personnr:...

REGLERTEKNIK KTH. REGLERTEKNIK AK EL1000/EL1110/EL1120 Kortfattade lösningsförslag till tentamen , kl

Dataprojekt. Nanovetenskapliga tankeverktyg. January 18, 2008

FOURIERANALYS En kort introduktion

Självkoll: Ser du att de två uttrycken är ekvivalenta?

TSRT62 Modellbygge & Simulering

9.2 Kinetik Allmän plan rörelse Ledningar

Omtentamen i DV & TDV

Frågorna 1 till 6 ska svaras med sant eller falskt och ger vardera 1

En trafikmodell. Leif Arkeryd. Göteborgs Universitet. 0 x 1 x 2 x 3 x 4. Fig.1

Figur 1. Skärmbild med markerade steg i videon. Diagram och tabell som visar positionerna som funktion av tiden.

2. För vilka värden på parametrarna α och β har det linjära systemet. som satisfierar differensekvationen

Tentamen Mekanik F del 2 (FFM521 och 520)

Laboration i Maskinelement

Institutionen för Matematiska Vetenskaper TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1/TM1, TMA

Elektromagnetiska fält och Maxwells ekavtioner. Mats Persson

Robotsystemet ingår i den redan så framgångsrika robotfamiljen IRB. Eric Hemmingson Staffan Ellqvist ABB Robotics Products AB

Andra EP-laborationen

Mekanik III, 1FA103. 1juni2015. Lisa Freyhult

D/A- och A/D-omvandlarmodul MOD687-31

Repetitionsuppgifter i Matematik inför Basår. Matematiska institutionen Linköpings universitet 2014

1 Cirkulation och vorticitet

Fingerprint Matching

Konsoliderad version av. Styrelsens för ackreditering och teknisk kontroll (SWEDAC) föreskrifter och allmänna råd (STAFS 2006:10) om automatiska vågar

6.2 Partikelns kinetik - Tillämpningar Ledningar

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

Kurvlängd och geometri på en sfärisk yta

Övningar för finalister i Wallenbergs fysikpris

insignal H = V ut V in

Enda tillåtna hjälpmedel är papper, penna, linjal och suddgummi. Skrivtid 4 h. OBS: uppgifterna skall inlämnas på separata papper.

CYKELTIDSOPTIMERING AV SJUAXLIGT ROBOTSYSTEM

Två gränsfall en fallstudie

Naturlagar i cyberrymden VT 2006 Lektion 6. Martin Servin Institutionen för fysik Umeå universitet. Modellering

Innehållsförteckning

Dekomponering av löneskillnader

14. Potentialer och fält

Lektionsanteckningar 2: Matematikrepetition, tabeller och diagram

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

SF1669 Matematisk och numerisk analys II Bedömningskriterier till tentamen Torsdagen den 4 juni 2015

k x om 0 x 1, f X (x) = 0 annars. Om Du inte klarar (i)-delen, så får konstanten k ingå i svaret. (5 p)

Vi har väl alla stått på en matta på golvet och sedan hastigt försökt förflytta

4 Laboration 4. Brus och termo-emk

TENTAMEN I HÅLLFASTHETSLÄRA FÖR I2 MHA april (5 timmar) Lärare: Anders Ekberg, tel

Mekanik I Newtonsk mekanik beskrivs rörelsen för en partikel under inverkan av en kraft av

En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning.

Systemkonstruktion Z2

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

2E1112 Elektrisk mätteknik

Fysikens lagar och hur dessa påverkar en robot

Enkel linjär regression: skattning, diagnostik, prediktion. Multipel regression: modellval, indikatorvariabler

Lennart Carleson. KTH och Uppsala universitet

Krafter i Lisebergbanan och Kaffekoppen

Biomekanik, 5 poäng Moment

PROBLEM OCH LÖSNINGAR RUNT TYNGDLÖSHET

LABORATION ENELEKTRONSPEKTRA

Version Linjär algebra kapiltet från ett ODE-kompendium. Mikael Forsberg

Laboration i Fourieroptik

Matematisk Modellering

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

Uppvärmning, avsvalning och fasövergångar

MJ1145-Energisystem VT 2015 Föreläsning om att hålla balans i elnät: L2-L3. Kraftsystemet = en lång cykel. Syftet med ett kraftsystem:

Till dig som driver företag

Samverkande Expertnät

Optimering med bivillkor

Linnéuniversitetet. Naturvetenskapligt basår. Laborationsinstruktion 1 Kaströrelse och rörelsemängd

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

SÄKERHETSAVSTÅND I BILKÖER

ANDREAS REJBRAND Matematik Numeriska serier. Andreas Rejbrand, april /29

Biomekanik. Biomekanik är mekanik, tillämpat på biologiska system.

varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext.

9. Beräkna volymen av det område som begränsas av planet z = 1 och paraboloiden z = 5 x 2 y 2.

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Fredag 26 augusti 2005 TID:

Dagens tema. Fasplan(-rum), fasporträtt, stabilitet (forts.) (ZC sid 340-1, ZC10.2) Om högre ordnings system (Tillägg)

G VG MVG Programspecifika mål och kriterier

Bonusmaterial till Lära och undervisa matematik från förskoleklass till åk 6. Ledning för att lösa problemen i Övningar för kapitel 5, sid

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

KVANTFYSIK för F Inlämningsuppgifter I5

Lösningar till linjära problem med MATLAB

Abstrakt algebra för gymnasister

Matematik E (MA1205)

Svar och arbeta vidare med Student 2008

BASFYSIK BFN 120. Laborationsuppgifter med läge, hastighet och acceleration. Epost. Namn. Lärares kommentar

Concept Selection Chaper 7

Tentamen i Robotteknik MPR160 och MPR210, 14 januari 1998

Transkript:

Identifiering av stelkroppsmodell för industrirobot Examensarbete utfört i Reglerteknik vid Tekniska Högskolan i Linköping av Rasmus Olsson Reg nr: LiTH-ISY-EX 5/3625 SE Linköping 25

Identifiering av stelkroppsmodell för industrirobot Examensarbete utfört i Reglerteknik vid Tekniska Högskolan i Linköping av Rasmus Olsson Reg nr: LiTH-ISY-EX 5/3625 SE Handledare: Sven Hanssen Jonas Larsson Erik Wernholt Examinator: Svante Gunnarsson Linköping 9 december 25.

Sammanfattning Denna rapport behandlar en metod för experimentell identifiering av en stelkroppsmodell för en industrirobot. Metoden använder sig av uppmätta moment och armvinklar för att identifiera parametrarna i en dynamikmodell för robotens tre huvudaxlar. För att erhålla bra identifieringsresultat är det viktigt att välja en lämplig identifieringsbana och i detta arbete har en metod för generering av banor använts och utvärderats för två olika designkriterier. Experiment har utförts på en industrirobot från ABB och vi har erhållit goda identifieringsresultat med ett av designkriterierna. Nyckelord: identifiering, stelkroppsmodell, robotdynamik, optimering i

Abstract In this masters thesis we consider a method for experimental identification of the inertial parameters of an industrial robot, using measured torques and joint angles. A dynamic model of the first three joints of the robot has been identified. To achieve good identification results, it is important to carefully choose the trajectory for the experimental identification. A method to generate trajectories using two suggested design criteria has been used and evaluated using an ABB industrial robot, and one of them yields good identification results. Keywords: identification, robot dynamics, optimal excitation iii

iv

Tackord Jag vill framföra ett stort tack till mina handledare på ABB Robotics, Sven Hanssen och Jonas Larsson, för all tid, hjälp och stöd som de bidragit med under arbetet. Jag vill också tacka Svante Gunnarsson, examinator på LiTH, och handledare Erik Wernholt för all vägledning, tips och feedback som jag fått från dem. Slutligen vill jag tacka alla andra medarbetare på ABB Robotics som på olika sätt bidragit med hjälp under arbetets genomförande, däribland Stig Moberg, Torgny Brogårdh och Jesper Bergsjö. v

vi

Notation Symboler X Baseparametervektor τ = (τ, τ 2,..., τ n ) T Vektor med armmoment för axel till n q = (q, q 2,..., q n ) T Vektor med armvinklar för axel till n K(q, q) Robotens kinetiska energi P (q) Robotens potentiella energi (gravitationsenergi) m (i) Massan för länk i ms (i) = (ms (i) x, ms (i) y, ms (i) z ) Vektor från axel i till masscentrum hos länk i multiplicerad med massan hos länk i l (i) j Avstånd från led i till led i + i j-riktning (x, y eller z). H(q, q, q) Överföringsmatris från baseparametrar till armmoment h(q, q) Överföringsmatris från baseparametrar till robotens totala energi N τ = H = r τ. τ N H(q, q, q N ). H(q N, q N, q N ) Antal samplingspunkter som används för identifieringen Moment i N st samplingspunkter H(q, q, q) i N st samplingspunkter Matris med utväxlingen på robotens växlar vii

viii

Innehåll Introduktion. Introduktion till industrirobotar.....................2 Bakgrund till problemställningen.....................3 Mål och omfång.............................. 3.4 Disposition av rapporten......................... 3 2 Robotmodellering 5 2. Introduktion............................... 5 2.2 Mekanisk struktur............................ 5 2.3 Motorer, växellåda och sensorer..................... 5 2.4 Kinematik................................. 6 2.5 Stelkroppsdynamik............................ 7 2.5. Modell med fysikaliska parametrar............... 7 2.5.2 Reducering till baseparametermodellen............. 9 2.5.3 Friktionsmodell.......................... 9 3 Identifiering 3. Bakgrund och litteratur......................... 3.2 Felkällor.................................. 2 3.2. Störningar och brus....................... 3 3.2.2 Elastiska effekter......................... 3 3.2.3 Filtrering............................. 7 3.2.4 Identifiering av fourierserie och analytisk derivering..... 7 3.2.5 Ej modellerade effekter..................... 7 3.3 Bestämning av en bana......................... 7 4 Genomförande 2 4. Robotmodell............................... 2 4.2 Vald identifieringsmetod......................... 2 4.3 Parametrisering av banor........................ 22 4.4 Optimeringsproblemet.......................... 22 ix

x Innehåll 4.4. Samplingstid........................... 24 4.4.2 Erfarenheter från optimeringen................. 24 5 Experiment 27 5. Introduktion............................... 27 5.2 Att utvärdera identifierade parametrar................. 27 5.3 Utvärdering av konditionstalet som målfunktion............................. 32 5.4 Utvärdering av determinantfunktionen som målfunktion............................. 36 5.4. Jämförelse av momentöverensstämmelse............ 4 5.4.2 Analys av identifierade baseparametrar............ 4 5.4.3 Analys av identifierade friktionsparametrar.......... 45 5.5 Identifieringens beroende av filtrering.................. 45 5.6 Variation i identifiering för olika körningar av samma bana..... 45 6 Diskussion och slutsatser 5 6. Val av målfunktion............................ 5 6.2 Momentfiltrering............................. 5 6.3 Stokastiska respektive deterministiska störningar................................. 52 6.4 Identifiering av friktionsparametrar................... 52 Litteraturförteckning 53 A Baseparameterformulering 55 B Optimeringsresultat 6 B. Banor optimerade till målfunktionsvärde 75............. 6 B.2 Banor optimerade till målfunktionsvärde 9............. 64 B.3 Banor optimerade till målfunktionsvärde............ 67 B.4 Banor optimerade till optimalitet.................... 7

Innehåll xi Figurer. ABB:s robotfamilj och styrskåp..................... 2.2 Punktsvetsning av bilkarosser med ABB-robotar av typ IRB 64.. 2 2. ABB IRB 66, en industrirobot med seriell struktur......... 6 2.2 ABB IRB 34 (FlexPicker), en industrirobot med parallell struktur. 6 2.3 Robotens sex axlar............................. 8 3. Modell av vekheten i en axel....................... 4 3.2 Numeriskt beräknad acceleration för axel 3 från en ofiltrerad positionssignal................................ 8 3.3 Numeriskt beräknad acceleration för axel 3 efter lågpassfiltrering av positionssignalen med ett lågpassfilter med gränsfrekvens 25 Hz och matlabproceduren filtfilt....................... 8 3.4 Ofiltrerad momentsignal för axel 3................... 9 3.5 Momentsignal för axel 3 filtrerad med ett lågpassfilter med gränsfrekvens 25 Hz och matlabproceduren filtfilt.................... 9 3.6 Robot med dresspack........................... 2 5. Motorvinklar på axel 3 vid en körning av en dryg period av en optimerad bana där roboten därefter återgår till banans startpunkt med ett anpassat tredjegradspolynom.................. 28 5.2 Armvinklar samt hastigheter och accelerationer för valideringsbanan. 3 5.3 Armmoment för valideringsbanan.................... 3 5.4 Armvinklar samt hastigheter och accelerationer för en bana optimerad med konditionstalskriteriet samt valideringsbanan......... 33 5.5 Filtrerat uppmätt moment respektive moment från identifierad modell på en identifieringsbana optimerad med konditionstalskriteriet, axel 3................................... 34 5.6 Filtrerat uppmätt moment respektive moment från modell identifierad på en identifieringsbana optimerad med konditionstalskriteriet, för valideringsbanan, axel 3...................... 35 5.7 Armvinklar samt hastigheter och accelerationer för en bana optimerad till ett målfunktionsvärde på 75................... 37 5.8 Armvinklar samt hastigheter och accelerationer för en bana optimerad till ett målfunktionsvärde på 9................... 37 5.9 Armvinklar samt hastigheter och accelerationer för en bana optimerad till ett målfunktionsvärde på.................. 38 5. Armvinklar samt hastigheter och accelerationer för en bana optimerad till ett målfunktionsvärde på 3,7................ 38

xii Innehåll 5. Filtrerat uppmätt moment respektive moment från identifierad modell på en identifieringsbana optimerad till ett målfunktionsvärde på 3,7, axel 3............................. 39 5.2 Filtrerat uppmätt moment respektive moment från modell identifierad på en identifieringsbana optimerad till ett målfunktionsvärde på 3,7, för valideringsbanan, axel 3............... 4 5.3 RMS-värden av skillnaden mellan filtrerat uppmätt moment och moment givet av baseparametermodellen på valideringsbanan, för axel 3..................................... 42 5.4 Absolut differens mellan identifierade parametrar och teoretiska parametervärden för fem olika identifieringsbanor med målfunktionsvärdet 75..................................... 43 5.5 Absolut differens mellan identifierade parametrar och teoretiska parametervärden för fem olika identifieringsbanor med målfunktionsvärdet 9..................................... 43 5.6 Absolut differens mellan identifierade parametrar och teoretiska parametervärden för fem olika identifieringsbanor med målfunktionsvärdet.................................... 44 5.7 Absolut differens mellan identifierade parametrar och teoretiska parametervärden för fem olika identifieringsbanor optimerade till ett lokalt optimum............................... 44 5.8 Identifierade friktionsparametrar för fem olika identifieringsbanor med målfunktionsvärdet 75....................... 46 5.9 Identifierade friktionsparametrar för fem olika identifieringsbanor med målfunktionsvärdet 9....................... 46 5.2 Identifierade friktionsparametrar för fem olika identifieringsbanor med målfunktionsvärdet...................... 47 5.2 Identifierade friktionsparametrar för fem olika identifieringsbanor optimerade till ett lokalt optimum.................... 47 5.22 Absolut differens mellan identifierade parametrar och teoretiska parametervärden med respektive utan filtrering av momentsignalen... 48 5.23 Identifierade friktionsparametrar med respektive utan filtrering av momentsignalen.............................. 48 5.24 Absolut differens mellan identifierade parametrar och teoretiska parametervärden vid tre olika körningar av samma bana......... 49 5.25 Identifierade friktionsparametrar vid tre olika körningar av samma bana..................................... 49 B. Bana optimerad till ett målfunktionsvärde på 75........... 6 B.2 Bana optimerad till ett målfunktionsvärde på 75........... 62 B.3 Bana optimerad till ett målfunktionsvärde på 75........... 62 B.4 Bana optimerad till ett målfunktionsvärde på 75........... 63 B.5 Bana optimerad till ett målfunktionsvärde på 75........... 63

Innehåll xiii B.6 Bana optimerad till ett målfunktionsvärde på 9........... 64 B.7 Bana optimerad till ett målfunktionsvärde på 9........... 65 B.8 Bana optimerad till ett målfunktionsvärde på 9........... 65 B.9 Bana optimerad till ett målfunktionsvärde på 9........... 66 B. Bana optimerad till ett målfunktionsvärde på 9........... 66 B. Bana optimerad till ett målfunktionsvärde på.......... 67 B.2 Bana optimerad till ett målfunktionsvärde på.......... 68 B.3 Bana optimerad till ett målfunktionsvärde på.......... 68 B.4 Bana optimerad till ett målfunktionsvärde på.......... 69 B.5 Bana optimerad till ett målfunktionsvärde på.......... 69 B.6 Bana optimerad till ett målfunktionsvärde på 3,7......... 7 B.7 Bana optimerad till ett målfunktionsvärde på 4,48......... 7 B.8 Bana optimerad till ett målfunktionsvärde på 4,73......... 7 B.9 Bana optimerad till ett målfunktionsvärde på 4,88......... 72

xiv Innehåll

Kapitel Introduktion. Introduktion till industrirobotar En industrirobot består av ett antal stela kroppar, så kallade länkar, som är sammankopplade i ett antal leder, även kallade axlar, som styrs med elektriska motorer. På den yttersta länken fästs någon form av verktyg som roboten då kan hantera. Vanligast är robotar med sex axlar, vilket ger roboten de sex frihetsgrader som krävs för att fritt kunna kontrollera både position och orientering hos verktyget. Position såväl som orientering kan varieras i tre dimensioner vilket ger totalt sex frihetsgrader. För att kunna köra roboten behövs också ett styrskåp, vilket fungerar som robotens hjärna och innehåller nödvändig hårdvara och mjukvara för att styra och övervaka roboten. I figur. visas ABB:s robotfamilj och styrskåp. Industrirobotar spelar idag en viktig roll för automatisering inom bland annat tillverkningsindustrin. De har en mängd olika användningsområden, till exempel båg- och punktsvetsning (se figur.2), materialhantering, maskinbetjäning, målning, limning och nya användningsområden tillkommer hela tiden. En stor del av robotarna går till bilindustrin, och i livsmedelsindustrin är användningen av industrirobotar på stark frammarsch. Utmärkande för industrirobotar är att de är flexibla och programmerbara. De flesta robottyper är inte specialiserade på en enda uppgift utan kan utföra flera olika uppgifter..2 Bakgrund till problemställningen För att kunna styra en industrirobot effektivt behövs en bra dynamikmodell, som beskriver vilka moment som uppstår i axlarna då roboten utför en viss rörelse. Olika typer av modeller kan användas för detta. Den kan inkludera robotens elastiska

2 Introduktion Figur.. ABB:s robotfamilj och styrskåp. Figur.2. Punktsvetsning av bilkarosser med ABB-robotar av typ IRB 64. egenskaper eller enbart det stela uppförandet. Den kan gälla enbart lokalt, dvs enbart i närheten av någon viss konfiguration hos roboten, eller globalt i hela robotens arbetsområde. Utgångspunkten för detta arbete är en stelkroppsmodell av roboten som gäller i hela arbetsområdet. I denna modell ingår ett antal parametrar som beror av robotens stelkroppsdata (massor, tyngdpunkter, etc.), vilka man inte alltid har tillgång till för en viss robot. Därför finns det ett behov av att kunna bestämma dessa parametrar experimentellt.

.3 Mål och omfång 3.3 Mål och omfång Syftet med detta arbete har varit att på experimentell väg identifiera parametrarna i en stelkroppsmodell för roboten och att utvärdera resultatet av denna identifiering. De experimentella data som finns till förfogande för denna identifiering är mätningar av motorernas position och moment. Framför allt har vi intresserat oss för problemet att utforma ett experiment som ger en så bra identifiering som möjligt, dvs att köra roboten utmed en bana som ger bra identifiering. Robottypen som använts för experiment är ABB IRB 66 och den modell som identifierats är en modell för dess tre huvudaxlar. I arbetet har en studie av publicerad litteratur i ämnet gjorts, och därefter valdes en identifieringsmetod och en viss typ av parametrisering av robotens bana. Olika designkriterier har utvärderats för optimering av en sådan bana..4 Disposition av rapporten I denna rapport inleder vi med att diskutera allmänna principer för modellering av robotar, och den stelkroppsmodell som använts i arbetet. Därefter diskuteras förutsättningar och metoder för identifiering av denna stelkroppsmodell och den identifieringsmetod som valts för denna studie. Vi går sen igenom den metod som använts för att optimera fram identifieringsbanor och avslutningsvis presenteras de resultat som erhållits med dessa.

4 Introduktion

Kapitel 2 Robotmodellering 2. Introduktion I detta kapitel går vi översiktligt igenom de allmänna principerna för robotmodellering och därefter mer i detalj de bitar som används vid stelkroppsidentifiering. För en mer fullständig genomgång, se exempelvis John J. Craig, Introduction to robotics [3] eller Lung-Wen Tsai, Robot analysis []. 2.2 Mekanisk struktur Robotens struktur och rörelsebegränsningarna i robotens axlar avgör på vilket sätt och inom vilket arbetsområde roboten kan arbeta. Olika typer av strukturer kan fås beroende på hur länkarna på industriroboten är sammankopplade. Lederna kan vara roterande eller translaterande och kombineras på olika vis, och sammankopplingen av länkarna kan vara seriell (se figur 2.) eller parallell (se figur 2.2). Den robottyp (IRB 66) som vi intresserar oss för i detta arbete har seriellt sammankopplade länkar och roterande leder, vilket är den vanliga strukturen hos industrirobotar. 2.3 Motorer, växellåda och sensorer På varje axel sitter en elektrisk motor som driver axelns rörelse via en växellåda. Växellådan omvandlar det höga varvtal och låga moment som motorn genererar till den långsammare rörelse med stort moment som robotarmen behöver. Utväxlingen ligger i allmänhet i intervallet 4. För att man skall veta hur roboten rör sig så mäter man motorvinkeln. Detta görs på ABB:s robotar med en resolver som 5

6 Robotmodellering Figur 2.. ABB IRB 66, en industrirobot med seriell struktur. Figur 2.2. ABB IRB 34 (FlexPicker), en industrirobot med parallell struktur. mäter vinkeln på elektromagnetisk väg. Ett alternativ till denna typ av givare är en optisk s.k. enkoder som mäter vinkeln digitalt. 2.4 Kinematik Robotkinematik handlar om att bestämma relationen mellan ledernas rörelse och rörelsen hos det verktyg som roboten hanterar. Verktygets position anges vanligen i kartesiska koordinater i något fast referenssystem. Problemet att uttrycka verktygets position som en funktion av ledernas vinklar kallas för framåtkinematikproblemet. Man söker alltså funktionen ( ) x(q) X = = f(q) (2.) r(q) där q = (q, q 2,..., q n ) T är en vektor som innehåller ledernas vinklar och x och r är verktygets position respektive orientering. För en seriell robotstruktur är det relativt okomplicerat att härleda denna funktion genom att man först tittar på den första länkens position relativt referenssystemet, därefter den andra länkens position relativt den första, och så vidare tills man har en funktion för verktygets position och orientering relativt referenssystemet. Det inversa problemet, att bestämma q som en funktion av x och r, är svårare och den funktionen kan inte alltid skrivas på en sluten form. Det finns dock en lösning på sluten form för en seriell robot med s.k. sfärisk handled, vilket innebär att rotationsaxlarna för axel 4 6 skär varandra i en enda punkt.

2.5 Stelkroppsdynamik 7 För en robot med parallell struktur är det istället det inversa kinematikproblemet som är lätt att lösa och framåtkinematiken som är svår. 2.5 Stelkroppsdynamik 2.5. Modell med fysikaliska parametrar Robotens dynamikmodell beskriver sambandet mellan robotens rörelse och de drivande momenten τ = (τ, τ 2,..., τ n ) T i robotens axlar. För att härleda en sådan modell kan man använda lagrangefunktionen L(q, q) som definieras som L(q, q) = K(q, q) P (q) (2.2) där K(q, q) är den kinetiska energin och P (q) den potentiella energin hos roboten. Med antagandet om en stel robot består den potentiella energin enbart av gravitationsenergi. Då beskrivs robotens dynamik av Lagranges ekvationer d L L = Γ i, i =,..., n (2.3) dt q i q i där Γ i är momentet i axel i då man bortser från friktion. Genom att sätta in uttrycken för den kinetiska och potentiella energin i (2.2) kan ekvationerna (2.3) skrivas om som M(q) q + C(q, q) q + g(q) = Γ där M(q) är en tröghetsmatris, C(q, q) q beskriver hastighetsberoende trögheter som coriolis- och centripetalkrafter, och g(q) är gravitationens bidrag. För detaljer kring hur denna omskrivning görs, se [3] eller []. Med ett speciellt val av parametrar kan man göra en omskrivning på en linjär form, Γ = H(q, q, q) X (2.4) där X = (X (), X (2),..., X (n) ) T och X (i) är en -dimensionell vektor som innehåller fysikaliska stelkroppsparametrar för länk i. Nödvändigt för att modellen skall kunna formuleras på denna linjära form är att man använder stelkroppsparametrar med tröghetsmomenten för länk i med avseende på den drivande axeln i och inte på länkens masscentrum. Se figur 2.3 för en illustration av robotens axlar. Parametrarna definieras som X (i) = (m (i), ms (i), I (i) ), där m (i) är länk i:s massa, ms (i) = (ms (i) x, ms (i) y, ms (i) z ) är en vektor från axel i till masscentrum hos länk i multiplicerad med massan hos länk i, och I (i) = (I xx (i), I yy (i), I zz (i), I xy (i), I xz (i), I yz (i) ) är tröghetsmomenten för länk i med avseende på axel i.

8 Robotmodellering H(q, q, q) är en matris vars utseende bestäms av robotens struktur, och beror olinjärt på armvinklarna och dess hastigheter och accelerationer (q, q, q). Ekvationen (2.4) är intressant ur identifieringssynpunkt, eftersom man utifrån experimentella data kan beräkna matrisen H(q, q, q) och momentvektorn Γ och därmed erhålla ett antal ekvationer som är linjära i stelkroppsparametrarna. Med samma parametervektor kan man också formulera en modell för systemets totala energi E, E = K(q, q) + P (q) = h(q, q) X (2.5) Denna form är också intressant för identifieringsändamål, då förändringen i den totala energin är lika med arbetet som roboten uträttar, och detta arbete kan beräknas utifrån uppmätta experimentella data. (Se t.ex. [6].) Skillnaden mellan (2.5) och (2.2) är att vi får den totala energin genom att addera potentiell energi till kinetisk energi medan lagrangefunktionen definieras som kinetisk energi minus potentiell energi. Lagrangianen kan inte på ett liknande sätt beräknas utifrån experimentella data och därför är den totala energin bättre lämpad för identifiering. Vi har alltså två olika formuleringar som kan användas som grund för identifiering av stelkroppsparametrarna, (2.4) respektive (2.5), och dessa formuleringar kallar vi för momentformen respektive energiformen. Figur 2.3. Robotens sex axlar.

2.5 Stelkroppsdynamik 9 2.5.2 Reducering till baseparametermodellen De kinematiska begränsningarna på länkarnas rörelse leder till att det inte är nödvändigt att känna alla fysikaliska stelkroppsparametrar i X för att beräkna de drivande momenten, utan det räcker att känna vissa linjärkombinationer av dem. Detta visar sig som att matrisen H(q, q, q ). H(q N, q N, q N ) aldrig får full rang (dvs n som är antalet kolumner i matrisen), utan det finns alltid linjära beroenden mellan kolumnerna i denna matris. Analogt för matrisen h(q, q). (Från Lagranges ekvationer inses att dessa matriser uppvisar samma linjära beroenden.) Då h är lättare att analysera, eftersom den endast innehåller en rad, är det lämpligt att använda denna för att analysera de linjära beroendena. Detta innebär att det inte finns en entydig uppsättning stelkroppsparametrar som ger ett visst moment, och man kan därmed inte experimentellt identifiera parametrarna entydigt. Lösningen på detta problem är att reducera antalet parametrar till en minimal uppsättning, så kallade baseparametrar, och formulera modellen på den minimala formen Γ = Ĥ(q, q, q) ˆX (2.6) En metod för att genomföra denna reduktion numeriskt med hjälp av singulärvärdesfaktorisering har beskrivits av Sheu och Walker, [9]. Ekvation (2.6) är baseparametermodellen på momentform. Med samma baseparametervektor ˆX kan man också formulera modellen för systemets totala energi E. E = ĥ(q, q) ˆX (2.7) Relationen mellan ˆX och X samt utseendet av matrisen Ĥ(q, q, q) för ett visst val av baseparametrar för en treaxlig robotmodell redovisas i Bilaga A. 2.5.3 Friktionsmodell Friktion i robotens leder ger ett väsentligt bidrag till momentet och är nödvändig att ta hänsyn till vid modelleringen av roboten. Den modell som används är att friktionsmomentet τ F,i i led i är en summa av Coulumbfriktion och viskös friktion τ F,i = q i q i F i C + q i Fi v där F C i och F v i är friktionskonstanter. Detta anses vara en bra modell för friktionen och har använts i bl.a. [4]. Denna modell tar dock inte hänsyn till att friktionen kan vara momentberoende, och beroende av robotens konfiguration.

Robotmodellering Friktionen kan därefter inkluderas i baseparametermodellen genom att baseparametervektorn ˆX utökas med friktionsparametrarna {Fi C, F i v}n i= så att dessa kan identifieras samtidigt med de andra baseparametrarna. På momentform: q q, q ˆX F C τ = Γ+τ F = Ĥ(q, q, q)... F v = H(q, q, q) X q n q, q. n n F n C Fn v Det visar sig vid en numerisk analys att införandet av de nya kolumnerna i matrisen H(q, q, q) inte ger några linjära beroenden mellan kolumnerna (som vi hade i modellen (2.4)) och friktionsparametrarna är därmed identifierbara.

Kapitel 3 Identifiering 3. Bakgrund och litteratur Identifieringsproblemet innebär att köra roboten utmed någon bana och skatta parametervektorn X utifrån data uppmätta i ett antal samplingspunkter. Givna förutsättningar är att enbart motormoment och motorposition kan mätas, dvs inga mätningar kan göras på själva robotarmen. I litteraturen har olika identifieringsmetoder presenterats, där vissa använder sig av momentformen (se t.ex. [], [2]) och andra av energiformen (se t.ex. [4]). Olika för- och nackdelar har diskuterats med de två olika varianterna i exempelvis [8] och [6]. En fördel med att använda energiformen är att accelerationer inte behöver användas, vilket är bra eftersom att det kan vara svårt att ta fram accelerationsdata med bra kvalitet. Å andra sidan innehåller energiformen mindre information, eftersom man i varje mätpunkt bara använder en ekvation för den totala energin istället för en ekvation för varje axels moment. Det faktum att modellens syfte är att modellera momentet talar också för att använda momentformen, eftersom identifieringen då kan göras så att man får parametrar som ger bästa möjliga momentöverensstämmelse. Momentformen har också fördelen att momentvärdena i princip kan tas direkt från roboten medan energin måste integreras fram. Vi har därför valt att inom ramen för detta arbete enbart arbeta med momentformen. Med N samplingspunkter och momentformen har vi: τ = τ (). τ (N), H = H(q(t ), q(t ), q(t )). H(q(t N ), q(t N ), q(t N )) Det gäller att τ = H X, men fel i mätdata gör att vi bara känner skattningar τ och H av τ och H. Då fel i q, q och q påverkar matrisen H på ett komplicerat och olinjärt sätt, ger det

2 Identifiering en väsentlig förenkling att betrakta dessa som brusfria vid identifieringen. Om man gör detta antagande, samt antar att den observerade vektorn τ är normalfördelad med väntevärdet τ = H X och kovariansmatrisen Σ så blir (se Swevers et. al []) den s.k. ML-skattningen av X lika med lösningen till det viktade minstakvadratproblemet X ML = arg min X ( τ H T X) ( τ Σ H ) ( X = HT Σ H) HT τ (3.) ML-metoden innebär att man väljer den parametervektor som maximerar sannolikhetstäthetsfunktionen för de moment som man mätt upp, dvs man väljer den parametervektor som i någon mening maximerar sannolikheten för den observation som man gjort. Vi ser att denna metod ger de parametrar som på identifieringsbanan ger bäst momentöverensstämmelse i en viktad minstakvadratmening, vilket är en bra egenskap hos identifieringen eftersom själva syftet med den identifierade modellen är att den skall modellera momentet på ett bra sätt. En metod för att inkludera en modell för bruset i positionsdata i en ML-skattning har diskuteras av Olsen et al. i [7]. Skattningen blir tyvärr mycket svårare att beräkna med denna metod, och detta har inte behandlats i detta arbete. 3.2 Felkällor En av de viktigaste felkällorna att beakta vid identifieringen är det brus och mätfel som finns i moment- och positionssignaler. Man vill göra identifieringen på ett sådant vis att bruset påverkar identifieringen av parametrarna så lite som möjligt. Detta involverar dels att behandla signalerna på lämpligt sätt, vad gäller filtrering och derivering, men det handlar också till stor del om att välja en bana där brus och mätfel påverkar identifieringen så lite som möjligt. Ett annat problem är robotens elastiska egenskaper. Eftersom dessa inte ingår i baseparametermodellen måste deras inverkan på momentet minimeras för att identifieringen skall bli bra. Man måste alltså köra en bana där man undviker att excitera elastiska effekter. Egenskaper hos regressionsmatrisen H kommer att avgöra hur moment- och positionsfel inverkar på de identifierade parametrarna, så för att kunna identifiera parametrarna så bra som möjligt måste en bana väljas som ger goda egenskaper hos regressionsmatrisen. I litteraturen (exempelvis [], [] och [2]) har olika optimeringskriterier för generering av en bana diskuterats och utvärderats. Ett av dem är konditionstalet på matrisen H T Σ H, eller en normaliserad version av denna. Ett lågt konditionstal minskar känsligheten i parameterskattningen (3.) för dels fel i momentvärdena, och dels fel i regressionsmatrisen själv. Ett annat kriterium som föreslagits är log det(h T Σ H). Att minimera denna funktion svarar mot att minimera determinanten av kovariansmatrisen av parameterskattningen (3.), när vi antar att vi enbart har brus i momentdata. (Logaritmfunktionen används

3.2 Felkällor 3 bara för att få ner storleksordningen på funktionen.) Denna målfunktion svarar mot att minimera varians i parameterskattningen orsakad av varians i momentdata. 3.2. Störningar och brus I motorn uppkommer störningar, så kallat rippel, vilket är en störning på motormomentet som varierar med rotorns position. Detta rippel är periodiskt med avseende på rotorns position och består av både strömberoende och strömoberoende delar och kan modelleras som N A N B A n sin(nq + Φ A,n ) + τ c B n sin(nq + Φ B,n ) (3.2) n= där τ c är begärt moment. Detta är en deterministisk störning på motormomentet. Störningar uppstår också i den av resolvern uppmätta motorpositionen, och dessa kan modelleras som N C C n sin(nq + Φ C,n ) + e (3.3) n= där summan beskriver en deterministisk störning och e är ett stokastiskt brus. 3.2.2 Elastiska effekter Den dynamikmodell som identifieras modellerar bara robotens stela uppförande och utgår alltså ifrån att robotarmen uppför sig som en stel kropp. I verkligheten finns dock även elastiska effekter, och för att identifieringen av stelkroppsmodellen ska bli så bra som möjligt gäller det att dessa elastiska effekter minimeras. För att få vägledning till hur detta bör göras studerar vi en enkel elastisk modell för en av robotens axlar och undersöker hur den avviker från den stela modellen vid en harmonisk svängningsrörelse. Vekheten i en av robotens axlar kan modelleras som ett tvåmassesystem med en fjäder och en dämpare enligt figur 3., och det elastiska systemet kan då beskrivas med differentialekvationerna ( Jm J a ) ( qm q a ) + ( c ) ( c qṁ c c n= q a ) + ( ) ( ) ( ) k k qm τm = k k q a (3.4) J m och J a är tröghetsmomenten för motorn respektive robotarmen och dessa är sammankopplade via en växellåda som modelleras som en fjäder med en dämpare. För denna diskussion kan vi utelämna växellådans utväxling från vår modell då denna enbart transformerar J a och q a med en konstant. Vi ansätter en harmonisk svängningsrörelse för motorpositionen, q m (t) = ˆq m e jωt

4 Identifiering Figur 3.. Modell av vekheten i en axel. och löser ekvationen för denna. Andra raden i (3.4) ger Vi sätter J a q a cjωˆq m e jωt + c q a kˆq m e jωt + kq a = och har att J a q a + c q a + kq a = cjωˆq m e jωt + kˆq m e jωt q a + c J a q a + k J a q a = c J a jωˆq m e jωt + k J a ˆq m e jωt 2ξ = Vi kan då skriva ekvationen som c k, ω = kja J a c J a = 2ξω q a + 2ξω q a + ω 2 q a = 2jξω ωˆq m e jωt + ω 2ˆq m e jωt (3.5) För att lösa denna differentialekvation söker vi först lösningarna till den homogena ekvationen där högerledet är lika med noll. Den karakteristiska ekvationen blir q a + 2ξω q a + ω 2 q a = (3.6) r 2 + 2ξω r + ω 2 = (3.7) Vi får olika typer av lösningar beroende på värdet av ξ. Om ξ > så är r = (ξ ± ξ 2 )ω och systemet är överdämpat. Om ξ = så är r = ξω

3.2 Felkällor 5 och system är kritiskt dämpat. Om ξ < så är r = (ξ ± j ξ 2 )ω och systemet är underdämpat. Det är också detta fall som gäller för vår robot. Då alla rötter till den karakteristiska ekvationen har realdel mindre än noll kommer lösningarna till den homogena ekvationen, samt alla dess derivator, att gå mot noll då t. Dessa lösningar är alltså transienter som dör ut efter en viss tid, och därmed kan man undvika effekter från dessa genom att vänta på att de dör ut. Vi letar nu efter en partikulärlösning och ansätter q ap = ˆq ap e jωt och sätter in detta i (3.5). ω 2ˆq ap e jωt + 2ξω jωˆq ap e jωt + ω 2ˆq ap e jωt = 2jξω ωˆq m e jωt + ω 2ˆq m e jωt ω 2ˆq ap + 2ξω jωˆq ap + ω 2ˆq ap = 2jξω ωˆq m + ω 2ˆq m ( ω 2 + 2ξω jω + ω 2 )ˆq ap = (2jξω ω + ω 2 )ˆq m ˆq ap = 2 2jξω ω + ω ω 2 + 2ξω jω + ω 2 ˆq m Motormomentet för det elastiska systemet ges av (första raden i 3.4) τ m = J m q m + c q m c q a + kq m kq a och motormomentet enligt den stela modellen, där vi ersätter fjädern och dämparen i 3. av en stel koppling, ges av τ m = (J m + J a ) q m

6 Identifiering Vi undersöker nu differensen mellan dessa två modellers moment. τ m τ m = c( q m q a ) + k(q m q a ) J a q m = cjω(ˆq m ˆq ap )e jωt + k(ˆq m ˆq ap )e jωt + J a ω 2ˆq m e jωt ( ( ) ) 2 2jξω ω + ω = (cjω + k) ω 2 + J + 2ξω jω + ω 2 a ω 2 ˆq m e jωt ( ( ω 2 ) ) = (cjω + k) + J a ω 2 ˆq m e jωt = = = = = ( (cjω + k) ( (cjω + k) ( (cjω + k) ω 2 + 2ξω jω + ω 2 ( ω 2 + 2ξω jω + ω 2 ( ω 2 + 2ξω jω + ω 2 ( ω 2 + 2ξω jω + ω 2 J a ω 2 ω 2 + 2ξω jω + ω 2 ω2ˆq m e jωt J a ω 2 + 2ξω jω + ω 2 ω4ˆq m e jωt För små ω kan vi göra approximationen τ m τ m ω 4 J a ω 2 ˆq me jωt ) + J a ) ω 2ˆq m e jωt ) + J a( ω 2 + 2ξω jω + ω 2 ) ω 2 + 2ξω jω + ω 2 ) + J aω 2 + cjω + k ω 2 + 2ξω jω + ω 2 ) ω 2ˆq m e jωt ) ω 2ˆq m e jωt Då har vi τ m = (J m + J a )ω 2ˆq m e jωt τ m τ m τ m J a (J m + J a )ω 2 ω2 τ m τ m τ m = τ m τ m τ m τ m J a τ m τ m τ m (J m + J a )ω 2 ω2 så om det gäller att τm τ m för små w har vi att τ m τ m τ m ω 2 för små ω, dvs det relativa momentfelet i den stela approximationen av den elastiska modellen går kvadratiskt mot noll då ω. Detta leder oss till slutsatsen att den stela modellen ger en bra approximation för små ω, och robotens rörelse därför skall bestå av låga frekvenser för att de elastiska effekterna skall inverka så lite som möjligt på identifieringen.

3.3 Bestämning av en bana 7 3.2.3 Filtrering Vid numerisk derivering av positionssignalen förstärks det högfrekventa bruset i signalen. Om numerisk differentiering används utan föregående behandling av signalen, blir resultatet en väldigt brusig och helt oanvändbar accelerationssignal. Se figur 3.2. För att kunna använda sig av numerisk differentiering behöver man alltså först filtrera positionssignalen på något sätt. Detta görs med proceduren filtfilt i Matlab, vilket ger icke-kausal filtrering utan fasförlust. Med lågpassfiltrering av positionssignalen med ett butterworthfilter med gränsfrekvens på 25 Hz får accelerationen ett bättre utseende, se figur 3.3. Tittar vi på momentsignalen ser vi att denna också innehåller brus och högfrekvent rippel, se figur 3.4. Med filtrering med samma filter som för positionssignalen försvinner de högfrekventa störningarna och vi får utseendet enligt figur 3.5. 3.2.4 Identifiering av fourierserie och analytisk derivering Ett alternativ till att utföra numerisk derivering med filtrering är att fouriertransformera den uppmätta positionssignalen och sedan beräkna hastigheter och accelerationer genom att analytiskt derivera den fourierserie som identifierats. Om man har kännedom om vilka frekvenser som ingår i positionssignalen kan man låta enbart dessa frekvenser ingå i fourierserien och man gör på så vis en filtrering av signalen. På detta sätt slipper man problemet med att högfrekvent brus förstärks. Ett problem är dock att banan inte kan följas perfekt vid körningen och högre frekvenser kommer oundvikligen att introduceras i banan. Om man då bara tar med de frekvenskomponenter som den ursprungliga banan innehöll så kommer man att missa dessa högre frekvenser. 3.2.5 Ej modellerade effekter Det kan finnas omodellerade egenskaper hos roboten som påverkar momentet. Ett exempel är om ett s.k. dresspack är monterat på roboten. Detta ger omodellerade krafter och moment på roboten. I figur 3.6 ser vi en robot med dresspack för punktsvetsning. Vid axel tre finns en fjäder som spänner upp kablaget och ger en omodellerad fjäderkraft på axel tre. När roboten rör sig omfördelas också vikten från dresspacket på ett omodellerat vis. 3.3 Bestämning av en bana När det gäller att söka efter en optimal bana så är det mest generella angreppssättet att anta godtyckliga värden på position, hastighet och acceleration i ett antal samplingspunkter och optimera med avseende på dessa värden, och därefter interpolera mellan dessa punkter på lämpligt sätt. Detta görs t.ex. av Gautier och Khalil

8 Identifiering Figur 3.2. Numeriskt beräknad acceleration för axel 3 från en ofiltrerad positionssignal. Figur 3.3. Numeriskt beräknad acceleration för axel 3 efter lågpassfiltrering av positionssignalen med ett lågpassfilter med gränsfrekvens 25 Hz och matlabproceduren filtfilt.

3.3 Bestämning av en bana 9 Figur 3.4. Ofiltrerad momentsignal för axel 3. Figur 3.5. Momentsignal för axel 3 filtrerad med ett lågpassfilter med gränsfrekvens 25 Hz och matlabproceduren filtfilt.

2 Identifiering Figur 3.6. Robot med dresspack. i samband med användandet av energiformen [5]. En svårighet med detta är att det leder till ett antal punkter där robotens konfiguration och rörelse i en samplingspunkt inte på något vis anpassas för att ligga i närheten av den föregående och den nästkommande samplingspunkten, och det blir därför en lång och komplicerad rörelse att ta sig från en samplingspunkt till nästa. Det kan också vara problematiskt att kontrollera frekvensinnehållet i banan då den kompletta banan blir en summa av orelaterade interpolerande rörelser mellan samplingspunkterna. Swevers et al, Optimal Robot Excitation and Identification [], presenterar en metod där man istället använder en trunkerad fourierserie för att parametrisera banan. Denna ansats ger en bandbreddsbegränsad bana och bestämmer på förhand vilka frekvenser som skall ingå i banan. Det är en fördel när det gäller att undvika att excitera flexibiliteter hos roboten, och det har också fördelar vid beräkningar av hastigheter och accelerationer vid identifieringen, se avsnitt 3.2.4. Med denna parametrisering reducerar man också antalet frihetsgrader i optimeringsproblemet. Detta har beräkningsmässiga fördelar vid optimeringen, men det medför naturligtvis också nackdelen att sökningen efter en optimal bana begränsas till de banor som denna parametrisering kan åstadkomma. Det är svårt att veta hur nära man med denna parametrisering kan komma det som vore en optimal bana om man hade kunnat välja banan fritt.

Kapitel 4 Genomförande 4. Robotmodell Den robotmodell som identifieras är en treaxlig modell av ABB-roboten IRB 66. Att inte en fullständig sexaxlig modell använts är för att förenkla problemet och begränsa beräkningsbördan. Detta val av robotmodell bestämmer utseendet av matrisen H(q, q, q). 4.2 Vald identifieringsmetod Vid körningen av roboten mäts moment och position upp på motorsidan, τ m och q m. För att transformera moment och position mellan motor- och armsida används en stel modell av växellådan, q m = rq där matrisen rτ m = τ r = r r 22 r 33 beskriver växlarnas utväxling. På axel 2 sitter en s.k. balanseringsenhet, vilket är en fjädrande cylinder som har till uppgift att avlasta axelns motor. Denna verkar med ett moment τ bal på axel 2 som är beroende av dess position. Motorerna har också en känd tröghet som inte ingår i baseparametermodellen utan måste dras bort från det uppmätta motormomentet innan identifieringen. Det totala momentet på robotarmen kan skrivas som τ = r(τ m J m q m ) + τ bal (q) (4.) 2

22 Genomförande där J m är en matris som innehåller motorernas tröghetsmoment (angivna på motorsidan). Sedan identifieras parametrarna enligt (3.) i avsnitt 3., dvs som där X ML = arg min X ( τ H T X) ( τ Σ H ) X τ = τ (). τ (N) = ( HT Σ H) HT τ beräknas enligt (4.) utifrån experimentellt uppmätta värden τ m av motormomentet, och där regressionsmatrisen H beräknas utifrån uppmätta positionsdata. 4.3 Parametrisering av banor Jag har valt att optimera banor parametriserade med sinus/cosinus-funktioner på det sätt som presenteras av Svewers et al. []. M ( ) a n q i (t) = i ω f n sin(ω f nt) bn i ω f n cos(ω f nt) + qi (4.2) q i (t) = q i (t) = n= M (a n i cos(ω f nt) + b n i sin(ω f nt)) (4.3) n= M ( a n i ω f n sin(ω f nt) + b n i ω f n cos(ω f nt)) (4.4) n= Här är ω f vinkelfrekvensen för den lägsta frekvenskomponenten och M är antalet frekvenskomponenter. a n i, bn i och q i är de parametrar som varieras för att bestämma banans utseende. Vi kan samla dessa parametrar i matrisen q a a 2... a M b b 2... b M A = q2 a 2 a 2 2... a M 2 b 2 b 2 2... b M 2 (4.5) q3 a 3 a 2 3... a M 3 b 3 b 2 3... b M 3 4.4 Optimeringsproblemet Optimeringsproblemet går ut på att optimera en målfunktion f(h) av regressionsmatrisen H(q(t ), q(t ), q(t )) H =. H(q(t N ), q(t N ), q(t N )) (4.6)

4.4 Optimeringsproblemet 23 där t n = nt s och t s är samplingstiden. De målfunktioner som studerats i detta arbete är konditionstalet av en normaliserad version av matrisen Σ.5 H, där samt f c (H) = cond(normal(σ.5 H)) (4.7) normal ((A A 2... A n )) = ( A A 2 A 2 A 2 2... A n A n 2 ) (4.8) f d (H) = log det(h T Σ H) (4.9) Se diskussion i avsnitt 3.2. Matrisen Σ har dock i detta arbete alltid valts som enhetsmatrisen, vilket innebär att momenten på de tre axlarna viktas lika vid identifieringen. Begränsningar måste läggas på robotens position, hastighet och acceleration för att roboten skall hålla sig inom det tillåtna arbetsområdet, och inte belastas för hårt. Ett problem i detta sammanhang är att se till att det maximala momentet inte överskrids. För att beräkna momentet behöver man värdena på de parametrar som i problemställningen är okända och skall identifieras. För att lösa detta har jag använt teoretiska stelkroppsdata, samt identifierade värden på friktionen, för att beräkna ett moment som sedan begränsas i optimeringen. I en praktisk implementation där man ej känner några stelkroppsdata, kan man tänka sig en iterativ procedur, där man först identifierar en uppsättning parametrar med en snäll bana som man vet att roboten klarar. Med dessa identifierade parametrar kan man då införa en momentbegränsning, men begränsningen bör göras konservativ då man inte vet hur nära det verkliga momentet man hamnar med dessa första identifierade parametrar. Med en bana som man tar fram med denna momentbegränsning kan man sedan beräkna en ny och förhoppningsvis bättre uppsättning parametrar, och uppdatera momentbegränsningen med dessa. Detta kan då upprepas tills man har en uppsättning parametrar som ger ett bra moment. Vi kan formulera optimeringsproblemet som min A f(h) q min q(t) q max q min q(t) q max q min q(t) q max x(q(t), q(t), q(t)) K där x(q(t), q(t), q(t)) K innehåller momentbegränsningarna och begränsningar på verktygets position. För optimeringen har Matlab och funktionen fmincon i Optimization Toolbox använts. Denna funktion använder s.k. Sekventiell kvadratisk programmering. En begränsning hos denna metod är att man bara kan hitta lokala optima, och det kan vara svårt att veta hur långt bort man är ifrån ett globalt optimum. Därför bör man undersöka resultatet av optimeringen för olika

24 Genomförande startvärden, för att se om de genererar likartade banor och lika bra slutvärden på målfunktionen. Matlabfunktionen fgoalattain har också använts för att generera banor med ett visst önskat värde på målfunktionen, för att kunna jämföra banor med olika målfunktionsvärden. En praktisk detalj vid optimeringen i Matlab är att man inte kan kontrollera att bivillkoren är uppfyllda kontinuerligt för alla tidpunkter, utan man får nöja sig med att lägga på bivillkoren i samplingspunkterna. Det innebär dock inget större problem i praktiken, så länge samplingspunkterna vid optimeringen ligger såpass tätt att inga stora förändringar i position, hastighet, acceleration respektive moment uppstår i intervallet mellan två samplingspunkter. 4.4. Samplingstid De data som används vid körning av roboten är en samplad version av den kontinuerliga banan som ges av de koeffecienter som optimeras fram. Samplingstiden som används i robotsystemet är t s = 4, 32 ms. Med denna samplingstid blir det väldigt många samplingspunkter med de längder på banan som krävs (5 sekunder ger 372 samplingspunkter) och detta gör utvärderingen av matrisen H och målfunktionen f(h) tidsödande vilket leder till mycket långsam optimering. Därför har en längre samplingstid använts vid beräkning av H vid optimeringen. För att kunna försvara användandet av olika samplingstid vid optimering respektive identifiering vill vi veta att om vi tar fram en bana genom att optimera målfunktionsvärdet för en viss samplingstakt så optimeras målfunktionsvärdet även för en annan samplingstid. För att verifiera detta har vi med hjälp av fgoalattain i Matlab optimerat fram banor till olika målfunktionsvärden för en längre samplingstid, och därefter undersökt målfunktionsvärdena för dessa banor när vi använder samplingstiden t s = 4, 32 ms som robotsystemet använder, se tabell 4. och 4.2. Vi ser då att konditionstalet inte påverkas nämnvärt av en förändring i samplingstakten. Det enda som händer med f d (H) är att värdena skiljer sig åt med en konstant, vilket beror på att man tar determinanten av olika stora matriser. Detta ger en skillnad i storleksordning på determinanten, som blir en konstant skillnad efter logaritmering. Vi kan dra slutsatsen att optimering med en längre samplingstid kommer att optimera banan även för en kortare samplingstid. 4.4.2 Erfarenheter från optimeringen Vid igångkörning av optimeringen har slumpmässiga värden använts som initialvärden på elementen i matrisen A (se (4.5)). Sannolikhetsfördelningen som använts till dessa är en likformig fördelning på intervallet [,;,]. Anledningen till att använda slumpade startvärden är att vi bara kan hitta lokala optima med optimeringen i Matlab, och vilket optimum vi hittar beror på vilken startpunkt som valts. Därför kan det vara intressant att jämföra banor optimerade från olika startvärden för att se om det blir stor variation mellan de banor som opti-

4.4 Optimeringsproblemet 25 meras fram, i de målfunktionsvärden som uppnås, samt de identifieringsresultat som erhålls. I bilaga B redovisas utseende för olika banor då målfunktionen f d (H) har använts. Dels har fgoalattain använts för att uppnå ett visst givet målfunktionsvärde, och dels har fmincon använts för att optimera till ett lokalt optimum. Vi kan observera att utseendet på banor med samma målfunktionsvärde är likartat, och att man får banor som innehåller mer rörelse när målfunktionsvärdet minskar. Vi ser också att olika startvärden för optimeringen resulterar i ungefär samma slutvärde på målfunktionen vid lokalt optimum, de optimala värden vi erhåller ligger i intervallet [-5,-3]. Optimeringen med f c (H) som målfunktion har inte varit lika stabil, och optimeringsrutinen fastnar ofta i lägen där den börjar ta väldigt små steg, eller ibland stannar helt, och man tvingas då försöka med ett nytt startvärde. Dessa banor har också givit dåliga identifieringsresultat. Tabell 4.. Målfunktionsvärden f c(h) för banor där värdet till vänster är målfunktionsvärdet för banan då antalet samplingspunkter reducerats med en faktor 32 och värdet till höger är målfunktionsvärdet för samma bana med fullt antal samplingspunkter. 5 4,994 5 5,34 5 4,9459 5 4,968 5 5,53 4,5 4,4832 4,5 4,5234 4,5 4,594 4,5 4,499 4,5 4,564 4 4,26 4 4,76 4 4,57 4 4,28 4 3,992 Tabell 4.2. Målfunktionsvärden f d (H) för banor där värdet till vänster är målfunktionsvärdet för banan då antalet samplingspunkter reducerats med en faktor 32 och värdet till höger är målfunktionsvärdet för samma bana med fullt antal samplingspunkter. 75 47,78 75 47,78 75 47,8 75 47,8 75 47,79 9 62,79 9 62,78 9 62,75 9 62,78 9 62,78 72,79 72,8 72,8 72,8 72,8

26 Genomförande

Kapitel 5 Experiment 5. Introduktion Vid den experimentella identifieringen har en robot av modell IRB 66 använts. De signaler som loggas från roboten är motorposition och motormoment för axel 3. Den bana som man önskar köra roboten utmed ges i form av en datafil som innehåller den önskade motorpositionen samplad med samplingstiden 4,32 ms. Detta kallas för en offlinegenererad bana. För att undvika transienta effekter som uppstår vid igångkörningen av roboten används inte de första sekunderna av körningen för identifiering. För att få en hel period av den optimerade banan att använda till identifieringen körs därför lite mer än en period av denna (periodiska) bana, och en period av mätdata med början ett par sekunder in i körningen används. Vid körning av offlinegenererade banor krävs av tekniska skäl att denna bana har samma start- och stopposition, och för att ordna detta anpassas ett tredjegradspolynom från slutpunkten på den extra del av en period som körs av banan, till banans startpunkt. I figur 5. illustreras detta, samt vilka mätdata som sedan används för identifieringen. Att observera är att de begränsningar som använts vid optimeringen ej applicerats på detta polynom, så försiktighet bör iakttas så att inte roboten går utanför det tillåtna arbetsområdet. Vid optimeringen har det heller ej lagts begränsningar på banan för att garantera att kollision ej inträffar mellan lasten och robotarmen, så man bör kontrollera att detta inte inträffar innan banan körs. 5.2 Att utvärdera identifierade parametrar När en identifiering har gjorts och en uppsättning identifierade baseparametrar erhållits finns det olika möjligheter för att utvärdera identifieringen. Man kan studera de identifierade parametrarnas värden och se hur de avviker från de teoretiska 27

28 Experiment 8 6 4 Motorvinklar 2 4 6 8 5 5 2 25 3 Figur 5.. Motorvinklar på axel 3 vid en körning av en dryg period av en optimerad bana där roboten därefter återgår till banans startpunkt med ett anpassat tredjegradspolynom. Linjerna markerar de mätdata som sedan används vid identifieringen. värden som fåtts från fysikaliska data på roboten. För att få ett begrepp om hur mycket en viss förändring i parametrarna ändrar på momentet redovisas i tabell 5. medelvärdet av den på valideringsbanan genomsnittliga momentförändringen för axel 3 då var och en av parametrarna förändras med en enhet. Man kan också studera skillnaden mellan det moment som loggats vid körningen och det moment som fås från baseparametermodellen med loggade positionsdata och de identifierade parametrarna. Eftersom identifieringen ger de parametrar som på identifieringsbanan ger bäst momentöverensstämmelse i en (viktad) minstakvadratmening, kan man förvänta sig en mycket bra momentöverensstämmelse på denna bana. Därför säger momentavvikelsen på just denna bana inte så mycket om hur väl baseparametermodellen med dessa parametrar kommer att prediktera momentet då roboten körs utmed en annan bana. Därför är det intressant att köra roboten utmed en valideringsbana för att se hur bra momentöverensstämmelse modellen ger där. En särskild bana har utsetts för detta ändamål, och detta är en 6,5 s lång bana som innehåller fem frekvenskomponenter och fåtts genom op-