Skip to main content
← Projects

Indoor Tracking

2016

An indoor positioning system built from off-the-shelf products

aws · bluetooth · javascript · python · raspberry-pi

Indoor Tracking hero

Problem

In 2016, data-driven design and computational analysis were hot topics in architectural design; people were obsessed with using data to inform design decisions. But how do we end up gathering all this data without buying an expensive 3rd party system?

As part of my honours year, two other students and I were brought on to research methods of gathering human movement data. We worked with Arup and BVN to research ways and hypotheses for methods using off-the-shelf hardware. My role was to design, develop & implement the indoor positioning system.

Decisions and Approach

After researching existing studies and methods, we decided that Bluetooth Low Energy (BLE) was the best fit for our study: BLE is an affordable technology and is well documented. The system relies on two types of devices:

  • Beacons are small, low-powered tags that constantly broadcast UUIDs to be worn by participants. and
  • Agents are Raspberry Pi devices that scan for the beacon signals and upload the ID and signal strength. They are strategically placed around the office to cover an optimal floor space for signal measurements.
System diagram: a beacon broadcasts over Bluetooth to a Raspberry Pi agent, which forwards readings to a live database and a time-series store, feeding a floor-plan visualisation with occupancy dots

The RPI will send the scanned information (UUID, current date & time, agent’s identifier, signal strength) to a database where we can then run queries to estimate the users’ proximity:

  • Query as a collective or by using a beacon’s UUID,
  • Use the recorded signal strength to determine an estimated position from the agent that recorded the signal, and
  • The timestamp of the log determines the time at which the user or people are.

With the above metrics, we can use this to analyse how a collective engages with a space: how they travel, which areas are hotspots and at what time, etc.

A laser-etched acrylic beacon tag reading "Alexander Lee · WHERE-IN SPACE" with a QR code, sitting in a 3D printer

The parts of a single agent laid out flat: a clear acrylic tube, 3D-printed end caps, a Raspberry Pi labelled "ACE", a sensor board, an SD card, and jumper wires

Timelapse of days checking the wifi uptime of each RPI device

Reflections

Looking back, I was underprepared; I had no idea how difficult designing and maintaining numerous devices was going to be. I learned a lot about developing and managing an IT system, including troubleshooting & debugging, software update rollouts and database management.

This was one of the most stressful and difficult learning experiences, but I don’t have any regrets about the project because it was the first step in starting my passion for software development. My time on the project finished before we could spend time analysing the data, but I have been informed that the information gathered from the experiment was used to influence the design of the existing office.

An assembly line of agents on an office desk: over a dozen clear acrylic tubes with Raspberry Pis inside, power plugs attached, being put together by two team members

A Raspberry Pi agent named "Oscar" in a clear enclosure, mounted by an office window with the city skyline behind it

Student research at UNSW, in collaboration with Arup and BVN.