Hikar... OpenStreetMap Android augmented reality for walkers

Hikar screenshot

Web app now available!

(19-09-2020) Hikar is now available as a prototype AR.js based web application. Initial work has been done on this already, and in Europe and Turkey it will show OSM ways overlaid on the camera feed as well as virtual signposts. It will not yet show virtual noticeboards, and it is recommended to use Chrome on Android or Safari on iOS as there are a few cross-browser compatibility issues. Source code is available on GitHub. See the video or use it here!

What is Hikar?

Hikar (see gitlab repository) is an augmented reality app for Android (4.2+) which overlays OpenStreetMap roads and footpaths on the device's camera feed. Its aim is to help navigation for walkers/hikers (hence the name) and other outdoor users. For example, imagine you are entering a large field and it's not clear where the exit is. Hikar will overlay the course of the footpath on your phone's camera feed allowing you to navigate across the field. Or, you're at a junction of paths and it's not clear which is the correct way. Again, Hikar will indicate which path is correct by overlaying the course of the path on the camera feed. Or, you're having to make your way across a pathless moor. Again, Hikar will show you the way.

Hikar also uses virtual signposts showing the direction and distance to nearby points of interest (see the screenshots below).

Colour scheme

The colour scheme used for the roads and paths is:

Using Hikar

The current version, 0.3.1, is available on Google Play. Data will then be downloaded from the server (or from the device storage; once downloaded, data is cached on the device). If the download fails (e.g. no network connection), it will try again shortly. You can also pre-download data for a certain area before you go out (to avoid relying on poor network connectivity in the countryside); to do this select the "Download data at a given location" menu option and enter the latitude and longitude of where you are going. An area a little over 5kmx5km containing this latitude and longitude will be downloaded.

Hikar will automatically work out the horizontal field of view of your camera on Android 5.0+ devices. However if this is inaccurate, or you wish to zoom in to view the signposts, you may change it by pinching the screen in and out. The new field of view will appear on the display.

Screenshots (from Oct 2018)

These were taken in October 2018 using an early snapshot of Hikar 0.2.

Changes for version 0.3

Version 0.3 was released on September 19th, 2019 and contains these new features:

Videos (old)

These were taken early September 2013 with a very early version; further work has been done since so it may not look exactly like this.

Issues

Do please note that Hikar is a research project, so I have focused on developing the AR features rather than making a really nice UI. Also do please note these issues:

Coverage

Version 0.3 covers the whole of Europe, plus Turkey.

Detail on how it works (briefly)

Hikar uses the Android location and sensor APIs to obtain the location and orientation of the device, then loads OSM data (as GeoJSON, produced from a PostGIS database) and height data (the Mapzen Terrarium elevation data set, now available via Amazon S3). The data is then cached on the device to avoid network access next time you're in that area. The height data is used to position the OSM data in 3D, e.g. overlay a footpath on the slope of a hill so that it appears correctly. The sensor API is used to obtain an orientation matrix which is then used with OpenGL to display the OSM data overlaid on the device's camera feed.

Any questions, please contact me (nickw1 on GitHub).

Privacy policy

Hikar

Hikar uses the camera to show the real world on the phone screen. It does NOT use the camera for any privacy-violating actions such as taking unwanted pictures of yourself or your surroundings. No camera images are stored on the device or uploaded to a remote server.

Hikar also tracks the device's location as this is necessary for the correct footpaths to be overlaid on your current camera feed. Again, personally-identifiable location data is not sent to the server or stored anywhere else. The current latitude and longitude is sent to the Freemap server for the purposes of finding the correct OpenStreetMap data for your current location only.

OpenTrail

OpenTrail uses GPS to locate the user. Maps and points of interest are downloaded from the Hikar server. User GPS data is not logged in a way which can be personally identified.