SubPos:How it works
When a user enters an area littered with one or more SubPos Nodes, they are able to determine their position with a simple smartphone application. Some smartphone applications could include helping users find their parking spot, navigating unfamiliar buildings or determining whether your metro station is soon approaching. It could even be used as a GPS relay for embedded systems.
SubPos Nodes or existing Wi-Fi access points are used to transmit encoded information in a standard Wi-Fi beacon frame which is then used for position trilateration. The Nodes, while not necessary as part of the SubPos standard, provide a pre-calibrated device that is easy to configure and can be dotted about with ease.
Unlike traditional Wi-Fi location techniques which map out an area of Wi-Fi signal strengths while storing it in a database, SubPos Nodes operate much like GPS satellites. In this case though, instead of using precise timing (for time of flight) to calculate distance between a transmitter and receiver (GPS), SubPos uses coded transmitter information as well as the client's received signal strength to determine distance from this known point (coded information).
The transmitter and Node position information is coded into the Wi-Fi beacon frame that is sent by a Node, using a technique called beacon stuffing. This allows a client to use this calculated distance from the transmitter and receiver, as well as the known position of the Nodes to easily determine its position. All of this is performed without the need for data connectivity as it's determined purely with the information received from visible Nodes.
Additional analysis techniques, such as averaging (median filters), frequency (spread spectrum hopping and wider bandwidth modes e.g. wireless n/ac) and spacial diversity as well as accurate beacon timing, are also being combined together to resolve even greater accuracy.
The positioning information of the access points/Nodes is coded into the SSID as follows:
To make use of this passive positioning information, SubPos also implements an easy to use Smartphone API, that allows application developers to integrate SubPos into their application designs, which provides easy to use indoor location services for their users.
To integrate SubPos into an existing Android positioning application, all you need to do is initialise the API like so:
public class yourClass extends Activity { SubPos subpos; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
//Create new SubPos service subpos = new SubPos(this); //"this" passes the activity's context }
Then to get your position, call:
SubPosPosition position = subpos.getPosition(); //returns null if position is not calculated
Future work will include the development of a SubPos receiver that can be connected to autonomous indoor drones.
The Nodes themselves also provide an intuitive and pre-calibrated beacon frame source that can be set up with ease via a UART/Serial connection. The serial interface allows users to enter the Node position information, environment details and application details. Once configured, the device automatically does the rest: