DEGREE PROJECT, IN COMPUTER SCIENCE , SECOND LEVEL STOCKHOLM, SWEDEN 2015
Skapande av karta för
fordonsreglering med framförhållning
NICLAS ANDERSSON
Skapande av karta för fordonsreglering med
framförhållning
Map creation for use in automatic vehicle control
NICLAS ANDERSSON NIA@KTH.SE
Examenrapport vid CSC Ämne: Datalogi
Program: Civilingenjör Datateknik Handledare: Alexander Baltatzis
Examinator: Stefan Arnborg Uppdragsgivare: Scania CV AB
Referat
Utbudet av bra, täckande vägkartor som innehåller information om vä-garnas lutningar är idag begränsat. Att skapa sådana kartor är också dyrt, då det kräver både arbetskraft och dyr utrustning. Tack vare en ny algoritm är det dock nu möjligt att skatta lutningen på en väg en-dast genom användandet av en enkel GPS-enhet och redan existerande sensorer i tunga lastbilar. Genom att kombinera flera sådana mätningar för samma väg är det möjligt att få en bra skattning av vägens lutning. I detta arbete har ett system för att skapa vägkartor med lutning både implementerats och utvärderats. Resultaten visar att det är möjligt att skapa vägprofiler med lutningsinformation genom att använda redan tillgängliga sensorer. Resultaten är baserade på både simulerad data och ett begränsat antal verkliga experiment.
Map creation for use in automatic vehicle control
There is currently a limited supply of good road maps with good cov-erage that includes data about the slope of the roads. Creating such maps is also expensive, and requires both labor and expensive equip-ment. Thanks to a new algorithm however, it is possible to estimate the slope of a road by using only a simple GPS device and already existing sensors in a heavy duty vehicle. By combining several measures along the same road, it is possible to get a good estimate of the slope of the road.
In this work, a system for creating road maps with integrated slope data from such estimations is both implemented and evaluated. The results show that it is indeed possible to create road profiles with slope data using only already available sensors. The results are based on both simulated data and a limited set of data collected from real world experiments.
Förord
Detta examensarbete i datalogi har utförts inom ramen för min utbildning i Data-teknik vid CSC, KTH i Stockholm. Arbetet har utförts mellan augusti 2010 och februari 2011 på avdelningen REP (Research and Development, förutveckling) hos Scania CV AB i Södertälje.
Jag vill främst tacka min handledare på Scania, Per Sahlholm, som med sin energi och outtröttlighet gjort mitt arbete mycket intressant och lärorikt. Ett tack går även ut till min handledare på KTH, Alexander Baltatzis, tillsammans med övriga studenter i samma exjobbsgrupp som mig själv, vilka har läst och kommenterat min rapport genom hela arbetet.
Jag vill även tacka all övrig personal på REP, inklusive alla andra exjobbare, vilka har gjort tiden på Scania mycket trevlig. Ni är alldeles för många för att här nämnas med namn.
Förkortningar och symboler
α Lutning i procent
ADAS Advanced Driver Assistance System AND Automotive Navigation Data API Application Programming Interface CAN Controller Area Network
DGPS Differential Global Positioning System DOP Dilution Of Precision
GPRS General Packet Radio Service GPS Global Positioning System
NASA National Aeronautics and Space Administration RMSE Root Mean Square Error
SA Selective Availability SD Secure Digital
SRTM Shuttle Radar Topography Mission
Förord I Inledning 1 1 Introduktion 3 1.1 Bakgrund . . . 3 1.2 Syfte . . . 4 1.3 Tillämpningar . . . 4 1.4 Problemformulering . . . 5 1.5 Avgränsningar . . . 5 1.6 Upplägg . . . 6 2 Bakgrund 7 2.1 Litteraturgenomgång . . . 7 2.2 Tidigare arbeten . . . 8
2.3 Global Positioning System . . . 10
2.4 Kartor . . . 11 2.5 OpenStreetMap . . . 13 2.6 Sammanfattning . . . 17 3 Arkitektur 19 3.1 Systemöversikt . . . 19 3.2 Kartdata . . . 21 3.3 Simuleringar . . . 22 3.4 Sammanfattning . . . 24 II Resultat 27 4 Prototyp 29 4.1 Primära funktioner . . . 29 4.2 Sekundära funktioner . . . 31 4.3 Sammanfattning . . . 33
5 Numeriska resultat 35 5.1 Simuleringar . . . 35 5.2 Experimentella tester . . . 44 5.3 Sammanfattning . . . 46 III Analys 47 6 Numeriska resultat 49 6.1 Estimeringen . . . 49 6.2 Simuleringen . . . 50 6.3 Experimenten . . . 50 6.4 Noggrannhet . . . 51 6.5 Sammanfattning . . . 53
7 Kartor och lagring 55 7.1 OpenStreetMap . . . 55 7.2 Höjd och lutning . . . 55 7.3 Databehov . . . 56 7.4 Sammanfattning . . . 58 8 Slutsatser 59 8.1 Slutsatser . . . 59 8.2 Rekommendationer . . . 60 Litteraturförteckning 61 Figurer 63
Del I
Kapitel 1
Introduktion
Detta kapitel börjar med en bakgrundsbeskrivning och fortsätter sedan med exempel på tillämpningar. I avsnitt 1.4 följer en mer detaljerad problemformulering. I 1.5 listas de avgränsningar som gjorts för detta arbete. Kapitlet avslutas med en översikt över upplägget i resterande del av rapporten.
1.1
Bakgrund
Det saknas idag bra, fullständiga kartor med höjd- och lutningsinformation anpas-sade för bruk i vägtrafiken. De kartor som finns är både mycket dyra och har inte fullständig täckning när det gäller lutningsdata.
Det finns både fria och kommersiella höjdkartor, men dessa har oftast för låg up-plösning för att vara användbara i trafiken. De tar heller inte hänsyn till vägars lutningar som i flera fall kan skilja sig mot omgivningens topografi.
I och med framväxten av GPS-systemet och dess numera höga precision även för civilt bruk har det blivit möjligt att till låga kostnader positionera sig relativt noggrant, åtminstone i det horisontella planet. Den vertikala noggrannheten är dock sämre, vilket gör att en GPS-enhet i standardutförande inte kan användas för att få en säker höjdangivelse, och det är därför heller inte möjligt att använda en enkel GPS-enhet för att samla in tillförlitlig höjd- och lutningsinformation.
För sådana syften har man varit hänvisad till att använda annan utrustning som Differential GPS, gyrometer etc. Detta är dock mycket dyr utrustning jämfört med enkla GPS-enheter.
Därför är det intressant att kombinera en enkel GPS-enhet med andra sensorer som redan finnas tillgängliga i fordon för att försöka estimera lutningen på vägar. Genom att kombinera flera sådana mätningar över samma vägsträcka får man efter
hand en allt bättre estimering. En sådan algoritm för tunga fordon har nyligen utvecklats[22], och ligger till grund för arbetet i denna rapport.
1.2
Syfte
Detta arbete har syftat till att undersöka möjligheterna för att skapa och använda vägdata med höjd- och lutningsinformation.
Målsättningen har varit att kunna bygga en vägkarta genom att kombinera enkla GPS-enheter med andra sensorer som finns tillgängliga i fordonen, däribland aktuell hastighet, vridmoment och information om huruvida föraren bromsar eller växlar. Stor tyngd har legat på att undersöka möjligheten att kombinera data från flera körningar, för att till en låg kostnad konstruera tillförlitliga vägkartor med höjd-och lutningsinformation.
Fokus i detta arbete har legat på användning i tunga fordon, då även små lutningar och höjdskillnader har relativt stor inverkan på denna fordonstyp när det exem-pelvis gäller bränsleförbrukning. Även på relativt flacka vägar har man visat att en minskning av bränsleåtgången på drygt 3 % är möjlig (jämfört med en ordinär farthållare och utan en ökning av körtiden) genom att använda sig av information om lutningen på vägavsnittet närmast framför fordonet [10].
En annan fördel med tunga fordon är att de lämpar sig bra för att just mäta väglutningar, tack vare de effekter även små lutningar har på fordonens uppträdande under körning.
1.3
Tillämpningar
Att känna till väglutningar kan ha flera användningsområden:
Ruttplanering Genom att känna till vägars lutningsprofiler kan man dirigera tung
trafik till de mest optimala rutterna (med minst negativ påverkan från höjd-skillnader).
Körplanering i realtid Genom att känna till lutningsprofilen på vägavsnittet
fram-för fordonet kan man automatiskt justera exempelvis hastigheten fram-för att hantera lutningar så effektivt som möjligt.
I detta arbete har jag koncentrerat mig på det senare användningsområdet. Infor-mationen anpassas så att relevant data kan läsas upp under fordonskörning. För detta användningsområde är inte den absoluta höjden av intresse, utan den vikti-gaste informationen är lutningen i varje vägavsnitt. Genom att känna till lutningen för framförvarande vägavsnitt är det möjligt att automatiskt anpassa körningen så att den blir så effektiv som möjligt. Detta påverkar särskilt tunga fordon, där en
1.4. PROBLEMFORMULERING
effektiv körning kan spara signifikanta mängder drivmedel. Det blir särskilt viktigt vid användning av farthållare, då en sådan annars kan öka drivmedelsanvändningen en hel del på vägar med stora och varierande lutningar [5].
1.4
Problemformulering
Inom ramen för detta arbete har följande frågor undersökts:
1. Är det möjligt att kombinera data från flera körningar för att få en bra skat-tning på en vägs höjd- och luskat-tningsprofil?
2. Vilken noggrannhet kan man uppnå på skattningen?
3. Hur påverkas resultaten av matchningen mellan mätpunkter och kartdata? 4. Hur många mätningar krävs det för att skapa användbar data?
5. Hur ska avvikande värden hanteras?
6. Vilka begränsningar finns det i den framtagna metoden med avseende på datamängder och liknande?
7. Kan man föra tillbaka den genererade höjd- och lutningsinformationen till den ursprungliga vägkartan?
1.5
Avgränsningar
Detta arbete koncentrerar sig specifikt på att hantera höjd- och lutningsinformation. Vägnätets topologi är således förutbestämd genom en redan existerande vägkarta. Denna vägkarta har begränsats till att innehålla endast ett urval av ett fåtal större vägar, främst motorvägar i Sverige och Tyskland. För att rent praktiskt kunna genomföra analyser av den utvecklade prototypen har dessutom endast simulerad testdata använts. Det simulerade datat är dock baserad på verklig kartdata (utan lutningsinformation) där simulerad höjd- och lutningsdata har lagts till utifrån till-gänglig (lågupplöst) höjddata.
Likaså har körningar simulerats ovanpå denna information utifrån matematiska fordonsmodeller. På detta har simulerat mätbrus tillförts för att komma så nära verkliga förhållanden som möjligt.
1.6
Upplägg
Denna rapport är upplagd enligt följande: I kapitel 2 beskrivs bakgrunden till detta arbete. Några relaterade tidigare arbeten gås igenom. Därpå följer en översiktlig introduktion av GPS. Även existerande kartor beskrivs, både väg- och höjdkartor. Då detta arbete baseras på kartor från OpenStreetMap beskrivs dessa mer ingående. I kapitel 3 beskrivs hur arkitekturen för ett skarpt system skulle kunna se ut. I kapitel 4 beskrivs den utvecklade prototypen med fokus på dess olika funktioner. Kapitel 5 och 6 visar resultaten från simuleringar respektive experimentella tester. I kapitel 7 analyseras dessa resultat. En reflektion av kartorna finns i kapitel 8. Rapportens slutsatser finns beskrivna i kapitel 9. Det hela avslutas i kapitel 10 med förslag på framtida arbete.
Kapitel 2
Bakgrund
För att ge en bra bakgrund refereras här till tidigare litteratur inom relevanta områ-den. En översiktlig beskrivning av den huvudsakliga algoritmen som ligger till grund för detta arbete görs i avsnitt 2.2. Sedan följer en mer ingående beskrivning av GPS-systemet. I 2.4 presenteras en översikt av idag tillgängliga kartor. Kapitlet avslutas med en grundlig genomgång av projektet OpenStreetMap.
Det finns flera användningsområden för vägkartor med lutningsinformation. Att skapa sådana kartor är dock i dagens läge mycket dyrt, då det kräver användning av dyr mätutrustning och expertkunskap för handhavandet av denna utrustning. Genom att utnyttja redan existerande sensorer i tunga fordon är det möjligt att använda befintlig trafik till att utföra dessa mätningar. Genom att kombinera mät-ningar är det möjligt att skapa en vägkarta med höjd- och lutningsinformation till en låg kostnad.
2.1
Litteraturgenomgång
En litteratursökning har genomförts inom ramen för detta arbete. Den har haft två primära syften: dels att ge bra bakgrundsinformation och överblick av relevanta ämnen, dels att ge kunskap som kan ligga till grund för utveckling av prototypen. Det finns flera områden med tillgänglig litteratur som på något sätt relaterar till arbetet i denna rapport. De områden som har undersökts är följande:
• Positioneringssystem (GPS etc)
• Topografiska kartor (uppbyggnad och representation) • Existerande kartor (väg- och höjdkartor)
• Datastrukturer och algoritmer för spatial data
• Matchning mellan loggade GPS-koordinater och kartdata (”map-matching”) De förstnämnda områdena har undersökts för att få en bra bakgrundsinformation, medan de senare ämnesområdena har en mer konkret koppling till denna rapport och den utvecklade prototypen.
2.2
Tidigare arbeten
Relevanta, tidigare arbeten innefattar bland annat skapande av väg- och höjdkartor. Även den algoritm som ligger till grund för arbetet i denna rapport introduceras här.
2.2.1 Generera vägkartor
Det finns flera tidigare arbeten där man har utgått från en tom karta och skapat vägkartor utifrån loggfiler från GPS-enheter, däribland [1] och [2]. Det främsta problemet för dessa system är att avgöra om ett nytt spår som ligger nära en redan existerande väg i själva verket representerar samma väg, eller om det är en annan, sedan tidigare okänd, väg i närheten. Det har således utvecklats olika metoder för att lösa dessa problem, exempelvis sådana som bygger på fuzzy logic (flervärdeslogik som hanterar approximativa resonemang) [21].
Det har genom alla dessa försök visat sig vara ett ganska komplext problem, med flera svårigheter. Därför har valet gjorts att i detta arbete utgå från en redan exis-terande vägkarta, och endast lägga till höjd- och lutningsinformation till denna.
2.2.2 Höjdkartor för jordbruket
Det finns tidigare studier som har undersökt möjligheterna att skapa höjdkartor med hjälp av GPS-utrustning, ofta med inriktning mot jordbruket. Särskilt på jord-bruksfält med låg höjdvariation är hög noggrannhet ett krav för att exempelvis kunna bedöma vattenavrinningen korrekt. I en artikel publicerad år 2000 dras slut-satsen att en GPS-mottagare med en horisontell noggrannhet på mellan 2 – 5 meter inte lämpar sig för detta ändamål [26]. Däremot fastlades att en enhet med högre noggrannhet, med en horisontell precision på under 1 meter, fungerade bra under förutsättning att minst 10 mätningar genomfördes på samma område och sedan vägdes samman.
2.2. TIDIGARE ARBETEN
2.2.3 Iterativ skattning av väglutning
Arbetet som skett inom ramen för denna rapport bygger till stora delar på en redan utvecklad algoritm för skattning av vägars lutningar [22]. Här sammanfattas kortfattat dess uppbyggnad.
Som indata används följande: • Hastighet
• Vridmoment • Aktuell växel
• Huruvida växling sker • Huruvida bromsning sker • Antalet synliga satelliter • GPS latitud
• GPS longitud • GPS altitud • GPS hastighet
Tillsammans med en fordonsmodell och en modell över vägars uppbyggnad görs en skattning av lutningen vid varje enskilt tillfälle. Även en skattning över dess korrekthet (varians) görs. En mätning där en viss punkt skattas ha en lägre varians väger tyngre än om punkten hade haft en högre skattad varians. Utifrån detta uppdateras de redan lagrade värdena i kartan enligt följande:
Varny = 1 , 1 Varkarta + 1 Varmätning !
där Varny är den nya skattade variansen, Varkarta är den skattade variansen för den existerande lutningen i kartan och Varmätning är den skattade variansen i den
aktuella mätningspunkten.
Den nya lutningen beräknas sedan enligt nedan i den aktuella punkten:
αny= Varny· αkarta Varkarta + αmätning Varmätning !
där αny är den nya lutningen, Varny är den nya skattade variansen enligt ovan, αkarta är den redan lagrade lutningen och αmätning är den skattade lutningen i den
I kartan lagras sedan Varny och αny inför nästa mätning.
Denna process har en fördel i att den mängd data som behöver lagras hålls kon-stant. Varje ny mätning uppdaterar endast redan lagrad data, och något ytterligare lagringsutrymme för mer data behövs således inte.
Vid den första mätningen, då ingen tidigare data finns lagrad, används värdena från den första mätningen rakt av. Variansen för dessa värden blir naturligt relativt höga tills ytterligare körningar infogas.
Värt att notera är att dessa beräkningar bygger på antagandet att felen i varje mätning är oberoende. Så är dock inte fallet, eftersom de bygger på upprepade mätningar med hjälp av samma metod och utrustning. Detta leder till att den skattade variansen för de kombinerade mätningarna underskattas (blir lägre än vad den egentligen borde vara), och att nya mätningar därför får en mindre påverkan på slutresultatet än vad de egentligen borde ha.
2.3
Global Positioning System
Med hjälp av GPS är det i många fall möjligt att bestämma ens position inom ett visst antal meter. Systemet är skapat av USA som även ansvarar för drift och underhåll. Systemet består av åtminstone 24 satelliter som samtidigt är i drift, men för en enhet på jorden räcker det med att ha fri sikt till minst fyra stycken för att kunna avgöra sin position.
Systemet skapades ursprungligen för militära ändamål, och innehöll då en funktion,
Selective Availability (SA), för att förhindra andra att positionera sig noggrant.
Detta fungerade genom att medvetna fel introducerades i signalerna. Samtidigt skickades en kodad signal med information om dessa fel, vilket gjorde det möjligt för militären att filtrera bort dem. Störningarna gjorde att positioneringen kunde ha en felmarginal på flera hundra meter.
Dessa störningar togs dock bort med början den 1:a maj år 2000 [25], med hänsyn till användning för civilt bruk. I och med detta borttagande ökade noggrannheten till att bli under 20 meter horisontellt, lite beroende på andra naturliga störningar, enhetens konstruktion m.m [24].
Tidigare använde man Differential GPS (DGPS) för att komma runt de fel som medvetet introducerades. DGPS använder sig av stationära mätstationer spritt ut-placerade geografiskt sett. Dessa stationer beräknar felen i GPS-signalerna genom att använda skillnaden mellan dess redan kända position och den position som fås fram genom signalerna. Denna skillnad, som alltså anger vilket fel GPS-signalerna innehåller, skickas kontinuerligt ut till omgivningen. Detta blev ett sätt att komma runt felen som orsakades av SA, men gör även idag stor nytta genom att förbättra positioneringen så att de horisontella felen kommer ner på under en meter.
2.4. KARTOR
Det är även möjligt att med rätt utrustning och mätmetod uppnå en korrekthet på några centimeter.
2.4
Kartor
På global nivå är det främst två företag, Navteq och TeleAtlas, som erbjuder kom-mersiella kartor [23]. I Sverige är det främst Lantmäteriet, Trafikverket och enskilda kommuner som skapar och underhåller kartdata.
Det finns också fria (icke-kommersiella) kartor tillgängliga. En mycket omfattande höjdkarta har skapats av NASA inom projektet Shuttle Radar Topography
Mis-sion (SRTM) [6]. På senare år har även en fri vägkarta börjat ta form i och med
OpenStreetMap-projektet.
2.4.1 Kommersiella höjdkartor
Lantmäteriet har sedan tidigare olika produkter med höjdinformation i varierande upplösningar tillgängliga. Sedan juli 2009 har man dessutom påbörjat mätningar för en ny nationell höjdmodell [12]. Denna mätning sker med laserscanning från flygplan, där enskilda punkter normalt har en bättre noggrannhet i höjd än 0,1 meter (”på plana, hårdgjorda ytor”). Däremot är noggrannheten i horisontella planet ofta mycket sämre, vilket naturligt gör att även noggrannheten i höjd minskar i de fall terrängen sluttar mycket.
2.4.2 Kommersiella vägkartor med lutningsinformation
Det finns i dag inga bra, övergripande vägkartor som innehåller höjd- och lutningsin-formation för enskilda vägavsnitt. Navteq levererar kartor med bland annat höjd-och lutningsinformation avsedda att användas i ADAS-implementationer [13], men dessa täcker i dagsläget endast delar av Nordamerika och Västeuropa. Någon data för Sverige finns inte. Det är heller inte möjligt att som konsument eller ett mindre företag köpa dessa kartor.
2.4.3 Fria höjdkartor
En av de mest omfattande fria höjdkartorna är utgiven av NASA och är ett resultat av SRTM-projektet. Denna täcker större delen av jorden mellan latitud -56◦ och latitud 60◦ [6]. Inom USA är upplösningen 30 meter, medan den i resten av världen är begränsad till 90 meter.
Denna upplösning är för låg för att i praktiken kunna användas i detta arbete. Informationen är inte heller alltid helt tillförlitlig då mätningar i olika punkter kan ha träffat ”marken” på olika höjd. Detta beror på att mätningarna har utförts med radar, och resultatet kommer från det objekt som träffats först. Det kan till exempel bli stor skillnad om en mätning träffar en grantopp i en skog, medan mätningen i nästa punkt träffar plan mark. Vissa områden saknar också data på grund av molnighet vid mättillfället.
Att ingen data finns för områden ovan 60◦ latitud innebär också att stora delar av mellersta och norra Sverige saknas.
2.4.4 Fria vägkartor
Ett av de större projekten när det gäller att skapa en fri vägkarta är OpenStreetMap. Projektet beskrivs närmare i avsnitt 2.5.
2.4.5 Problem med höjdkartor
Som sagts ovan har tillgängliga höjdkartor oftast alltför låg upplösning för att kunna användas vid uträkning av väglutningar. Det är också ett problem att vägar inte alltid följer omgivningens topografi. Figur 2.1 visar hur detta kan se ut för en bro över en dal. Att använda generell höjddata skulle med största sannolikhet ge felaktig lutning för vägen, eftersom sannolikheten att höjdmätningen har träffat just på vägen är liten.
På samma sätt blir det problem om marken har schaktats ur eller berg sprängts bort för vägen.
Figur 2.1. Bro över dal [7]. Användning av höjdinformation från en höjdkarta skulle här ge en missvisande lutning för vägen då höjdmätningarna sannolikt har träffat den omgivande dalen istället för den uppbyggda vägbron.
2.5. OPENSTREETMAP
2.5
OpenStreetMap
Kartor från OpenStreetMap har i stor utsträckning använts i detta arbete. Därför följer här en närmare beskrivning av just OpenStreetMap.
2.5.1 Introduktion
Projektet OpenStreetMap startade år 2004 och har nu nästan trehundratusen medlem-mar [14]. Det bygger på samma idéer som exempelvis Wikipedia (vars innehåll utvecklas av användarna, och där vem som helst kan bidra), men för kartor och geografisk information.
Vem som helst med tillgång till Internet kan ladda upp ny och ändra redan införd information.
2.5.2 Kvalitet och täckning
Kvaliteten och täckningen skiljer sig stort mellan olika områden, men täckningen är i stort sett mycket bra i de större städerna och orterna i Västeuropa. En un-dersökning över korrektheten i OpenStreetMaps data genomfördes under år 2008 (med data från slutet av mars samma år) [8]. Där jämfördes primärt positionerna på motorvägssegment i England med kartor från Ordnance Survey (Storbritanniens motsvarighet till Lantmäteriet), och resultatet visade att det fanns ett överlapp på cirka 80% mellan de två olika kartorna. Ett visst ”buffertområde” användes vid jäm-förelsen för att ta hänsyn till olika faktorer såsom noggrannheten på GPS-enheter, förenklingar i kartan från Ordnance Survey etc. Man konstaterar här att kvaliteten på datat i OpenStreetMap i vissa områden är utmärkt, medan den i andra områden är sämre. Till en stor del verkar det bero på vem som har kartlagt området och hur noggrann denna person har varit. Även hur många personer som har bidragit med ändringar i ett område spelar in.
2.5.3 Datakällor
En vanlig metod för att samla in information är att använda en GPS-enhet och låta den logga när man är ute och åker bil, cyklar eller går. Denna data kan sedan laddas upp till OpenStreetMap, där den då blir tillgänglig för andra personer som kan använda denna information för att rita in nya vägar i kartan. Vill man av någon anledning inte ladda upp den råa GPS-informationen kan man öppna den sparade filen lokalt på sin dator och själv uppdatera kartan direkt.
En annan vanlig metod är att använda flygbilder för att rita av kartdata. Sedan länge har flygbilder från Yahoo använts efter att Yahoo bekräftat att detta är tillåtet
enligt deras användningsvillkor [20]. Numera kan man också använda bilder från Bing [11, 3].
Efter att en ny väg har ritats in kan vem som helst lägga till valfri information till denna, såsom vägnamn, hastighetsbegränsningar, underlag etc. Hur denna infor-mation samlas in skiljer sig åt. Vissa använder anteckningsblock och penna, andra använder kamera (som ofta synkas mot en GPS-enhet för att kunna placera varje enskild bild på en karta) eller ljudinspelare. Det förekommer också att man redan känner till allt detta, exempelvis om man själv bor i närheten.
När de flesta vägar i ett område har kartlagts kan det räcka långt endast med lite lokalkännedom för att kunna bidra med värdefull information. Man är inte heller begränsad till att enbart lägga in vägar. I stort sett kan vad som helst läggas in. Exempel på vanligt förekommande data är vägar, byggnader, husnummer, trafikljus, övergångsställen, skidspår, trappor, elljusspår, offentliga byggnader med mera. Det förekommer också att data importeras från andra datakällor. Det kan exem-pelvis handla om data som redan är fritt tillgängligt eller har donerats till projektet. Två sådana exempel är Topologically Integrated Geographic Encoding and
Referenc-ing (TIGER) i USA och Automotive Navigation Data (AND) i Nederländerna [18].
2.5.4 Datamodell
OpenStreetMaps datamodell bygger på tre olika objekt: Node, Way och Relation. Alla dessa objekt kan innehålla ett godtyckligt antal taggar. Till detta kommer även intern metadata.
Node
En node (sv. nod) är den minsta beståndsdelen, och specificerar en geografisk ko-ordinat med longitud och latitud.
Way
En way (sv. väg) är en ordnad lista av noder. Trots namnet används dessa för att dels specificera fysiska vägar, men även för byggnader, insjöar, kustlinjer m.m. Allt som utgörs av en ordnad lista av koordinater (noder) specificeras alltså med hjälp av en way. Det vanliga är att dessa inte är slutna (att första och sista noden skiljer sig åt), vilket är fallet för de flesta gator. I andra fall, när det t.ex gäller byggnader eller rondeller är det vanligt att första och sista noden är identiska.
Hur tätt noderna ligger varandra är godtyckligt. Generellt sett ligger noderna tätare när vägens riktning ändras, medan de på raksträckor kan ligga relativt långt ifrån
2.5. OPENSTREETMAP
varandra. Detta följer av att en högre täthet behövs då man vill modellera kurvor någorlunda väl.
Relation
En relation (sv. relation) grupperar ihop noder, vägar och andra relationer i ord-ning. Dessa noder, vägar och andra relationer kallas för medlemmar i den eller de relationer de tillhör. Varje medlem i en relation kan ha en role (sv. roll) definier-ad. En relation som exempelvis specificerar en busslinje har då både de vägar som bussen färdas på och de hållplatser som angörs som medlemmar.
Taggar
Varje nod, väg och relation kan utöver informationen ovan också innehålla ett god-tyckligt antal taggar. En tagg är en kombination av en nyckel och ett värde. Det är med hjälp av taggarna som de inlagda noderna, vägarna och relationerna får en semantisk betydelse. Ett exempel på en tagg är nyckeln maxspeed och värdet 70, som kan användas för att indikera att en väg har den högsta tillåtna hastigheten satt till 70 km/h.
Metadata
Utöver informationen ovan innehåller dessutom varje nod, väg och relation intern metadata. Varje objekt har ett versionsnummer. När ett nytt objekt skapas får det version 1. När objektet sedan ändras, t.ex genom att en tagg läggs till eller att objektets position modifieras, så kommer objektet med version 1 ligga kvar oförändrat, och ett nytt objekt med de valda ändringarna skapas och får version 2. Varje version av objektet innehåller dessutom information om när den versionen skapades, vem som skapade objektet (ändringen), om denna version fortfarande är synlig med mera. Detta gör det möjligt att spåra ändringar, göra ändringar ogjorda med mera. Det kan också användas för att visualisera hur projektets har utvecklats över tid [15].
2.5.5 Teknik
Internt för OpenStreetMap lagras alla data i särskilda databaser. Denna data kan redigeras via ett exponerat API, som normalt sett används via en editor.
Databaser och exporterad data
OpenStreetMap använder primärt två olika databaser: en primär och en sekundär databas. Den primära databasen bygger på PostgreSQL och innehåller alla noder, väger och relationer som någonsin skapats. Det är i denna databas ändringarna från alla användare utförs. Den andra databasen använder PostgreSQL och PostGIS, och används som källa för kartrenderingen på http://openstreetmap.org [17]. Denna databas innehåller endast representationer av de senaste versionerna av de objekt som faktiskt renderas. Ett exempel på en sådan rendering syns i Figur 2.2.
Från den primära databasen exporteras all aktuell data (den senaste versionen av alla för tillfället synliga objekt) en gång i veckan. Dessutom kommer det så kallade
diff -filer med de senaste ändringarna ut med olika intervall (dagligen, en gång per
timme och en gång per minut). Detta innebär att den som vill har möjlighet att hålla en egen databas uppdaterad med aktuell data med minimal fördröjning. All exporterad data levereras i ett XML-baserat format.
Stockholm Tumba Salem Västerhaninge Södertälje Jordbro Sundbyberg Solna Ekerö Haninge Huddinge Lidingö Nacka Stockholm-Bromma Airport E 4;E 20 75 229 75 E 4;E 20 73 229 E 4 E 4 E 20 E 4 73 E 18 Fläsket Riddarholmen Bockholmen Lindholmen Slagsta holme Lovön Färingsö Bosön Skräddarholmen Ekerö Adelsö Kärsön Länsman Kranholmen Fiskarholmen Stuguholmen Beckholmen Lambarön Kungshatt Hässelby holme Björkö Reimersholme Färingsö Estbröte Granö Björnön Lilla Radön Lilla Essingen Libertus Ekerö Södermalm
Figur 2.2. Exempel på karta från OpenStreetMap. Figuren visar en rendering av aktuell kartdata i Stockholmsområdet.
2.6. SAMMANFATTNING
Editorer
För att lägga in nya data eller uppdatera redan existerande information används vanligen en så kallad editor. Oavsett editor används samma gränssnitt mot Open-StreetMaps servrar. De mest använda editorerna är Potlatch, JOSM och Meerkator, men det är även möjligt att utveckla egna editorer.
Potlatch är en editor utvecklad i Flash och körs direkt i användares webbläsare. Det är denna editor som används då man klickar på ”Edit”-knappen högst upp på http://openstreetmap.org. Potlatch riktar in sig på nybörjare och har ett gränssnitt anpassat efter detta.
JOSM är en editor utvecklad i Java och körs som ett fristående program. Det är också möjligt att starta det via Java WebStart. Det finns ett antal insticksmoduler (plugins), som möjliggör alltifrån överladdningar av data från anslutna GPS-enheter till att visa flygfoton som bakgrund under det nedladdade kartdatat.
2.5.6 Höjd i OpenStreetMap
I och med att det är möjligt att lägga in godtycklig data med hjälp av taggar i OpenStreetMap är det också möjligt att lägga in höjd- och lutningsdata. Det finns redan en tagg definierad med nyckeln ele som är avsedd för att ange höjden i exempelvis en nod.
OpenStreetMaps datamodell gör det mest lämpligt att spara dessa höjdvärden i de noder som redan finns. Vill man spara värden än tätare måste extra noder skapas och infogas i de aktuella vägarna.
När det gäller nivåkurvor som exempelvis används i cykelkartan har man valt att hålla dessa utanför den primära OpenStreetMap-databasen [16]. I stället läggs data från NASA’s SRTM-projekt i en separat databas som används vid renderingen av cykelkartan. På detta sätt undviks en stor ökning av datamängden för alla andra som använder data från OpenStreetMap. En skillnad mellan nivåkurvor och kartor med höjd- och lutningsinformation för vägar är att de senare endast innehåller extra information på just de vägar (”ways”) som redan finns i kartan. Att lägga in nivåkurvor skulle å andra sidan kräva noder och så kallade vägar utlagda så att de både täcker och korsar det som redan finns i kartan.
2.6
Sammanfattning
Många relevanta tidigare arbeten har gått ut på att skapa nya vägkartor enbart från GPS-spår och utan någon tidigare karta, vilket har visat sig vara ett svårt problem. Andra relevanta områden är skapande av höjdkartor, som dock är omständligt på grund av den dåliga noggrannhet GPS-systemet har i höjdriktningen.
En algoritm för att estimera lutningar utifrån enkla GPS-enheter och andra sensorer i tunga fordon har nyligen utvecklats. Denna ligger till grund för arbetet i denna rapport.
GPS-system har efter hand fått allt bättre precision, även för icke-militära bruk. Signalerna kan dock fortfarande förbättras genom användning av DGPS.
Det finns ett antal redan existerande vägkartor, både fria och kommersiella. Det finns också en omfattande höjdmodell över stora delar av jorden som gjorts inom NASA’s SRTM-projekt. Denna har dock för dålig upplösning för att direkt användas inom ramen för detta arbete.
OpenStreetMap är ett relativt nytt projekt som koncentrerar sig på att skapa en fri, icke-kommersiell vägkarta. Vem som helst kan bidra med data, vilket enklast sker genom en av de editorer som finns. All kartdata från OpenStreetMap kan laddas hem i ett XML-baserat vektorformat. Det finns även grafiska renderingar av kartdatan tillgängliga.
Kapitel 3
Arkitektur
I detta avsnitt beskrivs hur ett färdigt system skulle kunna designas arkitekturmäs-sigt. Kapitlet börjar med en översikt av det tänkta systemet och visar även vad fokus har legat på i detta arbete. Kapitlet fortsätter sedan med beskrivningar av de två olika logiska delarna: den centrala enheten och fordonsenheter. I avsnitt 3.2 beskrivs mer ingående hur kartdatan hanteras. Kapitlet avslutas i avsnitt 3.3 med en beskrivning av de simuleringar som stora delar av detta arbete baseras på.
3.1
Systemöversikt
I denna rapport har systemets alla delar behandlats. En schematisk översikt av dessa delar visas i Figur 3.1. Delarna omfattar insamling av mätdata, algoritmen för höjd- och lutningsskattningen och kombineringen av flera körningar för att skapa en karta med höjd- och lutningsdata. Det är dock endast den sistnämnda delen som har implementerats inom ramen för detta arbete.
Estimering
Uppdatera
karta
Körning
Figur 3.1. I detta arbete beskrivs insamlingen av mätdata, estimeringen av höjd-och lutningsdata höjd-och kombineringen av flera körningar för att skapa den slutgiltiga kartan. Det är endast uppdateringen av höjd- och lutningsdata i kartan som har implementerats i detta arbete.
Figur 3.2 visar i mer detalj de delar som har implementerats. Information från en-skilda körningar skickas tillsammans med resultatet från estimeringsalgoritmen in i systemet. Varje loggad datapunkt med data från fordonets GPS-enhet matchas
mot kartan. När matchningen väl har skett läses den sparade höjd- och lutnings-informationen upp och kombineras med det nya resultatet. Det uppdaterade resul-tatet sparas sedan ner i kartan igen.
Ett fullt utbyggt system skulle rent fysiskt kunna bestå av två olika delar: en central enhet och ett antal fordonsenheter.
Figur 3.2. Översikt av de delar som har implementerats. Systemet matas med data från enskilda körningar tillsammans med estimerade höjd- och lutningsdata. Denna information används sedan för att avgöra vart körningen ägt rum. Information redan sparad i kartan kombineras med den nya körningen, och det uppdaterade värdet sparas ner.
3.1.1 Central enhet
Den centrala enheten innehåller den aktuella vägkartan med höjd- och lutningsin-formation. Det är här nya estimeringar kombineras med den existerande kartan. Även ändringar i den underliggande vägkartan (utan höjd- och lutningsinforma-tion) behandlas här.
Denna enhet behöver köras på relativt kraftfull hårdvara. Att uppdatera kartan med nya körningar kräver en del prestanda. Exakt vilka krav som behöver ställas på hårdvaran beror till stor del på hur många klienter och hur mycket data som ska hanteras.
3.1.2 Fordonsenhet
En fordonsenhet placeras i varje fordon som ska användas för att estimera höjd och lutning på körda vägar. Algoritmen för estimering av väglutningarna använder data från ett antal sensorer i fordonet, däribland information om aktuell växel, vridmoment, huruvida fordonet bromsar, etc. Denna information loggas med en frekvens av 50 Hz. Till detta kommer data från fordonets GPS, som loggas med en
3.2. KARTDATA
frekvens av 4 Hz. Den slutgiltiga estimeringen från den enskilda körningen kan sedan ske på åtminstone två olika håll: antingen i den centrala enheten (efter uppladdning av all sensordata) eller direkt i fordonsenheten. I det senare fallet skulle då endast de estimerade värdena slutligen laddas upp till den centrala enheten, för att väl där integreras i kartan.
Om estimeringen ska ske i fordonet skulle en möjlighet vara att utnyttja Scanias C200-enhet som idag främst används för Fleet Management och redan finns i mån-ga fordon [4]. C200 är fysiskt sett en liten svart låda i fordonet som inte har nå-gon interaktion med användaren. Däremot har den tillgång till olika gränssnitt, däribland sensorer från fordonet via CAN-bussen och GPS-signaler. Dessutom har den ett GPRS-modem som används för att kommunicera med det centrala Fleet Management-systemet. Då estimeringen inte behöver köras i realtid skulle den kun-na ske vid de tillfällen då det finns ledig beräkningskapacitet i denkun-na enhet. Fordons-enheten skulle också vara lämplig för att lagra en exporterad version av kartan från den centrala enheten för uppläsning under färd.
3.2
Kartdata
Med kartdata avses här främst en tvådimensionell vägkarta.
3.2.1 Ursprunglig vägkarta
Som grund i detta arbete har en redan existerande karta utan höjd- och lutningsin-formation från OpenStreetMap använts. Om önskat skulle det även vara möjligt att använda någon annan grundkarta, exempelvis en kommersiell karta från Navteq eller TeleAtlas.
3.2.2 Ändringar i vägkartan
Det förekommer att den underliggande vägkartan förändras. Det kan bland annat bero på att vägar byggs om eller att kartdatat från början var något felaktigt, och efterhand rättas till. Det senare gäller i allra högsta grad OpenStreetMap, där olika personer är olika noggranna och har olika bra GPS-utrustning. I OpenStreetMap förekommer det även att vägar delas och slås ihop relativt ofta, då attribut (tag-gar) endast kan gälla antingen enskilda noder eller hela vägar. Om exempelvis en hastighetsbegränsning som enbart gäller en viss sträcka av en väg då ska tillföras måste vägen delas i två.
Medan de kommersiella kartleverantörerna brukar komma ut med nya kartor en gång i kvartalet, erbjuder OpenStreetMap aktuella ändringar så ofta som en gång per minut [19]. Det kan vara önskvärt att emellanåt införa dessa ändringar även i
höjd- och lutningskartan. Det finns här några olika tillvägagångssätt för att hantera denna situation. Möjliga alternativ är att helt ta bort data från de ändrade vägarna eller att behålla aktuell data genom att behandla den som en egen körning. En annan möjlighet är att spara varje individuell körning separat.
Ta bort ändrade vägar
Ett alternativ då en sträcka i vägkartan ändras är att helt enkelt ta bort den gamla sträckningen i höjd- och lutningskartan och lägga in den nya varianten. Detta för med sig att det gamla, redan insamlade datat förkastas och att information om höjd och lutning på den nya sträckningen till en början saknas. Denna metod har fördelarna att den tekniskt sett är relativt enkel att implementera och att all lagrad data verkligen är insamlad på den nya vägsträckningen. Den största nackdelen är att man riskerar tappa mycket insamlad data vid uppdatering av den underliggande vägkartan.
Behåll aktuell data
Ett annat alternativ är att ändra i den underliggande vägkartan och ta bort ak-tuell höjd- och lutningsinformation för den berörda sträckan, men efter att den nya sträckningen har lagts till använda gammal data till att simulera en ny körning i kartan (fast naturligt med en mycket lägre variansskattning än vad en riktig körning ger, eftersom denna data bygger på många körningar). Om sträckningen då endast har ändrats marginellt kommer i stort sett all gammal data att följa med även på den nya sträckningen.
Kör om alla mätningar
Om varje individuell mätning sparas permanent är det möjligt att låta systemet behandla dessa igen i ett senare skede. Efter ändringar i den underliggande vägkar-tan behandlas körningarna på nytt av systemet, och de ändrade vägarna populeras återigen med höjd- och lutningsdata. En stor nackdel här är att lagringsbehovet ökar markant då alla individuella körningar måste sparas. Likaså kan det krävas mycket datorkraft för att på nytt matcha dessa körningar på vägkartan.
3.3
Simuleringar
Här beskrivs översiktligt de simuleringsfunktioner som funnits tillgängliga under arbetets gång, både när det gäller konstruktion av fiktiva vägar och simulerade fordonsrörelser.
3.3. SIMULERINGAR
3.3.1 Generering av vägar
Utifrån en tvådimensionell vägkarta har simulerade vägavsnitt med höjd- och lut-ningsinformation skapats. Dessa uträknade värden baseras på höjddata från SRTM-projektet, vilka har en upplösning om en punkt var 90:e meter. Genom interpolering har tätare punkter skapats. Då höjddatat inte alltid är tillförlitligt har värdena även fått filtreras för att inte skapa orimliga lutningar. Det förekommer även att höjd-data saknas i vissa områden. Där har interpolering används på längre sträckor för att räkna fram höjd- och lutningsdata.
Det kan vara intressant att se hur dessa genererade vägar överensstämmer med verkligheten. En sådan jämförelse görs i Figur 3.3, som jämför den genererade vä-gen utifrån SRTM-data med den uppmätta referensvävä-gen för utförda experiment mellan Södertälje och Nyköping. Här kan man se att den genererade vägen i stora drag överrensstämmer med den uppmätta referensvägen. Större skillnader uppstår i de fall då lutningen blir stor eller ändras tvärt, då den genererade vägen är hårt filtrerad. 5000 10000 15000 20000 25000 −4 −2 0 2 4 Lutning, % Sträcka, m Referensväg Simulerad väg
Figur 3.3. Jämförelse mellan genererad (heldragen) och uppmätt (streckad) väg. Den genererade vägen överrensstämmer till viss del med den uppmätta referensvägen, utom då lutningarna blir extra stora.
3.3.2 Simulering av körningar
På de genererade vägarna har körningar med tunga fordon simulerats. De genererade vägarna används som referensvärden. På dessa värden simuleras en GPS-signal med tillhörande felkällor och mätbrus. Modeller för vertikala och horisontella fel har identifierats separat, baserat på experimentdata.
GPS-modell
Modellen för den simulerade GPS-signalen bygger på markovprocesser, där sanno-likhetsvärdena har hämtats från de experiment som tidigare har utförts. Detta gör att den simulerade signalen till stora delar avspeglar verkliga beteenden. System-modellen fångar dock inte fullt upp beteenden som beror på multipath-effekter (där signalen från en satellit reflekteras på objekt i omgivningen).
Slumpmässig start
Simuleringen har möjlighet att använda slumpmässig start. I det läget startar simu-leringen någonstans mellan den första och andra referenspunkten. Då simusimu-leringen i varje steg rör sig ett punktavstånd innebär detta att datavärdena inte längre häm-tas exakt därifrån referenspunkterna ligger. I stället används linjär interpolering för att få fram datavärden i de positioner som simuleringen rör sig genom. Dessa vär-den används då som de sanna värvär-dena innan exempelvis mätbrus läggs på. Syftet har här varit att ge mer verkliga förhållanden, då datapunkterna annars hamnar exakt i referenspunkterna, som i sin tur faller samman med punkterna från den ursprungliga vägkartan.
Fordonsmodell
En fordonsmodell används för att i simuleringer efterlikna ett riktigt fordon. Estimerings-algoritmen använder information om exempelvis växling, vridmoment, hastighet med mera. Med hjälp av fordonsmodellen simuleras ett fordons beteende på vägen. En fordonsmodell består av ett antal parametrar som beskriver fordonet. Några ex-empel på sådana parametrar är fordonets massa, maximalt vridmoment, tröghet i motor och hjul, hjulens radie, luftdensitet med flera [9]. Då flera av dessa parametrar ofta inte är helt kända, läggs brus på dessa värden när de används för estimerin-gen. Exempelvis är fordonets massa känd exakt vid simuleringen, medan den när estimeringen sedan sker har justerats slumpmässigt inom ett visst intervall. Detta medför en större osäkerhet vid estimeringen.
I simuleringarna för detta arbete har alla körningar utgått från en och samma fordonsmodell, som modellerar ett fordon med en totalvikt på 40 ton.
3.4
Sammanfattning
Detta arbete koncentrerar sig på beskrivning och implementering av en prototyp för att använda lutningsestimeringar och infoga dessa i en vägkarta. Ett system i skarp drift skulle kunna bestå av två logiska enheter: en central enhet och en
3.4. SAMMANFATTNING
fordonsenhet. Estimeringen skulle kunna ske i antingen den centrala enheten eller i varje fordonsenhet.
Ändringar i den underliggande vägkartan kan hanteras på flera olika sätt. Ändrade vägar kan helt tas bort och ersättas, men tappar då all dittils insamlad data. En annan variant är att använda den estimering som redan finns för att generera en fiktiv körning i den nya kartan.
Simulerad data har använts i stor utsträckning i detta arbete, både när det gäller att generera fiktiva vägar och simuleringar av fordonsrörelser på dessa vägar.
Del II
Kapitel 4
Prototyp
Här beskrivs kortfattat de funktioner som den utvecklade prototypen innehåller. Dessa funktioner har delats upp i primära respektive sekundära funktioner.
4.1
Primära funktioner
De primära funktionerna avser den funktionalitet som rör behandlingen av estimer-ad data och kombineringen av flera körningar.
4.1.1 Inläsning av estimerade körningar
Estimering av höjd- och lutningsdata för en körning sker offline, det vill säga i efterhand. En funktion har utvecklats för att läsa in data från denna estimering för att möjliggöra behandling av informationen. Denna data består av ett antal estimerade punkter. Varje punkt innehåller följande information:
• Longitud • Latitud
• Estimerad altitud • Estimerad lutning • Estimerad varians
4.1.2 Kartmatchning
Första steget i behandlingen av det inlästa estimerade datat är att matcha de in-lästa koordinaterna mot de lagrade datapunkterna. Den implementerade metoden är något anpassad för att användas på motorvägar och förutsätter att positionsfelet från GPS-enheten, åtminstone i det inledande skedet, inte är alltför stort.
Översiktligt går matchningen till enligt följande. Med datapunkt menas en inläst punkt med informationen som finns listad i avsnitt 4.1.1.
1. Ta fram första datapunkten. 2. Hitta aktuell position i vägkartan. 3. Ta fram nästa datapunkt.
4. Hitta de väglänkar1 inom cirka 3 kilometer och vars riktning inte avviker mer än cirka 35 grader från riktningen mellan första och andra datapunkterna. 5. För varje väglänk, försök hitta en vägsträcka kortare än 100 meter i kartan
från aktuell position till startpunkten i väglänken.
6. Om ingen sådan vägsträcka hittades, gå till steg 3. Annars, använd den väglänk som låg på kortast avstånd från aktuell position i kartan.
7. Använd den närmaste punkten i väglänken (start- eller slutpunkten). Om denna kartpunkt redan har matchats av en tidigare datapunkt, gå till steg 3. Annars, associera aktuell datapunkt med denna kartpunkt.
8. Om det finns fler datapunkter, gå till steg 3. 9. Matchningen är nu slutförd.
Villkoret i steg 4 att riktningen mellan två datapunkter och riktningen för en väglänk ska överensstämma inom en viss gräns medför bland annat att enkelriktade vägar (motorvägssegment) i motsatt riktning inte kommer ifråga för matchningen. Här uppstår alltså inte problem då två motorvägssegment (ett i vardera riktning) är placerade nära varandra.
När hela matchningen väl är slutförd används associationerna mellan datapunkterna och kartpunkterna för att uppdatera kartan.
4.1.3 Uppdatering av beräknade värden
När väl kartmatchningen är klar och det är klarlagt vilka kartpunkter som matchades av specifika estimerade värden används denna information för att uppdatera de la-grade värdena med ny höjd- och lutningsdata.
1
En väglänk är den kortaste sträckan mellan två intilliggande datapunkter i kartan som följer på varandra i en fysisk väg
4.2. SEKUNDÄRA FUNKTIONER
Uträkningen av dessa värden sker med hjälp av några olika metoder för att kunna undersöka om de ger några skillnader resultatmässigt. Dessa metoder listas här. I en skarp implementering räcker det med att endast en metod används.
Viktning utifrån skattad varians
Varje estimerad datapunkt innehåller en skattad varians. När en ny mätning kom-bineras med den existerande kartan viktas mätvärdena utifrån den skattade vari-ansen. Hur detta sker finns beskrivet i avsnitt 2.2.3.
I den implementerade prototypen fungerar detta rent tekniskt genom att varje dat-apunkt innehåller, förutom longitud, latitud, altitud och lutning, även den skattade variansen för alla kombinerade mätningar i den aktuella punkten. När en ny mät-ning läggs till läses denna varians upp och jämförs med den skattade variansen för den enskilda mätningen. Efter att de lagrade altitud- och lutningsvärdena har up-pdaterats ändras även den lagrade variansen för att ta hänsyn till att det lagrade värdet nu beror på ytterligare en mätning.
I prototypen lagras även antalet mätningar i varje datapunkt, för att kunna verifiera hur många mätvärden som har matchas mot den individuella datapunkten.
Medelvärdesbildning
Som ett alternativ till att använda den skattade variansen vid uppdatering har en enkel medelvärdesbildning implementeras. Ett viktat medelvärde skapas mellan det akuella värdet i datapunkten och det nya mätvärdet, där viktningen endast beror på hur många mätningar som finns lagrade i datapunkten.
Det existerande värdet i datapunkten uppdateras enligt följande:
x = x ∗ N + ˆx N + 1
där x är det sparade värdet i kartan, N är antalet mätningar för värdet i kartan, och ˆx är det nya mätvärdet. Detta sker för både altitud- och lutningsvärdena.
4.2
Sekundära funktioner
Prototypen innehåller ett flertal funktioner utöver de primära funktionerna listade ovan. Dessa har kommit till för att möjliggöra visualisering och inspektion av da-ta, generering av data till simuleringar, med mera. Här listas kortfattat de olika funktionerna.
4.2.1 Kartvy
Kartvyn är det egentliga gränssnittet till prototypen. Här är det möjligt att visuellt inspektera såväl den redan tillgängliga vägkartan som genererad data. Det möjliggör även närmare inspektion av hur kartmatchningen presterar.
Under denna data kan ett lager med en renderad karta från OpenStreetMap ak-tiveras för att jämföra genererad data mot riktig kartdata.
En skärmbild av protypen syns i Figur 4.1.
Figur 4.1. Skärmbild av prototypen. Programmet möjliggör inspektion av kartdatat, kartmatchningen med mera. Kartdatat har koncentrerats till att främst omfatta mo-torvägar.
4.2.2 Hantering av ursprunglig vägkarta
För att hantera den vägdata som finns tillgänglig från OpenStreetMap har en kon-verteringsfunktion utvecklats som läser det dataformat som data från OpenStreetMap leveras i, och populerar en databas med denna data. Från databasen är det sedan möjligt att läsa upp dessa objekt i godtycklig ordning.
Denna konvertering är nödvändig då det ursprungliga datat levereras i ett XML-baserat format som inte gör det möjligt att söka effektivt bland informationen. I
4.3. SAMMANFATTNING
stället måste hela filen läsas sekventiellt, vilket blir oanvändbart då information måste hittas snabbt.
4.2.3 Skapande av datapunkter
För att möjliggöra generering av vägar med lutningsinformation för simuleringen har en funktion skapats som utifrån vägdatat från OpenStreetMap skapar vägsegment med punkter på konstant avstånd. I detta arbete har ett avstånd på 20 meter använts. Då avstånden mellan noderna från OpenStreetMap skiljer sig åt och kan vara både kortare eller längre än 20 meter sker både utglesning och förtätning. De genererade datapunkterna exporteras sedan för att användas vid konstruktionen av vägprofiler med simulerad höjd- och lutningsinformation tillagda. Dessa punkter utgör även de positioner där beräknad data lagras.
4.2.4 Inläsning av konstruerade vägar
När vägprofiler med simulerad höjd- och lutningsinformation har skapats utifrån de exporterade datapunkterna läses dessa in för att användas som referensvärden. Dessa referensvärden används för att undersöka resultaten från de simulerade körningar-na. För testerna med experimentell data används referensmätningen från den ak-tuella vägsträckan som referens. I en skarp implementering kommer någon sådan referensdata inte att existera.
De simulerade vägprofilerna består av en uppsättning punkter som följer på varan-dra i vägen. Varje punkt innehåller följande information:
• Longitud • Latitud • Altitud • Lutning
4.3
Sammanfattning
I detta kapitel har den utvecklade prototypen beskrivits. Dess funktionalitet har delats upp i två delar: primära- och sekundära funktioner. De primära funktionerna är sådana som även ska vara med i en skarp implementering. De sekundära funk-tionerna står för specifik funktionalitet som har varit nödvändigt eller underlättat för exempelvis analyserna för denna rapport.
Kapitel 5
Numeriska resultat
I detta kapitel redogörs för de numeriska resultaten. I avsnitt 5.1 presenteras oli-ka resultat från de genomförda simuleringarna, däribland enskilda körningar och iterativt förbättrade resultat. I avsnitt 5.2 presenteras kortfattat några resultat då mätdata från tidigare experiment använts.
5.1
Simuleringar
Här presenteras resultat från enskilda simulerade körningar och kombinering av data från dessa.
5.1.1 Enskilda körningar
Ett antal körningar har simulerats på totalt 62 olika vägsträckor. Av utrymmesskäl visas endast resultat för utvalda sträckor här. Notera att även vägarna som an-vänts här har konstruerats rent matematiskt utifrån lågupplöst höjddata, och de kan därför inte sägas fullt ut representera de verkliga förhållandena på respektive sträcka.
I Figur 5.1 visas några exempel på estimerade lutningsvärden från några enskilda simulerade körningar. Den streckade linjen representerar referensvärdet medan de heldragna linjerna utgör enskilda simulerade körningar.
0 2 4 6 8 10 −2
0 2
Exempel på en simulerad körning
Lutning, % Sträcka, km 0 2 4 6 8 10 −2 0 2
Exempel på fyra simulerade körningar
Lutning, % Sträcka, km 0 2 4 6 8 10 0 20 40
60 Exempel på en simulerad körning
Altitud, m Sträcka, km 0 2 4 6 8 10 0 20 40 60
Exempel på fyra simulerade körningar
Altitud, m
Sträcka, km
Figur 5.1. Exempel på estimerade värden för enskilda körningar (en respektive fyra körningar). De två översta delfigurerna visar den estimerade lutningen, medan de två understa figurerna visar den estimerade altituden. I alla fall visas referensvärdet som en streckad linje.
5.1. SIMULERINGAR
5.1.2 Iterativ förbättring
I Figur 5.2 åskådliggörs det egentliga resultatet av den utvecklade prototypen. Det som främst visas är de uträknade höjd- och lutningsvärdena efter olika an-tal körningar på samma vägsträcka. Dessa jämförs med referensvärdena, det vill säga de höjd- och lutningsvärden som gäller för den simulerade vägen.
Vid kombineringen av dessa körningar har endast de värden som viktats utifrån den skattade variansen använts. Det visade sig att den andra metoden beskriven i avsnitt 4.1.3 endast gav marginella skillnader. För att spara utrymme har därför inga separata figurer för den andra metoden skapats.
5.1.3 Felavvikelser
Som ett mått på hur mycket de framräknade värdena skiljer sig från referensvärdena används här Root Mean Square Error (RMSE), det vill säga roten av det kvadrerade medelfelet. Rent matematiskt defineras det enligt
RM SE = s PN i=1(xbi− xi) 2 N
där N är antalet mätningar,xbi är mätvärdet i punkten i och xi är referensvärdet i
punkten i.
Eftersom felen kvadreras innan de medelvärdesbildas får större fel högre vikt och ger ett än större utslag i slutresultatet. Detta är särskilt användbart då större fel är särskilt oönskade.
I Figur 5.3 visas detta som en funktion av antalet körningar som har vägts samman på den valda vägsträckan. För att få bättre tillförlitlighet upprepades experimentet med 50 körningar 50 gånger. Totalt genomfördes alltså 2500 simulerade körningar på samma vägsträcka.
5.1.4 Slumpmässig start
I Figur 5.4 jämförs felavvikelserna med och utan slumpmässig start påslaget. Precis som i Figur 5.3 har det skett totalt 2500 simulerade körningar här.
0 2 4 6 8 10 −2
0 2
(a) Skattad lutning efter 5 körningar
Sträcka, km Lutning, % 0 2 4 6 8 10 0 0.2 0.4
(b) Absolut fel i lutningen efter 5 körningar
Sträcka, km Lutningsfel, %−e nheter 0 2 4 6 8 10 −2 0 2
(c) Skattad lutning efter 20 körningar
Sträcka, km Lutning, % 0 2 4 6 8 10 0 0.2 0.4
(d) Absolut fel i lutningen efter 20 körningar
Sträcka, km
Lutningsfel,
%−e
nheter
Figur 5.2. I (a) visas den skattade lutningen efter fem körningar. Delfigur (b) visar absolutfelet av lutningen. Delfigur (c) och (d) visar motsvarande efter 20 körningar. De streckade linjerna anger referenslutningen.
5.1. SIMULERINGAR 0 5 10 15 20 25 30 35 40 45 50 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 RMSE, lutning % −enheter Antal körningar
Figur 5.3. Felavvikelse för det iterativt förbättrade lutningsvärdet, från 1 till 50 körningar. Detta har upprepats 50 gånger (vilket totalt ger 2500 körningar). I denna figur visas medelvärdet av felavvikelserna för de 50 utförda omgångarna (heldragen linje), tillsammans med dess standardavvikelse (streckade linjer).
0 5 10 15 20 25 30 35 40 45 50 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 RMSE, lutning % −enheter Antal körningar
Figur 5.4. Jämförelse mellan simulerade körningar med och utan slumpmässig start. Figuren visar felavvikelserna för den skattade lutningen. Den heldragna linjen är medelvärdet av RMSE för körningarna med slumpmässig start aktiverat. Den streck-ade linjen visar motsvarande värde då slumpmässig start är avaktiverat.
5.1. SIMULERINGAR
5.1.5 Hela nätverket
Figur 5.5 visar det nätverk som simuleringarna bygger på, tillsammans med namn på knutpunkterna.
För att få en bild av hur den uppbyggda kartan skulle se ut efter många körningar har en simulering med 1000 körningar genomförts. Varje körning har skett på en slumpmässig sträcka med en längd på mellan 5 och 50 mil. För att visa på resultatet från dessa körningar har tre delfigurer skapats i Figur 5.6. Dessa visar resultatet efter 10, 100 respektive 1000 körningar. Lutningsfelet för varje punkt i figurerna utgör medelvärdet av lutningsfelet på en sträcka av 250 meter. Sträckor med lut-ningsfel mindre än 0,04 procentenheter är färgade helt svarta, medan sträckor med fel större än 0,4 procentenheter (eller som helt saknar data) är helt vita. Däremellan är värdena logaritmiskt skalade mellan svart och vitt utifrån lutningsfelet.
Det ska dock noteras att detta inte är något verkligt scenario. Det är mer normalt att det finns vissa korridorer som trafikeras mycket frekvent, medan andra vägar har en mer utglesad trafik. Exempelvis kan man tänka sig att sträckan från Malmö, via Danmark och ner till Tyskland egentligen passeras av en stor mängd tung trafik. Genom den metod som har använts för att simulera trafiken här får man istället att dessa långa, enskilda sträckor har ganska få körningar.
6 8 10 12 14 16 18 20 22 48 50 52 54 56 58 60 Arboga Oslo Arboga Stockholm Arboga Södertälje
Bad OyenhausenHannover Bad Oyenhausen Kamen Bad Oyenhausen Osnabrück Berlin Dresden Berlin Hamburg Berlin Hannover BremenHamburg Bremen Hannover Bremen Osnabrück ChemnitzDresden Chemnitz Frankfurt Chemnitz Nürnberg Dresden Berlin Dresden ChemnitzDresden Göttingen Frankfurt Chemnitz Frankfurt Köln Frankfurt Nürnberg Göteborg Helsingborg GöteborgJönköping Göteborg Oslo Göttingen Dresden Göttingen Hannover Göttingen Unna Hamburg Berlin Hamburg BremenHamburg Helsingborg Hannover
Bad OyenhausenHannoverHannover Berlin Bremen Hannover Göttingen Helsingborg Göteborg Helsingborg Hamburg Helsingborg Jönköping Jönköping GöteborgJönköping Helsingborg Jönköping Södertälje Kamen Bad Oyenhausen Kamen Osnabrück Kamen Unna Köln Frankfurt Köln Unna Nürnberg Chemnitz Nürnberg Frankfurt Oslo Arboga Oslo Göteborg
OsnabrückBad Oyenhausen Osnabrück Bremen Osnabrück Kamen Stockholm Arboga Stockholm SödertäljeStockholm Uppsala Södertälje Arboga Södertälje Jönköping SödertäljeStockholm Unna Göttingen UnnaKamen Unna Köln Uppsala Stockholm
Figur 5.5. Översiktsbild över hela vägnätet. Detta vägnätverk ligger till grund för simuleringarna.
5.1. SIMULERINGAR 0 10 20 48 50 52 54 56 58 60
(a) Efter 10 körningar
0 10 20 48 50 52 54 56 58 60 (b) Efter 100 körningar 0 10 20 48 50 52 54 56 58 60 (c) Efter 1000 körningar
Figur 5.6. Hela nätverket efter (a) 10, (b) 100 respektive (c) 1000 körningar. Helt vita områden saknar data, medan helt svarta områden har data med små fel. Värdena däremellan är skalade logaritmiskt efter felet i lutningen.
1 2 3 4 5 0.2 0.25 0.3 RMSE, lutning % −enheter Antal körningar
Figur 5.7. Experimentella körningar norrut, i ordning 1, 2, 3, 4 och 5
1 2 3 4 5 0.2 0.25 0.3 RMSE, lutning % −enheter Antal körningar
Figur 5.8. Experimentella körningar norrut, i ordning 5, 4, 3, 2 och 1
5.2
Experimentella tester
För att i någon mån verifiera de simulerade resultaten har även data från tidigare mätningar behandlats. Dessa omfattar en sträcka mellan Södertälje och Norrköping, med fem körningar söderut och sex körningar norrut. Som referens har data från en oberoende mätning med hjälp av en Oxford RT3040 använts. En mer detaljerad beskrivning av hur dessa experiment har utförts finns i [22].
För att belysa de olika resultat som kan uppstå beroende på vilken ordning körningar-na läggs in i visas resultat över några olika permutationer av körningarkörningar-na. Figur 5.7 och Figur 5.8 visar resultat då alla 5 körningar har använts, där experimenten har ordnats i stigande respektive fallande ordning efter den ordning de utfördes i.
5.2. EXPERIMENTELLA TESTER 1 2 3 4 0.2 0.25 0.3 RMSE, lutning % −enheter Antal körningar
Figur 5.9. Experimentella körningar norrut, i ordning 1, 2, 3 och 5
1 2 3 4 0.2 0.25 0.3 RMSE, lutning % −enheter Antal körningar
Figur 5.10. Experimentella körningar norrut, i ordning 5, 3, 2 och 1
Vi ser i de två figurererna att körning 4 gör resultatet sämre. För referens har jag därför inkluderat två tester utan dessa körningar, vilket syns i Figur 5.9 och Figur 5.10.
Det ska påpekas att de ursprungliga estimeringarna och referensvägen är gjorda med ett avstånd på 2,5 meter mellan varje punkt. För att bättre överrensstämma med de simulerade testerna har dock endast var 8:e punkt använts, för att även här få ett avstånd på 20 meter mellan varje punkt.
5.3
Sammanfattning
I detta kapitel har ett antal resultat som visar på hur systemet presterar presen-terats. Det som främst har undersökts är resultaten från då höjd- och lutningsskat-tningarna matchas mot vägkartan och kombineras. Resultaten har presenterats i form av grafer, både över enskilda körningar och iterativt förbättrade resultat, men även med måttet RMSE. Till sist presenterades numeriska resultat då data från tidigare utförda experiment användes.
Del III
Kapitel 6
Numeriska resultat
I detta kapitel analyseras de numeriska resultaten. Kapitlet inleds i avsnitt 6.1 med att kort diskutera estimeringsalgoritmen. Efterföljande avsnitt behandlar resultat från simuleringarna, och jämför dessa till viss del mot teoretiska värden. Även en analys av data från experimenten görs.
6.1
Estimeringen
Algoritmen för estimeringen av höjd- och lutningsvärdena fanns redan tillgänglig när detta examensarbete påbörjades. Att analysera eller på något sätt förbättra denna har legat utanför ramen för detta arbete. Däremot kan några kommentarer ges.
Den skattade variansen mellan motsvarande punkter i olika körningar skiljer sig oftast endast marginellt. Detta gör att de olika mätningarna i princip får samma vikt, och att resultatet som uppnås genom att ta hänsyn till den skattade variansen endast marginellt skiljer sig åt från att använda ett viktat medelvärde.
Som det påpekas i [22] antas det att varje mätning är oberoende av varandra. Detta är dock problematiskt, då varje mätning för varje sträcka sker med hjälp av samma metod och borde uppleva ungefär samma felkällor från exempelvis hinder i omgivningen (som kan ge upphov till reflekterade radiosignaler). Detta leder till att variansen i mätningen underskattas, och att den skattade variansen för kombinerade mätningar i kartan blir lägre än vad den borde vara. Detta gör att de estimerade värdena i kartan kommer väga tyngre än vad de borde, vilket leder till att påverkan från nya mätningar slutligen endast blir marginell.