interface: when the accuracy of sensor changes and
when sensor reports a new value.
5.4 Probable Path Patterns
In the case, no direct path trails exist between the
start position and the destination, probable path pat-
terns are calculated from the positional elevation data.
Imagining the map is divided into N number of cells,
with each cell consisting its positional and elevation
data, we will apply the 8-adjacency concept in the
neighbourhood of the cell.
The basic idea is to find an adjacent cell in the
heading of the destination whose elevation is less than
a predetermined value k (probably 2 metres). Path
finding algorithms, greedy algorithm, etc. can be used
for this. In our case, we leaned towards the use of Ant
Colony Algorithm for finding the probable paths.
1. S is a set of all data points/cells consisting the lo-
cational and altitude data
2. ω is a set of constraints: (1) cell chosen should lie
in the present 8-adjacency neighbourhood of the
present cell (2) the difference between the eleva-
tions is less than k metres (3) the next cell chosen
should lie between −95
◦
and 95
◦
.
3. Objective function, f : Minimize(N), where N ⊂S
and is the number of cells used for path to desti-
nation.
Depending on the value of N, a ranking system is
provided to the probable path with the highest rank-
ing given to the path having the lowest value. In the
unusual circumstance of the subject not following any
of the probable paths, the elevation profile can be used
to find paths with similar profile in the map.
5.5 Step and Heading Detection
In order to count the number of steps taken, we need
to first calculate the (dynamic) stride length as well
detect. Due to the highly erroneous nature of data
received otherwise, the relationship between z-axis
acceleration data and the stride length is exploited.
Kalman filter is used with one of the equations
l
h
=
4
√
a
max
−a
min
or
l
h
=
3
r
1
N
∑
N
i=1
|a
i
| or
l
h
=
1
N
∑
N
i=1
|a
i
|−a
min
a
max
−a
min
for a better grasp on the dynamic nature of stride
length. For heading estimation, the angular displace-
ment data is obtained from the accelerometer, gyro-
scope and magnetometer readings.
5.6 Step Sequence Detection
After creating of several probable paths, step se-
quence arrays consisting of the azimuthal angle differ-
ence between each step is created. The same is done
for the actual subject movement. Taking a k width
window from this array, the values are correlated with
the values of the probable paths in order to identify
the probable path being used by the subject.
5.7 Pattern Correlation
The elevation profile of the path that the subject is tak-
ing is created along with the motion. This elevation
profile is then correlated (pattern or map correlation)
with the precomputed elevation profile. The correla-
tion is done on a frequent basis, taking parts of the
elevation profile as well as the whole. Pattern corre-
lations can be computed directly (uncentered) or by
computing anomalies from a central mean (centred).
This correlation process allows us to reduce the po-
sitional ambiguity and bypass the necessity to over-
come noise by providing us landmarks for position
identification.
5.8 Algorithm
Finally, the overall algorithm (Flow chart in Figure 8)
is as follows:
1. The initial point data is collected from GPS and
cellular connection, etc. Coordinates and eleva-
tion data for the present position is collected.
2. DEM data server is accessed and a DEM tile of
adequate map area is downloaded. Tuples of Map
data (latitude, longitude, altitude) are created. Ad-
ditional information such as weather forecast, etc.
(for barometer reading correction) is also col-
lected and sampled at this juncture.
3. Acquisition and pre-processing of sensor data to
reduce errors in the reading.
4. Calculation of step length using z-axis accelerom-
eter data and Extended Kalman Filter. Step Detec-
tion and Heading Detection using the sensor data.
5. Creation of probable path patterns (with ranking)
via the Probable Path Algorithm. Data sets of (lat-
itude, longitude, altitude) for each of these pat-
terns are created.
6. Step heading sequence and altitude pattern is also
created for each of these paths.
7. Create positional approximates by dead reckoning
using step counts, step length and heading infor-
mation. Cross reference these positions to saved
DEM data and create tuples of Calculated Data
An Offline Outdoor Navigation System with Full Privacy
99