Exams and Other, Dissertation Related, Distractions

Posted on February 20, 2010


It’s been rather busy recently (hence the lack of posts) but exams are over now so hopefully I can get back to posting more frequently even though my dissertation and project will be taking over. Speaking of which I haven’t really described my project yet so here goes…

Since the iPhone and Android came out and increased the popularity and functionality of smartphones augmented reality has been a buzzword for apps. Layar and Wikitude are the two main examples and both are available on these platforms and provide location aware information overlayed onto the view from a smartphones camera. However, despite redefining the field the larger seller of smartphones is still Nokia who use the Symbian operating system and, as far as I could find, there were no applications providing similar functionality for these phones.

Basic Idea

Therefore I decided my project would be to create an application that provides similar functionality for Symbian. This gave me a couple of potential implementation languages: C/C++, Java or the more recently ported Python using the PyS60 project.  As the newer implementation I expected a few bugs or missing features but felt that the low entrance level provided by the implementation would outweigh the more robust and feature-full languages. This is despite me never having used Python before whereas most of the programming modules I’ve taken were in Java and one module used C but if there’s no challenge where’s the fun?

To further simplify the initial problem I decided that the app shouldn’t rely on having a data connection all of the time (although obviously it would require a GPS connection to find the current location). This could still be extended later to allow online updating if the connection was present and more closely resemble the other apps.

Progress so far

This was all decided (more or less) back in October so what have I been doing since? Well, I currently have a PyS60 app that can read in points of interest from an xml file (using the sax parser), display the view from the camera on screen, connect to a GPS satellite, write the location information to the screen over the camera and then compare the current location with those stored from the file.

So far so good but it hasn’t all been plain sailing (surprise surprise). The PyS60 implementation for the built-in compass doesn’t currently work. Slight issue when it comes to restricting nearby points of interest based on what would be visible on screen so I will (hopefully) have to create Python hooks into the C++ Symbian API to provide access to the compass but I’m not sure on the viability of this (or more precisely, whether I’ll be able to do it in the time remaining). As a back up plan I may try to find the direction based on the current location and the previous location. Although this will clearly have flaws it will hopefully be better than nothing if it is needed.

Other things still left to implement are:

  • find nearby points based on distances and not arbitrary differences in longitude and latitude that will change the distance based on location
  • make the nearby points available on the screen rather than appearing in a popup note
  • create a web interface for editing data files for users to create and share their own information

Just a few things to be doing then, not to mention the actual 10,000 word report to go with it but it should be good fun and it’s progressing steadily. If you have any questions, comments, ideas or the like feel free to contact me or leave a comment.