Ik ben Martijn Koopman. Een software ontwikkelaar met gedegen kennis geografische informatie systemen. In de afgelopen jaren heb ik verschillende projecten uitgevoerd waarvan enkelen op deze website uitgelicht worden.
3D Map Table is een hard- en software opstelling waarin de gebruiker gepresenteerd wordt met een 3D kaart bovenop een fysieke touch table.
Het 3D beeld wordt gerealiseerd door middel van augmented reality met behulp van een Microsoft HoloLens of een smartphone met camera.
Op de touch table draait een applicatie die een 2D kaart weergeeft vergelijkbaar met Google Maps. De gebruiker kan deze kaart verschuiven, roteren en in- & uitzoomen door zijn vingers op de kaart te plaatsen en te bewegen.
Op de HoloLens draait een applicatie die een 3D model projecteert bovenop de touch table.
Om dit mogelijk te maken dient de HoloLens applicatie over de volgende informatie te beschikken: 1./ Welk deel van de kaart momenteel getoond wordt (geografische coordinaten) en 2./ Waar de touch table zich bevindt in de fysieke ruimte. Voor dat eerste stuk informatie ontvangt de HoloLens applicatie de kaartcoordinaten van de touch table via het draadloze netwerk. Voor het tweede stuk informatie doet de HoloLens applicatie 2 dingen: 1./ De HoloLens maakt intern een 3D model van de fysieke omgeving met de ingebouwde hardware en 2./ Een afbeelding op de touch table wordt herkend d.m.v. computer vision om de touch table te loceren in de fysieke ruimte.
Er zijn 3 scenario's uitgewerkt op de 3D Map Table:
Het eerste scenario omvat het spoorse traject van Gouda naar Rotterdam Centraal en het gebied daar omheen. Het spoor is gemodelleerd aan de hand van data van ProRail. Het gebied er omheen is gemodelleerd aan de hand van open data van PDOK. Over dit traject rijden sprinters en intercities als een soort simulatie op basis van treinposities van ProRail. Dit scenario geeft de gebruiker een goed beeld van het spoor en wat zich daarop afspeeld. Ten opzichte van een 2D kaart biedt dit de gebruiker veel meer context.
Meer informatie volgt later.
Spatium 3D
Periode:
2017 - 2018
Positie:
Eigen initiatief
Programmeertaal:
C++
Bibliotheken:
Qt, VTK
Ontwikkelomgeving:
Qt Creator
Licentie:
Gesloten
Spatium 3D is een desktop applicatie voor de visualisatie van 3D geografische data.
Het ondersteund de volgende soorten geografische data:
Puntenwolken - Voor bijvoorbeeld lidar datasets (laserscanning).
Vector data - Voor bijvoorbeeld terrein en gebouwen.
Raster data - Voor bijvoorbeeld afbeeldingen zoals luchtfoto's en hoogtekaarten.
Inlezen en visualiseren van lidar en raster data
De applicatie is gratis te downloaden van www.spatium3d.com.
Daar is ook meer informatie te vinden over de functionaliteit van de applicatie.
Ontwikkeling van de applicatie is gestopt nadat de eerste versie is uitgebracht.
De reden hiervoor is dat ik mij meer wil focussen op het opdoen van kennis over achterliggende algoritmen, niet op het ontwikkelen van functionaliteit voor eindgebruikers.
3D indoor path-finding
Periode:
2016
Positie:
TU Delft
Programmeertaal:
Python
Bibliotheken:
VTK
Ontwikkelomgeving:
ParaView
Licentie:
Open
Voor mijn afstuderen van de opleiding Geomatics heb ik een nieuwe path-finding methode ontwikkeld. Deze methode vindt de kortste route door een indoor omgeving. De indoor omgeving moet hiervoor gerepresenteerd zijn als een voxel model.
De path-finding methode ondersteund verschillende typen actor. Deze actoren kunnen verschillen in grootte (breedte en hoogte) en manier van voortbewegen (lopen, rijden of vliegen).
De methode werkt volgens een viertal stappen.
1. Navigeerbare ruimte limiteren
Het wordt model aangepast om de afmetingen van de actor in rekening te nemen. Een buffer wordt aan de geometrie toegevoegd om de navigeerbare ruimte te verkleinen.
Doorsnede van model met en zonder buffer.
2. Semantisch labellen
Het model wordt semantisch gelabeld. De volgende semantische klassen worden daarbij toegekend: vloer, trap en obstakel.
Semantische labels in het model (blauw = vloer, rood = trap, geel = obstakel).
3. Graaf herleiden
De navigeerbare ruimte wordt opgedeeld in cellen en hiervan wordt een graaf herleid.
Grafen (rood) herleid van model.
4. Korste route vinden
4. De korste route wordt gevonden in de graaf en de route wordt verfijnd in het oorspronkelijke model.
Berekende routes.
De implementatie van de path-finding methode is te vinden op GitHub en de bijhorende thesis op de TU Delft repository.
Photogrammetric Point Cloud Inspector
Periode:
Maart - November 2016
Positie:
Spatiality V.O.F.
Programmeertaal:
C++, Python
Bibliotheken:
Qt, VTK
Ontwikkelomgeving:
Qt Creator
Licentie:
Gesloten
Photogrammetric Point Cloud Inspector is een applicatie ter inspectie van gebouwen en andere constructies op basis van een beschikbare fotogrammetrische puntenwolk en diens bijhorende foto's. De puntenwolk en fotoposities worden gevisualiseerd in een 3D weergave terwijl gerelateerde foto's worden weergegeven in een 2D weergave. De relatie tussen de 3D puntenwolk en de 2D foto's is bekend wat het mogelijk maakt om bewerkingen uit te voeren in zowel de puntenwolk als in de foto's. Onder deze bewerkingen vallen onder andere het meten van afstanden/hoeken en het aanbrengen van notities.
Deze applicatie is ontwikkeld door Spatiality V.O.F. in opdracht van Skeye B.V. Spatiality V.O.F. is een eigen bedrijf van mij en twee mede ex-studenten: Matthijs Kastelijns en Anna-Maria Ntarladima.
Bouwpub 3D
Periode:
September - November 2015
Positie:
TU Delft
Programmeertaal:
Python
Bibliotheken:
VTK
Ontwikkelomgeving:
Notepad++
Licentie:
Gesloten
De Bouwpub is een gebouw op de TU Delft campus dat deel uit maakt van de faculteit Bouwkunde. Tijdens het synthesis project van de opleiding MSc Geomatics hebben wij hiervan een puntenwolk gegenereerd op basis van 1000 foto's door photogrammetry toe te passen. Hierna hebben wij een applicatie ontwikkeld die de relaties tussen de foto's en de puntenwolk duidelijk maakt door middel van 2D en 3D visualisatie.
Dit project omvatte drie fasen: aquisitie, verwerking en toepassing.
Tijdens de acquisitiefase hebben we vanuit een hoogwerker de foto's genomen. Hierbij legden we de GPS-positie en oriëntatie van de camera vast met behulp van een Android aplicatie die we hiervoor ontwikkeld hadden. Een hoogwerker moest gebruikt worden omdat de Nederlandse wet het niet toestaat om binnen de bebouwde kom te vliegen met een drone. Daarnaast hebben we een tiental ijkpunten ingemeten met behulp van DGPS en een tachymeter.
Tijdens de verwerkingsfase hebben een puntenwolk gegenereerd op basis van de foto's. Hierna hebben we de puntenwolk gegeorefereerd met behulp van de ijkpunten. De uiteindelijke puntenwolk bevat iets meer dan 100 miljoen punten.
Tijdens de toepassingsfase hebben we een applicatie ontwikkeld die de puntenwolk en bijhorende foto's op een intuitive manier visualiseert. De puntenwolk en fotoposities worden gevisualiseerd in een 3D weergave terwijl gerelateerde foto's worden weergegeven in een 2D weergave. In de 3D weergave is het mogelijk fotoposities en punten te selecteren. Geselecteerde foto's worden in de 2D weergave getoond en geselecteerde punten worden hierin aangegeven als een roze stip.
Dit project heb ik toendertijd uitgevoerd samen met 4 mede studenten: Matthijs Kastelijns, Jan ten Kate, Anna-Maria Ntarladima en Pieter Soffers.
Text2Map
Periode:
Augustus 2015 - Januari 2016
Positie:
CGI Nederland
Programmeertaal:
Java
Bibliotheken:
Swing, OpenNLP
Ontwikkelomgeving:
Eclipse
Licentie:
Gesloten
Text2Map is een applicatie die in staat om plaatsbepalingen te herkennen in Nederlandse teksten en deze om te zetten naar geografische coördinaten. De applicatie werkt volgens een serie van 8 stappen. In deze stappen wordt onder andere machine learning toegepast voor het herkennen van plaatsbepalingen.
Deze applicatie heb ik ontwikkeld tijdens mijn stage bij CGI Nederland.
Partyagenda - Harder Styles 2.0
Periode:
2014
Positie:
Eigen initiatief
Programmeertaal:
Java, PHP (back-end)
Bibliotheken:
Android SDK
Ontwikkelomgeving:
Eclipse
Licentie:
Apache License 2.0
Partytagenda - Harder Styles 2.0 is een app voor Android 4.0.3 en hoger. Deze app biedt een overzicht van alle populaire feesten binnen de harder styles.
De app toont een lijst van de aankomende feesten en biedt de mogelijkheid om te zoeken op artiest, muziekgenre of plaatsnaam. De gebruiker kan zijn favoriete feesten toevoegen aan zijn persoonlijke agenda.
Van ieder feest wordt gedetailleerde informatie weergegeven waaronder de line-up, locatie en prijs. Ook is het mogelijk om video's te bekijken zoals de trailer of aftermovies van vorige edities. Vanuit de app wordt doorgelinkt naar andere websites wat de gebruikker in staat stelt om de social media kanalen te volgen, een busreis te boeken of kaarten te kopen.
De app was enkele jaren gratis te downloaden van Google Play, maar is sinds januari 2017 niet meer beschikbaar. Het project is stopgezet. De broncode van deze app is nu vrij te verkrijgen en is te vinden op GitHub.
Augmented Reality
Periode:
2013
Positie:
HU, TNO
Programmeertaal:
C++, C#
Bibliotheken:
OpenSceneGraph, ALVAR, WPF
Ontwikkelomgeving:
Visual Studio
Licentie:
Gesloten
Tijdens mijn afstuderen van de opleiding Technische Informatica heb ik een tablet-applicatie ontwikkeld die augmented reality realiseert boven een touch table. Dit maakt het mogelijk om gesimuleerde entitieiten van de touch table te visualiseren in 3D. Door de 2D weergave van de touch table en 3D weergave van de tablet-applicatie te combineren krijgt de gebruiker een goed ruimtelijk inzicht.
Simulatie van enkele vliegende en rijdende legervoertuigen.
Visualisatie van vliegtuigen boven Nederland afkomstig van een flight tracker.
Om augmented reality te kunnen realiseren is het van belang dat de positie en oriëntatie van de camera bekend zijn. Hiervoor worden zwart-wit markers gebruikt waarvan de posities bekend zijn. Daarnaast is het van belang om de virtuele coördinaten van de kaart en de gesimuleerde objecten te weten. Hiervoor communcieert de tablet-applicatie met de touch table.
Den Haag.
Partyagenda - Harder Styles 1.0
Periode:
Zomer 2012
Positie:
Eigen initiatief
Programmeertaal:
Java, PHP (back-end)
Bibliotheken:
Android SDK
Ontwikkelomgeving:
Eclipse
Licentie:
Gesloten
Partyagenda - Harder Styles 1.0 is een app voor Android 2.3 en hoger. Deze app biedt een overzicht van alle populaire feesten binnen de harder styles.
De app toont een lijst van de aankomende feesten en weergeeft van ieder feest gedetailleerde informatie waaronder de line-up, locatie en prijs. Ook is het mogelijk om video's te bekijken zoals de trailer en aftermovies van vorige edities. Vanuit de app wordt doorgelinkt naar andere websites wat de gebruikker in staat stelt om de social media kanalen te volgen, een busreis te boeken of kaarten te kopen.
De app is opgevolgd door versie 2.0 in 2014. Versie 2.0 voegt een zoekfunctie, persoonlijke agenda en kaartweergave toe. Daarnaast heeft versie 2.0 een moderner uiterlijk.