The aim of the project is to implement an indoor localisation system using ultrasounds.
The localisation system shall be able to locate a given cell phone in a 3D space of approximatively 50m * 50m * 20m (lets say the Amphitheatre Thevenin for instance).
The system is composed of :
- emitters who send ultrasound beeps
- a receiver who computes his position thanks to the time difference of arrival of the beeps
Our receiver will be a cell phone implementing an android application. This choice has been made so that the project is easily portable and does not require any additionnal equipment.
We design our own PCB to be rather generic.
They have :
- LEDs and buttons for control
- a H-bridge to connect the tweeter and have an increase power of emission (x4 as compared to a normal connection)
- a XBEE module for radio communication
- USB and a micromatch concerning the interfaces
We also have a codec connected in case we need to record the ambient noise / beeps coming from the other emitters.
In order for the system to work we need to synchronised our emitters.
This is the purpose of the presence of xbee modules.
One of the devices we made will be considered as the master and send synchronisation information to the other emitters. By considering that the time of flight of the radio waves to the different emitters is much smaller than the precision we need for beeping (which is true in reality), all the “slave twitters” are therefore synchronized.
The device we use for reception is a regular cell phone able to run an android application.
Regular micros on modern cell phone sample the sound at 44kHz which is enough to regognize ultrasounds (from 20kHz to 22kHz).
Detecting a pulse
We are curently working on several methods to detect the time of arrival of a pulse. To do that we need to get the energy associated to the 20kHz frequency.
We thought of implementing :
- the Fourier coefficient associated to 20kHz frequency
- a goertzel filter
We shall meet a signal teacher tomorow whose advice will be precious.
To compute its position from the measures of the time difference of arrival, the receiver needs to associate each beep to a tweeter and to know the position of all of them.
The main incertainties in the algorithm is that we don’t know the speed of the ultrasounds (it varies a lot with respect to temerature, humidity, altitude). For instance a 5°C shift results in 3m/s diffenrence in the ultrasound speed.
We are currently using a least square algorithm with some adjustements to be able to find the proper position.