• No results found

Observatörer för skattning av verktygspositionen hos en industrirobot : Design, simulering och experimentell verifiering

N/A
N/A
Protected

Academic year: 2021

Share "Observatörer för skattning av verktygspositionen hos en industrirobot : Design, simulering och experimentell verifiering"

Copied!
85
0
0

Loading.... (view fulltext now)

Full text

(1)

Institutionen för systemteknik

Department of Electrical Engineering

Examensarbete

Observatörer för skattning av

verktygs-positionen hos en industrirobot

Design, simulering och experimentell verifiering

Examensarbete utfört i Reglerteknik vid Tekniska högskolan i Linköping

av

Robert Henriksson

LITH-ISY-EX--09/4271--SE Linköping 2009

Department of Electrical Engineering Linköpings tekniska högskola

Linköpings universitet Linköpings universitet

(2)
(3)

Observatörer för skattning av

verktygs-positionen hos en industrirobot

Design, simulering och experimentell verifiering

Examensarbete utfört i Reglerteknik

vid Tekniska högskolan i Linköping

av

Robert Henriksson

LITH-ISY-EX--09/4271--SE

Handledare: Erik Wernholt

isy, Linköpings universitet Mikael Norrlöf, Stig Moberg

ABB AB Robotics Examinator: Thomas Schön

isy, Linköpings universitet Linköping, 10 februari, 2009

(4)
(5)

Avdelning, Institution

Division, Department

Division of Automatic Control Department of Electrical Engineering Linköpings universitet

SE-581 83 Linköping, Sweden

Datum Date 2009-02-10 Språk Language  Svenska/Swedish   Engelska/English  Rapporttyp Report category  Licentiatavhandling  Examensarbete  C-uppsats  D-uppsats  Övrig rapport  

URL för elektronisk version

http://www.control.isy.liu.se http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-17176 ISBNISRN LITH-ISY-EX--09/4271--SE

Serietitel och serienummer

Title of series, numbering

ISSN

Titel

Title

Observatörer för skattning av verktygspositionen hos en industrirobot

Design, simulering och experimentell verifiering

Observers for estimation of the tool position for an industrial robot

Design, simulation and experimental verification

Författare

Author

Robert Henriksson

Sammanfattning

Abstract

This thesis approaches the problem of estimating the arm angles of an industrial robot with flexibilities in joints and links. Due to cost-cutting efforts in the indust-rial robots industry, weaker components and more cost-effective structures have been introduced which in turn has led to problems with flexibilities, nonlinearities and friction. In order to handle these challenging dynamic problems and achieve high accuracy this study introduces state observers to estimate the tool position. The observers use measurements of the motor angles and an accelerometer and the different evaluated observers are based on an Extended Kalman Filter and a deterministic variant. They have been evaluated in experiments on an industrial robot with two degrees of freedom. The experimental verification shows that the state estimates can be highly accurate for medium frequency motions, ranging from 3-30Hz. For this interval the estimate were also robust to model inaccuraci-es. The estimation of low-frequency motions was relatively poor, due to problems with drift for the accelerometer, and it also showed a significant dependence on the accuracy of the model. For industrial robots it is mainly the medium frequency motions which are hard to estimate with existing techniques and these observers therefore carries great potential for increased precision.

Nyckelord

Keywords Observatör, Industrirobot, Flexibla manipulatorer, Accelerometer, Extended Kal-man Filter

(6)
(7)

Abstract

This thesis approaches the problem of estimating the arm angles of an industrial robot with flexibilities in joints and links. Due to cost-cutting efforts in the indus-trial robots industry, weaker components and more cost-effective structures have been introduced which in turn has led to problems with flexibilities, nonlinearities and friction. In order to handle these challenging dynamic problems and achieve high accuracy this study introduces state observers to estimate the tool position. The observers use measurements of the motor angles and an accelerometer and the different evaluated observers are based on an Extended Kalman Filter and a deterministic variant. They have been evaluated in experiments on an industrial robot with two degrees of freedom. The experimental verification shows that the state estimates can be highly accurate for medium frequency motions, ranging from 3-30Hz. For this interval the estimate were also robust to model inaccura-cies. The estimation of low-frequency motions was relatively poor, due to problems with drift for the accelerometer, and it also showed a significant dependence on the accuracy of the model. For industrial robots it is mainly the medium frequency motions which are hard to estimate with existing techniques and these observers therefore carries great potential for increased precision.

Sammanfattning

Detta projekt belyser problematiken att estimera verktygspositionen för en indu-strirobot med flexibiliteter i leder och armar. På grund av kostnadsbesparingar används i dagens industrirobotar allt vekare komponenter och svagare struktu-rer vilket leder till problem med flexibiliteter, olinjäriteter och friktion. För att hantera den svårmodellerade dynamiken och uppnå god noggrannhet introducerar denna rapport olika observatörer för att skatta verktygets position. Observatörer-na använder mätningar av motorvinklarObservatörer-na och en accelerometer och de baseras på Extended Kalman Filter och en deterministisk variant. Observatörerna har utvär-derats vid experiment på en robot med två frihetsgrader och skattningen blir myc-ket god för medelhöga frekvenser (3-30Hz) medan långsammare rörelser (0-3Hz) är betydligt svårare att skatta. Testerna visar att för att uppnå större noggrannhet för lågfrekventa rörelser behövs en väl överensstämmande matematisk modell för att beskriva systemet, medan skattningen av de medelsnabba rörelserna är mer robusta för modellfel. Eftesom det framförallt är de medelsnabba rörelserna för en industrirobot som är svåra att skatta med dagens tekniker, visar dessa resultat på att det finns stor potential i accelerometerbaserade observatörer för industrirobo-tar.

(8)
(9)

Tack

Jag vill börja med att tacka avdelningen för rörelsestyrning (PRCM) på ABB Ro-botics som gett mig förtroendet att genomföra detta projekt. Det har varit ett mycket roligt och utmanande projekt. Jag vill främst tacka Mikael Norrlöf och Stig Moberg på ABB Robotics som tålmodigt tagit sig an frågor och problem som jag stött på under arbetets gång. De har funnits med hela tiden och hjälpt till med allt som involverat projektet. Ett särskilt tack för all hjälp med mätningar på sena kvällar, matematiska modeller för robotarna och mycket givande diskus-sioner. Jag vill också tacka Erik Wernholt och Thomas Schön på ISY i Linköping som kommit med mycket bra återkoppling och synpunkter och framförallt hjälpt till vid utformandet av rapporten. Patrik Axelsson, som arbetat med ett annat examensarbete parallelt med mig på ABB Robotics, vill jag även tacka för hjälp med implementering på robot, tips och trix under arbetets gång samt trevligt säll-skap. Slutligen vill jag också tacka min kära flickvän Andrea som alltid finns med och gör allting så mycket roligare och lyckas slita bort mig från de matematiska modellerna och Matlab på sena kvällar när ögonen blivit fyrkantiga.

Tack för förtroendet! Jag hoppas att detta projekt kan vara till nytta både in-om vidare forskning men också för att bidra till ABB Robotics konkurrenskraft i framtiden.

Robert Henriksson, Västerås januari 2009

(10)
(11)

Innehåll

1 Introduktion 1 1.1 Bakgrund . . . 1 1.2 Syfte . . . 1 1.3 Mål . . . 1 1.4 Metod . . . 2 1.5 Avgränsningar . . . 2 1.6 Tidigare forskning . . . 3

1.7 ABB Robotics och LINK-SIC . . . 3

1.8 Rapportdisposition . . . 4 2 Grundläggande robotik 5 2.1 Grundläggande begrepp . . . 5 2.1.1 Koordinatsystem . . . 5 2.1.2 Kinematik . . . 5 2.1.3 Dynamik - stelkroppsmodell . . . 6 2.2 Utökad robotmodell . . . 7 2.2.1 Flexibiliteter i leder . . . 8 2.2.2 Matematisk modell . . . 8 2.2.3 Tillståndsmodell . . . 10 3 Accelerometer 11 3.1 Accelerometerns koordinatsystem . . . 11 3.2 Matematisk modell . . . 11 3.3 Modellering av störningar . . . 12 3.4 Kalibrering . . . 13 4 Estimeringsmetoder 15 4.1 Matematisk modell . . . 15

4.1.1 Systemmodell och diskretisering . . . 16

4.1.2 Tillgängliga mätningar . . . 16

4.2 Extended Kalman Filter . . . 16

4.2.1 Linjärisering . . . 17

4.2.2 Filteralgoritm . . . 17

4.2.3 Alternativa EKF-formuleringar . . . 18

4.3 Deterministisk observatör . . . 20

(12)

x Innehåll 4.3.1 Matematisk modell . . . 20 4.3.2 Linjärisering . . . 22 4.3.3 Polplacering . . . 23 4.3.4 Diskret implementering . . . 23 5 Trimning av observatörer 25 5.1 Trimning av kovarianser för EKF . . . 25

5.1.1 Kovariansskattning . . . 26

5.1.2 Formulering av optimeringsproblem . . . 26

5.2 Trimning av polplacering för deterministisk observatör . . . 28

6 Simuleringar 31 6.1 Simulering tvåaxlig robot . . . 31

6.2 Utvärderade observatörer . . . 32

6.3 Simuleringsresultat . . . 32

6.3.1 Resultat EKF-observatörer . . . 33

6.3.2 Resultat deterministisk observatör . . . 38

6.4 Analys av modellfel . . . 42

6.5 Slutsatser från simuleringar . . . 43

7 Experimentella resultat 45 7.1 Accelerometermätningar och kalibrering . . . 45

7.1.1 Använda accelerometrar . . . 48

7.2 Resultat för EKF-observatörer . . . 48

7.2.1 Skattningsresultat EKF med Crossbow-sensor . . . 48

7.2.2 Analys av kovarianser . . . 56

7.2.3 Trimningskänslighet för EKF . . . 57

7.2.4 Skattningsresultat EKF med Xsens-sensor . . . 58

7.3 Deterministisk observatör . . . 59

7.3.1 Skattningsresultat med Crossbow-sensor . . . 59

7.3.2 Analys av polplacering . . . 60

7.3.3 Trimningskänslighet för DL . . . 61

7.4 Beräkningskomplexitet . . . 61

8 Diskussion och slutsatser 63 8.1 Generella slutsatser . . . 63

8.2 Observatörsspecifika slutsatser . . . 65

8.3 Tillämpbarhet och användningsområden . . . 66

9 Vidare forskning 67 Litteraturförteckning 69 A Definitioner 71 A.1 Notation . . . 71

(13)

Kapitel 1

Introduktion

1.1

Bakgrund

Inom industriell robotik har en utveckling mot mer och mer kostnadseffektivitet skett under de senaste åren. Av den anledningen utnyttjas billigare och lättare komponenter, såsom mindre motorer och vekare strukturer. Den totala kostnaden i produktion minskar då komponent- och materialkostnaden går ner. Dock ökar även komplexiteten för rörelsestyrning som en följd av flexibiliteter som uppstår när strukturen påverkas i större utsträckning av belastning och rörelser. Detta innebär svårigheter vid rörelsestyrning och reglering, särskilt eftersom dagens ro-botar endast kan mäta motorvinklar, och inte verktygets position. På grund av flexibiliteterna i strukturen kommer den uppmätta motorvinkeln att avvika från den faktiska armvinkeln, som bestämmer verktygspositionen. Denna problematik har lagt grunden till intresset för att använda tröghetssensorer för att på ett billigt sätt förbättra skattningen av armvinklar, och därmed verktygets position.

1.2

Syfte

Syftet med detta examensarbete är att analysera problematiken med flexibla struk-turer och studera hur accelerometrar kan användas i estimeringsmodeller för att förbättra skattningen av armvinklar och verktygsposition. Olika estimeringsme-toder kommer att jämföras och anpassas för att utröna uppnåelig prestanda och erhålla förståelse för hur skattningen av armvinklar kan förbättras på ett kostnads-effektivt sätt. Hur accelerometrarna ska tas in i modellen och hur de kan kalibreras kommer att belysas.

1.3

Mål

Målsättningen är att ta fram en välfungerande estimeringsmodell att använda vid simulering och tester på robot. Till att börja med kommer en tvåaxlig robot att modelleras, men om möjligt kommer den även att utökas till tre axlar.

(14)

2 Introduktion

Projektets mål kan sammanfattas som huvudmål samt extramål enligt nedan. • Huvudmål - Skall vara uppfyllda vid projektets avslut

– Skapa observatör som, från motor- och accelerometermätningar, skattar

armvinklar och verktygsposition för två-axlig robot i Matlab

– Erhålla kunskap och förståelse för hur accelerometrar kan installeras

för att tillsammans med en observatör uppnå förbättrade skattningar för ett robotsystem

– Utveckla kalibreringsmetodik för accelerometer

– Färdigställa en utförlig rapport som beskriver problematiken, redogör

för resultat samt möjliga utvidgningar och vidareutvecklingar • Extramål - Utföres i mån av tid och endast då huvudmålen är uppfyllda

– Samma som ovan men för treaxlig robot

– Utveckla en observatör som nyttjar flera accelerometrar

– Utveckla en observatör som även använder mätningar från gyron för att

skatta armvinklar

– Utvärdera prestanda då den utvecklade observatören används för ILC

(Iterative Learning Control)

1.4

Metod

I ett första skede kommer olika observatörer att utvecklas och utvärderas för en robotmodell i simuleringar i Matlab. När en tillfredsställande precision och busthet uppnås kommer systemet att testas och utvärderas för körningar på ro-bot. Accelerometern kommer då att kalibreras och analyseras, med tillhörande modellförändringar om nödvändigt. Estimeringsmodellerna kommer sedan att tes-tas och utvärderas för att se över vidareutvecklingar som kan vara aktuella för att hantera eventuella svårigheter som uppkommer. Observatörernas skattningar av verktygspositionen kommer att utvärderas med hjälp av lasermätutrustning från Leica som beskrivs i [10].

1.5

Avgränsningar

Observatörsmodellen kommer att begränsas till att hantera två axlar, men möjlig-het för utvidgning skall lämnas. Observatören kommer ej att implementeras som en realtidsversion eftersom mycket tid då måste läggas på att optimera beräknings-tid och implementering, vilket ligger ur fokus för detta projekt. Projektet kommer framförallt att belysa implementering av en accelerometer vid verktyget, och inte multipla accelerometrar eller gyron. Då denna studie ämnar utvärdera olika ob-servatörsmetoder för industrirobotar finns det ej en avsikt att i rapporten ge en utförlig beskrivning av ämnesområdet robotik eller dess matematiska formalism

(15)

1.6 Tidigare forskning 3

utöver det som är nödvändigt för att förstå implementering och modellering av observatörer och accelerometer. Den intresserade hänvisas istället till exempelvis [24] för en uttömmande genomgång av robotikområdet. Ytterligare en avgränsning är att skattningen av verktygspositionen kommer att fokuseras på rörelser vid me-delhöga frekvenser (3-25Hz). Anledningen till detta är att stora modellfel kan ge upphov till lågfrekventa skattningsfel, trots att de snabbare svängningarna skattas mycket väl. Det är framförallt de snabba förloppen och stora svängningarna som är av intresse att skatta med denna metod eftersom den lågfrekventa delen idag kan estimeras väl med befintliga metoder.

1.6

Tidigare forskning

Inom området observatörer för flexibla manipulatorer har en hel del forskning ge-nomförts där exempelvis Nicosia et al. [19] var tidiga på området, och beskrev tillvägagångssätt att hantera den ytterst olinjära dynamiken i flexibla robotstruk-turer. Att utveckla observatörer som nyttjar tröghetsmätningar har studerats i stor utsträckning där bland annat De Luca et al. [7] beskriver en observatör för ledflexibiliteter, baserad på en treaxlig accelerometer. Li och Chen [16] går in på ett tillvägagångssätt att hantera armflexibiliteter med hjälp av ett lasermätsystem för positions- och vinkelbestämning samt accelerometer. Även Norrlöf och Karlsson [20] har undersökt hur en accelerometer kan användas i en observatör baserad på Extended Kalman Filter (EKF) och Partikelfilter. Problematiken som kan upp-komma för flexibla mekanismer på grund av gravitationskraften beskrivs av De Luca et al. i [6] där gravitationskompensering gås igenom. Bland olika observa-törstekniker har det linjära Kalmanfiltret eller EKF använts i ett flertal studier. Rock och Alder använder ett linjärt Kalmanfilter för en observatör till en enaxlig flexibel robotarm med okänd belastningsdynamik [1] samt en enaxlig flexibel ro-botarm med okänd deformation [2]. EKF används av bland andra Norrlöf [20] och Li [16] men även Lertpiriyasuwat [15] där en EKF observatör för flexibla armar för en tvåaxlig robot studeras. Deras Kalmanfilter använde mätningar av verk-tygsposition samt vinkelhastigheter i lederna. Jankovic beskriver en observatör för en flexibel robot då mätningar endast finns tillgängliga på motorsidan [13].

Det finns ett antal studier på området men det är ändock relativt ungt, eftersom den beräkningskraft som krävs för exempelvis en EKF för ett treaxligt system inte varit enkelt tillgänglig för enbart några år sedan. Nu med ökande kapacitet för signalbehandling och beräkningar kommer med stor sannolikhet antalet praktiska tillämpningar och studier att växa.

1.7

ABB Robotics och LINK-SIC

ABB Robotics är ett bolag inom ABB-koncernen som utvecklar och tillverkar in-dustrirobotar för automationstillämpningar inom framförallt tillverkande industri, där fordonsindustrin länge varit en stor kund. ABB Robotics hade 2007 intäkter på ca $1.4 miljarder och hade 4500 anställda globalt. Examensarbetet har utförts

(16)

4 Introduktion

på avdelningen för rörelsestyrning (PRCM) och är ett av de första projekten in-om forskningssamarbetet LINK-SIC sin-om är ett VINNOVA Industry Excellence Center. LINK-SIC startades 2008 och är ett 10-årigt forskningssamarbete mellan LiTH, ABB Robotics, ABB Corporate Research, Saab AB, GM Powertrain -Sweden AB och Scania CV.

1.8

Rapportdisposition

§ 1 - Introduktion Detta avsnitt beskriver projektets bakgrund, syfte och

mål-sättning samt en kort genomgång av tidigare forskning och avgränsningar.

§ 2 - Grundläggande robotik Här ges en redogörelse för den matematiska

bak-grunden som behövs för att beskriva en robot. Avsnittet inleds med en här-ledning av en grundläggande robotmodell och avslutas med en grundlig be-skrivning av dynamik, samt tillståndsekvationer för en flexibel robotmodell.

§ 3 - Accelerometer I detta avsnitt beskrivs den accelerometer som använts,

dels kinematiskt och dynamiskt när den är fastmonterad på roboten, men även praktiska tekniska detaljer. En beskrivning av störningsegenskaper och kalibreringsmetodik ges också.

§ 4 - Estimeringsmetoder Detta avsnitt presenterar de olika observatörer som

undersökts i denna studie. Den matematiska bakgrunden till observatörerna ges också en grundlig genomgång.

§ 5 - Trimning av observatörer I detta avsnitt ges en grundlig genomgång av

hur trimningen av observatörerna har utförts. Förfarandet presenteras som ett minimeringsproblem under givna bivillkor för att på ett kompakt sätt definiera trimningsmetodiken.

§ 6 - Simuleringar Här redovisas de slutliga simuleringar som utförts och de

resultat som erhållits. Resultaten analyseras och jämförelser görs mellan de olika observatörerna som utvärderats.

§ 7 - Experimentella resultat De praktiska tester på robot som utförts

be-skrivs här. En genomgång ges av praktiska implementationsfrågor samt de resultat som erhållits. En analys av resultaten samt diskussion om möjliga förbättringar och vidareutvecklingar ges även.

§ 8 - Slutsatser I detta avsnitt dras relevanta slutsatser av användbarhet och

praktisk tillämpbarhet av de estimeringsmetoder som undersökts.

§ 9 - Vidare forskning Ett flertal olika områden som skulle vara intressanta

att undersöka vidare presenteras i detta avsnitt. Det är framförallt metoder och undersökningar som varit av intresse under studiens gång men inte rymts inom ramarna för projektet.

(17)

Kapitel 2

Grundläggande robotik

Detta avsnitt ger en genomgång av den grundläggande matematik som behövs för att beskriva en industriell robot. Definitioner av variabler finns i bilaga A.

2.1

Grundläggande begrepp

De sammanlänkade kroppar som utgör en robot kan beskrivas av ett antal armar och leder. Antalet leder definierar robotens frihetsgrader (DOF) och för varje DOF används en generaliserad koordinat, qai, som beskriver armvinkeln för respektive

led med avseende på en given referens, såsom angivet för tvåaxelsmodellen i fi-gur 2.1. En robot som har N leder har då N frihetsgrader (DOF) och då behövs

N generaliserade koordinater qai, i = 1, . . . , N för att beskriva systemet

fullstän-digt.

2.1.1

Koordinatsystem

Robotens geometri beskrivs utifrån ett grundkoordinatsystem, {w}, som är fixt vid robotens bas och i detta koordinatsystem anges positionen pwför verktygets

cent-rumpunkt, T CP . I figur 2.1(a) och 2.1(b) anges koordinatsystemet för en tvåaxlig robot då roboten står i startpositionen resp. i ett aktivt läge med armvinklarna

qa1> 0 och qa2> 0.

2.1.2

Kinematik

En robots geometriska sammansättning och sambandet mellan verktygsposition och armvinklar ges av dess kinematiska beskrivning. Robotverktygets position pw

beror av armarnas vinklar och definieras av

pw=   xw(qa) yw(qa) zw(qa)   = Γ(qa) 5

(18)

6 Grundläggande robotik TCP [xwzw] Xw Zw

Grundkinematik

pw (a) Startposition TCP [xwzw] pw

Grundkinematik

qa2 qa1 Xw Zw (b) Aktivt läge

Figur 2.1. Exempel på konfigurationer för en tvåaxlig robot.

För en tvåaxlig robot som verkar i xz-planet kommer definitionen av Γ(qa) ske i

enlighet med figur 2.1. Funktionen Γ är också beroende av hur robotens parametrar har definierats. Exempelvis kan armvinklarna och andra parametrar definieras på olika sätt, där en vanlig parameterdefinition baseras på Denavit-Hartenberg-notationen som beskrivs i exempelvis [24]. Om vinklarna definieras i enlighet med figur 2.1 och armarna har längd L1resp. L2skulle följande form för Γ(qa) erhållas

pw= Γ(qa) =  L1sin(qa1) + L2cos(qa1+ qa2) L1cos(qa1) − L2sin(qa1+ qa2)  (2.1)

2.1.3

Dynamik - stelkroppsmodell

I detta avsnitt presenteras den grundläggande matematiska modellen som bygger på antagandet att en robot kan beskrivas av stela kroppar utan friktion och ut-an flexibiliteter i länkar och leder. Eftersom robotmodellen betraktas som ideal utan flexibiliteter eller friktion kan dynamikekvationerna härledas via Lagrange ekvation [24] enligt nedan

L = T − U (2.2a) d dt  ∂L ∂ ˙qai  − ∂L ∂qai = uai (2.2b)

där uai är pålagt moment på arm i, T är robotens totala kinetiska energi och U

dess potentiella energi som ges av

T =1

2q˙

T

aM (qa) ˙qa (2.3a)

U = U (qa) (2.3b)

med robotens konfigurationsberoende tröghetsmatris betecknad M (qa). Eftersom

den potentiella energin endast beror av qa kommer den bara in i (2.2) som

(19)

2.2 Utökad robotmodell 7

gravitationen på lederna. Det innebär att (2.2) kan skrivas

L = T (qa, ˙qa) − U (qa) (2.4a) Gi(qa) =  ∂U (qa) ∂qai  (2.4b) uai= d dt  ∂T (qa, ˙qa) ∂ ˙qai  −∂T (qa, ˙qa) ∂qai + Gi(qa) (2.4c)

Derivatorna av den kinetiska energin kan nu härledas

T (qa, ˙qa) = 1 2q˙ T aM (qa) ˙qa (2.5a) ∂T (qa, ˙qa) ∂ ˙qa =1 2 ∂ ˙qT aM (qa) ˙qa ∂ ˙qa = M (qa) ˙qa (2.5b) d dt(M (qa) ˙qa) = ˙M (qa) ˙qa+ M (qaqa (2.5c) ∂T (qa, ˙qa) ∂qa =1 2     ˙ qT a dM (qa) dqa1 q˙a .. . ˙ qT a dM (qa) dqaN q˙a     (2.5d)

I ekvationerna uppkommer nu ett par termer med tillsynes komplicerad form, men dessa brukar oftast samlas ihop i vad som populärt kallas Coriolis- och cent-rifugaltermer, C(qa, ˙qa) enligt C(qa, ˙qa) = ˙M (qa) ˙qa− 1 2     ˙ qTa dM (qa) dqa1 q˙a .. . ˙ qT a dM (qa) dqaN q˙a    

Om sedan (2.5) används i (2.4) med definitionen av C(qa, ˙qa) ovan och ekvationen

skrivs på vektorform erhålls den enklaste formen av dynamikekvationen enligt

M (qaqa+ C(qa, ˙qa) + G(qa) = ua (2.6)

Denna ekvation ger en robots dynamik då den kan betraktas som en stel kropp utan friktion eller flexibiliteter. I verkligheten uppkommer en viss avböjning och vridning av armar och leder på grund av belastningen, och friktionen är inte alltid försumbar. Den ideala modellen kan då vara otillräcklig för att uppnå en noggrann beskrivning. En mer realistisk modell tar hänsyn till friktion och flexibiliteter och ett vanligt sätt att modellera dessa är att betrakta leder som visko-elastiska med friktion, och därmed införa fjäderstyvheter, viskös dämpning och en friktionsmo-dell. Ett sätt att bygga upp en mer fullständig robotmodell presenteras i § 2.2.

2.2

Utökad robotmodell

Det finns flera olika modeller för att beskriva ett robotsystem mer realistiskt och i detta avsnitt ges en beskrivning av en utökad robotmodell som hanterar

(20)

flex-8 Grundläggande robotik qm1 , qa1 qa2 Motorns läge Armens läge qm2

Ledflexibiliteter

Figur 2.2. En robotarm med flexibiliteter i led 2.

ibiliteter i leder med olinjär styvhet och friktion samt linjär viskös dämpning. Denna modell beskrivs av Moberg et al. i [17] och alla variabler finns definierade i bilaga A. Det är också denna modell som observatörerna utvecklats utefter.

2.2.1

Flexibiliteter i leder

Då en robot utsätts för belastning, antingen från den egna tyngden eller från yttre krafter, kommer en viss avböjning att ske på grund av vekheter i konstruktionen, vilket brukar modelleras som flexibiliteter. En vanlig modell, som också används i denna studie, är att roboten modelleras som om flexibiliteterna sitter i lederna. För att kunna beskriva ledflexibiliteter fördubblas antalet generaliserade koordinater och för varje led införs en motorvinkel qmi. Det innebär att varje led beskrivs av

dels armens vinkel qaioch dels motorns vinkel qmi. Avvikelsen qai− qmibeskriver

då avböjningen i led i, se figur 2.2 där avböjningseffekten överdrivits kraftigt. En industrirobot har i praktiken en viss utväxling mellan angivelsen av motorns läge och den faktiska motorvinkeln som nämns ovan. I vissa formuleringar inkluderas därför detta utväxlingstal i den matematiska modellen. I denna rapport har där-emot variabler och parametrar definierats så att utväxlingstalet inte behöver tas in i modellen.

2.2.2

Matematisk modell

Dynamikekvationen som beskriver rörelsen för en robot med flexibla leder och armar kan härledas med Lagrange ekvation på motsvarande sätt som härledningen av den grundläggande modellen i § 2.1.3 men den härledningen utelämnas här. För att förenkla beskrivningen av dynamikekvationen kommer en robot med två leder

(21)

2.2 Utökad robotmodell 9

att presenteras i detta kapitel, och följande definitioner införs

u =     0 0 um1 um2     q =     qa1 qa2 qm1 qm2     =  qa qm  (2.7)

där u är externa krafter som verkar på systemet. Det ger då följande momentjäm-viktsekvation som beskriver systemets dynamik,

u = M (qaq + C(qa, ˙qa) + G(qa) + D( ˙qa− ˙qm) + τs(qa, qm) + κ( ˙qm) (2.8)

där M (qa) är systemets massmatris, C(qa, ˙qa) Coriolis- och centrifugaltermer och

G(qa) gravitationens inverkan på lederna i enlighet med definitionerna för den

stela modellen. I utökningen av modellen för att inkludera flexibiliteter och friktion introduceras nu även viskös dämpning D( ˙qa− ˙qm), olinjär fjäderkraft τs(qa, qm)

samt olinjär friktion κ( ˙qm). Dessa storheter definieras nedan och de robotspecifika

parametrar som ingår i uttrycken finns definierade i bilaga A. Massmatris: M (qa) =  Ma(qa) 0 0 Mm  =     J11(qa) J12(qa) 0 0 J21(qa) J22(qa) 0 0 0 0 jm1 0 0 0 0 jm2     J11(qa) = j1+ m1ξ21+ j2+ m2(l12+ ξ 2 2− 2l1ξ2sin(qa2)) J12(qa) = j2+ m222− l1ξ2sin(qa2)) J21(qa) = J12(qa) J22(qa) = j2+ m2ξ22

Gravitationens momentinverkan på lederna:

G(qa) = g1(qa) g2(qa) 0 0  T

g1(qa) = −g(m1ξ1sin(qa1) + m2(l1sin(qa1) + ξ2cos(qa1+ qa2)))

g2(qa) = −gm2ξ2cos(qa1+ qa2)

Coriolis- och centrifugaltermer:

C(qa, ˙qa) =  Ca(qa, ˙qa) 0  =     −m2l1ξ2cos(qa2)(2 ˙qa1q˙a2+ ˙q2a2) m2l1ξ2cos(qa2) ˙qa12 0 0    

(22)

10 Grundläggande robotik Olinjär fjäderkraft: τs(q) =     τs1(∆q1) τs2(∆q2) τs1(−∆q1) τs2(∆q2)     ∆qi= qai− qmi, i = 1 . . . 2. τsi= ki1∆qi+ ki3∆q3i, |∆qi| ≤ ψi τsi= sign(∆qi)(Ki0+ Ki1(|∆qi− ψi)), |∆qi| > ψi ki1= klowi ki3= (k high i − k low i )/(3ψ 2 i) Ki0= ki1ψi+ ki3ψi3 Ki1= k high i

Dämpningsmatris som beskriver viskös dämpning:

D =



d1 0

0 d2



Modell av olinjära friktionsmoment som beror av motorernas vinkelhastigheter:

κ( ˙q) = 0 0 κ1( ˙q) κ2( ˙q)

T

κi( ˙q) = fdiq˙mi+ fci(µki+ (1 − µki) cosh−1(βiq˙mi)) tanh(αiq˙mi), i = 1, . . . , 2.

2.2.3

Tillståndsmodell

Utgående från definitionerna i § 2.2.2 och (2.8) kan nu en tillståndsmodell formu-leras med insignal u och tillstånd x

u = u, x =     x1 x2 x3 x4     =     qa qm ˙ qa ˙ qm    

samt tillhörande olinjära tillståndsekvation, härledd från (2.8)

˙ x =   x3 x4 M−1(x1)(−C(x1, x3) − G(x1) − D(x3− x4) − τs(x1, x2) − κ(x3))   (2.9) +   0 0 M−1(x1)  u (2.10)

(23)

Kapitel 3

Accelerometer

I detta avsnitt beskrivs hur en accelerometer kan modelleras och implementeras med observatörerna. En genomgång av accelerationsekvationer och koordinatsy-stem samt kalibreringsmetodik ges även.

3.1

Accelerometerns koordinatsystem

En accelerometer registrerar sina mätningar i ett kroppsfixt koordinatsystem, som benämns {s}, och detta roterar med accelerometern när den rör sig. Detta koor-dinatsystem måste givetvis relateras till det robotfixa baskoorkoor-dinatsystemet {w} eftersom det är i detta som beräkningar sker. I figur 3.1 illustreras baskoordinat-systemet samt sensorkoordinatbaskoordinat-systemet för två olika konfigurationer för en två-axlig robot som rör sig i xz-planet och har en accelerometer monterad på un-dersidan av andra armen. Positionen för sensorn uttryckt i baskoordinatsystemet, anges av ρw = T (qa) och är beroende av robotkonfigurationen. I det första

lä-get, då qa1 = qa2 = 0 sammanfaller riktningarna för sensorns koordinatsystem

med baskoordinatsystemet. I det andra läget är istället roboten i en position med

qa1> 0, qa2> 0 och där är {w} och {s} ej längre parallella.

3.2

Matematisk modell

Den acceleration som accelerometern påverkas av kan härledas matematiskt genom att derivera positionsbeskrivningen, ρw= Γ(qa), två gånger med avseende på tiden.

Med nedanstående definition ˙

Γ(qa) = J (qa) ˙qa

erhålls följande uttryck för accelerationen ˙

ρw= ˙Γ(qa) = J (qa) ˙qa (3.1a)

¨

ρw= ¨Γ(qa) = J (qaqa+ ˙J (qa) ˙qa (3.1b)

(24)

12 Accelerometer Xw Zw

Sensorkoordinatsystem

ρw Xs Zs Sensor (a) Grundposition Zw

Sensorkoordinatsystem

qa2 qa1 Xw Zw ρw Xs Zs Sensor (b) Aktivt läge

Figur 3.1. Koordinatsystem för robot och sensor.

där ˙ρw och ¨ρw är sensorns hastighet resp. acceleration angiven i

baskoordinatsy-stemet {w}. Jacobianens tidsderivata blir något komplicerad och anges av

˙ J (qa) = N X i=1 ∂J ∂qai ˙ qai

där N är antalet frihetsgrader. Eftersom sensorn är fastmonterad på en rörlig axel på roboten kommer dess koordinatsystem att röra sig och dess mätning kommer att ge värden uttryckta i dess egna koordinatsystem {s}. För att transformera accelerations- eller kraftvektorer mellan sensorkoordinater {s} och baskoordinater {w} används rotationsmatriser {w} 7→ {s} : Rs

w(qa) och {s} 7→ {w} : Rws(qa).

Eftersom en accelerometer mäter faktisk kraftpåverkan kommer även gravitationen att mätas upp, och följande mätekvation erhålls således

¨

ρs= Rsw(qa) ¨ρw− Rsw(qa)Gw= Rsw(J (qaqa+ ˙J (qa, ˙qa) ˙qa) − Rsw(qa)Gw (3.2)

där gravitationen modelleras som Gw= [0, 0, −g0]T med g0 som

gravitationskon-stanten, och från detta samband kan armaccelerationerna härledas ¨

qa = (Rsw(qa)J )

−1

(qa)( ¨ρs− Rws(qa)( ˙J (qa, ˙qa) ˙qa− Gw)). (3.3)

Denna uppskattning av armaccelerationerna, eller den faktiska accelerationen ρw

kan sedan användas i en observatör för att förbättra skattningar av armvinklar och verktygsposition.

3.3

Modellering av störningar

Som nämndes ovan mäter en accelerometer faktisk kraftpåverkan och dessa mät-ningar kommer givetvis att innehålla vissa störmät-ningar. Dessa störmät-ningar brukar modelleras som dels en långsamt varierande drift samt en normalfördelad störning

(25)

3.4 Kalibrering 13

med låg amplitud. I enlighet med notationen i [9] benämns den långsamma driften

δs och det normalfördelade mätbruset es. Den faktiska mätningen som

accelero-metern registrerar definieras av ρMs och följande modell beskriver accelerometerns

mätning i sensorkoordinatsystemet {s} ¨

ρMs = ¨ρs+ δs+ es= Rws(qa)( ¨ρw− Gw) + δs+ es (3.4)

Som tidigare är Rs

wkoordinattransformationsmatrisen mellan baskoordinater och

sensorkoordinater, ¨ρw är den faktiska accelerationen för accelerometern och Gw

anger gravitationskraften. För en mer utförlig beskrivning av accelerometrar och andra tröghetssensorer samt en beskrivning av störningarnas faktiska utseeende för verkliga mätningar, se exempelvis [9].

3.4

Kalibrering

En accelerometer måste i praktiken kalibreras, både för orientering och position efter att den monterats på robot. Detta förfarande kan utföras på flera olika sätt, där en metod presenteras i [9]. För denna studie har en metod tagits fram och kalibreringen utförs genom ett antal fördefinierade robotrörelser utifrån vilka en rotationsmatris och position beräknas. Denna metodik granskas för närvarande för att utröna huruvida en patentansökan kommer att vara aktuell eller inte. Av den anledningen kan inte detta kapitel ge en mer utförlig beskrivning av tillväga-gångssättet.

(26)
(27)

Kapitel 4

Estimeringsmetoder

Då en matematisk modell av ett system används i praktiken behövs ofta olika es-timeringsmetoder eftersom verkligheten skiljer sig från modellen. I denna tillämp-ning handlar det om att estimera verktygsposition samt armvinklar för roboten då mätningar av accelerationen vid TCP samt motorvinklar finns tillgängliga. Det finns ett flertal olika tillvägagångssätt för att hantera detta problem och i denna studie har fokus lagts på Extended Kalman Filter (EKF) samt en deterministisk observatör. EKF beskrevs tidigt i [3] och nyare referenser finns också såsom [14]. Den deterministiska observatör som använts i denna studie har tagits fram av De Luca et al. och beskrivs i [7]. Båda observatörerna använder motorvinkelmätningar samt accelerometrar för att skatta armvinklar och verktygsposition.

4.1

Matematisk modell

Den olinjära kontinuerliga tillståndsmodellen som beskriver robotens dynamik kan formuleras enligt ˙ x = f (x, u), x =     x1 x2 x3 x4     =     qa qm ˙ qa ˙ qm     (4.1)

där f är den olinjära funktion som beskriver dynamiken för den tvåaxliga model-len som ges i § 2.2.3. Utskrivet med endast tillståndsvariablerna erhålls följande tillståndsmodell ˙ x =   x3 x4 M−1(x1)(u − C(x1, x3) − G(x1) − D(x3− x4) − τs(x1, x2) − κ(x3))   (4.2) 15

(28)

16 Estimeringsmetoder

4.1.1

Systemmodell och diskretisering

I praktiken implementeras ett system på en robot i diskret form varför den konti-nuerliga tillståndsekvationen beskriven i (4.1) och (4.2) måste diskretiseras. Detta görs enklast med en första ordningens Taylorapproximation för vilken en utförlig härledning ges i exempelvis [22]

xk+1≈ xk+ Tsx˙k = xk+ Tsf (xk, uk) = F (xk, uk) (4.3)

där F (xk, uk) betecknar den nya systemfunktionen. Ett sådant system kommer

givetvis även att innehålla systemstörningar och dessa modelleras som normal-födelade med kovarians Qk, alltså vk ∼ N (0, Qk) och följande systemfunktion

erhålles således

xk+1= F (xk, uk) + vk (4.4)

4.1.2

Tillgängliga mätningar

De mätningar z som finns tillgängliga är motorvinklar qmM och accelerationen för

en punkt på roboten ¨ρM

s uppmätt i sensorns koordinatsystem {s} och mätningarna

sker givetvis i diskret tid, styrt av aktuell sensors samplingstid. En mätning vid tidpunkt k betecknas med superindex M för uppmätt storlek enligt

zk =  qM mk ¨ ρM sk  (4.5)

Ett matematiskt samband kan också härledas mellan robotens tillståndsvariabler

x, pålagt moment u, och uppmätta storheter z. I realiteten kommer detta samband

inte vara exakt och därför modelleras skillnaden genom en mätstörning wk

N (0, Rk) vid tidpunkt k. Detta samband mellan xk, uk och zk ges av funktionen

h(xk, uk), med uttrycket för ¨ρMs hämtat från (3.2)

zk= h(xk, uk) + wk =  x2k Rs w(x1k)(J (x1kx1k+ ˙J (x1k)x3k− Gw)  + wk (4.6)

Eftersom armaccelerationerna ¨x1kej ingår som tillståndsvariabel ersätts ¨x1ki (4.6)

med uttrycket för armaccelerationen som ingår i tillståndsekvationen från (2.10) ¨

x1k = M−1(x1k)(uk− C(x1k, x3k) − G(x1k) − D(x3k− x4k) − τs(x1k, x2k) − κ(x3k))

(4.7)

4.2

Extended Kalman Filter

Inom filterteori är Kalmanfiltret ett välkänt begrepp eftersom det är ett optimalt filter för linjära system med normalfördelade process- och mätstörningar. I fallet med robotar är det istället ett olinjärt dynamiskt system som skall hanteras. I sådana fall används ofta Extended Kalman Filter, vilket är en utökning av Kal-manfiltret för att kunna hantera olinjära system. Principen för EKF är mycket

(29)

4.2 Extended Kalman Filter 17

enkel; i varje iteration linjäriseras systemet runt aktuell skattning och sedan an-vänds en variant av det ordinarie Kalmanfiltret. Detta är en mycket välbeprövad metodik men dock kan kvalitén i skattningarna variera kraftigt beroende på hur väl modellen kan beskrivas med linjäriseringar i varje tidssteg. Mer utförlig infor-mation om EKF finns i många filter- och signalteoriböcker där två exempel är [3] och [14]. En översikt ges även i [23].

4.2.1

Linjärisering

I § 4.1 definierades den matematiska modell som beskriver roboten som ett tids-diskret olinjärt dynamiskt system och system- och mätfunktionen tecknas enligt

xk+1= F (xk, uk) + vk (4.8a)

zk= h(xk, uk) + wk (4.8b)

Dessa funktioner är olinjära och därför måste en linjärisering genomföras vid varje tidssteg för att de ska kunna användas i EKF. Detta görs som en första ordningens Taylorapproximation kring det senast skattade tillståndet, ˆxk|krespektive ˆxk|k−1.

F (xk, uk) ≈ F (ˆxk|k, uk) + ∂F (x, uk) ∂x x=ˆx k|k (xk− ˆxk|k) (4.9a) h(xk, uk) ≈ h(ˆxk|k−1, uk) + ∂h(x, uk) ∂x x=ˆx k|k−1 (xk− ˆxk|k−1) (4.9b)

För att förenkla uttrycken görs följande definitioner

Ak= ∂F (x, uk) ∂x x=ˆx k|k (4.10a) Hk= ∂h(x, uk) ∂x x=ˆx k|k−1 (4.10b)

Med dessa variabler kan nu de linjäriserade system- och mätfunktionerna slutligen beskrivas enligt

xk+1= F (ˆxk|k, uk) + Ak(xk− ˆxk|k) + vk (4.11a)

zk = h(ˆxk|k−1, uk) + Hk(xk− ˆxk|k−1) + wk (4.11b)

4.2.2

Filteralgoritm

EKF bygger på en iterativ algoritm och utan vidare härledning anges nu tids- och mätuppdateringarna vid varje tidssteg. För en mer utförlig beskrivning av algo-ritmen hänvisas till exempelvis [3] eller [14].

Mätuppdatering

ˆ

xk|k= ˆxk|k−1+ Kk(zk− h(ˆxk|k−1, uk))

(30)

18 Estimeringsmetoder Tidsuppdatering ˆ xk+1|k= F (ˆxk|k, uk) Pk+1|k= AkPk|kATk + Qk Kk= Pk|k−1HkT(HkPk|k−1HkT + Rk)−1 Initialvärden ˆ x1|0 = ¯x1 P1|0 = ¯P1

där ¯P1och ¯x1är valda initialvärden för observatören. Initialvärden för tillstånden

kan exempelvis väljas till ¯ x1=  qM m1(0) qm2M (0) qm1M (0) qm2M (0) 0 0 0 0 T

om systemet startar i vila. Initialvärden till ¯P1är däremot svårare att välja intuitivt

och en skattning kan göras. Det finns givetvis ett flertal praktiska svårigheter med att använda ett EKF där den största svårigheten ligger i att välja kovarianser för system- och mätstörningar på ett lämpligt sätt. Detta är i praktiken svårt eftersom det brus som påverkar mätningar och system sällan är exakt känt och därför måste någon form av approximation göras. Hur detta kan utföras behandlas i § 5.

4.2.3

Alternativa EKF-formuleringar

En risk med utformningen av EKF:ens mätfunktion, som den ser ut i (4.6) är att ett kraftigt modellberoende införs på grund av det komplicerade uttrycket för ¨x1k

i (4.7). Eftersom ett syfte med att använda accelerometern är att förbättra robust-heten gentemot modellfel är detta problematiskt. Det finns fler EKF-varianter som kan undersökas än den som hittills presenterats och i detta avsnitt presenteras yt-terligare tre metoder som, utöver den fullständiga EKF-observatören som redan beskrivits, kommer att undersökas i denna studie.

Integrerad accelerometer

En möjlighet att hantera den komplexa mätfunktionen är att integrera accelerome-termätningarna till hastigheter, så att bara kinematiken behövs i mätfunktionen. Alltså ˙ ρMw(k) = k Z 0 ¨ ρMw(t)dt = k Z 0 Rws(t) ¨ρMs (t) + Gwdt (4.12)

där integreringen i (4.12) är en numerisk integrering av någon sort eftersom mät-ningarna är diskreta. Olika numeriska metoder för integrering finns beskrivna i exempelvis [8]. Den uppmätta accelerationen ¨ρM

s (t) i (4.12) måste givetvis först

transformeras till baskoordinater för att sedan kompenseras för gravitationen, såsom i (3.4), eftersom verktygets faktiska hastighet ska beräknas. Denna inte-grering kan givetvis införa en del drift över tid, men om banan är sådan att små stopp görs under körningar, exempelvis punktsvetsning, så kommer integreringen aldrig behöva ske under speciellt lång tid eftersom den kan nollställas vid varje stillastående tillfälle. Det kommer säkerligen ändock att kunna uppstå svårigheter

(31)

4.2 Extended Kalman Filter 19

med drift men då detta framförallt är ett lågfrekvent problem bör det inte påverka skattningen för högre frekvenser (> 3Hz). Om nu ˙ρMw används som mätning istället

för ¨ρM

w kommer den nya mätekvationen att bli betydligt enklare eftersom det, i

enlighet med (3.1a), bara är jacobianen J (qa) som kommer in i beräkningarna

˙

ρw= J (qa) ˙qa (4.13)

och mätekvationen blir således

h(xk, uk) =  x2k J (x1k)x3k  (4.14) vilket är en betydligt enklare form än den som presenteras i (4.6). Här uppkommer istället problemet med att integreringen av accelerometern kan introducera stora mätfel, som trots att mätekvationen är enklare, ger stora fel. Det blir således en avvägning mellan hur väl accelerometern kan integreras, och hur stora modellfelen är.

Förenklad modell

Ett annat tillvägagångssätt för att reducera komplexiteten är att förenkla beskriv-ningen av olinjäriteterna i systemet. Det kan göras genom att styvheten betraktas som linjär och friktionen elimineras. En förenklad modell skulle då få dynami-kekvationen

uk= M (x1kxk+ C(x1k, ˙x1k) + G(x1k) + D(x3k− x4k) + K(x1k− x2k) (4.15)

där K(x1k− x2k) beskriver den linjära fjäderkraften. Om denna modell används i

EKF:en blir system- och mätfunktionen betydligt mindre komplexa men givetvis kan det medföra svårigheter med modellfel. För mätfunktionen i (4.6) där ¨x1k

mås-te ersättas med ett uttryck härlett från dynamikekvationen blir nu detta uttryck ¨

x1k = M−1(x1k)(uk− C(x1k, x3k) − G(x1k) − D(x3k− x4k) − K(x1k− x2k)).

Ett alternativt sätt att använda denna förenklade modell beskrivs även för den deterministiska observatören i § 4.3.

EKF med bara motormätningar

För att undersöka vilken prestanda som kan uppnås med robotens befintliga hård-vara undersöks även ett EKF som enbart använder motormätningarna i mätfunk-tionen, som då får en mycket enkel form.

h(xk) = x2k

Denna observatör kan då även användas som en referens att jämföra resultaten för de andra accelerometerbaserade observatörerna med. Denna EKF använder den fullständiga dynamikmodellen för systemfunktionen, men kommer att ha en mycket enkel mätfunktion. Denna observatör kan implementeras utan modifiering av robotarna eftersom ingen ny hårdvara behövs. Här kommer istället skattningen av armvinklarna att beräknas enbart utifrån den matematiska modellen av ro-boten, och inga tröghetssensorer alls. En sådan observatör kan då förväntas vara känsligare för modellfel, jämfört med om tröghetssensorer används.

(32)

20 Estimeringsmetoder

4.3

Deterministisk observatör

I föregående avsnitt beskrevs EKF som är en statistiskt baserad observatör men det finns också observatörer som är deterministiska, och alltså inte baseras på en statistisk modell. Det finns ett flertal olika varianter av deterministiska observa-törer som kan användas för denna tillämpning men en observatör som beskrivs av De Luca et al. i [7] har valts för utvärdering. Denna observatör uppvisar ett innovativt sätt att använda en accelerometer för att skatta verkygspositionen och dess struktur är mycket enkel, varför den är lätt att implementera och inte så beräkningstung som EKF:erna. Det var framförallt strukturen och skillnaden i beräkningskomplexitet som gjorde denna observatör intressant att jämföra med EKF:erna, särskilt då realtidsimplementeringar kan bli aktuella. I detta avsnitt följer en grundlig genomgång av den deterministiska observatören.

4.3.1

Matematisk modell

Denna observatör är uppbyggd för en flexibel manipulator med N armar samman-länkade av N visko-elastiska leder, liksom den som beskrivs i § 2.2.2 och som ges en utförligare beskrivning i [17]. Varje led modelleras dock som friktionsfri med en linjär fjäder och viskös dämpare, och är således betydligt förenklad. För att underlätta notationen i observatören införs parametriseringar av u, M , K, D, C, samt G från § 2.2.2 enligt följande

q =  qa qm  ,  ∆q ∆ ˙q  =  qa− qm ˙ qa− ˙qm  K =  K1 K2  =     k1 0 0 k2 −k1 0 0 −k2     , u =  0 um  (4.16) D =  D1 D2  =     d1 0 0 d2 −d1 0 0 −d2     , M (qa) =  Ma(qa) 0 0 Mm  C(qa, ˙qa) =  Ca(qa, ˙qa) 0  , G(qa) =  Ga(qa) 0  (4.17)

Dynamikekvationen som beskrivs i § 2.2.2 förenklas och linjär fjäderkraft, med fjäderkonstanter ki, och noll friktion införs. Detta ger en betydligt enklare

dyna-mikekvation jämfört med (2.8).

u = M (qaq + C(qa, ˙qa) + G(qa) + D∆ ˙q + K∆q (4.18)

En uppdelning av ekvationen ger nu följande två dynamikekvationer, med nydefi-nierade variabler enligt (4.16).

0 = Ma(qaqa+ Ca(qa, ˙qa) + Ga(qa) + K1∆q + D1∆ ˙q (4.19a)

(33)

4.3 Deterministisk observatör 21

Samma tillståndsmodell som i (4.1) används, med följande nya beteckningar där

umbetraktas som insignal och mätsignaler är qMm och ¨ρMs . Mätsignalen ¨ρMs

kom-mer från en eller flera accelerometrar monterade på roboten, och den uppmätta accelerationen kan beräknas, i enlighet med § 3, med hjälp av följande ekvation

¨

ρs= Rsw(qa)(J (qaqa+ ˙J (qa, ˙qa) ˙qa+ Gw)

som, då Rs

w(qa)J (qa) ej är singulär, ger en approximation av ¨qa som benämns ¨qMa .

¨

qaM = (Rsw(qa)J (qa))−1(q)( ¨ρMs − R s

w(qa)( ˙J (qa, ˙qa) ˙qa+ Gw)) (4.20)

Om Rs

wJ skulle bli singulär, alltså att (Rsw(qa)J (qa))−1 inte existerar, innebär

det praktiskt att armaccelerationerna inte kan särskiljas. Detta skulle exempelvis kunna uppstå om robotarmen är fullt utsträckt. Om roboten rör sig från ett sådant läge går det inte att beräkna accelerationen för vardera axel eftersom det inte går att avgöra vilken axel som rör sig från enbart accelerometermätningarna, och (4.20) kan således inte beräknas. För att den vanliga inversen ska kunna användas i (Rs

w(qa)J (qa))

−1

förutsätter det att endast en accelerometer används. Om flera accelerometrar skulle användas måste istället dessa mätningar vägas samman och ett lämpligt sätt att göra det vore via exempelvis Moore-Penrose pseudoinversen som i detta fallet tar fram den, i minsta-kvadratmening, närmaste skattningen av de kartesiska accelerationerna, se exempelvis [21]. Utgående från (4.19) kan nu derivatan av varje tillstånd härledas

˙ x1= x3 ˙ x2= x4 ˙ x3= −Ma−1(x1)(Ca(x1, x3) + Ga(x1) + K1(x1− x2) + D1(x3− x4)) ˙ x4= Mm−1(−K2(x1− x2) − D2(x3− x4)) + Mm−1um

där den enda olinjära delen återfinns i ˙x3= ¨qa. Därför införs ¨qa = ˙x3= folinj för

att underlätta notationen.

folinj(x) = −Ma−1(x1)(Ca(x1, x3) + Ga(x1) + K1(x1− x2) + D1(x3− x4))

Tillståndsekvationen kan nu skrivas om på följande sätt

˙ x =     x3 x4 0 Mm−1(−K2(x1− x2) − D2(x3− x4))     +     0 0 folinj(x) Mm−1um     (4.21)

Det må tyckas att tillståndsmodellen nu bara har möblerats om, men nu är det tydligare hur den kan skrivas om på en linjär form. Det är alltså endast ˙x3 som

är olinjär, svarande mot ¨qa. Om därför armaccelerationerna ¨qa kan estimeras från

(34)

22 Estimeringsmetoder

4.3.2

Linjärisering

Eftersom det endast är funktionen för ˙x3= ¨qai (4.21) som är olinjär, kan istället en

uppskattning av denna tas från accelerometermätningen. Därför sätts folinj(x) = 0

och uppskattningen av ¨qa tas istället in från accelerometern, ¨qMa . Därmed kan

tillståndsekvationen skrivas på följande form

˙ x =     x3 x4 0 M−1 m (−K2(x1− x2) − D2(x3− x4))     +     0 0 ¨ qaM M−1 m um     (4.22)

Med en del algebra kan systemet skrivas om med matriser och för detta behövs följande definitioner av systemmatriser A0∈ R4N ×4N och G0∈ R4N ×3N

A0=     0 0 I 0 0 0 0 1 0 0 0 0 −M−1 m K2 Mm−1K2 −Mm−1D2 Mm−1D2     G0=     0 0 0 0 I 0 0 Mm−1    

och med dessa definitioner skrivs (4.22) om till

˙ x = A0x + G0  ¨ qMa um  (4.23)

Detta linjära dynamiska system använder således samma matematiska modell för roboten som den förenklade EKF:en i (4.15) men den största skillnaden härrör från att accelerometermätningen tas in direkt i beräkningen för armaccelerationerna, istället för att, som i EKF:erna, linjärisera dynamiken. I denna observatör räknas alltså armaccelerationerna som insignal till systemet medan EKF:erna gör denna beräkning från accelerometermätningarna via mätfunktionen. För detta system kan nu en observatör definieras som stabiliseras med förstärkningen L på felet i motorvinklar och det skattade tillståndet benämns ξ

˙ ξ = A0ξ + G0  ¨ qMa um  + L(qMm − C0ξ) (4.24)

där förstärkningen L ∈ R4N ×N och matrisen C

0∈ RN ×4N definieras enligt

L =

L1 L2 L3 L4 

T

, Li= diag(Li,1, . . . , Li,N)

C0=



0 I 0 0 

Uttrycket i (4.24) ger den deterministiska observatören uttryckt på standardform, som också är mycket enkel att implementera i exempelvis Matlab. För att tolka

(35)

4.3 Deterministisk observatör 23

observatörens dynamik rent intuitivt kan sägas att den använder accelerometer-mätningar för att uppdatera armhastigheterna, och sedan korrigerar med hjälp av de uppmätta motorvinklarna. I teorin bör detta kunna fånga upp det dynamiska beteendet via accelerometern och läget korrigeras med motorvinklarna som ger en relativt god bild av det lågfrekventa beteendet.

4.3.3

Polplacering

Det enda verktyget för trimning som existerar för den deterministiska observatören är förstärkningarna i matrisen L och dessa justeras enklast genom att justera polplaceringen. Eftersom observatören är linjär är det tillräckligt att analysera egenvärdena för A0− LC0 och sätta förstärkningarna i L så att önskade poler

erhålls. En noggrannare beskrivning av tillvägagångssättet ges i § 5.

4.3.4

Diskret implementering

I praktiken implementeras observatören tidsdiskret, och ovanstående modell måste således diskretiseras. Eftersom observatören är ett linjärt dynamiskt system kan en diskretisering enkelt göras med grundläggande verktyg i exempelvis Matlab.

(36)
(37)

Kapitel 5

Trimning av observatörer

I detta kapitel ges en beskrivning av hur trimning av kovarianser och polplaceringar genomfördes. I kapitel § 4 beskrivs observatörerna och i dessa beskrivningar nämns kovarianser och polplaceringar som trimningsbara delar i observatörerna. Denna trimning är mycket svår att göra för hand eftersom det är så många parametrar inblandade, varför en automatisk rutin är eftersträvansvärd. Detta kapitel beskri-ver just detta, hur trimningen kan genomföras automatiskt med en dator. Detta problem är givetvis inte enkelt och för att reducera komplexiteten i beskrivning-arna begränsas dessa till att omfatta en robot med två frihetsgrader som rör sig i

xz-planet. Trimningsmetodiken kan utan problem även användas för godtyckligt

antal frihetsgrader, men beskrivningen blir då svåröverskådlig.

5.1

Trimning av kovarianser för EKF

Till EKF:en krävs en modell av bruset som påverkar det dynamiska systemet, och då särskilt kovarianser för störningarna. En noggrann beskrivning av dessa är viktig för att EKF:en ska ge en bra skattning av armvinklarna, varför trimningen har en central roll. För det dynamiska systemet

xk+1= F (xk, uk) + vk (5.1a)

zk= h(xk, uk) + wk (5.1b)

behöver skattningar beräknas för kovarianserna av vk och wk. Felet i

systemekva-tionen, vk, uppkommer på grund av diskretiserings- och linjäriseringsfel, externa

omodellerade störningar samt avvikelser mellan matematisk modell och verklighet. Dessa fel är svåra att undvika och de påverkas dels av vilken samplingstid som används, hur exakt modellen är, samt den specifika uppgift som roboten arbetar med. För mätekvationen kan felen härledas från rent mätbrus i accelerometern och motormätningarna. Det största mätfelet kan dock härledas från mätfunktionen för accelerometern om modellen eller skattningarna är felaktiga. Dessa modellfel är också svåra att förutsäga strukturen för och på vilket sätt de får genomslag i mä-tekvationen, särskilt som det skiljer sig för olika konfigurationer och banor. För

(38)

26 Trimning av observatörer

att ändå kunna hantera problemet utförs en skattning av kovarianserna i Matlab och detta används sedan i en optimeringsrutin för att ta fram en lämplig kovarians till EKF:en.

5.1.1

Kovariansskattning

För att i ett första skede erhålla en uppskattning av kovarianser utförs en rutin som beräknar felet i varje iteration i simuleringar där all data finns tillgänglig. Felet i varje sampel k = 1 . . . NT beräknas för alla körningar i = 1 . . . NR som

svarar mot olika banor och störningar. ˆ vki = xik+1− F (xik, u i k) wˆ i k = z i k− h(x i k, u i k) ˆ vi=    vi 1 .. . vi NT    wˆ i =    wi 1 .. . wi NT   

Anledningen till att flera banor används är för att de skattade kovarianserna ska vara generella i största möjliga mån. Från dessa loggade fel skattas sedan kova-rianserna med den ordinarie väntevärdesriktiga samplingskovariansen, som bland annat beskrivs i [18]. ¯ v = 1 NTNR NR X i=1 NT X k=1 ˆ vki w =¯ 1 NTNR NR X i=1 NT X k=1 ˆ wik b R = 1 NTNR− 1 NR X i=1 NT X k=1vki − ¯v)(ˆvki − ¯v)T (5.2) c W = 1 NTNR− 1 NR X i=1 NT X k=1 ( ˆwik− ¯w)( ˆwik− ¯w)T (5.3)

Dessa skattningar ger relativt bra resultat för simuleringarna men kan förstås inte användas vid riktiga körningar på robot eftersom all data som används ovan då inte är mätbar. Av den anledningen kan denna skattning användas som initial kovarians för optimeringsrutinerna som beskrivs i nästa avsnitt, vilket också görs för de simulerade körningarna för att erhålla ännu bättre resultat.

5.1.2

Formulering av optimeringsproblem

För att förenkla formuleringen begränsas beskrivningen till en robot med två leder och därmed blir dimensionerna för kovarianserna bR ∈ R8×8 och b

Q ∈ R4×4.

Skatt-ningarna av kovarianserna R och W i (5.2) resp. (5.3) ger ett första riktmärke, men det har visat sig att EKF:en ej uppnår bästa resultat med dessa skattningar. Av den anledningen introduceras en optimeringsrutin med cW och bR som

utgångs-punkter. Först måste dock en målfunktion definieras och för att minimera antalet variabler förenklas kovariansmatriserna till diagonalmatriser.

e R = diagRb  f W = diagWc 

(39)

5.1 Trimning av kovarianser för EKF 27

Ytterligare ett antagande förutsätter att det inbördes förhållandet mellan varian-serna för motorer, accelerometrar samt vinkelpositionsuppdateringar och vinkel-hastighetsuppdateringar antas vara såsom skattningarna i (5.2) resp. (5.3) anger. För att nu konstruera och utvärdera nya kovariansmatriser baserade på de skat-tade definieras optimeringsvariabler Λ = 

λ1 λ2 λ3 λ4 λ5 . För given Λ

definieras kovarianser enligt nedan.

e =      e R1 0 0 0 0 Re2 0 0 0 0 Re3 0 0 0 0 Re4      =     λ1I2×2 0 0 0 0 λ2I2×2 0 0 0 0 λ3I2×2 0 0 0 0 λ4I2×2     e R (5.4) f = " f W1 0 0 fW2 # =  λ5I2×2 0 0 I2×2  f W (5.5)

Anledningen till att fem variabler, istället för sex, används är för att den absoluta skalningen för kovarianserna inte har någon betydelse, utan det är den inbördes relationen mellan dem som har inverkan på skattningen. För varje variabelupp-sättning Λ definieras alltså kovarianser e och f som sedan används i EKF:en

och resultatet utvärderas med en målfunktion. En viktig del att notera i detta läge är att skattningen av verktygspositionen inte kommer att uppnå en absolut noggrannhet på grund av modellfel. Ett lågfrekvent, eller statiskt, fel kommer att uppkomma som är mycket svårt att undgå och det är heller inte det viktigaste. Det är framförallt svängningar med en högre frekvens som är av intresse att skatta och en målfunktion för att mäta prestanda formuleras därför för ett begränsat fre-kvensområde. Därför filtreras skattningarna innan de förs in i målfunktionen. Ett lämpligt filter att använda är ett bandpassfilter med gränsfrekvenser 3 Hz resp. 30 Hz. Därav införs följande notation

b

X = BP303 (ˆx) Z = BPb 303 (ˆz)

X = BP303 (x) Z = BP

30 3 (z)

och med dessa filtrerade positioner och skattningar formuleras nu följande mål-funktion fobjx ( bX) = Np X p=1  ||Xp− bXp||2  (5.6) fobjz ( bZ) = Np X p=1  ||Zp− bZp||2  (5.7) fobj  b X, bZ= fobjx  b X+ fobjz  b Z (5.8)

och denna målfunktion beräknar 2-normen av den filtrerade avvikelsen i x- och

(40)

28 Trimning av observatörer

beräkningarna görs över definieras av Np medan Xp och Zp anger BP-filtrerade

värden av den faktiska rörelsen över område p och bXp resp. bZp anger skattningen

med kovarianser e och fWλ. Antalet sampel för område p anges av Nkp.

Anled-ningen till att målfunktionen definieras över ett antal utvalda områden av banan och BP-filtreringen görs, är för att det vid verkliga skattningar uppkom ett rela-tivt stort statiskt fel som beror av modellfel, medan den dynamiska skattningen i många fall var god. Målfunktionen kommer således att fånga in det dynamiska felet och inte, som annars skulle vara fallet, domineras av det statiska felet. Detta kan formuleras som ett optimeringsproblem

Minimera fobj( bX, bZ) Under bivillkoren λj> 0 j = 1 . . . 5 e =     λ1I2×2 0 0 0 0 λ2I2×2 0 0 0 0 λ3I2×2 0 0 0 0 λ4I2×2     e R f =  λ5I2×2 0 0 I2×2  f Wx, ˆz] = EKFReλ, fWλ  b X = BP30 3 (ˆx) Z = BPb 303z) b Xp⊆ bX Zbp⊆ bZ

I detta uttryck betecknar [ˆx, ˆz] = EKFR, fe W 

att en skattning av xz-banan ut-förs med EKF:en för kovarianser eR och fW , och dessa skattningar filtreras sedan

med ett bandpassfilter. Detta är inte ett konvext optimeringsproblem, på grund av bivillkoret [ˆx, ˆz] = EKFR, fe W



och därför kan ett globalt optimum ej garante-ras, se exempelvis [5]. För att hitta en bra trimning används ComplexRF som är en heurestisk optimeringsalgoritm som beskrivs i [4]. Denna metod valdes för att den är väldigt enkel att implementera och anpassa för detta problem, då den bara använder målfunktionen i optimeringsalgoritmen. Detta är en stor fördel eftersom optimeringsproblemet är mycket komplext. Gradientbaserade optimeringsmetoder är annars mycket vanliga men dessa är svårare att implementera och kräver analy-tisk eller numerisk gradient för målfunktionen. När det rör sig om ett icke-konvext optimeringsproblem finns det ändock inga garantier för att en sådan metod skulle fungera bättre än exempelvis ComplexRF.

5.2

Trimning av polplacering för deterministisk

observatör

Till den deterministiska observatören måste åtta poler placeras och detta i sig är en svår uppgift eftersom det är svårt att tolka betydelsen av olika polers placering

(41)

5.2 Trimning av polplacering för deterministisk observatör 29

i ett så komplicerat system. Eftersom det också är så många poler är det svårt att för hand trimma dessa. Av den anledningen används samma optimeringsalgoritm som för EKF:en, nämligen ComplexRF. Med den algoritmen utvärderas ett antal polkonfigurationer och dessa jämförs enligt samma kostnadsfunktion som i (5.8) och nu används en optimeringsvariabel för dämpingar ζ och en för egenfrekven-ser ω för varje polpar. Optimeringsproblemet formuleras analogt med § 5.1.2 där skattningarna också filtrerats.

Minimera fobj( bX, bZ) Under bivillkoren ωj> 0, ζj> 0 j = 1 . . . 4 s+j = ωj  −ζj+ i q 1 − ζ2 j  sj = ωj  −ζj− i q 1 − ζj2 Sj= {s+j, sj} j = 1 . . . 4x, ˆz] = DL (S) b X = BP30 3 (ˆx) Z = BPb 303z) b Xp⊆ bX Zbp⊆ bZ

där DL (S) betecknar att den deterministiska observatören, förkortat DL, ger en skattning av x och z beräknad med polplaceringar S. Den polkonfiguration som undersöks och får lägst kostnad väljs sedan som suboptimal polplacering för ob-servatören. Eftersom ComplexRF är en heuristisk optimeringsalgoritm kan en optimal lösning aldrig förutsättas. Om däremot algoritmen körs tillräckligt länge erhålls förhoppningsvis en bra suboptimal polplacering. För en beskrivning av al-goritmen, se exempelvis [4].

(42)

References

Related documents

I vilket av följande län hade mer än hälften högre lön än medellönen för länet. A Gotlands län B Örebro län C Dalarnas län D

This is a License Agreement between Miriam S Ramliden ("You") and Nature Publishing Group ("Nature Publishing Group") provided by Copyright Clearance

När jag hade gått igenom ett antal intervjuer på detta sätt la jag ihop teman som flera av intervjudeltagarna talade om i en ny mindmap-serie, och skapade efterhand

Det motsvarar utbyggnaden av bostäder i Östra Kvillebäcken och handel, främst volymhandel, i de nordöstra delarna med den avgränsning som gäller för upprättandet av den

Förutom den bebyggelse som ligger inom korridoren behöver hänsyn tas till de bostadsmiljöer som ligger norr om Linghem närmast korridoren och bostäder söder om Stora Vänge..

Översikt, väg 677 genom Sikeå till höger i bild.... Ny pendlarparkering

En betesmark (2/800) med påtagligt naturvärde (objekt 40, NVI 2018) kopplat till flera äldre och grova ekar samt riklig förekomst av stenrösen påverkas av ny enskild väg� Den

Istället för den dikotomisering av det deklarativa långtidsminnet som dis- tinktionen semantisk/episodisk utgör, och som Tulving med flera förespråkar, vill jag föreslå