190 likes | 390 Views
Mobile Navigation With SVG. SVG Open 2005. Christian Schmitt. Contents. Introduction Contents Indoor positioning systems Pathfinding + Map generator Map viewer + navigation Demo conclusion. Indoor Positioning Technologies Overview. Infrared (IR) Wireless LAN (WLAN)
E N D
Mobile Navigation With SVG SVG Open 2005 Christian Schmitt
Contents • Introduction • Contents • Indoor positioning systems • Pathfinding + Map generator • Map viewer + navigation • Demo • conclusion
Indoor Positioning Technologies Overview • Infrared (IR) • Wireless LAN (WLAN) • Ultra-wide band (UWB) • Hybrid solution
Infrared Principle/Features • IR beacons sending a specific code. • Directed connection. • Range: 80-300 cm • Accuracy: see range Advantages • Universal • Inexpensive • Basic technology Disadvantages • Line of sight required • Does not scale very well • Maintenance costs
WLAN Principle/Features • Fingerprinting based on signal strength measurements • Accuracy: 3-7 meters Pros • Use of existing WLAN infrastructure • Most PDAs have WiFi. WiFi tags • Easy to setup • Large area covered Contras • High power consumption of WLAN card • Poor update rate • Calibration step
Ultra Wide Band Features • No multipath distortion • Time Difference of Arrival, Angle of Arrival • Accuracy: 15cm Pros • Accuracy • Good update rate Contras • Special hardware • Complex Setup
Our hybrid solution WLAN from Ekahau Inc • Coverage: whole floor • Accuracy: 3 meters UWB from Ubisense • Coverage: single room • Accuracy: 20 cm IR from guideID and Eyeled • Coverage: few emitters in front of pictures
Pathfinding • Introduction • Contents • Indoor positioning systems • Pathfinding + map creation • Map viewer + navigation • Demo • conclusion
SVG Map generation Problem: the same SVG map will not render on all platforms Solution: create a common semantic description of the map together with transformation rules specific to each platform Implementation • DTD suitable for room plans • User Interface to define a new map • XSLT transformation to output SVG • A XSLT file for each target platform
The A* algorithm implementation A* algorithm • Is a graph search algorithm that finds a shortest path from a given initial node to a given goal node • Uses an heuristic to direct the search • Cost function is the distance between two nodes Implementation • Route computation on client (Windows Mobile 2003) • Implemented using STL library • Graph stored as text file
Map viewer • Introduction • Contents • Indoor positioning systems • Pathfinding + helper tools • Map viewer + navigation • Demo • conclusion
Viewer functionalities • Zoom in/out, panning • Display of the current position • Selection of a destination and display of the optimal route • Animations of objects • Support for information browsing on the map
On the search for perfection • First step: • Personal Java application rendering raster bitmap • Drawbacks: • Raster bitmap: not scalable, high footprint • Java: weak user interface, waste of system resources, no access to hardware resources • Next step: • Native C++ application rendering SVG. • Which SVG viewer to use ?
Which SVG viewer? Only two native SVG viewers available for Windows Mobile-based PDAs: eSVG and BitFlash eSVG • eSVG 1.6 license purchased in Mai 2003 • Performance issues • Latest version with .NET support BitFlash • BitFlash SDK license purchased in Spring 2004 • Fast rendering and good interaction capabilities
Using BitFlash SDK Usage guidelines • Create player instance, load document • Communication with the player via commands and callback functions, DOM API • Only one thread should access the player at the same time Example • Zooming in: BFZoomEvent zoomData; zoomData.fpFactor = 0x7FFF;//0xcccc; // 1.5 in 16.16 fixed point zoomData.iCenterX = (BF_INT16)point.x; zoomData.iCenterY = (BF_INT16)point.y; int dwWait=WaitForSingleObject(hSVGPlayerSemaphore,INFINITE); CheckStatus(BFprocessCommand( pPlayer, BF_COMMAND_VIEW_ZOOM, &zoomData )); CheckStatus(BFprocessCommand( pPlayer, BF_COMMAND_VIEW_REDRAW, 0 )); ReleaseSemaphore(hSVGPlayerSemaphore,1,NULL);
Integration of positioning technologies Ekahau/Ubisense • Server: Middleware server connecting to Ekahau and Ubisense Server, keeping position information up-to-date and delivering position data to clients • Client: Location Thread connects to server, parses messages and refreshes buddy position on map IR • IR thread is listening on IR port (serial) • IR code found => trigger animation Issues • Refresh rate (only Orinoco cards provide good results) • Integration
Demo Demo
Conclusion Positioning • Appropriate combination of positioning systems needed to achieve best tradeoff between quality of service and cost • Indoor navigation is still a very challenging research topic SVG • SVG maps are perfect for mobile navigation • Rendering of SVG maps no longer too slow Future work • Better navigation : audio output and personalized routes • Seemless integration of positioning systems • Tests on Symbian and .NET