Inertial navigation on android
description
Transcript of Inertial navigation on android
INERTIAL NAVIGATION ON ANDROID
Industrial project - Qualcomm
Students: Gal Ferrera & Yam ZamirMasters: Constantine Elster & Dan Vardi
CONTENT Objective. Goals. Demo Methodology Implementation and
examples Conclusions.
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.
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.
DEMO
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
BRIEF EXPLANATION
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.
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)
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
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
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
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.)
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
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.
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
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
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)
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
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
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
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
WHAT’S NEXT… Wavelet-Filter instead of FFT Add a minimal-progress-algorithm to step-
detection More testing on the step length algorithm
TO BE CONTINUE……
A divine app that navigates superbly indoor!!!1
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.