Project Objectives Today’s GPS technology allow calculating and producing accurate positioning and tracking of the movement path in open environments.

Slides:



Advertisements
Similar presentations
CS0004: Introduction to Programming Visual Studio 2010 and Controls.
Advertisements

Slide Ruler. ? X 5" On today’s menu...  What happened with Gravity  Noise  The tool today  Fundamental Limitations  Magical Christmas Land  (Where.
Mobile Handset Sensors. Outline Overview GPS Other Sensors 2.
Copyright Xsens Technologies B.V. 2011; Company confidential Estimating foot parameters Jesper Lansink Rotgerink Supervisors: Dr. ir. Daniel Roetenberg.
Use it Free: Instantly Knowing Your Phone Attitude Pengfei Zhou*, Mo Li Nanyang Technological University Guobin (Jacky) Shen Microsoft Research.
Use it Free: Instantly Knowing Your Phone Attitude Pengfei Zhou*, Mo Li Nanyang Technological University Guobin (Jacky) Shen Microsoft Research.
Computer Networks Group Universität Paderborn Ad hoc and Sensor Networks Chapter 9: Localization & positioning Holger Karl.
The Bioloid Robot Project Presenters: Michael Gouzenfeld Alexey Serafimov Supervisor: Ido Cohen Winter Department of Electrical Engineering.
AIR NAVIGATION Part 3 The 1 in 60 rule.
Projectile Motion.
Copyright © 2009 Pearson Education, Inc. PHY093 – Lecture 2b Motion with Constant Acceleration 2 Dimensions 1.
AIR NAVIGATION Part 3 The 1 in 60 rule.
Did You See Bob?: Human Localization using Mobile Phones Constandache, et. al. Presentation by: Akie Hashimoto, Ashley Chou.
AIR NAVIGATION Part 7 Magnetic Fields and The Compass.
Acquiring traces from random walks Project final presentation By: Yaniv Sabo Aviad Hasnis Supervisor: Daniel Vainsencher.
Power Consumption Awareness by using a Pedometer Denis Kosovich Lior Kuchinski Asaf Bar Power Consumption Awareness by using.
Introduction What is this ? What is this ? This project is a part of a scientific research in machine learning, whose objective is to develop a system,
Free Fall Lecture 3.
Chapter 2: Algorithm Discovery and Design
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Ruolin Fan, Silas Lam, Emanuel Lin, Oleksandr Artemenkoⱡ, Mario Gerla
Shanshan Chen, Christopher L. Cunningham, John Lach UVA Center for Wireless Health University of Virginia BSN, 2011 Extracting Spatio-Temporal Information.
RF Drive Test (Testing) Engr. Mehran Mamonai. Introduction Every good RF design, after its implantation should be evaluated. There are few ways to do.
Project Objectives o Developing android application which turns standard cellular phone into a tracking device that is capable to estimate the current.
Unit 8 POE Ballistic Device
Presented by: Z.G. Huang May 04, 2011 Did You See Bob? Human Localization using Mobile Phones Romit Roy Choudhury Duke University Durham, NC, USA Ionut.
Abstract Design Considerations and Future Plans In this project we focus on integrating sensors into a small electrical vehicle to enable it to navigate.
MOTION.
© 2014 Pearson Education, Inc. This work is protected by United States copyright laws and is provided solely for the use of instructors in teaching their.
Smartphone Overview iPhone 4 By Anthony Poland 6 Nov 2014.
Indoor Localization Carick Wienke Advisor: Dr. Nicholas Kirsch University of New Hampshire ECE 791H Using a Modern Smartphone.
Notes and Explanations
EMS Survey instruments The How, What and When Presented by James Tweedie, GeoMEM Ltd.
Acceleration Based Pedometer
Click icon to add picture SmartSpaghetti: Accurate and Robust Tracking of Human's Location Mostafa Uddin, Ajay Gupta, Kurt Maly, and Tamer Nadeem.
Sensing self motion Key points: Why robots need self-sensing Sensors for proprioception in biological systems in robot systems Position sensing Velocity.
APT: Accurate Outdoor Pedestrian Tracking with Smartphones TsungYun
Adding Vectors, Rules When two vectors are added, the sum is independent of the order of the addition. This is the Commutative Law of Addition.
Indoor Localization Using a Modern Smartphone Carick Wienke Advisor: Dr. Nicholas Kirsch Although indoor localization is an important tool for a wide range.
Programming with Alice Computing Institute for K-12 Teachers Summer 2011 Workshop.
BIPEDAL LOCOMOTION Prima Parte Antonio D'Angelo.
Autonomous Robot Project Lauren Mitchell Ashley Francis.
Numerical Methods Applications of Loops: The power of MATLAB Mathematics + Coding 1.
Sérgio Ronaldo Barros dos Santos (ITA-Brazil)
An Introduction to Programming and Algorithms. Course Objectives A basic understanding of engineering problem solving process. A basic understanding of.
1. Also known as rotation Definition: Occurs when a body moves on a circular path about a central line so that all parts of the body move through the.
Development of Airborne Potassium Magnetometer Dr. Ivan Hrvoic, Ph.D., P.Eng. President, GEM Advanced Magnetometers Exploration 2007 & KEGS.
3-7 Projectile Motion A projectile is an object moving in two dimensions under the influence of Earth's gravity; its path is a parabola.
No Need to War-Drive: Unsupervised Indoor Localization Presented by Fei Dou & Xia Xiao Authors: He Wang, Souvik Sen, Ahmed Elgohary, ect. Published in:
Chapter 3 Kinematics in Two Dimensions; Vectors. Units of Chapter 3 Projectile Motion Solving Problems Involving Projectile Motion Projectile Motion Is.
Submitted by: Giorgio Tabarani, Christian Galinski Supervised by: Amir Geva CIS and ISL Laboratory, Technion.
Inertial Navigation System Overview – Mechanization Equation
Graphing.
Games Development 2 Entity Update & Rendering CO3301 Week 2, Part 1.
COMP 417 – Jan 12 th, 2006 Guest Lecturer: David Meger Topic: Camera Networks for Robot Localization.
Dead Reckoning with Smart Phone Sensors for Emergency Rooms Ravi Pitapurapu, Ajay Gupta, Kurt Maly, Tameer Nadeem, Ramesh Govindarajulu, Sandip Godambe,
In chapter 1, we talked about parametric equations. Parametric equations can be used to describe motion that is not a function. If f and g have derivatives.
Dead Reckoning and Wind
Turning a Mobile Device into a Mouse in the Air
COMP091 – Operating Systems 1 Memory Management. Memory Management Terms Physical address –Actual address as seen by memory unit Logical address –Address.
Chapter Projectile Motion 6.1.
GSU Indoor Navigation Senior Project Fall Semester 2013 Michael W Tucker.
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012, Chapter 12: Slide 1 Chapter 12 Path Planning.
CHAPTER 8 Sensors and Camera. Chapter objectives: Understand Motion Sensors, Environmental Sensors and Positional Sensors Learn how to acquire measurement.
Chapter Projectile Motion 6.1.
Chapter Projectile Motion 6.1.
Mobile Handset Sensors
Dead Reckoning, a location tracking app for Android™ smartphones Nisarg Patel Mentored by Adam Schofield and Michael Caporellie Introduction Results (cont.)
Inertial Measurement Unit (IMU) Basics
RocketSat VII Construction of an Attitude Determination System for a Sounding Rocket COSGC Symposium April 9, 2011.
Presentation transcript:

Project Objectives Today’s GPS technology allow calculating and producing accurate positioning and tracking of the movement path in open environments. On the other hand … Inside a building or any dense urban environment, GPS has communication problems and it can’t help. So, the goals of this project was to: Create android application which turns standard cellular phone into an accurate pedestrian tracking device, based only on low accuracy inertial sensors such as present on most of the modern cellular phones. Implement recording server for gathering positions data from multiple devices running the tracking application described above, and display the gathered information graphically.

Demonstration

Experiment results o The experiments were made on Samsung Nexus 4 device and consisted of different walk scenarios in intention to test the aspects of the algorithm and its accuracy. o The average distance from the real (known) path was calculated using the following algorithm: PointToBrokenLineDistance (p – point, L – set of line segments): 1.minDistance <- Infinity 2.For each segment s in L: minDistance <- min(distance of p from s, minDistance) 3.PointToBrokenLineDistance <- minDistance PointsToProkenLineAverageDistance (P – set of points, L – set of line segments): 1.distanceSum <- 0 2.For each point p in P: distanceSum <- distanceSum + PointToBrokenLineDistance(p,L) 3.PointsToBrokenLineAverageDistance <- distanceSum / |P|

Straight line test Distance relative error (%) Distance absolute error (m) Measured distance (m) Actual distance (m) Steps relative error (%) Steps absolute error Measured number of steps Actual number of steps Walk speed Test number slow slow slow average average average average fast fast fast10

Right angles path test Final position relative error (%) Final position absolute error (m) Average distance from real path (m) Path length (m) Test number Real Test 1 Test 2 Test 3 Test 4 Test 5

Curved path test Final position relative error (%) Final position absolute error (m) Average distance from real path (m) Path length (m) Test number Real Test 1 Test 2 Test 3 Test 4 Test 5

How it works? o Most of the modern cellular phones have accelerometer, gyroscope and magnetometer sensors. For this reason we choose to use those three sensors in our implementation. o The naive implementation would be calculation of second degree integral on the accelerometer data in three axes, which theoretically should produce current position relatively to the starting point. o Because of the low accuracy of the sensors and the high accelerations when walkers foot hits the ground, such strategy produces totally wrong results. o In our implementation the position calculation is done by a cyclic iterative algorithm, which is divided into three components: 1.Step detection algorithm: uses accelerations data and signals step ending combined with its length estimation. 2.Direction calculation algorithm: uses magnetometer and gyroscope sensors in order to produce current direction. 3.Position calculation algorithm: uses the two previous algorithms and combines their calculations into an accurate relative to the starting point position. o The algorithm is executed on the device and constantly produces position updates based on the last known position, it’s state and current sensors’ reading.

Algorithm data flow Position Algorithm Position Algorithm Step Detection Algorithm Step Detection Algorithm Direction Calculation Algorithm Direction Calculation Algorithm Accelerations Magnetometer & Gyroscope Data Step Indications & Length Direction Sensors Data Current Position Installation Angles Sensor Errors

Step detection algorithm o This algorithm is based on “Pedometer” application, developed on previous semester project, but it found to be too specific to be used as is: This application has been written and tested on a single device and didn’t work as expected on our device (nexus 4) as a result of sensor differences – almost a half of the steps haven’t been detected. It’s algorithm uses only current step acceleration data for step length calculation, so there is a difference in step length between right and left steps (this is negligible when walking in straight line, but has high influence on the results for our purposes). o Step detection is done by acceleration pattern identification on the vertical and horizontal axes (forward and up) using acceleration borders. o We found that installing the device on one side of the body creates bigger acceleration on this side’s leg step in comparison to the other leg step, so we change the borders dynamically and separately for even and odd steps (image on the next slide). o Step length is calculated using ((accelerationDiff) 0.25 ) * K formula which is an approximation to 2*h / tan(a), when accelerationDiff is a moving average on the difference between the maximum and the minimum accelerations during the step.

Step Detection Algorithm dynamic limits example

Direction calculation algorithm o This algorithm’s goal is to produce accurate heading indication in different environments including those which have magnetic disturbances. o Combining between magnetometer and the gyroscope sensors in a way that avoids each sensor’s weaknesses and maximizing each sensor’s advantages, is a quite hard mission: The magnetometer is easily affected by magnetic disturbances in the environment, but it’s error is local and it isn’t accumulated. The gyroscope values can be integrated in order to receive angular change, but it is accurate only for short time as it’s error is accumulated. o The solution is to use the magnetometer data when it is “clean” enough and to calculate an integral on the gyroscope readings when there are too many magnetic disturbances. o The question is: How do we know if the magnetometer reading values represent the true earth magnetic field or maybe a local magnetic field (disturbance)?

Disturbance detection o One way to answer this question that we found, is to compare the measured magnetic field power (magnetic vector size) to the known earth’s magnetic field power. If the measured magnetic power is too strong or too weak, there are magnetic disturbances. o This is a quite good way to examine magnetic measurements, but there are still many scenarios on which this method won’t detect a disturbed magnetic field. For example, another field in the opposed direction with double power will show as correct. What else can we do? o Another constant (in time) magnetic property is the magnetic vector inertial pitch (the angle between this vector and the horizon), so we can calculate the difference in the pitch angle between the measured values and the correct (known) pitch. o We combined both methods into one single accurate method for detecting magnetic interferences in the received magnetic values.

Position calculation algorithm o Till now we have step ending indication, last step length and the current direction, so in order to calculate the change in position we need to decide which angle best describes the step direction. o The azimuth at the end of the step found to be the most accurate expression of the step direction: Step direction is the azimuth of the vector connecting the leg behind to the leg in front when they both on the ground, this is the direction when a leg strikes the ground. Angular average has also been tried, and was less accurate.

Position correction o We already seen that the magnetometer accuracy can suffer from various local magnetic fields and in that case was decided to use gyroscope data instead. o The weakness of the direction calculation using gyroscope, is that it doesn’t rely on any absolute data, so its error tend to accumulate. o When the user exits the magnetic interference area, there will be some error in the calculated heading, that can be found by the difference between the integrated (gyroscope) angle and the real (magnetic) angle. We will call it θ. o Indeed the direction calculation algorithm corrects it’s calculation and from now on it will return the true direction, but assuming gyroscope linear error accumulation, there is already an error in the position. o We proposed a method of correcting this possible position error on the run, at the point of it’s detection.

Position correction

Calibration o Calibration of the sensors need to be done to ensure accurate results: There is a constant error in the acceleration sensors. We need to know the parameters of the real earth’s magnetic field in the area in order to decide when there is an error in the measurements. o Android OS performs hard iron calibration (inner magnetic fields) for the magnetometer sensor on the flight. The device should be rotated for a while in three axes to ensure correct results. o For the other parameters, we have created calibration mode on the application level.

System structure overview o The system is composed of multiple android devices running the Pedotracker application, sending position message to the recording server. o The position message contains the step counter, initial location and the current position relative to that location. o The communication between the devices and the server is made above TCP protocol. Recording server

Pedotracker Android application design ObjectFactory Activities MainLogic SensorSampler RecordingServer CommDevice UCTracking UCCalibration PositionCalculationAlgorithm StepDetectionAlgorithm DirectionCalculationAlgorithm

Pedotracker Android application o The SensorSampler runs on the main thread and when is activated, waits for sensor updates and collects the provided data. Its purpose is to provide random access to the most recent sensors data. o The MainLogic runs on the logic thread with 50 Hz cycle, collects triggers from the user interface, executes the UCTracking and the UCCalibration cyclic logic and updates interface if needed. o UCTracking is responsible for the algorithm operation by supplying it with the needed data from all the various sources (preferences, calibration data and sensors data), calling its cycle logic and sending and/or saving its calculation results. o RecordingServerCommDevice is executed on the communication thread and responsible for the connection maintenance and for sending messages to the server.

Recording server design MultiServer ClientsCollector XYSeries ConnectedClient XYSeries TracksChart

Recording server o XYSeries is a list of points that represents a track in two axes chart. o TracksChart is a track drawer which is synchronized with adding and removing points to the XYSeries that it works with. The TracksChart draws multiple plots on one single chart. o The MultiServer runs on the main thread and when is activated, waits for new clients (Android device) which try to connect to the server, and builds new sockets for communicating with each one of them. Also the MultiServer holds the TracksChart. o The ConnectedClient represents one client (one Android device) and holds all the points (the full track) that the device visited in it’s XYSeries. At each new received point, the TracksChart is updated to show the changes in the main chart.

Summary o The purpose of this project was to study the feasibility of implementing an accurate tracking device based only on low accuracy inertial sensors such as present on most of the modern cellular phones. o It was shown that such implementation can be made and can have acceptable accuracy of the position calculation results. o Further development option is to add a third axis (height) to the position algorithm. This can be very useful addition to the application for its intended environment - indoor. o Possible derivatives of this project, can use the developed algorithm for tracking, mapping and navigation. o This project exposed us to new fields of knowledge and experience, from learning to develop for android platform and understanding its API levels, physics of forces and body rotations, algorithmic calculations and more. We are pleased and satisfied from the project and its results.