Determining indoor location based on Wi-Fi signal strength is easy enough if you know precisely where the access points are located, but gathering that information across a wide area is time-consuming.
What, though, if you could offer an indoor location service while crowdsourcing the information needed to provide it? Two companies exhibiting at Mobile World Congress, InLocoMedia and Sensewhere, are doing just that -- but with quite different business models.
InLocoMedia, from Recife, Brazil, provides a proximity-based messaging service to local app developers and advertisers in return for expanding its mapping database, while Edinburgh-based Sensewhere provides its indoor location service royalty-free to its first client and major investor, Chinese Internet portal Tencent.
They offer their services through SDKs that app developers can integrate into their apps, and take a similar technical approach to the process of determining location.
It's easy enough for apps to determine a phone's location outdoors using GPS signals, but those signals are lost the moment a phone enters a building.
At that point, an app built with an SDK from InLocoMedia or Sensewhere can start using the phone's gyroscope and accelerometer to calculate its position based on how far and in which direction the phone has moved since the last known GPS fix, a navigation process known as dead reckoning. As it does so, it also notes the identity and signal strength of nearby Wi-Fi access points, and transmits that information, along with its calculated position, to a server for logging in a database.
InLocoMedia's SDK "fingerprints" the Wi-Fi signals and also the magnetic field strength registered by the phone's compass sensor with every step the accelerometers detect, said COO Alan Gomes.
Dead reckoning only works for a few minutes at a time, said Sensewhere's vice-president of business development J. Blake Bullock: The real and calculated positions gradually diverge as the output of the cheap sensors used in phones drifts.
If an area has already been surveyed at least once, though, an app using one of the SDKs doesn't need to rely on dead reckoning alone: It can compare the strength of the Wi-Fi signals it detects with those previously observed, and refine the calculation of the phone's position by a process similar to triangulation.
Calculating location from Wi-Fi signals is nothing new: Mobile operating systems can already determine their location to within tens of meters using databases of Wi-Fi access points maintained by Google and Skyhook.
More precise location services based on Wi-Fi triangulation have been around for years, too. One such was Stanford-based startup WiFiSlam, which demonstrated its system in 2011 and was then acquired by Apple in 2013.
The limitation of earlier approaches, though, is that they required someone to map all the Wi-Fi access points with some precision before they can be used. Those using Bluetooth beacons have a similar drawback, with the added disadvantage that people need to activate Bluetooth on their phones in order to use them, while they probably already have Wi-Fi on to reduce cellular data costs whenever possible.
Sensewhere and InLocoMedia get around the initial mapping problem by crowdsourcing the survey information. They use GPS fixes at the entrances of buildings as the starting points for their dead-reckoning calculations, gradually refining the accuracy and coverage of their databases using observed Wi-Fi signals from hundreds of visits, until the locations of nearby access points are determined sufficiently accurately that they too can be used as jumping-off points for further indoor exploration.
There's little impact on battery life, the companies say.
Gomes reckons InLocoMedia's system consumes an extra 0.5 to 1 percent of a phone's battery capacity per day, as the operating system is already gathering most of the sensor data on which it relies. "If you activate the GPS for five minutes, it's going to drain more than that," he said.
As for Sensewhere, its SDK uses 50 percent less power than Android's own location service, and is more accurate, according to Bullock. To reduce power consumption and data costs, a phone running Sensewhere's SDK doesn't contact the server on each step. "We send down a small snapshot of the database so it knows the location of Wi-Fi access points in the vicinity. If you walk 10 minutes, it might not need an update," Bullock said.
But what about the privacy implications of tracking a phone's position all day?
Sensewhere only stores the Wi-Fi signal measurements and associated locations on its servers, and does not record identifying information from the phone, Bullock said. The company's business model is simply to provide app developers with the location SDK and service, and any further association between the phone's location and its owner's identity is up to them. Its first customer, Tencent invested millions in the company in return for a royalty-free license to use Sensewhere's SDK in its mapping service.
InLocoMedia's business model of delivering location-based advertising might raise doubts about privacy, but app developers don't get to track users, Gomes said. The mapping database associates no identifying information with the location fingerprints, he said. As for the apps that share in the revenue from InLocoMedia's location-based advertising, they only know that a messaging event has been triggered, he said.
Advertisers may be able to infer a little more: "They might want to target ads at people who have recently been in a particular aisle in a grocery store," Gomes said. That's something InLocoMedia can help with but, he said, the company won't let advertisers target clusters of fewer than 5,000 users, to avoid the risk that messaging becomes too personal.
In addition, phone users can opt out of ad tracking altogether using their mobile operating system's existing settings, he said.