Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


Indoor Positioning System

No description

Hashim Al Sakkaf

on 22 May 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Indoor Positioning System

Group Members
Hashim Nabil AL Sakkaf 1007426
Arifullah Shuaib 1011972
Abdulla Hamoud 1002480
Fouad Farouk 1007628
Indoor Positioning System

Introduction : Literature Review
Hallym University has done a research Wi-Fi based on indoor positioning system.[6]
They are using an algorithm where user location can be estimated by finding nearest possible reference points using Euclidean distance.[6]
They have found that Euclidian distance are more prone to errors specifically when Wi-Fi access points are unstable.
In order, to overcome errors due to Euclidean distance they tried new algorithm and they found out that their system have an average error of 5.5 meters.[6]

Phase : 3
Phase 2: Results
Xbee limitation
Unstable Rssi
Fluctuations in data
Delay in processing data

Phase 1


Calculating RSSI .
“C” code
Assigned Baud rate
Command for serial communication
Command for serial reading
Using pulseln
Command for printing

Introduction : Problem Statement
As we know that the impact of technology is increasing day by day on our daily life, so we are going to design an indoor positioning system where GPS system is not applicable.
We read plenty of research articles, and we decide to build a project based on Xbee as well as on Wi-Fi.
Our system can have different types of applications such as indoor localization, monitoring kids in kinder garden, or monitoring precious things and so on.
In Wi-Fi based system we are going to use a smartphone in order to record data for us after each meter.
Whereas in xbee based system we are using Arduino , Atmega 328 , in order to extract the required information.

Introduction : Motivations
Being able of tracking and monitoring people in indoor areas.
Increasing the security of any indoor place.
As technology impact is increasing day by day, people need to have a system that can be used as a GPS system in indoor areas.
Aiming of having better and reliable system than existing ones.
Aiming of having more accurate system than existing ones.

Dr. Mohammed Assad Ghazal
Dr. Riad Kanan
Supervised by :

Introduction : Literature Review
Kemin Zhou has done a research on indoor positioning system. Their system is based on calculating received signal strength and then change it to distance by the following equation.[7]

Dr Kemin has performed number of tests on his own system such as 7.5 meter, 1 meter , 9 meter and 5 meter in a closed area. He found out that at further distance readings are more accurate and reliable than the closer distances.
They found out that holding xbee in air is affecting results and RSSI values are more unstable than when xbee is on ground.[7]
Gantt Chart
Primary Testing Duration
Testing and Implementation Duration

Phase1 : Design
Tag and Node Circuit Design
We have used Fritzing software ,Xbee data sheet and Atmega 328 data sheet to design our tag and node and to use them in further tests

Phase1 : Implementation
Serial communcation with Atmega 16
We have done an serial communication between Atmega 16 and Raspberry Pi to test the serial communication feature in the Raspberry PI.

Phase1 : Design
Cluster Topology
Which its one Kind of Xbee communication topologies that consist of Coordinator, End Devices and Router
Coordinator: choose from prior to starting network.
Router : scan to find a Coordinator/Router to join
End Device : collects data and controls devices in the network and connected to controllers, and sensors

Xbee Connection Topologies
Point to Point communication
communications connection between two nodes or endpoints
Mesh Communication
each relays data for the network.
All nodes cooperate in the distribution of data in the network.

Phase1 : Design
Raspberry Pi
It is like a mini computer. We are going to use it for serial communication between xbee and raspberry pi.

Breadboard Circuit
After designing The Circuit we have build it as you can see in the Below Which we have connected of both Arduino and XbeeAnd also Rssi Pin from Xbee to pin 4 in the Arduino

Phase1 : Implementation
Serial communcation with Atmega 16
We have done serial communication between Atmega 16 and Raspberry Pi to test the serial communication feature in the Raspberry PI.

Breadboard Circuit
After designing The Circuit we have build it as you can see in the Below Which we have connected of both Arduino and Xbee and also Rssi Pin from Xbee to pin 6 in the Arduino

Phase1 : Results
Phase1 :Results
Raspberry PI Serial Communication with Xbee Results
After conduction many tests on the Rassberry Pi, we found that it can not work as a server as it was not capable of handling and processing multiple serial data in short period of time.

Solution : MATLAB !

End Device
System Breakdown
So we had to search for Alternative Topology so we came up with Mixing up between point to point and Mesh and it worked perfectly .



Phase 2: Results
RSSI results
Results were unstable
Huge amount of fluctuations in data
We start Investigation for instability of data.
Examined distance and RSSI relationships through oscilloscope
Connect one xbee to computer and another to breadboard with oscilloscope.

Phase 2 : Implementation
Single side PCB.
Soldered with required components

Phase 2 : Implementation
Phase 2: Design
Tag and node First PCB Design
Compact and small so it can be used for our tests
Easy to solder and construct.

MATLAB communication with server
Used TCP
Assigned a unique port 2000 to our communication
Set a size for buffer
Used MATLAB command “fofen(t) to open server
Used MATLAB command “fprintf(t) (t, ‘GET ‘)
Used while loop for checking that data has sent
Used command such as fclose, clear.

Phase 2: Results
Sent data from matlab to database successfully.
Used a unique port 2000.
We assigned a column for ID
We are updating values in the ID



Phase 3: Design
Tag and node design
Improved tag and node PCB design.
Less by 1 cm in width

Phase 3: Design
New Wifi fingerprinting algorithm
1- Classifying Stage

3- Eliminating Stages
Eliminating Average = ((3 × S5) + (2 × (S2 + S3 + S4)) + S1)/10.
Any value more than twice the minimum value + 0.01 will be deleted.
Determining Average =((3 × S3) + (2 × S2) + S1 + S4 + S5)/8.
Any value more than twice the minimum value + 0.025 will be deleted.

Phase 3: Results
We found that decreasing the distance between the Xbee nodes results in increasing the percentage of error.

New Wifi fingerprinting algorithm

We found that some RSSI ranges have better positioning accuracy than others.

2- Shrinking Stage
In this stage all the rows in each of the five matrices will be summed together to form five one-column matrices (S1 to S5)
Phase 3: Design
Final tag and node PCB circuit:

Phase 3: Implementation
4- Selection Stage
At this point, we will have a filtered database from the points which are far from the test point. Then a 5 selection factors will be used which are:
a. The point that contains the average value in the final matrix.
b. The point that contains the average but after deleting any points which
are far by three points from the average. (using Standard Deviation).
c. The point that contains the average but after deleting any points which
are far by two points from the average. (using Standard Deviation).
d. Hallym University RSSI shift mechanism formula. [1]
F. Basic formula done by us that divide each raw of the filtered database
by the test point matrix and choose the most closest point to unity
Finally the point will be determined by selecting the highest point order among the 5 selection factors.

Phase 3: Design

Measuring the pulse width using Hardware Capture feature using the Arduino
We managed to reduce the fluctuations in RSSI by using this pulse measurement technique.

Sample of the Arduino Hardware Capture RSSI measuring code

Sample of our New Wifi Location Estimation
Algorithm MATLAB code

Phase 3: Results
Phase 3: Results
The final test that we conducted using our final Xbee system shows that the average accuracy is 4.1 m which is relatively good compared to our initial results and existing Xbee indoor positioning system.

As we can see from the above table, it is very clear that our column based algorithm resulted in much better readings than the other algorithm. Maximum
distance error reduced by 62.5 %. (From 8m to 3m). Average distance error in algorithm 1 is 4.6 m while it is 1.7 m in our algorithm hence we managed to
reduce the average distance error by 64 %.

Phase 3: Results
The 2 figure below shows the Cumulative Flow Diagram (CDF) graph of Hallym University algorithm and our algorithm.

Conclusion and Future work
We learned more about new components and software programs

1- Xbee

2- Arduino

3- Raspberry Pi

4- Python program

5- Routers

6- XCTU software for Xbee Purposes

7- PCB design Software Programs (Fritzing Software Program and Eagle Software Program)
8- MATLAB Software Program (To do the Trilateration Method and to do some advanced calculations through specified equations)

9- Mobile Applications like the one we used to do the fingerprinting Method for the Wi-Fi part of the design project, and many others.

Conclusion and Future work
Much more smaller and more compact tag design.
Using Different type of XBee because END device mode don't work as expected.
Implementing our Wifi algorithm in Android application.
Improving the accuracy of our algorithm by using multiple Databases and by averaging the RSSI values of each measured point.


Dr. Mohammed Assad Ghazal,Dr. Riad Kanan, Dr.Montasir Qasymah , and Dr. Muhammad Akmal

Engineer Ahmad Sweleh and Engineer Ibrahim

Muhammad Obaidullah and Asim

[1] Digi.(2014)CONNECTDEVICESTOTHECLOUD.[Online]. http://www.digi.com/xbee/?utm_expid=4651060-4.yBY0f5M4R_20K194xMSIMA.0&utm_referrer=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FXBee
[2] Zigbee Alliance. (2013) ZigBee Specification FAQ . [Online]. http://www.zigbee.org/Specifications/ZigBee/FAQ.aspx
[3] Digi. (2014) X-CTU (XCTU) software. [Online]. http://www.digi.com/support/kbase/kbaseresultdetl?id=2125
[4] SparkFun. (2013) XBee Explorer Dongle. [Online]. https://www.sparkfun.com/products/9819
[5] Arduino. (2014) Arduino Uno. [Online]. http://arduino.cc/en/Main/arduinoBoardUno
[6] C.-H. Y. P. Joo-YubLEE, 2013. [Online]. Available: http://onlinepresent.org/proceedings/vol19_2013/23.pdf. [Accessed 5 April 2014].
[7] D. K. Zhou, 29 November 2011. [Online]. Available: http://www.ece.lsu.edu/scalzo/FDR_Final.pdf. [Accessed 22 Feburary 2014].

Phase 2: Design
Measuring the RSSI using software based method (Pulseln Arduino function)
Connecting MATLAB to XBee.
Connecting MATLAB to XAMPP server

Phase 2 : Implementation
We connected MATLAB to Xbee using the following code

We created MySQL database and connected to MATLAB in a way that shows the RSSI values the is sent from the XBee

Tools and Components used
3D printer
Soldering station
PCB printing machine
Measuring meter

Tools and Components used
Capacitors 22picofarad
16 Mega hertz crystal
Power terminal
Pcb ( single and double sides)
Atmega 328 PU
Headers for xbee and atmega 328 PU

Phase 2: Design
Autocad Drawing of lab area
Our own coordinates
Total testing area of 400 meter square
Path loss of 3.3 to 4.1 .

Problem Statement
Literature Review
Used Tools and Components
Used Software
Gantt Chart.
Phase 1
Phase 2
Phase 3
Conclusion and Future Work
Used Software
Frtizing : Used for primary design of the tag and node circuits
Eagle Cad : Used for design the final and the future PCB of the tag and node circuits.
XCT-U : Used to program and control the XBee modules
MATLAB : Used to perform all positioning algorithms ( XBee Trilateration and Wifi fingerprinting location estimation algorithm) as well as to link the XBee with the server.
XAMPP : Used to create the server.
Full transcript