Kamerabaserat Positioneringssystem för Hamnkranar Designspecifikation Mikael Ögren Version 1.0 October 9, 2009 Granskad Godkänd Status 1
Projektidentitet 09/HT, CaPS Linköpings Tekniska Högskola, ISY Namn Ansvar Telefon E-post Mohsen Alami designansvarig (DES) 073-7704709 mohal385@student.liu.se Tobias Andersson dokumentansvarig (DOK) 076-3093880 toban563@gmail.com Fredrik Bodesund designansvarig (DES) 076-8913299 frebo449@student.liu.se Isac Duhan 073-5811085 isac.duhan@gmail.com Emil Granberg 070-2864574 graem978@student.liu.se Erik Jakobsson testansvarig (TST) 070-6226872 mreijster@gmail.com Axel Landgren hemsideansvarig (HEM) 073-8747296 axela706@student.liu.se Olof Larsson 070-8109389 olola417@gmail.com Mikael Ögren projektledare (PL) 073-7623772 ogren.mikael@gmail.com E-post: tsrt10-kph@googlegroups.com Hemsida: http://www.isy.liu.se/edu/projekt/tsrt10/2009/hamnkran_2009 Kund: ABB, 721 83 Västerås, tele: 021-32 50 00, fax: 021-13 41 12, info@se.abb.com Kontaktperson: Johan Sjöberg, 021 34 20 47, johan.sjoberg@se.abb.com Beställare: Martin Skoglund, 013 28 28 03, ms@isy.liu.se Kursansvarig: David Törnqvist, 013 28 18 82, tornqvist@isy.liu.se Handledare: Fredrik Lindsten, 013 28 40 43, lindsten@isy.liu.se 2
Contents 1 Inledning 6 1.1 Definitioner.............................. 6 2 Översikt av systemet 8 2.1 Grov beskrivning av produkten................... 8 2.2 Ingående delsystem.......................... 8 2.2.1 Bildbehandling........................ 8 2.2.2 Sensorfusion.......................... 9 2.2.3 Regulator........................... 9 2.2.4 Simuleringsmiljö....................... 9 2.2.5 Simulerad bildbehandling.................. 9 3 Bildbehandling 10 3.1 Inläsning av videofilerna....................... 10 3.2 Kalibrering av kameran....................... 11 3.3 Distorsionsfiltrering med hjälp av de beräknade koefficienterna. 13 3.4 Nedsampling............................. 14 3.4.1 Genomsnittlig nedsampling................. 14 3.4.2 Delsampling.......................... 14 3.4.3 Viktad nedsampling..................... 15 3.5 Cropping/Kapning.......................... 15 3.6 Brusfiltrering............................. 15 3.7 Featureextraktion........................... 15 3.7.1 Kantdetektering....................... 16 3.7.2 Harrisoperatorn........................ 16 3.7.3 Houghtransformation..................... 17 3.8 Val av featurepunkt......................... 17 3.9 Identifiering av features....................... 18 3.9.1 Normaliserad Kors-Korrelering............... 18 3.9.2 Epipolargeometri....................... 18 3.9.3 Extraktion av spreaderfeatures............... 19 3.10 Variansberäkningar.......................... 19 3.11 SURF................................. 19 3.12 Kordinatsystem............................ 20 3.13 Utsignaler............................... 20 4 Sensorfusion 21 4.1 Inledande beskrivning av sensorfusionen.............. 21 4.1.1 Rörelsemodell......................... 21 4.1.2 Mätekvation......................... 21 4.1.3 Filter............................. 21 4.2 Notation................................ 22 4.3 Tillståndsekvationer......................... 22 4.3.1 Statisk kranbom....................... 22 3
4.3.2 Rörlig kranbom/fullständig dynamikmodell........ 23 4.4 Mätekvationer............................. 23 4.5 Dataassociation och landmärkesigenkänning............ 24 4.6 Estimeringsfilter........................... 24 4.7 Noggrannhetsanalys på skattade tillstånd............. 24 4.8 Robusthetsanalys........................... 24 4.9 Utvärdering av kameraantal och kamerapositioner......... 25 4.10 Gränssnitt............................... 25 4.10.1 Gränssnitt mot bildbehandling/simuleringsmiljö..... 25 4.10.2 Gränssnitt mot regulator.................. 25 5 Reglering 26 5.1 Inledande beskrivning av regulatorn................ 26 5.1.1 Styrenhet........................... 26 5.1.2 Regulator för förflyttning.................. 26 5.1.3 Regulator för hoist vid containerpositionering....... 28 5.2 Gränssnitt............................... 28 6 Simuleringsmiljö 30 6.1 Inledande beskrivning av simuleringsmiljö............. 30 6.2 Uppbyggnad av simuleringsmiljö.................. 30 6.2.1 Modellskiss.......................... 31 6.3 Modellekvationer........................... 31 6.4 Störmodellering............................ 32 6.4.1 Störningsmodellering av vind................ 32 6.4.2 Störningsmodellering av modellfel............. 32 6.5 3D-miljö................................ 32 6.6 Generering av featurepunkter.................... 32 6.6.1 Avbildning av 2D....................... 32 6.6.2 Specifika featurepunkter................... 33 6.6.3 Ambienta featurepunkter.................. 33 6.6.4 Störning av featurepunkter................. 33 6.7 Variabler och funktioner i Matlab.................. 33 6.7.1 Variabler........................... 33 6.7.2 Funktioner.......................... 34 6.8 Gränssnitt............................... 35 A Härledning av enkelpendel med vagn 36 B Dynamikmodeller 38 B.1 Dynamiken modellerad som trackingmodell............ 38 B.2 Dynamiken modellerad som enkelpendel på statisk kranbom... 38 B.3 Dynamiken modellerad som enkelpendel på rörlig kranbom... 39 B.4 Fullständig dynamikmodell..................... 39 B.5 Fjäderkonstanter till dynamikmodellerna.............. 39 4
Dokumenthistorik version datum utförda ändringar utförda av granskad av 1.0 09-10-09 Centrering av figurer samt versionsändring TA MÖ 0.18 09-10-06 Konvertiering till LATEX samt ändringar efter BP3 MÖ, TA MS 0.17 09-10-04 Förtydligande av formuleringar samt språkliga ändringar FB, AL MÖ 0.16 09-10-03 Språkliga ändringar samt uppdaterade referenser TA FB, AL 0.15 09-10-03 Omformulerat efter kommentarer från beställare MÖ, OL TA 0.14 09-10-01 Språkliga ändringar på regulator/simuleringsmiljö OL, TA MÖ 0.13 09-10-01 Reglering och simuleringsmiljö inlagd TA, MA, ID, EG OL OL 0.12 09-09-30 Sensorfusion inlagd TA, OL, EJ EG 0.11 09-09-30 Bildbehandling inlagd MÖ, FB TA 0.1 09-09-30 Grov mall TA, OL MÖ 5
1 Inledning Projektets syfte är att utvärdera hur långt man kan nå med att använda standardvideokameror för att skatta positionen för en hamnkran med dess last. Kranens uppgift är att förflytta containrar i ett containermagasin. Således skall det även utredas vilka reglermöjligheter det finns för att styra containerpositionering utifrån skattad position. Se Figur 1 för en översikt över kransystemet. Figure 1: Systemet i dess omgivning 1.1 Definitioner Se Figur 2 för en översikt av de definitioner som används. Figure 2: Översikt av definitioner 6
Hoist - Längden från tralla till spreadern Tralla/trolley - Vagnen som löper över bomen Spreadern - Anordningen som fäster vid containern Gauntry - Hela ställningen som utgör kranen Container - Den last som kranen lyfter Landmärke - En punkt som kan beskrivas i ett fixt, globalt koordinatsystem Featurepunkt - En punkt som relaterar till ett fysiskt landmärke, typiskt containerhörn 7
2 Översikt av systemet Figure 3: Översikt av systemet 2.1 Grov beskrivning av produkten Figur 3 visar en översikt av systemet. Systemets uppgift är att skatta position hos kranbom och last utifrån videosekvenser. Videobilder från ett antal kameror signalbehandlas i bildbehandlingen. Den behandlade informationen från varje kamera samlas i sensorfusionsdelen som utnyttjar samma data för att med hjälp av en mekanikmodell bestämma aktuella tillstånd (position, hastighet) för last och kran. Regulatordelen använder dessa tillstånd för att reglera kranen. Kranen simuleras i en simuleringsmiljö. Som kan synas i Figur 3 är systemet uppdelat i två sekvenser. Den övre bilden beskriver hur systemet skattar tillstånden från den inspelade kamerafilmen. Den nedre visar hur systemet testas i simuleringsmiljön utan kamerafilm som insignal. 2.2 Ingående delsystem Nedan följer en beskrivning av de olika delsystemen 2.2.1 Bildbehandling Systemet tar emot data från en, eventuellt flera kameror. Bildbehandlingsdelen utför digital bildbehandling av varje kameradataström. Efter behandling av brus och dylikt så utvärderas konturer och andra element i bilden. Detta resulterar i ett antal featurepunkter med position och varians från varje bild som skickas vidare till sensorfusionen. 8
2.2.2 Sensorfusion I detta delsystem fusioneras all data och används tillsammans med den valda mekanikmodellen för att estimera position, hastighet och andra tillstånd hos kran och last. 2.2.3 Regulator I detta delsystem ska en regulator tas fram som kan hantera upptagning, nedsättning samt förflyttning av container. 2.2.4 Simuleringsmiljö I detta delsystem simuleras kranen utifrån styrsignaler ifrån regulatorn samt yttre förhållanden. 2.2.5 Simulerad bildbehandling Eftersom systemet i den simulerade sekvensen är bortkopplad från kamerafilm och bildbehandling kommer detta delsystem att generera featurepunkter på samma sätt som bildbehandlingen fast utan kamerafilm som insignal. 9
3 Bildbehandling Figure 4: Bildbehandlingens gränssnitt I bildbehandlingen kommer en videoström att analyseras och utifrån denna identifiera featurepunkter som sedan kan användas i sensorfusionen. Initialt kommer ingen återkoppling att användas och bildbehandlingen kommer då att leverera featurepunkter. Om detta ger stor osäkerhet i skattningarna kommer återkoppling att testas för att ge en noggrannare följning av featurepunkterna. Målet med bildbehandlingen är att analysera med hur stor noggrannhet systemet kan identifiera featurepunkter. Bildbehandlingen kommer att betrakta tre olika typer av objekt, se Figur 4, för att identifiera featurepunkter. Spreader specificeras som två utmärkande featurepunkter på spreadern. Då spreadern ej har kunnat observerats i videosekvenserna har dessa punkter inte bestämts. Dessa två punkter kommer att användas för att kunna beskriva yaw och position för spreadern i sensorfusionen. Normaliserad Kors-Korrelering kommer att användas för att skatta spreaderns featurepunkter genom att ta ut den maximala korrelationen för två patchar som beskriver omgivningen för featurepunkterna. Extern container klassificeras som hörn på containrar som står på marken. För att identifiera containerhörn kommer Harrisoperatorn att användas. Extern miljö är features som varken klassas som spreader eller extern container, men är utmärkande nog för att kunna associeras med ett landmärke. Dessa kommer också att tas fram med Harrisoperatorn. 3.1 Inläsning av videofilerna Vid en riktig implementation kommer videobilder att komma i en regelbunden ström från kameran. I detta projekt kommer systemet dock arbeta offline, 10
och därmed fås tillgång till hela videofilen från en början. De videofilmer som mjukvaran kommer att behandla är i formen av komprimerade avi-filer. De har en upplösning på 800*600 pixlar och saknar ljudspår. Då filmerna är mycket stora (ca. 57.6 Mbit/s) kommer bildbehandlingen att ha ett buffertminne som endast innehåller en delmängd av videobilderna. Detta möjliggör filtrering av flera olika bilder samtidigt som arbetsminne sparas. Matlab har stöd för inläsning av ett flertal olika videoformat med funktionen mmreader, vilken går att använda i detta fall. Man kan läsa bildinformation ur en avi-fil med följande kommandon: reader = mmreader( film.avi ); allframes = read(reader); Detta ger en vektor som består av N stycken bilder med 8-bitar färginformation per pixel. Varje bild är en vektor av storleken 800 600 3. En enskild frame kan tas fram med: framepixeldata = allframes(:,:,:,i); Här är dock bilden representerat på RGB-format vilket är onödigt då filmen redan är i gråskala. Eventuellt räcker det att ta ut endast en kanal istället för att vikta ihop de tre färgkanalerna. Matlab kan konvertera filen till gråskala med kommandot: grayframe = rgb2gray(framecolordata); Ingen information förloras i detta steg eftersom videobilden redan är på gråskala, men det minskar minnesförbrukningen med två tredjedelar eftersom att det är endast 8-bitar information per pixel. I detta projekt kommer.matfiler att förberedas med färdiga bildvektorer för vidare behandling av projektets mjukvara under utvecklingsfasen. 3.2 Kalibrering av kameran Kameran som används för att filma sekvenserna är inte en ideal bildsensor utan har infört olika former av distortion i bilden. För att man ska kunna koppla element i den tvådimensionella bilden till det tredimensionella rummet så bra som möjligt måste denna distortion räknas ut och filtreras bort. Ett sätt att göra detta är att filma ett regelbundet mönster i olika vinklar, varifrån man kan räkna koefficienter för bland annat skjuvning samt radiell och tangentiell distortion. Detta är ett ämne som det har forskats mycket på och i detta projekt skall Yves-Saint Bourges Camera Calibration Toolbox for Matlab användas. Toolboxen erbjuder ett färdigt gränssnitt för beräkning av alla koefficienter som behövs för filtret. Denna toolbox använder Zhang Zhenyous metod 1, vilken utgår ifrån ett svart-vitt shackbräde som referensmaterial. Bilden på brädet har skrivits ut, fästs på en skiva och längden på utskriftens kvadrater används som en inparameter till Matlabkoden. I Figur 5 och Figur 6 illustreras proceduren med bilder från Camera Calibration Toolbox hemsida (http://www.vision.caltech.edu/bouguetj/calib_doc). 1996 1 Zhengyou Zhang, Determining the Epipolar Geometry and its Uncertainty: A Review, 11
Figure 5: Förvrängd bild, tagen från Camera Calibration Toolbox hemsida (http://www.vision.caltech.edu/bouguetj/calib_doc) Figure 6: Förvrängd bild efter filtrering, tagen från Camera Calibration Toolbox hemsida (http://www.vision.caltech.edu/bouguetj/calib_doc) Zhang definierar två typer av kameraparametrar, intrinsiska och extrinsiska 12
parametrar. De intrinsiska beskriver kamerans parametrar och de extrinsiska beskriver schackbrädets placering i förhållande till kameran. De intrinsiska parametrarna är: fc Mått på kamerans brännvidd. kc femvärd vektor som beskriver olika former av radiell och tangentiell distortion. alpha_c Beskriver hur x- och y-axlarna är förskjutna i förhållande till varandra. cc Beskriver hur centrum av bilden förskjuts. De extrinsiska parametrarna räknas ut av toolboxen för varje bild, och beskriver med hjälp av en rotations och en translationsvektor den transform som avbildar schackbrädets koordinatsystem till kamerans koordinatsystem. Dessa kommer inte att användas i detta fall. Som referensmaterial kommer det användas en avi-film där ett dylikt bräde filmas på nära håll och vrids i olika vinklar. Ett Matlabscript extraherar sedan och sparar frames som numrerade jpeg-bilder med ca en halv sekunds mellanrum. Dessa bildfiler kommer sedan att användas när kalibreringsrutinen körs. I gränssnittet skall man med musen peka ut de fyra extrema hörnen på brädet i varje bild. Som resultat får man de eftersökta koefficienterna fc, kc, alpha_c och cc. I Figur 7 visas ett exempel på detta. Figure 7: Exempel på koefficienter från Calibration Toolbox-hemsidan 3.3 Distorsionsfiltrering med hjälp av de beräknade koefficienterna Toolboxen innehåller en funktion som använder Zhangs algoritm för att rätta till distorsion hos bilder med hjälp av fc, kc, alpha_c och cc-vektorerna. Denna är dock inte anpassad för projektets ändamål eftersom den arbetar på bildfiler av tex jpeg eller png-format. Därför kommer nedanstående funktion, som finns med i Camera Calibration Toolbox och heter rect, att anpassas genom att arbeta mot bilder i ett intermediärt format. function [Irec] = rect(i,r,f,c,k,alpha,kk_new); 13
3.4 Nedsampling Då det är en stor mängd data i en bild så kommer det att vara beräkningskrävande att analysera innehållet. Den videoström som är insignal till bildbehandlingen innehåller bilder på 800*600 pixlar. Snabb räkning ger att det är 1400 sekvenser (signaler) som behöver filtreras. Ett sätt att motverka detta är sampla ner varje bild innan annan filtrering sker. Vid varje nedsampling kommer 9 stycken pixlar i ett block att vägas samman till en ny pixel, se Figur 8. Detta kommer alltså att minska mängden data till en niondel av det ursprungliga. Om datamängden fortfarande är för stor kan denna process användas igen. Tre olika sätt kommer att testas och utvärderas. Figure 8: Sammanvägning av 9 pixlar i ett block 3.4.1 Genomsnittlig nedsampling Alla pixlar från bilderna, som levereras i gråskala, kan beskrivas som ett tal mellan 0 och 255. I varje pixelblock kommer samtliga pixlar vägas in och ett medelvärde kommer att tas fram. Detta nya medelvärde blir den resulterande hopslagna pixeln. En nackdel med denna metod är att den kan göra bilderna suddiga. 3.4.2 Delsampling I denna typ av nedsampling sätts den nya pixeln som endast den mittersta av de 9 gamla pixlarna. Övriga pixlar kastas bort. En fördel med denna metod är att den är minst beräkningskrävande, dock kan den ta bort intressant information. 14
3.4.3 Viktad nedsampling En annan metod är att vikta de olika pixlarna i blocket där dom viktas enligt Figur 9. Vikterna är anpassade så att pixlarna längre ifrån centrum får mindre värde och totalt summeras alla vikter till 1. Figure 9: Sammanvägning av 9 pixlar i ett block 3.5 Cropping/Kapning En annan metod för att minska datamängden för olika operationer är att kapa bilderna på väl valda ställen. En feature från en föregående bild kan bara flytta sig inom ett litet område, beroende på hastigheten av kameran. Spreadern kan tex bara synas i vänstra delen av bilden. Därmed är det onödigt att söka av hela bilden igen för att finna featuren. Detta görs i Matlab med enkla matrisoperationer. 3.6 Brusfiltrering För att fortfarande kunna använda kameran som sensor vid olika väderleksförhållanden kommer lågpassfiltrering att testas eftersom regn och dimma kan betraktas som högfrekvent mätbrus. 3.7 Featureextraktion Här följer beskrivningar av de metoder som kommer att användas för att hitta intressepunkter. 15
3.7.1 Kantdetektering För att kunna detektera olika objekt i en bild måste man på något sätt kunna avgöra var det sker förändringar i bilden som skulle kunna tyda på att det har skett en övergång från ett objekt till ett annat. Detta brukar kallas kantdetektering inom bildbehandling. Dessa kanter sker då bilden har någon typ av färgeller intensitets-förändring vilket gör att den får ett hopp i bilden, alltså en kant. Ett vanligt sätt att detektera kanter är att derivera bilden i y-, x- eller 1 0 1 xy-led. Ett mycket enkelt deriverande filter är: f x = 1 0 1. Detta 1 0 1 filter kommer att detektera förändringar i bilden som sker i x-led. Om bilden i ett område har approximativt konstant färg/intensitet så kommer faltningen av f x och bilden att bli noll, men då det sker förändring kommer det att bli ett nollskilt resultat. 3.7.2 Harrisoperatorn Ett hörn definieras som skärningen mellan två kanter och för att finna dessa kan Harrisoperatorn användas. Det Harrisoperatorn gör är att ta ut ett segment ur en bild, skiftar detta segment ett antal pixlar och sedan jämför hur stort, viktat, kvadratiskt fel(ssd) som fås när ursprungssegmentet subtraheras med det skiftade segmentet. Om det är så att omgivningen är relativt konstant så kommer det bli ett litet fel och vid kanter kommer det bli ett stort fel. Maximum av felet kommer att ske då det finns ett hörn, dvs då det är kanter både i x-, och y-led. Detta kan beskrivas rent matematiskt på följande sätt. Antag bilden I och ett område i denna bild, (a, b), vilket skiftas med (x, y) så fås det kvadratiska, viktade, felet mellan dessa två segment: S(x, y) = w(a, b)(i(a, b) I(a + x, b + y)) 2 (1) a b Genom att Taylorutveckla I(a + x, b + y) så erhålls approximationen I(a + x, b + y) I(a, b) + I x (a, b)x + I y (a, b)y (2) Här är I x och I y de partiella derivatorna av I. Genom att kombinera (1) och (2) fås: S(x, y) a b w(a, b)(i x (a, b)x + I y (a, b)y) 2 (3) ( x Detta kan skrivas om på matrisform, vilket blir: S(x, y) (x y)a y där A ges av ), A = a b [ I 2 w(a, b) x I x I y I x I y Iy 2 ] = [ < I 2 x > < I x I y > < I x I y > < Iy 2 > ] (4) 16
Det är denna matris som kallas Harrismatrisen och det är den som man studerar för att avgöra om det finns ett hörn i segmentet. Då ett hörn ger sig till känna genom att en stor variation av S sker i riktningen av vektorn (x y) så kan man studera egenvärdena för A för att avgöra om det finns ett hörn eller inte och får följande beslutsstruktur. Om λ 1 λ 2 0 så är inte punkten (x, y) något hörn. Om λ 1 0 och λ 2 har ett stort positivt värde så har en kant funnits. Om både λ 1 och λ 2 har ett stort positivt värde så befinner sig punkten (x, y) i ett hörn Då egenvärdesberäkningar kan bli relativt tunga kommer istället följande relation att användas: M c = λ 1 λ 2 κ(λ 1 λ 2 ) = det(a) κtr 2 (A) (5) Alltså behöver endast determinanten och spåret av A i (5) beräknas. Värdet κ är ett trimningsvärde och värden mellan 0.04 0.15 är lämpliga. 3.7.3 Houghtransformation Vid behov kommer Harrisoperatorns förmåga att hitta hörn kompletteras med Houghtransformationens förmåga att hitta linjer och cirklar i en bild. Det Houghtransformen 2 gör är att gå igenom alla pixlar i en bild och försöker avgöra om den pixeln tillhör en kant eller inte. Om så är fallet parmetriserar den ett diskret antal linjer som denna pixel kan vara en del av och lägger linjens parametrar i en låda. Då alla pixlar har blivit undersökta om de tillhör en kant eller inte har man lådor med olika mängder parametrar som får betyda linjens signifikans, dvs en större mängd data i lådan innebär att det är mera troligt att det faktiskt utgör en linje. Detta kan ses i parameterrummet som ett maximum. Detta kan även generaliseras till att hitta cirklar eller ellipser. Med hjälp av Houghtransformen skall systemet försöka identifiera objekt i bilderna, tex avgöra om intressepunkter på container, marken eller spreader har hittats. 3.8 Val av featurepunkt Då systemet tar fram alla intressepunkter behöver man på något sätt avgöra vilka som skall bli featurepunkter. Det kommer tas fram en tröskel för vilka värden som teststorheten M c måste vara större än. Detta kommer innebära att endast intressepunkter som är tydliga hörn kommer att användas. Vilket tröskelvärde som är lämpligt för problemet kommer att utvärderas. Om det är så att systemet tar fram väldigt många intressepunkter som är tydliga hörn kommer bilden att delas upp i olika mindre subområden och välja ut de n st som har högst värde på M c där n är en siffra som prövas fram till vad som kan vara lämpligt. En featurepunkt beskrivs som en punkt i två dimensioner med 2 Per-Erik Danielsson et al., Bilder och Grafik, 2007 17
en tillhörande kovariansmatris. Dessa klassificeras som antingen containerhörn, punkter på spreadern eller okända featurepunkter. 3.9 Identifiering av features När systemet väl har hittat sina features så måste det vid nästa bilduppdatering kunna avgöra om det är samma feature som den hittat innan. Följande metoder är olika sätt som skall utvärderas hur väl de passar till problemet. 3.9.1 Normaliserad Kors-Korrelering Vid varje ny bildruta så använder bildbehandlingen en intern skattning, istället för återkoppling i det tidiga skedet, med vilken hastighetsvektor bilden verkar röra sig. Denna vektor ger en approximation för var förra bilds featurepunkter bör befinna sig i denna bild. Genom att söka i hastighetsvektorn riktning och korrelera förra featurepunkter med nuvarande bild och söka ett maximum, inom ett kvadratiskt område, så hittas den punkt där feature bör befinna sig i denna bildruta. Rent matematiskt fungerar det på följande sätt: Genom att låta s(i, j) utgöra ett område som innehåller ett visst mönster vilket systemet skall finna i bilden I(x, y). Genom att klippa ut det intresseområde, f(i, j), där systemet anser att mönstret kan återfinnas i bilden, korrelera s(i, j) över f(i, j) och sedan ta den maximala korrelationen som mått på var featuren finns. Kors-korrelationen definieras på följande sätt: 1 σ f σ s (n 1) (f(i, j) f mean) )(s(i, j) s mean ) (6) i j här är n antalet pixlar i f(i, j)och s(i, j). Systemet kommer då att skicka koordinat för den pixel kring vilken den hade max korrelation. 3.9.2 Epipolargeometri En metod för att avgöra vilka punkter som motsvarar varandra i två olika bilder, som beskriver samma scen, är epipolargeometri. När man har två olika kamerakonfigurationer som avbildar samma bild men med olika rotation och translation så finns det ett samband mellan bilderna som beskriver hur pixlarna i den ena bilden förhåller sig till pixlarna i den andra, se Figur 10. 18
Figure 10: Pixelförhållande mellan Bild 1 och Bild 2 Punkter i Bild 1 kommer att avbildas på linjer i Bild 2, kallade epipolarlinjer, vilka alla har en gemensam skärningspunkt. Det finns en avbildning mellan dessa två bilder kallad Fundamentalmatrisen, F, som beskriver denna epipolargeometri. Den beskriver vilken linje som punkt y kommer att avbildas på i bild två. Utifrån detta samband kan man få ett krav på hur punkterna kommer att förhålla sig, nämligen följande 1 y T F y = 0 (7) Här kan man då testa om det är samma punkt i de två olika bilderna. Några olika metoder för att skatta Fundamentalmatrisen kommer att utvärderas och sedan skall det undersökas huruvida denna metod kan fungera som ett komplement till Kors-Korrelationen. 3.9.3 Extraktion av spreaderfeatures Utifrån de features som systemet identifierar tillhör spreadern med hjälp av ovanstående metoder kommer position relativt kameran att skattas. 3.10 Variansberäkningar Då Harrisoperatorn tar fram sina intressepunkter punkter kan den direkt skatta kovariansmatrisen för dessa genom att ta 3 A 1. Här fås A från (4). 3.11 SURF Om det skulle vara så att de metoder som har beskrivits inte fungerar som förväntat så finns det färdiga metoder för att ta ut features samt identifiera dem. En beräkningseffektiv och robust sådan metod är SURF 4. 3 M.J. Brooks et al., What value covariance information in estimating vision parameters?, 2001 4 Herbert Bay et al., Speeded-up robust features, 2008 19
3.12 Kordinatsystem Det interna koordinatsystem som bildbehandlingen kommer att arbeta i är ett ortogonalt system med origo i vänstra nedre hörnet av bilden och med u-axel i höjdled och v-axel i bredd, se Figur 11. Figure 11: Koordinatsystem för bildbehandlingen 3.13 Utsignaler Utsignalerna som går från bildbehandlingen till sensorfusionen är matriserna l k och P B k. l k = ( l 1 k,..., l n k )t, mätvektor från bildbehandling. l i k = (ui k, vi k, typ ), mätpunkt i vid tidpunkt k från bildbehandling. typ ɛ {c,s,o}, där c betyder container, s spreader och o okänd. u i k, u-koord. för mätpunkt i vid tidpunkt k i kamerans lokala koordinater. vk i, v-koord. för mätpunkt i vid tidpunkt k i kamerans lokala koordinater. P B k B,i P k = B,1 = diag(pk [ koordinat. σ B,i k,xx σ B,i k,yx,..., P B,m k ), kovariansmatris från bildbehandling. ] σ B,i k,xy σ B,i k,yy, kovarians från bildbehandling för u- och v- 20
4 Sensorfusion Figure 12: Översikt av sensorfusionen 4.1 Inledande beskrivning av sensorfusionen Sensorfusionen ska utifrån featurepunkter givna av bildbehandlingen, eller simulerad bildbehandling, kunna skatta globala positioner på kamera och container/spreader, se Figur 12 för en översikt. Sensorfusionen ska även estimera med hur stor säkerhet positionerna är givna utifrån osäkerheten i featurepunkter och dynamikmodell. Sensorfusionen kommer att innehålla tre delkomponenter; rörelsemodell, mätekvation och filter. 4.1.1 Rörelsemodell Sensorfusionen kommer att innehålla två olika rörelsemodeller, en för trallan och en för container/spreader. Dessa används för att estimera framtida hastigheter och positioner. 4.1.2 Mätekvation Mätekvationerna beskriver förhållandet mellan mätdata och de interna tillstånd som används för att skatta koordinater och hastigheter i det globala systemet. 4.1.3 Filter Filtret har till uppgift att på bästa möjliga sätt kombinera rörelsemodellernas och mätekvationernas resultat så att en god skattning av tillstånden fås. 21
4.2 Notation x, y, z anger position för respektive mätpunkt i longitudinal-, lateral- och höjdled. l k = (lk 1,..., ln k ), mätvektor från bildbehandling. l i k = (ui k, vi k,, typ ), mätpunkt i från tidpunkt k. u i k, x-koordinat för mätpunkt i vid tidpunkt k i kamerans lokala koordinater, analogt för v. m j k, koordinat för landmärke j vid tidpunkt k. r k c, koordinat för kameran vid tidpunkt k i globala koordinater. r k s, koordinat för spredern vid tidpunkt k i globala koordinater. R, rotationsmatris för kameran (eulervinklar). s i k, tillstånd i vid tidpunkt k. Ψ s, yaw för spreader. Θ s, pitch för spreader. Φ s, roll för spreader. m i k = (xg,i k, yg,i k, typ ), position för landmärke i vid tidpunkt k. P B k P B,i k = B,1 = diag(pk [, kovarians för x- och y-koordinat från bildbehandling. σ B,i k,xx σ B,i k,yx,..., P B,m k ), kovariansmatris från bildbehandling. ] σ B,i k,xy σ B,i k,yy P S k, kovariansmatris för tillstånden vid tidpunkt k. u g, styrsignal för gauntry. u t, styrsignal för tralla. u l, hoistlängd. 4.3 Tillståndsekvationer 4.3.1 Statisk kranbom De tillstånd som ingår i tillståndsmodellen är följande: (s 1, s 2 ) t = r c x,y s 3 = y b,g 22
(s 4, s 5, s 6 ) t = (x s,g, y s,g, z s,g ) t (s 7, s 8, s 9 ) t = (ẋ s,g, ẏ s,g, ż s,g ) t För tillståndsmodell, se regleringsavsnittet, avsnitt 5.1.2. 4.3.2 Rörlig kranbom/fullständig dynamikmodell För en fullständigt dynamikmodell införs roll, pitch och yaw. Det krävs även z-position för tralla samt ett antal hastigheter. Den utökade tillståndsvektorn blir: (s 1, s 2, s 3 ) t = r c (s 4, s 5, s 6 ) t = r c s 7 = y b,g s 8 = ẏ b,g (s 9, s 10, s 11 ) t =(x s,g, y s,g, z s,g ) t (s 12, s 13, s 14 ) t =(ẋ s,g, ẏ s,g, ż s,g ) t (s 15, s 16, s 17 ) t = (Ψ s, Θ s, Φ s ) t (s 18, s 19, s 20 ) t = ( Ψ s, Θ s, Φ s ) t 4.4 Mätekvationer För att beräkna kamerans och landmärkets position för tiden k och mätningen i behövs kamerans koordinater i dess lokala koordinatsystem. Detta ges av ekvationen 5 : ( x c,i k y c,i k ) + ē i k ; ē i k N(0, P B,i k ) (8) lk = f zk c där f är fokallängden. På inrådan från David Törnkvist betraktas inledningsvis z c k som känd vilket innebär att denna ekvation är linjär. Det går sedan att translatera kamerans och landmärkets position till globala koordinater med hjälp av ekvation 9 6 : x c,i k y c,i k z c k = R( m j k rj k ) + ēg,i k ; ēg,i k ( ) z c 2 N(0, k ) (9) f Översättningen från mätning i till landmärke j ges av avsnitt 4.5. Spreadern kommer att skattas analogt. Skillnaden är endast z-koordinaten, som här kommer att vara hoistlängden. 5 Thomas Schön and Fredrik Gustafsson, Integrated Navigaton Of Cameras For Augmented Reality, 2005 6 David Törnkvist, Estimation and Detection with Application to Navigation, 2008 23
4.5 Dataassociation och landmärkesigenkänning För att översätta en mätning i till ett landmärke j krävs en dataassociation. Detta kommer att göras genom att utnyttja informationen från tidigare mätningar. Eftersom kamerans synfält och tidigare position är känd går det snabbt att begränsa vilka möjliga landmärken som är synliga. Utifrån detta beräknas sedan avstånd mellan de möjliga landmärkena (som är en begränsad del av landmärkesvektorn, m) och det synliga landmärket m i. o j k = min((ma k 1 (x c,i k, yc,i k ) + rc k 1) 2 ) (10) där a i (10) anger mängden av intressanta punkter. Om minsta avståndet mellan dessa är mindre än en viss tröskel, så har man lyckats associera det aktuella landmärket. Om minsta avståndet är större än en viss tröskel, så har ett nytt landmärke hittats och läggs till i landmärkesvektorn m. 4.6 Estimeringsfilter En algoritm av typ Extended Kalman Filter Simultaneous Localization And Mapping (EKF-SLAM) kommer att användas för att fusionera mätekvationerna med dynamikmodellen, se Appendix B. En toolbox 7 för sensorfusion skriven av Fredrik Gustafsson kommer att utnyttjas för implementationen av denna. Det krävs emellertid lite manipulation av vissa värden innan den färdiga funktionen kan utnyttjas. En vektor som har hand om alla landmärken måste ligga utanför EKF-algoritmen, p.g.a. dataassociationen. Tillstånden som kommer ut efter tidsuppdateringen kommer sedan att jämföras med de existerande i landmärkesvektorn för att bestämma om det kommit in ett nytt landmärke eller ett existerande. Landmärkena kommer därför att uppdateras ett sampelintervall efter de övriga tillstånden. Det är därför viktigt att funktionen som uppdaterar landmärkesvektorn håller reda på vilka landmärken som för tillfället är aktuella så EKF-algoritmen ej får in felaktiga landmärken. Initialt kommer kamerapositionen att placeras i origo. Kovariansmatrisen P kommer att sättas till en enhetsmatris och spreadern kommer antas befinna sig rakt under kameran. 4.7 Noggrannhetsanalys på skattade tillstånd Noggrannheten på de skattade tillstånden ges som en utparameter från funktionen EKF. Detta går därför direkt att läsas av men kan vid en implementation ges direkt till användaren, exempelvis i form av en konfidenscylinder. 4.8 Robusthetsanalys För att analysera skattningens känslighet mot väderförhållanden krävs bilddata över detta. I skrivande stund existerar inte något sådan. Ett alternativ är att 7 Fredrik Gustafsson, Statistical Sensor Fusion, 2008 24
lägga på stort brus vid skattningarna från den simulerade bildbehandlingen och se hur variansen på skattningarna påverkas. En studie över hur kovariansmatrisen förändras vid olika fel (exempelvis felaktigt z) ger en bild över om EKF-algoritmen riskerar att divergera. 4.9 Utvärdering av kameraantal och kamerapositioner En CRLB-analys (Cramér-Rao Lower Bound) över olika kameraantal och kamerapositioner kommer att ge en god bild över konfigurationer att föredra framför andra. Fredrik Gustafssons toolbox 5 innehåller verktyg för en sådan analys. 4.10 Gränssnitt Insignal till sensorfusionen kommer att vara koordinater för featurepunkter, hoistlängd och eventuellt styrsignaler från regulatorn. Utsignaler kommer att vara skattade positioner och hastigheter. 4.10.1 Gränssnitt mot bildbehandling/simuleringsmiljö Insignaler från bildbehandling är l k och P B k där l k = (l 1 k,..., lm k )t l i k = (li k,x, li k,y, typ ) P B k P B,i k = B,1 = diag(pk [ σ B,i k,xx σ B,i k,yx,..., P B,m σ B,i k,xy σ B,i k,yy k ) 4.10.2 Gränssnitt mot regulator ] Utsignaler till regulatorn är ( r k c, r k c, rs k, r k s ) med tillhörande kovariansmatriser. Insignaler kommer att vara styrsignal till gauntry och tralla, samt hoistlängd; (u g, u t, u l ). 25
5 Reglering Figure 13: Översikt av regleringen 5.1 Inledande beskrivning av regulatorn Regulatorn ska utnyttja positioner givna av sensorfusionen för att styra tralla, gauntry och hoist för att därigenom styra containerposition. Regulatorn kommer bestå av tre delkomponenter, enligt Figur 13. 5.1.1 Styrenhet Styrenheten vet vilken reglersituation systemet befinner sig i och bestämmer utifrån detta vilken typ av regulator som skall utnyttjas. Detta är antingen är regulatorn som används för förflyttning eller densamma tillsammans med regulator för styrning av hoist. 5.1.2 Regulator för förflyttning Denna regulator är anpassad för förflyttning av trallan och gauntry från en position till en annan. Detta skall ske utan att containern förskjuts ifrån sin relativa nollposition mer än 50 cm. Rörelsen längs bommen betraktas som en pendelrörelse enligt Figur 14. 26
Figure 14: Översikt av pendelrörelse De linjäriserade tillstånden ges av (se Figur 14): Tillstånd: x = (x, ẋ, y, ẏ, θ, θ, Φ, Φ) t = (x 1, x 2, x 3, x 4, x 5, x 6, x 7, x 8 ) t x 1 = ẋ ẋ 2 = mgx3 f θmx 4+F M ẋ 3 = θ ẋ 4 = (M+m)(gx3 f θx 4)+F Ml ẋ 5 = ẏ ẋ 6 = mgx7 mfφx8+g M ẋ 7 = Φ ẋ 8 = (M+m)(gx7 fφx4)+g Ml För härledning av tillståndsekvationerna, se Appendix A. Translationen från interna tillstånd till globala positioner för trallan blir: x tralla = x 1 y tralla = x 5 z tralla = 0 och för containerpositionen: x cont = x 1 + l sin(x 3 ) y cont = x 5 + l cos(x 3 ) sin(x 7 ) z cont = l cos(x 3 ) cos(x) En allmän beskrivning på tillståndsform efter linjärisering är: ẋ = Ax + Bu + Nv 1 27
z = Mx y = Cx + v 2 u = F r r F y y En LQ-regulator kommer att användas för att reglera tralla relativt bom och gauntry relativt marken. Med tillståndsbeskrivningen enligt ovan kommer u i ekvation (11) svara mot krafterna F och G som läggs på trallan respektive gauntry. Reglerfelet e = z r, där z är det aktuella tillståndet och r det önskade värdet på detta. Reglermålet med ekvation (11) är att göra en avvägning mellan storleken på dessa två. Reglermålet enligt LQG kan sammanfattas i ekvation (11). Tidshorisonten, T, är här en designparameter och kommer att testas fram. min( e 2 Q 1 + u 2 Q 1 ) = min ˆ T 0 (e t (τ)q 1 e(τ) + u t (τ)q 2 u(τ))dτ (11) Figur 15 nedan visar en förenklad bild över regleringen. Figure 15: Förenklad bild av regulatorn 5.1.3 Regulator för hoist vid containerpositionering Denna regulator är anpassad för att kunna positionera en container ovanpå en underliggande container i det globala koordinatsystemet. Detta skall ske så att positioneringen inte avviker mer än 5 cm från tänkt position. För regleringen används en PID-regulator på formen enligt (12), i Laplace-domänen där α är skärfrekvensen för D-delens lågpassfilter. 5.2 Gränssnitt U(s) = K(1 + 1 T i s + T ds )E(s) (12) T d sα + 1 Som insignal kommer regulatorn att få positionen och hastigheten för trallan samt spreaderns relativa hastighet och position. Från användare kommer regulatorn antingen få ett börväde på trallans position eller en position där en 28
container skall hämtas eller placeras. Utsignal från regulatorn till kranens positionsstyranordning skall vara styrsignal. Utsignal till sensorfusionen ska vara styrsignaler till gauntry och tralla, samt hoistlängd. 29
6 Simuleringsmiljö Figure 16: Översikt av simuleringsmiljö 6.1 Inledande beskrivning av simuleringsmiljö I simuleringsmiljön skall man kunna verifiera att regulator och sensorfusion uppfyller ställda krav på prestanda. Simuleringsmiljön tar emot styrsignaler ifrån regulatorn och simulerar dess påverkan på den verkliga kranen, se Figur 16. Alla tillstånd i simuleringsmiljön kommer att vara öppna och kommer kunna verifieras, kameran skall även simuleras för att åstadkomma featurepunkter liknande de kameran tillsammans med bildbehandlingen skapat. Simuleringen av kranen kommer att ske i Matlab SimMechanics och simuleringen av kameran kommer ske i ett eget Simulinkblock utifrån de tillstånd som SimMechanics simuleringsmiljön tagit fram. 6.2 Uppbyggnad av simuleringsmiljö Figure 17: Modell i SimMechanics av en enkelpendel 30
Simuleringsmiljön kommer vara uppbyggd i SimMechanics. I Figur 17 ovan visas en första modell som är en enklare modell än den som i slutändan ska användas. Modellen ska byggas som en variant av en dubbelpendel. 6.2.1 Modellskiss I Figur 18 nedan visas en skiss av modellen som ska implementeras. Figure 18: Modellskiss av kran att implementera i SimMechanics 1. Kranen har en translatorisk rörelse längs en axel som motsvarar kranens räls. 2. Gauntryt kan svänga kring två axlar. Fjäder och dämpare håller den upprätt respektive dämpar pendlingar. 3. Bommen är alltid parallell med marken. 4. Trallan rör sig translatoriskt längs bommen. 5. Hoisten pendlar kring två axlar. Dämpare dämpar pendlingar. 6. Hoistlängd kan varieras genom en translatorisk rörelse. 7. Spreadern pendlar i fästpunkten till hoisten kring två axlar. 6.3 Modellekvationer Då den mekaniska modellen till simuleringsmiljön implementeras i SimMechanics saknas explicita modellekvationer. 31
6.4 Störmodellering 6.4.1 Störningsmodellering av vind Vindstörningar kommer modelleras i form av en slumpmässig kraft på container och gauntry. 6.4.2 Störningsmodellering av modellfel Störning i form av modellfel kommer att vara: lutningar i trallans plan. felaktig längd på hoist. 6.5 3D-miljö En miljö ska skapas där alla objekt sparas i matriser. Världen kommer att beskrivas med kartesiska koordinater i tre dimensioner. I världen kommer containrar att placeras ut representerade som rätblock. I Matlab representeras dessa som strukturer där hörnkoordinaterna och sidoplanen förs in, det senare för att lättare kunna ta reda på hur containern skymmer kamerans synfält. Kamerans position kommer att betraktas som en insignal till 3D-miljön från den övriga simuleringsmiljön som är uppbyggd i SimMechanics. 6.6 Generering av featurepunkter Vid generering av en featurepunkt, som i dess enklaste form kommer att bestå av ett containerhörn, tas först en linje fram av hörn- och kamerapositionen. Sedan undersöks om denna linje skyms för kameran av någon container genom att en skärningspunkt räknas ut och undersöks. Om hörnpunkten är skymd förkastas den, annars projiceras den på en tvådimensionell avbildning som ska motsvara hur kameran ser punkten. 6.6.1 Avbildning av 2D Den simulerade världens punkter som existerar i tre dimensioner kommer att projiceras på ett tvådimensionellt plan som ska motsvara den bild som kameran genererar. Bilden ska tills vidare projiceras på ett för bilden internt koordinatsystem, tex. en bild med 800*600 längdenheter 2. Detta är dock tills vidare obestämt och samordnas med bildbehandlingsteamet. Se Figur 19 för en grafisk översikt av projektionen. 32
Figure 19: Översikt över hur simuleringsmiljön projiceras genom kameran på en bild bakom kameran 6.6.2 Specifika featurepunkter Featurepunkter som följer med trallan när den rör sig, t.ex. punkter från tralla, spreader, upptagen container och gauntry när sådant syns på bilden. Notera att objekt som generar specifika featurepunkter även skymmer andra objekt i bilden. 6.6.3 Ambienta featurepunkter Ambienta featurepunkter är punkter som syns på marken som inte följer med trallan, t.ex. stillastående containrar. 6.6.4 Störning av featurepunkter En kovariansmatris skapas. Med denna ska sedan featurepunkternas positioner att störas genom slumpmässig förskjutning på bilden. 6.7 Variabler och funktioner i Matlab I detta avsnitt listas variabler och funktioner som ska implementeras. 6.7.1 Variabler camcoord koordinater [x, y, z]. cornercoord koordinater [x, y, z]. imagecoord bildprojektionskoordinater i 2D [x, y]. allimagecoord lista med alla bildprojektionskoordinater. loosefeaturepoints lista av featurepunkter som inte är hörn som kan placeras ut [x, y, z]. 33
containerstruct innehåller alla hörnkoordinater samt redan uträknade normaler till containerns sidor. allcontainerslist en lista innehållande alla containerstructar. containerdimensions innehåller en standardcontainers dimensioner [x, y, z]. imagerefpoints struct eller matris 4*2 som anger hörnkoordinater för vad kameran ser i 2D-projektionen. Notera att projektionsdjupet måste vara konstant, men bestäms utifrån vad den verkliga kameran ser. Projektionsdjupet beräknas efter önskad storlek på projektionsbildensamt kamerans verkliga synfält. Det verkliga synfältets dimensioner är än så länge okända. imageblindspots struct innehållande coordinater till fält som är blinda för kameran. Dessa motsvarar objekt som hör till gauntry, tralla eller spreader som alltid finns i synfältet. ImageBlindSpotFeaturePoints featurepunkter som alltid ligger i de blinda fälten. 6.7.2 Funktioner [containerstruct] = create_container(onecorner, orientationaxis, containerdimensions) Skapar en container. Endast ett av hörnen anges. De övriga räknas ut utifrån orientationaxis och containerdimensions. [intersectbool]=plane_line_intersect(camcoord, cornercoord, container- Struct) funktionen anger om ett specifikt hörn skyms av en specifik container, sant eller falskt. [intersectbool]=hidden_point(pointcoord, camcoord, allcontainerslist) funktionen anger om ett specifikt hörn skyms av någon container, sant eller falskt. [imagecoord]=image_projection(pointcoord, camcoord, refpoints) projicerar koordinater i 3D till en 2D bild i kameran. [featurepoints]=extract_feature_points(camcoord, allcontainers, imageref- Points) extraherar alla containerhörn som featurepoints. imagerefpoints är en struct bestående av bildens hörnpunkter och angivelse på vilket djup bakom kameran som bilden ska projiceras på. Funktionen anger endast featurepunkter som ligger inom kamerans synfält. [featuredistortedpoints]=disturb_feature_points(featurepoints, disturb- Parameters) stör featurepunkterna. 34
6.8 Gränssnitt Som insignal får simuleringsmiljön styrsignaler från regulatorn. Som utsignal ger simuleringsmiljön featurepunktsdata specificerade enligt samma gränssnitt som det som skickas från bildbehandling till sensorfusion. 35
A Härledning av enkelpendel med vagn Tillstånden tas fram utifrån Lagranges ekvation L = K V, där K är den kinetiska energin och V den potentiella energin. Nedan redovisas beräkningsgången för kombinationen container och tralla. För resterande masskombinationer och/eller rörelser presenteras endast deras tillståndsmodell. I ekvationerna nedan betecknar m containerns massa medan M är trallans/gauntryns beroende på reglersituation. Med tillstånden x i betecknas trallans position relativt bommen, bommens position relativt gauntry och gauntryns position i det globala koordinatsystemet. Vinklarna θ och Φ markerar hoistens vinklar i x- och y-led relativt z, beroende på dimensionen. K = M 2 x2 + m 2 ((ẋ + θ cos θ) 2 + (l θ sin θ 2 ) (13) och V = mgl cos θ (14) L = K V =... = (M + m) ẋ 2 + mlẋ 2 θ cos θ + m 2 l2 θ2 mgl cos θ (15) Lagranges allmänna ekvation, där q(t) representerar koordinatsystemet, lyder: L(t, q(t), q, (t)) x i d L(t, q(t), q, (t) = 0 ; i = 0,..., n (16) dt v i Tolkat i ovanstående system av ekvationer blir de separata tids- och variabelderivatorna: och L x = 0 (17) L ẋ = (M + m)ẋ + ml θ cos θ (18) ( L) t( ẋ) = ẍ(m + m) + ml θ cos θ ml θ 2 sin θ (19) Ekvationerna (16), (17), (18) och (19) ger: Med avseende på θ: ( L) t( ẋ) L x = ẍ(m + m) + ml θ cos θ ml θ 2 sin θ (20) L θ = mlẋ cos θ + ml2 θ (21) 36
Man har även att: Ekvation (22) ger: ( L) t( θ) = mlẍ cos θ mlẋ θ sin θ + ml 2 θ (22) ( L) t( θ) L θ = ml(ẍ cos θ + l θ g sin θ) (23) (20) svarar för motorkraften F och (23) för friktionen i rotationsledet, f θ θ. Sedan införs tillståndsvariabler enligt: Vidare gäller även: x 1 = x, x 2 = ẋ, x 3 = θ, x 4 = θ (24) ẍ = F ml θ cos θ + ml θ 2 sin θ M + m (25) Genom att utnyttja (24) och (25) fås: ẋ 2 = mlx 4 cos x 3 + mlx 2 4 sin x 3 + F M + m (26) På liknande sätt erhålls de andra tillstånden och för trallans rörelse framåt (positiv x-riktning) och bakåt(negativ x-riktning). 37
B Dynamikmodeller Enligt krav skall tre olika mekanikmodeller utvärderas. Dels enkelpendel på statisk kranbom, dels enkelpendel på en pendlande bom och dels som en trackingmodell. B.1 Dynamiken modellerad som trackingmodell Det enklaste fallet av modellering blir en enkel trackingmodell. Här ignoreras helt de krafter som påverkar kranen, och endast rörelser beaktas därmed. Modellen kommer vara likadan som modellen för enkelpendel, med skillnaden att alla krafter och moment satts till 0. Modellen kommer därmed ge en relation var kranen och spreadern kan vara, och hur de förflyttar sig vid givna insignaler. B.2 Dynamiken modellerad som enkelpendel på statisk kranbom Modellen beskriver systemet som dynamiskt och påverkat av krafter, men med förenklingen att kranens bom är tillräckligt styv att stå emot de krafter som påverkar den, och därmed kan modelleras som statisk. Trallans kan translatera längs kranbommen. Spreaderns position modelleras som en pendel i 3 dimensioner. För att undvika onödig komplexitet ses pendeln som att den endast har en lina, och på denna lina påförs återförande moment som beräknas utifrån den linkonfiguration som finns mellan tralla och spreader. Figur 20 beskriver systemet. Momenten beräknas vid en specifik linlängd och detta används sedan som en approximation för alla linlängder. Alternativet vore att modellera alla de linor den faktiska konstruktionen består av, vilket antas bli onödigt komplicerat. Figure 20: Modellen av pendeln med dess återförande moment. Mx är återförande moment längs rälsen. My är återförande moment längs bommen 38
B.3 Dynamiken modellerad som enkelpendel på rörlig kranbom I denna modell kommer även dynamiken hos bommen att tas i beaktande. Bommen modelleras som en inverterad pendel, hållen på plats av ett moment skapat av kranens struktur. Momentet från kranbommens struktur översätts till en ekvivalent fjäderkonstant, se Figur 21 nedan. Spreader och tralla kommer modelleras som tidigare med en pendel i tre dimensioner, samt en translation längs bommen. Dock med skillnaden att även yaw-vinkel, alltså vridning av containern runt pendelns axel, tas med. Figure 21: Hur bommen kommer att modelleras. Kranens struktur översätts via hållfasthetsberäkningar till ekvivalenta fjäderkonstanter B.4 Fullständig dynamikmodell För att modellera både roll, pitch och yaw för spreadern krävs en modell mycket nära det verkliga systemet. Här modelleras därför varje lina till spreadern individuellt utefter sin geometri. Även linornas elasticitet behöver tas i beaktande, då linkonfigurationen annars kommer se till att pendeln förblir i sitt neutralläge. Denna modell kommer tills vidare inte att tas fram. B.5 Fjäderkonstanter till dynamikmodellerna Ekvivalenta fjäderkonstanter kommer tas fram ur hållfasthetsberäkningar baserade på kranens struktur. Där ritningsunderlag finns kommer detta att användas, och i övrigt kommer uppskattningar att göras. 39
References [1] Z. Zhang, Determining the Epipolar Geometry and its Uncertainty: A Review. 1996. [2] P.-E. Danielsson, O. Seger, and M. Magnusson, Bilder och Grafik. 2007. [3] M. Brooks, W. C. jnacki, D. Gawley, and A. V. den Hengel, What value covariance information in estimating vision parameters?, 2001. [4] H. Bay, A. Ess, T. Tuytelaars, and L. V. Gool, Speeded-up robust features, 2008. [5] T. Schoen and F. Gustafsson, Integrated navigation of cameras for augmented reality, 2005. [6] D. Toernqvist, Estimation and Detection with Application to Navigation. PhD thesis, Linkopings University, ISY, 2008. [7] F. Gustafsson, Statistical Sensor Fusion. 2008. 40