Förstudie om 3D-karthantering i fjärrstyrning och autonom navigering Ola Ringdahl, ringdahl@cs.umu.se 29 augusti 2008 1 Kartor Lantmäteriets kartor över Sverige finns för gratis nedladdning på Digitala kartbiblioteket [12] av alla studenter, forskare och anställda på högskolor och universitet. De kartor som finns att tillgå är bland annat: Terrängkartan ger enligt Lantmäteriet en fullvärdig markslagsredovisning som även innefattar hyggen, blockig mark, berg i dagen och lövskog. Kartan har även en detaljerad redovisning av småvägar, stigar och vägbommar. Upplösningen i bilderna är 5 m dvs. en bildpunkt motsvarar 5x5 m på marken. Den digitala versionen av kartan täcker inte Norrbottens, Västerbottens och norra delen av Jämtlands län. Ortofoto - flygbilder med max upplösning 1 meter per bildpunkt, tagna från drygt 4500 meters höjd. Bildernas kvalitet varierar beroende på om det är nytagna digitala eller inscannade analoga bilder. Fastighetskartan - i bakgrunden på kartan finns ett flygfotografi (ortofoto) som färgas gult för odlad mark och fruktodlingar, grönt för skogen och blått för vatten. Fastighetsindelningen, (gränser och beteckningar), redovisas i svart och över tätorter läggs ett färgat raster. Övrigt, redovisat i olika färger, är bland annat bebyggelse, kommunikation, vattendrag, nivåkurvor mm. Höjdkartan - höjdinformation som gråskalebilder eller som xyz-koordinater. Upplösningen är 50 meter, så man får inte med några större detaljer om hur terrängen ser ut i ett område. Ett test med en höjdkarta över samma område som i Figur 3(a) gav en helt svart bild, dvs ingen höjdinformation alls. De digitala kartorna saknar information om enskilda hinder, till exempel stenar och träd. Saker som går att få ut (automatiskt) är hus, vägar, vattendrag och terrängtyper. 1
1.1 Format De digitala kartorna finns i Rasterformat som är uppbyggda av punktelement (samma som vanliga digitala bilder) eller vektorbaserat format (där varje vektor representerar en punkt, linje eller en yta). Rasterkartor finns i formaten: JPEG, GIF, RIK eller TIFF. Vektorkartor levereras i AI (Adobe Illustrator) eller Shape (ESRI). Höjddata och marktäckedata levereras forutom i rasterformat även i formaten GRID, TAB, ST eller ASCII. För fullständig beskrivning av de olika filformaten, se [6]. 2 GIS-program För att visualisera kartor och även hämta ut viss information kan Geografiska InformationsSystem, GIS, användas. Vi har utvärderat tre olika programvaror; TatukGIS [14] som används av Komatsu Forest, ArcGIS [4] som verkar ha stor utbredning i Sverige och som rekommenderas av Lantmäteriet samt MapInfo [13]. Samtliga programvaror har liknande funktionalitet och klarar av att läsa in de format som levereras av Lantmäteriet. Vad gäller att exportera till ett format som kan användas i exempelvis 3D-simulatorn klarar inget av dessa program av det. Vi har testat två olika Java-API, JUMP [11] och GeoTools [7], som klarar av att konvertera från shape-format till xy-koordinater och tvärtom. Detta är värdefullt för att kunna läsa in koordinaterna för till exempel vägar, vattendrag och liknande (lagrade som shape-filer) och använda dessa i ett program avsett för att navigera längs en väg exempelvis. Båda dessa programbibliotek är open source. JUMP har även ett grafiskt gränssnitt där man kan visualisera vektorer lagrade i shapeformat och få ut koordinaterna för dessa, se Figur 1. Det går även lägga in nya vektorer med hjälp av xy-koordinater. Tyvärr lyckades vi bara att konvertera från shape till xy-koordinater med hjälp av medföljande programbibliotek. Det ska även gå att spara xy-koordinater som en shapefil, men på grund av bristande dokumentation misslyckades detta. Med hjälp av GeoTools har vi däremot implementerat program som kan göra båda dessa saker. 3 Laserscanning Laserscanning från luften är ett verktyg som gör att man kan få högupplöst terrängdata och även information om enskilda träd [10]. Urban Nordmark på Sveaskog tipsade om ett företaget FORAN Remote Sensing AB [1] som utför flygmätningar med denna teknik. De kan leverera en terrängmodell med 25cm upplösning (mot 50m för en vanlig karta) och en höjdnoggranhet på 10-20cm. Man kan även få position, höjd, kronstorlek och trädslag för enskilda träd. Tyvärr kunde de inte tillhandahålla exempeldata att utföra tester på. Johan Holmgren på avdelningen för fjärranalys vid institutionen för skoglig resurshushållning på SLU forskar kring metoder att analysera bestånd utifrån en kombination av laserdata och flygfoton [15]. Han gav oss tillgång till data 2
Figur 1: Vägar representeras som vektorer i shape-format. Dessa kan även representeras med en serie xy-koordinater, som här i programmet JUMP. insamlat av företaget TopEye AB [2] från helikopter för området runt campus. Upplösningen är ca 10 mätningar per m 2. Utifrån datat kan man skapa en detaljerad bild över terrängen, och även mycket av vegetationen. Med ytterligare databehandling kan enskilda träd urskiljas (rådatat vi fick tillgång till kan innehålla flera punkter på samma träd). Ett exempel på en sådan identifiering kan ses i Figur 2. Vi har utvecklat ett program för att konvertera detta rådata till en gråskalebild (där gråskalan i en pixel motsvarar höjden), se Figur 3. Denna bild ska sedan gå att konvertera till en terräng i Colosseum3D [3], som skogsmaskinssimulatorn är implementerad i. Anders Backman (som har utvecklat Colosseum) har gjort stora försök att få verktyget osgdem att fungera. Detta verktyg ska normalt sett kunna göra ovan nämnda konvertering, men tyvärr har alla försök till detta misslyckats. Det verkar bero på bildens format, eftersom vissa bilder går bra att konvertera. problemet bör alltså vara lösbart, osäkert hur dock. Ett annat sätt att göra detta är via 3D-modelleringsverktyget Blender3d [5]. Information om hur detta görs finns på wikibooks [16]. Tyvärr kan man bara lägga på till ett brus på höjddatat, den klarar inte att konvertera höjden automatiskt, vilket gör att den inte nödvändigtvis blir korrekt. 4 Slutsatser För navigeringsprojektets syften kan man importera terräng och position för hinder till en 3D-simulator för att planera en ny rutt automatiskt enligt principerna i [9]. Laserdata är nödvändigt för att få tillräcklig upplösning på terrängen och för att kunna identifiera enskilda träd som måste undvikas. För DBT-kursen kan man använda laserdatat, men det är ett begränsat område med väldigt få vägar. Ett bättre alternativ vore kanske att använda 3
Figur 2: Laserdatat kan innehålla flera punkter för samma träd, men med ytterligare databehandling går det att identifiera positionen för de flesta träd. Denna bild är gjord av Johan Holmgren. (a) Bild konstruerad i Matlab utifrån rådata. (b) Högupplöst bild (ca Upplösningen är 1m. Motsvarande bild över 10cm) på en del av bilden samma område från Lantmäteriets höjdkarta till vänster. Bild av Johan blir helt svart, dvs ger ingen information alls. Holmgren. Figur 3: Höjddata från en laser kan omvandlas till en gråskalebild, där svarta punkter motsvarar högre terräng än vita. Denna bild ska sedan kunna importeras som terräng till en 3D-simulator. 4
höjddata från Lantmäteriet, som sedan går att uppdatera med sensordata från fordonet. Mjukvaruramverket Nav2000 [8] som är utvecklat för navigeringsprojektet innehåller en applikation för att visa GPS-positionen på en karta (jpgbild) som man får från Lantmäteriet. Denna bör gå att uppdatera med kartinformation om vägar och dylikt med hjälp av implementationen av GeoTools programbibliotek. De olika objekt som finns i kartan kan sparas i shape-format, med till hörande databasfil som talar om vilken typ av objekt det är. Alternativt kan man väldigt enkelt skapa egna datatyper i Java (eller vilket språk man nu väljer att jobba i) som innehåller både koordinater och typ för ett objekt. Detta alternativ är troligtvis enklare än att jobba med exempelvis GeoTools API. Det innebär samtidigt att man inte är bunden till Java om något annat programspråk passar bättre. Ett problem med högupplöst laserdata är att storleken på datafilerna kan vara väldigt stor, vilket gör att databehandlingen tar lång tid (eller omöjliggörs helt om det är för mycket data). Exemplet som visas i Figur 3(a) består av ca 120 000 punkter och datafilen över hela campus som vi fick från SLU består av över 1.5 miljoner punkter. 5 Övrigt Jag vill tacka Anders Backman för all hjälp med Colosseum3D och osgdem. Tack också till Johan Holmgren som tillhandahöll laserdata. Referenser [1] FORAN Remote Sensing AB. http://forangroup.com/, June 23 2008. [2] TopEye AB. http://www.blomasa.com/sweden/se/topeye, June 23 2008. [3] Anders Backman. Colosseum3d - authoring framework for virtual environments. In Proceedings of 11th EGVE Workshop, 2005. [4] ESRI. http://www.esri.com/, June 23 2008. [5] Blender Foundation. http://www.blender.org/, June 23 2008. [6] Stockholms universitetsbibliotek Geobiblioteket. Digitala kartbiblioteket - manual, June 23 2008. http://kartavdelningen.sub.su.se/dkb/filformat.html. [7] GeoTools. http://geotools.codehaus.org/, June 23 2008. [8] Thomas Hellström, Thomas Johansson, and Ola Ringdahl. A software framework for control and sensing in mobile robotics. Technical Report UMINF 07.05, Department of Computing Science, Umeå University, April 2007. 5
[9] Thomas Hellström and Ola Ringdahl. Path planning for off-road vehicles with a simulator-in-the-loop. Technical Report 08.07, Department of Computing Science, Umeå University, May 2008. [10] Markus Hollaus, Wolfgang Wagner, Bernhard Maier, and Klemens Schaduer. Airborne laser scanning of forest stem volume in a mountainous environment. Sensors, 7:1559 1577, 2007. [11] Vivid Solutions Inc. http://www.vividsolutions.com/jump/, June 23 2008. [12] Lantmateriet. Digitala kartbiblioteket, June 23 2008. http://www.lantmateriet.se/templates/lmv_page.aspx?id=13930. [13] MapInfo. http://www.mapinfo.com/, June 23 2003. [14] TatukGIS. http://www.tatukgis.com, June 23 2008. [15] J. Wallerman and J. Holmgren. Estimating field-plot data of forest stands using airborne laser scanning and spot hrg data. Remote Sensing of Environment, 110(4):501 508, October 2007. [16] Wikibooks. Blender 3d: Noob to pro - making landscapes with heightmaps, June 23 2008. http://en.wikibooks.org/wiki/ Blender_3D:_Noob_to_ProMaking_Landscapes_with_heightmaps. 6