Computing Applications

Better GPS Software Through ­User Feedback

Ruben Ortega

I obsessively use GPS (Global Positioning System) technologies for my personal navigation (Google Maps on my cell phone, Google Latitude, In-car navigation), and health tracking (a Garmin Forerunner 305 watch for running, and a Garmin Edge 305 for biking). As an aficionado and avid user, I appreciate the utility and the compact form factors, but they all seem to lack the human behavior feedback loop that would make them brilliant from merely useful. As I have argued that search engines have become smarter by mining human feedback loops.  The same type of observation of both individual and aggregate human behavior could also be applied to navigation software. 

A way to exploit individual human behavior would be to simply detect the difference when I am running around a running track vs running through my neighborhood. My running loops are fairly repetitive and can be easily mapped to well-known running loops or running tracks. By correlating my runs and mapping them to known running tracks, or simply detecting whether I have just completed a 1/4 mile loop that looks like a running track oval, the software on the device should easily predict I will likely complete another oval. This one simple change would allow me to analyze my "laps" versus having to pre-configure all the settings on the device.
A way to exploit aggregate human behaviors emerged while I was driving down an interstate. I was looking for a coffee shop, but I didn't want to waste too much time getting the coffee.  In this situation the software should understand that my search for "Starbucks" should be ahead of me and on the same side of the highway so I could get on and off the interstate easily. Confirmation that a navigation suggestion was good is simply to watch the user and see which "Starbucks" I went to after the suggestion was made. By observing my behavior and the aggregate of other users of the system, you could easily determine that people are unwilling to backtrack or even cross the highway, despite finding another coffee shop that is closer by distance but less convenient to my direction of travel.  The aggregate behavior could be exploited to learn that searches for "coffee" or "Starbucks" rely heavily on convenience to navigate. The aggregate behavior would also indicate that the tolerance for backtracking will increase if I am searching for "hospital", "fire station", or "auto mechanic". 
These are just two examples of where mining human behavior and creating simple feedback loops would turn good suggestions to great suggestions. As with search engines, the initial steps will be to take individual human behaviors and opinions to make navigation recommendations. Once those individual patterns are captured and analyzed, creating aggregate analysis will lead to more relevant and accurate navigation results.

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More