Indoor Positioning System: How We Worked on Solving Geolocation Challenge

November 22nd, 2016

Internet of Things / Mobile // Severyn

Solving the challenge of Indoor Positioning System

Several months ago, we got a client who wanted to get an iOS / Android apps for a large shopping mall that specializes in selling bicycles.

The main feature of these apps was to be the ability to show the person his / her exact location inside the building with an area of 11,000 square meters (118,400 square feet).

As you may know, standard positioning methods, such as GPS, don’t work as well inside buildings, so we went into research mode, looking for possible solutions in the direction of Indoors Positioning System.

Indoor Positioning System (IPS) is a system to locate objects or people inside buildings and closed constructions where satellite navigation system is not really available. (Wikipedia)

Here are some of the reasons why it’s hard to pin down the location indoors:

  • Multibeam transmission (when signals reflect from walls and other obstacles)
  • Lack of direct visibility
  • Scattering of the signal as well as its weakening
  • Increased requirements for the accuracy

At the same time, positioning and navigation within the building can be easier due to:

  • Small areas to cover
  • Stable environmental conditions (temperature, humidity, air movement)
  • Available infrastructure for electrical power, access to the Internet as well as points for installation
  • Relatively low speed of moving objects

The most common solution, in this case, is usually to use indoor positioning Bluetooth-beacons. The way these devices work is based on trilateration method, i.e. finding the exact location from the distance to the nearest three points the coordinates are known.

Beacons are used as those points with known coordinates. In theory, it all looks quite simple and reliable. Each of the beacons sends a signal with a particular frequency and own ID.The mobile device, in turn, receives the signal and gets:

  1. The beacon’s coordinates from its ID

  2. The distance to the beacon based on the signal strength caught by the mobile device

Having done our research, we decided to choose one of the most famous companies in the beacon field - Estimote - as the manufacturer of the beacons.

We talked to the experts from this company and decided that their product fits our needs perfectly. We were even offered to use the ready-made solution called Estimote Indoor Location. The advantage of this, of course, would be that we would be getting a complete positioning system.

Unfortunately, turned out that Estimote Indoor Location was developed to work with iOS devices only. As the Estimote specialist explained to us, “Android system is more challenging and specific.” That meant that we would have to develop our own positioning systems.

Oh well.

We decided that beacons would be placed in a grid across the area of the shopping center. Mounted on the ceiling, they would be located at the height of 5 meters (16.4 ft) and the grid cell dimensions would be 8 by 10 meters (26 by 32 ft). Such parameters should be enough to catch the beacon signal and calculate the current position of the person or the object using trilateration.

The Estimote’s SDK was quite comfortable to work with and offered the ability to transform the signal power to distance, without resorting to mathematical calculations.

The trilateration algorithm itself looked like this:

For the places where we did need complex mathematical calculations, we used org.apache.commons.math3 library. Trilateration allows using three or more sources of the signal, which gives more precision. We decided to take advantage of this opportunity and define coordinates using the signals from all the beacons our mobile devices caught.

Once we had the position marker on the map, we began celebrating… 

But it was too early to rejoice.

Somehow, the marker “jumped around” the map in the range of 10-15 meters (32-50 feet) and the source of the error was clearly in the data sent by the beacon.  

To solve the challenge, we decided to visualize signals from beacons on the map and saw that the signal power data was very unstable.

During several seconds that a single beacon would “speak,” it would say that it’s at a distance of 1 meter > 20 meters > 10 meters, and so on (even if the location of the receiving mobile device would not change). To make matters worse, we sometimes “heard” the beacon that said it was 5 meters from us (when, in fact, it was 30 meters away) and we didn’t “hear” the beacons that were next to us.

We tried to experiment with the signal power and its frequency, but it didn’t help much to improve the result.

We also sought to impose a Kalman filter on the input data. This filter cleared the position’s “jumps,” but the problem with exact location remained. We realized, to our surprise, that even a standard GPS determined a better position that our Indoor Positioning system.

Finally, we turned to consult with the Estimote experts and learned that the challenge of finding out the exact position is much more complicated than we initially thought. You have to take into account the topography and features of the building itself, what material the walls are made of (as well as their throughput), beacon mounting details, third-party radiation (electromagnetic, etc.) and many other factors.

Therefore, to accommodate such a  wide range of influencing components, it is necessary to do a preliminary area scan to calibrate the system for each of the points in the room separately. This is the route the Indoor Positioning System developers took.

While we were looking for the possible solutions, we found out another quite interesting way to get the geolocation problem solved.

It is based on a scan of geomagnetic irregularities of our planet. Each point of the earth’s surface has a particular magnetic radiation, and when you scan the area, you can determine your exact position within this area.

This technology is being actively developed by the staff of the University of Oulu in Finland. The company they founded is called IndoorAtlas.

Meanwhile, our team is currently facing a choice of the further strategy:

  • Find a new turnkey solution that takes abovementioned challenges into account
  • Develop our own solution
  • Use an alternative route like the geomagnetic positioning

How the story will end, we do not yet know. At the same time, we have gained significant experience in the Indoor Positioning area and are now convinced that this is an exciting and promising industry that is currently under active development.

Learn more about our projects or let’s develop your project together!

Author: Severyn

Android Developer and Precision Device Engineer. Severin is interested in new IT technologies such as VR, AR, Machine Learning, and Neural Networks. He loves Ukraine and believes in its bright future!

Tags Native Internet of Things Cross-Platform iBeacon

See all blog


Grossum Startup Guide:
Five Things to Consider Before Web & Mobile Development

Get the Guide