Archive for the ‘Location (LBS)’ Category

introduction to location based services (and not just GPS)

Monday, April 26th, 2010

Entirely aside from my tactical land navigation and GPS training efforts, I have been working on or with location based services for mobiles since around 1999. I have this pretty well baked into my brain, but not everyone does, and so it's a topic I had to expound about with some of the new guys lately.

Being complex enough (and changing over time) that I actually messed up part of it off the top of my head the other day, it's certainly too much for everyone to just listen to, so I decided it was a good thing to sit and write in some detail. I'll also be posting it to the D4M mobile design wiki when done, and will presumably remember to update it periodically.

Edit: This has been modified and posted to the wiki at this location. So, if you disagree (for example, because you are reading this years later) go there and edit the page to make it more accurate and up to date.

The most important thing is to never, ever, ever conflate "GPS" with "location." After that, it's best to dive straight into the individual technologies. I like to break down location services by (approximately) least to most precise:

Cell

Mobile telephony is based on communications and handoff between cells, each of which is (generally) controlled by a single tower with multiple antennas. The tower location is well-known, and its ID is attached to the CDR, so it can be detected.

This is a fallback, when other things are not available. Better technologies are generally not available when roaming, and the data is not or cannot (technology or politics) shared at more precision with your home network or because you are from another operator.

Precision will vary widely by the size of the cell, and there is no (good, universally-accepted) method to determine and communicate precision and accuracy. My rule of thumb – and something similar is generally used by devices  – is a circle 3000 yds (m) across.

Sector

Recall that each tower has multiple antennas. Those three (or four, rarely anything else, depends on the carrier)  antennas point different directions. Each of those is an independent mobile radio sector; just like signals are handed off between cells, they are handed off between sectors, and the data is generally known to the handset and can sometimes be shared with services or providers. However, since the direction the sector faces is really only known to the company that installed it, and the network operator, they are the only ones that can use the data well.

Precision will vary widely by the size of the cell, and by the antennas used, the number on the cell, the down-angle, and so on. There are some semi-useful ways of determining precision and accuracy for a single read, but they are not univerally implemented and there is no way to send the data to the information providers (e.g. the map program). My rule of thumb – and something similar is generally used by devices  – is a circle 1200 yds (m) across, co-located with the radio centroid of the sector. Yes, sectors are not circles, but it's also hard to communicate shape and orientation, so this works.

Triangulation

Generally, triangulation is the practice of determining the location of a point by measuring the angle and/or distance from several known locations. More points give more precision. It can get more complex when you try to find points in 3D space, but all mobile triangulation systems I have known assume the earth is locally perfectly flat, and simply find the location on the geoid. Methods of triangulating get really complex and vary by network type and equipment available; multilateration and signal interpolation are some of those. The math can get pretty harrowing.

Precision varies mostly by the number of sectors being used, the distance between them and so on. Though I cannot recall what it is, I believe there is a method of communicating to services employing it an approximation of the precision available. In any remotely built-up area, where it most often has enough sectors to work, a circle 50 yds (m) across is typical. I have seen 12 yd precision, with good accuracy.

GPS Telemetry

The Global Positioning System consists of a ground based control system, a series of satellites and any number of anonymous receivers. So, reading that alone dismisses many misconceptions; its one-way, it's a system, and the signal is from satellites and has nothing to do with mobile networks.

Telemetry means data sent from a remote (usually mobile) site like a rocket, back to base. Here, it means the device figures out where it is by listening to the satellites, then tells the network or website or whatever where it is.

Ignoring SA GPS can give precision to... well, fractions of an inch at least. But those are big, car-expensive devices used for special surveying and so on. Portable, hand-held receivers like those in mobile handsets can generally be assumed to give precision of 20-50 ft.

There are other systems, like GalileoGLONASS, and COMPASS but none of these are really fully-active, and there are few or no receivers in mobiles as yet. In theory, eventually, using multiple unrelated systems will give better accuracy yet, and give better coverage when in touchy situations like in dense cities.

WAAS

GPS uses radios, and the atmosphere and earth are imperfect and mess with them. WAAS is a satellite based augmentation system based in North America (others exist in the rest of the world, but are less well-established) that sends additional signals via another set of satellites to allow GPS receivers to adjust for those inaccuracies. I know of no mobile phones that have a WAAS receiver, but it's there.

AGPS

Assisted GPS requires the use of mobile networks, so only works when in data communication range. The cell tower has its own GPS (which many use anyway to get precise time codes), probably with a WAAS receiver. This provides a bit more precision, assures it of more accuracy, but mostly helps speed up cold or warm starts. Briefly, for a GPS to work, the receiver has to download data about all the satellites before it can calculate the position. AGPS caches this info for the phone, and sends over just the relevant bits, cutting minutes to a second or two. Which helps.

This is a reason you may not see WAAS, and might see some benefits from other GNSS (say, GLONASS) before they bother getting receivers into the handsets.

These generally give precision, even in dense areas and on the move of 10 ft or better. I have seen 2 ft indicated precision and have no reason to doubt it.

AGPS is not generally selectable as a separate service; when the user chooses to turn on or off "GPS," and has a network connection (and an AGPS compliant phone, etc.) they get the advantages of AGPS.

WLANs & PANs

Local networks like WiFi and Bluetooth are not exactly more precise, but I stuck them at the bottom of this list because they are local, and can add another layer of location, so could increase precision. They can also be used instead of other technologies when there is no GPS signal, or a bad mobile signal so triangulation cannot be used.

Both of these currently use the "cell" (or network identifier) and triangulation methods described above. There are no sectors, and no universally-adopted AGPS system that I am aware of. Naturally, a handset getting good GPS data can send that telemetry to anyone over any network, including WiFi, but that's not what we're talking about here.

They are both relatively more rare, and often are supported by third party software or individual services, and are not universally implemented on the handset. I have no reliable numbers on the real-world precision, but tests of WiFi triangulation alone have gone down to inches. On the other hand, poor network identification has led to placing users on the wrong continent. There's room to improve here.

Ask

People often know where they are. If you cannot get any location, or there's a reason they might want to over-ride it (even as simple as the data is bad) let them enter a location. If you do this, allow lots of methods. Only accepting ZIP or postal code is not useful for e.g. travellers, who do not generally know the ZIP where they are.



All the above is pretty well known by network engineers, and chip-makers and various low-level handset software guys. But it is often missed a bit by various software implementations (and certainly by marketing). All too often GPS is navigation, such that turning it off kills all location services.

Happily, Android seems pretty good about this, and just gives poorer precision when you turn the GPS off, but it does allow location services to work.

Which brings up a good point. Precision vs. accuracy is often also messed up, whether its confusing the two terms or just not communicating well. A quick primer: precision is the number of decimal places you measure something to; accuracy is how correct it is. The less accurate you think your measurement is, the less precisely you should report it.

Location precision examples
This image sums up what should be happening, but for more ranting about this start with this older post on GPS.

Following straight on from precision and accuracy is appropriateness of information. I believe that the biggest problem with turn-by-turn directions is that they assume perfect location precision, and say "you have arrived" instead of "it's the big, white building on the north side of the street," because maybe it's 30 yards behind you, or 50 in front.

The other problem with driving directions is bad data. If your map might be wrong, or imprecise or inaccurate (and they all might be) then think about this when planning the interaction. Don't assume your data is perfect, and give contextually-helpful information. Let users note problems, and do something with the problem reports.

Speaking of data (though it rambles, this thing just writes itself), where does that map data come from? Well, it depends. On my handheld GPS unit, most in-car units and some handsets now, it's in the device. But too many people (including designers) are so used to mobile phone maps they think GPS is AGPS, and only works when you can get network location, network maps, etc. Wrong. And a bad assumption. Why don't people want to know where they are when coverage is spotty or non-existent? Well, if your service or app has that use case, carry through on it.

And one last hint is to not confuse location with navigation. Turn-by-turn directions is not the end-all be-all of LBS. I don't know what is, and neither do you. Location is an enabling technology (or set of them, I guess) and if there even is a killer app, we haven't seen it yet. More likely, it's going to be like simply being on the internet, and will become so baked into our mobile experiences that it will become invisible to everyday people.

While I am sure the commoditization of location service annoys operators and handset makers, it's going to be a a good thing for the end user.



So, to wrap up with a simple guide to design and development of location services, remember that:

  • Every phone is location enabled. GPS or not, working or not, there's some location available. And if you are giving something like a weather report or local news, a few thousand yards is practically pinpoint precision.
  • All the available location technologies must be addressed when designing your application or service. Don't shut off the service because the GPS is off.
  • Precision and accuracy must be understood by designers, and correctly exploited by the product. When the GPS is off, or doing badly, show that circle so it's clear that we don't know /exactly/ where you are. Say "turn right in about 1/4 mile" and so on.
  • If you work for a carrier, exploiting the network like this should be a snap. If not, your devices or software may or may not be able to be talk to the phone enough, and you might need to negotiate with the carrier or find a third party provider.
  • Consider what to store locally. Does the handset really need to be on the network, or should you give some functionality when the connection is bad or unavailable?
  • Though I didn't mention it above, look useful without acting creepy. And don't just follow the letter of the law. Be careful with your user's data, share only what is needed, and store only what you really have to. Often, these last two are answered as "nothing." If that is the decision, make sure it's implemented as such, and no one gets lazy with the development or doesn't get the memo.

user review: Droid vs Garmin for bicycle navigation

Saturday, November 14th, 2009

My father is a geek like me, though has been budget-conscious for my whole life. A few months ago, he started asking me a wide variety of questions of different types of devices he could use to fill his various needs, including bicycling and genealogical research in an area with highly spotty coverage. Numerous email exchanges later, we both decided on getting a Motorola Droid. He sent over this commentary on how it works for bicycling, partially to help another person in his device decision. I find the analysis fascinating. I hope you do, too.

I’ve experimented with using the various GPS Receiver functions of my new Motorola Droid toy. In short the Droid functions about as well as my Garmin eTrex in determining location but the Droid has limited navigation functionality when it is outside 3G coverage. Additionally the battery drain rate is high.

It appears that the Droid uses GPS satellites to determine its location for navigation type functions although it uses cell tower and WiFi data in conjunction with some apps.

Satellite acquisition and initial location determination

When I first turn on my Garmin it takes a couple of minutes to acquire satellites and calculate the current location. The unit “knows” where it was when it was turned off and has a catalog of satellites that it should see but it takes time to acquire those satellites and gather enough information to calculate location.

At home when I turn on Google Maps on the Droid it first shows a location based on cell tower data (I’m away from any known WiFi hotspots). It then quickly (less than 30 sec) zeros in on my house location. The impression is that the Maps App is much quicker in getting to the initial location than the eTrex. Ed. note: This is most likely due to the cell tower assistance.

I turned on the satellite view mode on Google Maps which shows aerial photography of my area. The blue dot showing my calculated location indicated that I was in the guest/sewing room rather than at my computer in the living room.

Tracking a bicycle ride

One of the apps tracks your movements. I assume that this uses GPS data and is not dependent on being connected to the network. I used this on a short ride that I believe includes areas that are out of coverage. I had the Droid in a handlebar bag and the Garmin mounted on the handlebar. On a 20 mile ride both units calculated the same moving time, distance and differed slightly on the altitude and total climb calculations.

I put the calculated tracks into Google Earth so that I could compare them side by side. Both tracks had errors. When compared to the rectified aerial photo I was all over the road and off the road for much of my ride. The Garmin seems to do a little better but that might be because it is set in a mode to attempt to follow the road. The errors were worse when I was in the trees. During one part of the ride the Droid seemed to have a consistent bias to the north of the road.

If I really cared about the accuracy I’d do some more tests with the Garmin set to ignore map information.

Navigating

I turned the navigation mode on for a 70 mile car trip home yesterday. The trip included a significant amount of time out of 3G coverage. I didn’t observe the navigation continuously but checked a couple of times when we were out of coverage. The screen was white, showed no map data, and showed that the app was doing a rerouting.

So as I expected you can only navigate when you are in range of the towers.

When it is navigating the default is to have the screen backlight on continuously. The Droid actually feels warm after awhile.

Also yesterday I unplugged the Droid around 6:30 AM. We did a round trip through low and no signal areas, I made a couple of phone calls, I also connected to a WiFi network and viewed various web sites, for about 2 1/2 hours I had the navigation mode in use. The GPS and WiFi receivers were on for the whole day. When I got home around 6:30 PM the phone was begging for a recharge.

Conclusion

No surprises. With the current apps the Droid will not replace my stand-alone GPSR. If they offer a capability to store map data and calculate routes on the device then maybe it could replace it. Since my intended uses include camping based bicycling trips I have recharging issues that would limit how I would use the Droid. For a trip that doesn’t include back country and has regular access to a USB power source it would probably be OK.

I am going to explore various off the grid recharging options such as solar cells and a new generator that runs off of body motion.

there’s location, and then there’s location

Friday, August 28th, 2009

A few hours after we posted our location as context post last week, Twitter announced the same. With very different approaches.

I encourage you to go check out the Mashable discussion; many commenters are worried about opting out. Ignoring the problem of carelessly reading the announcement (maybe they just read the title?), there is a lot of concern about automatic tracking of location.

Few people, I believe, will want to live-stream to the world their location. Yes, of course many people will. But the over-30 woman typical of Twitter and Facebook? Probably not. Will she want to use location for their updates? Probably.

Location accuracy, precision, and comprehension

A quick primer: precision is the number of decimal places you measure something to; accuracy is how correct it is. The less accurate you think your measurement is, the less precise you should report it.

Location precision examples

Read the blog post where this image comes from, and Steven complains about precision and accuracy at more length.

If you are a Verizon Blackberry user in a particular part of the Kansas City metro, your location is reported as what we believe is the actual tower location. A single tower in a warehouse area, not a triangulation of visible towers. Nevertheless, location in Google Latitude is reported as a single point. Very precise. Great for weather and maybe traffic; terrible for directions and geocaching. Location information is valuable at different accuracies, as long as we don't pretend it's precise.

Regardless of accuracy or precision, the usability of latitude/longitude information is terrible. It's useless to most people without a decoder, such as Google Maps. Nobody knows what 38.949984,-95.236038 is; many won't be able to tell you what hemisphere it is in. Actually, even Google doesn't know what it is, and provides only an address range. (Answer: approximately where my office desk is.)

So better than lat/long is an address (1901 Massachusetts St.) or a place name (Little Springs Design headquarters.) The preferred one depends on context. Sometimes absolute position is irrelevant, and only relative position is relevant (8 blocks south of downtown, or 3 blocks east of me.)

And many times absolute location is irrelevant, and only type or name of the location is relevant. And this is quite interesting for those commenters above. I don't mind telling the world I'm in a coffee shop, or in Starbucks, or a grocery store. Immediate family will know what city I'm in, and likely what physical place I'm in. Coworkers will know city and type of establishment. Family and friends far away will know type of establishment and maybe city. Strangers will know type of establishment only. We leverage the knowledge inside our network to provide privacy.

Some uses of location

These are largely social focused use.

Location as context

Location provides useful context to many status updates. Not geolocation; latitude and longitude require the reader to take several steps to understand the information being transmitted, and few will bother. Our discussion last week was for location as context; take a look at the Design For Mobile wiki page for explicit logic.

Many times location such as "Kansas City" provides absolutely no context. An update such as "Bad coffee day" is unexplained with a city as a context; it's very relevant with Starbucks or the office as a context. Which Starbucks? Which office? Nobody cares.

Latitude/longitude does not work for context. Too many steps for just better understanding context. Maybe some day there will be a single, easy-to-use solution, but I don't see anything likely on the horizon.

Automatic location does not work well for context. Which location? Henry's? Coffee Shop? Downtown? Lawrence? Kansas? One of those will likely be the appropriate context; the others won't make sense. And how does the machine decide? There's some theory, but I don't see it being easy and automatic.

Location for discovery

Based on the state of the blogosphere, many people believe that status updates to aid discovery will be big. They envision an augmented reality (or just a map) feed to see what is going on in a particular place. This could be useful, "It's dead in here. I'm heading out." could help somebody decide whether to enter an establishment.

I'm not sure this will be huge. Sure, it will be nice... in certain limited environments. Who is saying that it's dead? If it's my friend, I care. If it's a stranger, someone needs to build a whole other level of scarily-intrusive collaborative filtering to determine if you care. By myself, I've no idea whether it's relevant. And my friend is unlikely to be in that establishment. (I'd sure like to know if they are!)

Location as status

Work, home, kids' soccer, undefined. What if that was the entire list of locations? If the tool of your choice detected if you were in one of these, and set your status accordingly?

In this scenario, "undefined" is very interesting. This lack of data provides information, but only to people close to me. Office workers know I'm not at the office. My partner knows, based on the time of day and other information, that I am on my way home.

The inspiration for this was actually an automatic location system proposed at the Design For Mobile 2008 conference by Jared Benson of Punchcut. In particular, he noted that the human aspects of location comprehension.

Foursquare is attempting something like this, though its users are sometimes providing just city information and sometimes street address. But as best I can tell, the user must manually check in and out of locations. Somebody please advise how it actually works (the web site doesn't say.) Brightkite seems to work in much the same way, and I probably missed some more.

Location for...

Most of this post has focused on Facebook, Twitter, and social uses of location. However, there is a lot more available. Here are 47 location services ideas.

location based gaming and the next unexpected thing

Friday, April 10th, 2009
Design For Mobile logo

Here's proof that the Design for Mobile conference is ahead of the curve. Last year one of the more interesting speakers was Swedish researcher Liselott Brunnberg. She showed off her Backseat Playground project, a game based on location, gesture (direction sensing, really) and using no output to the user but audio. And it worked; children are deeply engaged long into the test. Who doesn't want that for long drives?

Imagine my surprise and pleasure at this essay on the same concept by Jaako Kaidesoja, the Director of Games at Nokia. They are launching a social, location sensitive game and are therefore now pushing the whole concept to the developer community as well as presumably to consumers.

For more on Liselott's project check out an interview Barbara did with her, the summary of last year's session or the TII page on the project.

A user sweeps the 'directional microphone' about, seeking enemy agents in TII's Backseat Playground project

As we say a lot, GPS and gesture and almost everything else built into mobile devices are just enabling technologies. These sorta of locative media projects are exactly the sort of end uses that we can expect to emerge from this. I continue to be excited about the future, but now everyone else, go out and get excited also! I am almost disappointed in Jaako's essay, because it seems late to me.

There's no telling what the world will be like, except that it will be different and new. I'd love to see more encouragement from folks like Nokia to develop that next unpredictable thing.


There's still time to sign up for this year's Design for Mobile Conference. And if you can't make it to Lawrence in a week, or your training budget has been cut away, we've added inexpensive virtual sessions (sorry, not for the workshops) as well.

someone tell me how this is supposed to work

Wednesday, April 1st, 2009

We’ve talked a lot about Nokia Point & Find; it’s a terrific example of how existing sensors can be used with networked data to provide contextually-relevant information without real (e.g. typing) user input.

And now it’s in beta. So first things this morning I install it onto my N95 8GB – their suggested device no less – and find out that it currently only really works for movie posters. So when I go for my run I make a point of heading to the movie theater (4 mile away). There’s probably a whole aside here about how I have not incidentally passed a movie poster in years, what with the multiplexes ripping theaters out of downtown walking districts, but whatever.

What should I be clicking on?

It’s indeed a beta. Not like Google’s eternal-beta thing, but it has bugs, uses astonishing amounts of memory, etc. And that’s fine, but… I still don’t get it. Either it’s just straight up broken or there’s something terribly wrong with the design. I guess it could be me, so if you got it to work, tell me exactly how, as their help documentation is a marketing brochure, and doesn’t say how to “just point and get information…”

The short version is that I pointed at several perfectly valid-looking posters, in different orientations, distances, lighting conditions. And nothing happened. Pressing OK jumped to this text-entry search for no clear reason.

It does indeed have some (UI) design issues. It’s not very Nokia, frankly. Odd softkey labels, a non-standard network selector, and the whole first run is baffling, with this signon to what thing, that ends up being a registration screen after all. Back is also both non-Nokia, and terrible, where it takes you to neutral states of the previous screen, instead of the literal back you’d expect.

I have great hopes, but sadly, am still waiting for a lot of these cool integrated apps to appear.

one pitfall (or two) of always-aware mobiles

Tuesday, December 9th, 2008
I like to harp a lot about how a favorite feature of mobiles (and a thing that frustrates me about iPhone) is that they must be multitasking, and let a lot of services run in the background. And everyone around here likes concepts with awareness, like location-centric alarms – which need to run in the background in one way or another – to work.

And, I found some software that does neat stuff like this. I actually installed a bunch of location related software in the last few days and well... it's early. Some of the apps more or less don't work at all, and the rest are still a bit too hard to understand or use every day, or for less nerdy folks. But the future is clear and it'll be great soon enough. I have a half-dozen personal use cases for location based alarms.

Always-on GPS burning down my battery

A few days later I started noticing the N95s battery wouldn't last a whole day. Besides all the installing and playing , I have been doing a lot of testing for [a piece of client software] that I designed, so it was not surprising to burn down the battery. But then there was a weekend and it kept doing it.

Eventually, it occurred to me that it was one of those GPS items. I finally discovered how to turn off the always-on location awareness in the background, and it's fine. Yup, the GPS uses 3x as much power as usual.


Now, you could go ahead and take this to mean that it's not a good idea after all to run awareness software, or to run anything in the background (so the iPhone is right!), but I say these are totally surmountable instead, and addressing it head on is the only way to improve things. There are actually two problems, which both need (and probably already have) solutions:

  1. Awareness   I installed them and am pretty aware of this technology, and it took me several days to figure out why my battery was dying. The problem is that there is no way to tell what is running in the background. The paradigm of always-on services is not different from current desktops, but the battery-powered, restricted processor and memory environment makes this more important on mobiles. The S60s running-apps list is something I have learned to rely on; I want to see a similar list of background processes, and a single way to turn them off, both for now, and forever.
  2. Power management   Newer dedicated GPS devices can last almost 24 hours of on time. Sure, it has no radio and data processing, but they are using less exciting batteries, a large screen and can do this while running several "applications" at once (not to mention they get better reception than phones, and are spending a lot more power on DSP and other signal eeking). Running GPS-centric nav software will run down my phone in around 4 hours. Clearly there's a problem here of power management.

    Now, the awareness products I was using went about twice as long, so there's something to be said for background process efficiency, but i suspect additional cheats would be easy. What about using tower ID (and maybe accelerometers) and only go turn on the GPS when the user is overtly moving? Then only poll the GPS for position only as needed. If nowhere near a location with an alarm, and moving slowly, check every minute or two. Faster and closer, check more often.

I can't wait to see even more stuff like this, and hope no one else gets scared off by all these challenges.