Inertial navigation on android

25
INERTIAL NAVIGATION ON ANDROID Industrial project - Qualcomm Students: Gal Ferrera & Yam Zamir Masters: Constantine Elster & Dan Vardi

description

Inertial navigation on android. Industrial project - Qualcomm S tudents: Gal Ferrera & Yam Zamir Masters: Constantine Elster & Dan Vardi. Objective. Goals . Demo Methodology Implementation and examples Conclusions . content. - PowerPoint PPT Presentation

Transcript of Inertial navigation on android

Page 1: Inertial navigation on android

INERTIAL NAVIGATION ON ANDROID

Industrial project - Qualcomm

Students: Gal Ferrera & Yam ZamirMasters: Constantine Elster & Dan Vardi

Page 2: Inertial navigation on android

CONTENT Objective. Goals. Demo Methodology Implementation and

examples Conclusions.

Page 3: Inertial navigation on android

OBJECTIVE

The need of a device that navigates indoor (in a mall, parking lot, etc..) is obvious.

Currently at the market, there is no good solution for indoor navigation.

The prior project designed a navigator that failed to capture movement while hand held.

Page 4: Inertial navigation on android

GOALS Develop and validate an algorithm that tracks

handheld cellphone movement using only offline phone sensors (no GPS, internet).

Integration of the algorithm to an android application.

Page 5: Inertial navigation on android

DEMO

Page 6: Inertial navigation on android

METHODOLOGY Read related articles Research the full-inertial-navigation solution Build a test plan Analyze previous project solution

Detect failure points Check possible solutions

Propose alternative implementation

Page 7: Inertial navigation on android

BRIEF EXPLANATION

Page 8: Inertial navigation on android

TEST PLAN DESCRIPTION Test recordings description :

four Hand Held measurements of two different individuals two of Gal two of Yam

two Waists Held measures of two different individuals one of Gal one of Yam.

All measurements was committed on the same platform The movement was committed in a direct line on a flat

platform The distance was 42m.

Page 9: Inertial navigation on android

PREVIOUS PROJECT - ANALYSIS The basic workflow of the previous project:

Detect step and estimate it’s size Find direction Produce a vector using movement size and direction

Pedometer Implementation Find vertical and forward axes For every axis, detect the step pattern (there is a use of threshold

on the average line)

Page 10: Inertial navigation on android

PREVIOUS PROJECT - ANALYSIS Failure in step-detection during hand-held movement

there is an assumption that the acceleration amplitude is much higher then the noise amplitude

There is a use of two movement axis instead of a dominant one while step detecting

Suggested solutions Use basic filters (moving average, median on every 5 samples) reduce the average line threshold

Page 11: Inertial navigation on android

PREVIOUS PROJECT - ORIGINAL

1750 1800 1850 1900 1950 2000 2050 2100

-5

0

5

10

15

20Yam, Hand Held, 33 StepsPrevious Project Step Detected Raw Data

Time

Sign

al

Page 12: Inertial navigation on android

PREVIOUS PROJECT – REDUCED THRESHOLD

1750 1800 1850 1900 1950 2000 2050 2100

-5

0

5

10

15

20Yam, Hand Held, 33 Steps

Previous Project Step Detected, Corrected Raw Data

Time

Sign

al

Page 13: Inertial navigation on android

ALTERNATIVE IMPLEMENTATION- BASIC ALGORITHM

Detect vertical acceleration axis Filter the raw data (FFT, Kalman, Wavelet-

meyer) Detect the step pattern Tenderize using known pattern properties

(Time-duration, length, progress, etc.)

Page 14: Inertial navigation on android

ALTERNATIVE IMPLEMENTATION- FFT FLOW

Filter flow: Collect one second data in a buffer. Run on the buffer. Filter frequencies out of [1, 5]Hz. Run on the results. Commit floor to get round numbers

Page 15: Inertial navigation on android

ALTERNATIVE IMPLEMENTATION- FFT DETAILS

Filter parameters: Based on article research, there are 1-5 steps in a second

while walking. As a result, the FFT filters allow frequencies from 1Hz to 5Hz. From the need to lower the filter delay, and still not to lose

the low frequency steps, we set the time window to one second.

For our step pattern matching, we set the signal average to 0.

Page 16: Inertial navigation on android

ALTERNATIVE IMPLEMENTATION- FFT EXAMPLE

2700 2720 2740 2760 2780 2800 2820 2840

-5

0

5

10

15

20Gal, Hand Held, 29 Steps

Filtered FFT Unfiltered Step Detected

Time

Sign

al

Page 17: Inertial navigation on android

ALTERNATIVE IMPLEMENTATION- KALMAN BACKGROUND

Kalman filter finds the most optimum averaging factor for each consequent state. The equations:

- kalman gain - axis sample - previous estimation

There are a couple of parameters that need to be calibrated A - The estimated factor to the current system. Influent the prediction

calculation Q – The estimated error covariance prediction noise. Influent the prediction

calculation R – The estimated environment noise. Influent the kalman-gain C – The estimated ratio between the kalman estimation to the sample. Influent

the kalman-gain

Page 18: Inertial navigation on android

ALTERNATIVE IMPLEMENTATION- KALMAN FLOW

Filter the sample using kalman Every 50 samples collect an average on the filtered samples (moving

average) If walking occurred (if the acceleration amplitude is “high enough”)

Search for the step pattern (using the filtered the data and the average line that was calculated in the previous section)

Page 19: Inertial navigation on android

ALTERNATIVE IMPLEMENTATION - KALMAN DETAILS

The implementation just on one axis (one dimension) Average of every 50 sample was suggested in an article called

“Full-Featured Pedometer Design Realized with 3-Axis Digital Accelerometer”

The parameters evaluation was decided according to test records results(the parameters that with them the results was the most accurate)

A = 0.9 Q = 0.001 R = 0.1 C = 1

During the implementation we encountered difficulties in detecting the average line

Page 20: Inertial navigation on android

ALGORITHM DETAILS - KALMAN Filtering example:

2500 2520 2540 2560 2580 2600 2620 2640 2660 2680 2700

-5

0

5

10

15

20Yam, Hand Held, 33 Steps

Filtered Kalman Unfiltered Step Detected

Time

Sign

al

Page 21: Inertial navigation on android

SUMMARIZED RESULTS  Subject Holding

position Filter Steps made (doubles) Steps Detected Difference Distance

CalculatedDistance Difference(42)

1 Gal Hand Kalman 27 53 26 65 23

2 Gal Hand Kalman 30 55 28 65  23 3 Gal Hand FFT 27 28 1  36  64 Gal Hand FFT 30 30 0  36 6 5 Gal Waists Kalman 29 66 36 89  476 Gal Waists FFT 29 30 1 43  1 7 Yam Hand Kalman 32 57 25 67   258 Yam Hand Kalman 33 72 39 83 419 Yam Hand FFT 32 31 1 38   410 Yam Hand FFT 33 33 0  42 011 Yam Waists Kalman 30 98 68 129   8712 Yam Waists FFT 30 29 1 49   713 Gal Hand Previous proj. 27 11 16 14 28

14 Gal Hand Previous proj. 30 11 19 13 29

15 Gal Waists Previous proj. 29 57 28 78 78

16 Yam Hand Previous proj. 32 30 2 36 6

17 Yam Hand Previous proj. 33 24 9 29 13

18 Yam Waists Previous proj. 30 70 40 100 58

Page 22: Inertial navigation on android

CONCLUSIONS The step’s acceleration pattern still exist while hand-held There is a dominant movement axis that less effected by

noise Using a suitable filter it is possible to remove most of

the noise distortion It is still necessary to verify the step-detection using

some “progress-detection” component

Page 23: Inertial navigation on android

WHAT’S NEXT… Wavelet-Filter instead of FFT Add a minimal-progress-algorithm to step-

detection More testing on the step length algorithm

Page 24: Inertial navigation on android

TO BE CONTINUE……

A divine app that navigates superbly indoor!!!1

Page 25: Inertial navigation on android

MILESTONES Week 4: record raw sensors data of 5 different

paths of 15m and two different round paths. Week 5 - 8: suggest a compatible algorithm test it

(on the recorded data) and find the most suitable. Week 9 - 11: test the algorithm on the android

platform with real-time data Week 12 - 13: integrate the algorithm to the

android application.