Chapter 4: Strider
Strider is a mobile Atlas Speaks, it runs on a portable
computer that has attached to it a "Strider Box". The
Strider Box consists of a GPS receiver, DGPS (Differential
Global Positioning System) receiver, and a power supply.
Fig. 8
shows a block diagram of the Strider Box. The DGPS
receiver used is the OEM 4000 manufactured by
DCI
(Differential Corrections Incorporated), see
Appendix G
for the receiver's technical specification. The GPS
receiver used is the Lassen manufactured by
TrimbleNavigation Incorporated
, see
Appendix H
for its technical specification.
DGPS is a
method for improving the accuracy of GPS. It will be
discussed in Chapter 5. The laptop computer, along with the
Strider Box, a hand-held keypad, and an earphone – fits
into convenient carrying case, usually carried as a
backpack. The user can switch between Atlas Speaks
virtually exploring a map, to Strider that actually tracks
the user's path outside. Strider is an orientation tool to
help navigate not a mobility tool. It will not replace the
white cane or guide dog, but it does offer new information
for the visually impaired that was previously unavailable.
Along with their own personal mobility skills, and other
aids such as a cane or guide dog, Strider offers the
ability to explore streets and cities, which might not
otherwise have been accessible.
Strider works by using the GPS satellites to triangulate
its position. A small antenna sewn into the shoulder strap
of the backpack picks up the satellite signals, and the GPS
receiver decodes them. Triangulation of the user's
position occurs as soon as three or more satellites are
being
tracked
. The accuracy of this location is then
increased using the DGPS receiver. The DGPS receiver has a
thirteen-inch whip antenna carried inside the backpack that
receives radio broadcasts from a differential corrections
company. These radio transmissions correct for the
inherent accuracy degradation
S/A
(Selective Availability)
in the GPS system, which was introduced by the U.S.
Department of Defense. Using DGPS increases the accuracy
from ±100 meters to less than ±4 meters. This will be
covered in more detail in Chapter 5. Once the GPS receiver
has the differentially corrected position, it sends this to
the Atlas Speaks software, which places the Strider cursor
at the new location. When the user switches from Atlas to
Strider all information requested is then in reference to
the Strider cursor instead of the Atlas cursor. When the
system is in Strider mode and position information is
requested, Strider produces the exact location, rather than
the virtual location previously explored with Atlas. The
author developed the device drivers for Strider, which
allows it to communicate with a number of different GPS and
DGPS receivers.
Fig. 13
shows a block diagram of the Atlas
Speaks and Strider software.
The physical layout of Strider consists of a main screen
containing the same map area as Atlas Speaks, which the
user is "physically" on, and a smaller bottom screen
containing address specific information, and details of the
GPS connection.
Fig. 9
shows the physical layout of
Strider. Drop-down menus are used with the aid of cursor
keys from the keypad to move through the menu items,
allowing the user to utilize the diverse tools that Strider
offers while travelling outside.
The map area in Strider displays the map that the user is
currently on. A star shaped cursor follows as the user's
position changes. The GPS receiver tracks the user, and a
cursor is put on the map indicating the corresponding
position. The Atlas cursor may also appear on the Strider
Map if the user is currently located in the same area as
the one being explored.
The Strider message window contains a lot of detailed
information about the GPS and DGPS receivers. The Strider
message window consists of a Novice Window, an Expert
Window (which can be turned off) as well as the audit
trail. All information presented in this window is
available to the user through key assignments, these are
presented in
Appendix D
. The GPS information presented in
this window is extracted from the GPS receiver, and is the
real time status of Strider.
The status of the GPS receiver is displayed in this window.
When Strider is working correctly its status is "Tracking
Position", but when Strider cannot obtain positional
information this window will inform the user why it cannot
provide this information. The following are messages that
can appear in this window:
-
Tracking position
-
No GPS time
-
Error
PDOP
*
too high
-
Acquiring satellites
-
No usable satellites
-
1 usable satellite
-
2 usable satellites
-
Unknown.
This gives the number of satellites that the GPS receiver
is currently tracking. However, it does not indicate how
many or which satellites are being used in the receiver's
position solution
. As the number of satellites being
tracked increases, the increased chance for obtaining
correct positional information occurs. This will be
discussed further in Chapter 5.
This is a very accurate clock, which the receiver uses to
synchronize itself with the satellites. This information
can be presented in the following formats: AM/PM, 24 Hour,
or UTC (Co-ordinated Universal Time).
The accuracy of the GPS receiver is not only based on the
number of satellites currently being tracked, but the
status of the DGPS receiver, and a number of other
dependencies which will be covered in Chapter 5. The
following are messages that may appear in this window:
|
Unknown
|
Bad
|
|
GPS 2D
|
Poor
|
|
GPS 3D
|
Fair
|
|
DGPS 2D
|
Good
|
|
DGPS 3D
|
Excellent.
|
The user can select, through the menus, which types of
messages are to be heard. The GPS messages will be
explained in the next chapter.
Since the current Strider configuration does not contain a
compass, the "Heading" information is not the current
heading the user is facing. It is however a least-squares
average of the last x number of positions. Therefore if
the user is travelling west, and then turns 90 degrees
towards north, and asks Strider the direction to a specific
point, this information will be based on the previous
direction of travel and not the current physical heading.
This shortcoming will be examined and solved with the ANS.
The units of this heading are always in degrees.
The instantaneous speed of the user is presented here.
This information can be presented in a number of different
formats depending upon which system the user is using, i.e.
meters per second, Kilometers per hour, feet per second etc.
The Latitude and Longitude of the current position is
displayed in these windows. This is for advanced users,
who find this information interesting. Since this
information is used to place the cursor on the map, the
user may obtain this information if so desired.
The GPS receiver also can determine the
altitude
of the
user if the current accuracy is a 3-D solution. This
requires at least four visible satellites. The units of
this information again depend upon the system of measure
chosen by the user.
The satellite number, signal-to-noise (
SNR
) ratio,
elevation, and
azimuth
are all presented here for those
advanced users who wish to know this information. This
could be useful if the accuracy suddenly dropped and the
user wanted to find out the reason.
When the user has an active destination or is using
"routes", additional information concerning these features
will also be displayed in this message window.
All the features of Atlas Speaks are also accessible when
using Strider as well as a few others. These features are
accessed through the external keypad that the user holds
while traveling outdoors. A mapping of the functions
available on the keypad is presented in
Appendix E
. The
most important features with Strider deal with routes, and
automatic messages that indicate changes in GPS accuracy.
The user has full control over what is to be automatically
spoken, and Strider has built-in protection against
"twitching". I.e. if the accuracy switches constantly
between two different levels, the user is not bombarded
with useless information.
This allows the user, while travelling outside, to lay down
a route automatically without manually creating the route.
Strider will place waypoints along the path travelled by
the user. The user can specify the frequency of these
waypoints by a set distance and/or time factor. The
software is also smart enough not to keep placing waypoints
at a given point if the user hasn't moved, and is recording
waypoints every x seconds. The user, while automatically
recording a route, can also place a waypoint manually.
This is useful if it is necessary to cross a street, or
change directions to follow a new street.
Strider will also not record waypoints if it is no longer
tracking the user's position, or if the accuracy is bad.
If the accuracy improves while recording a route, the last
waypoint recorded will be re-recorded with the better
accuracy and new position, thus improving the accuracy of
the route.
While route-recording automatically, Strider will not allow
waypoints to be bunched together if the accuracy degrades.
As shown in
Table 1
there is a minimum radial distance that
surrounds the user with a given accuracy. This radial
distance is the inaccuracy in the current position, and
therefore the user's actual position can be anywhere inside
this circle. Consequently, it doesn't make sense to keep
dropping waypoints within this radial distance because when
route-following, the system would announce all of these
waypoints simultaneously.
When following routes, a number of different things can
happen, depending upon how the route was created. An
Atlas-created route is very precise. It follows the
streets in a city, and the accuracy is exact. It also has
"turn" information available. Following such a route with
Strider is usually quite easy. When following a
Strider-created route, both the current accuracy of Strider
and the accuracy of the waypoints when the route was
created come into play. When the route is being loaded,
Strider will determine the accuracy of all the points in
the route and tell the user how accurate the route is. It
will also identify any potential problems that may occur
when following the route. Strider will also automatically
determine the correct radial distance between the user and
the waypoint on the route before it informs them they have
reached that specific waypoint. This radial distance is
based upon the accuracy of the specific waypoint and the
current accuracy of Strider. These distances are important
to note and are shown in
Table 1
.
Table 1: Accuracy for Route-recording and Following
|
Accuracy
|
Distance (meters)
|
|
GPS
|
100
|
|
DGPS
|
4
|
|
MAP
|
0
|
Therefore, if the current accuracy is GPS and the accuracy
of the waypoint on the route is also GPS the total radial
distance before the waypoint is announced to the user would
be 200 meters, as shown in
Fig. 10
. It is also important
to note here that if the route was created by Atlas, i.e.
"MAP" accuracy, when following this route with Strider,
only the current accuracy of Strider determines the radial
distance. For example, if the current accuracy is DGPS and
the waypoint was created by Atlas, then the minimum
distance the user needs to be before Strider announces that
the waypoint has been reached would only be 4 meters, as
shown in
Fig. 11
.
Strider allows the user to turn off the "expert" message
window. The "expert" window contains technical information
such as latitude, longitude, altitude, and information
about the satellites being tracked. By turning off the
"expert" window, the size of the map increases accordingly.
The GPS specific messages Strider displays can be technical
in nature and a novice user would find them uninformative.
Strider offers the ability to change these messages from
"expert" to "novice" messages. For example, instead of
saying that the GPS accuracy is "DGPS-3D", under "novice"
messages it would say that the GPS accuracy is "excellent".
This was shown in section 4.1.2.4.
When Strider is first turned on, it must initialize itself,
and start scanning for satellites before locking onto three
or more satellites and positional information is obtained.
A process that can either be very quick, or a quite lengthy
procedure. Strider allows the user to set User Warnings
that automatically provide the Strider status during the
initialization process as well as during position tracking.
All of these warnings can either be enabled or disabled.
The following is a list of these warning messages.
GPS
Almanac
Bad – This informs the user that the GPS
receiver currently doesn't have an up-to-date almanac of
where the satellites are in orbit, which means that the
time to find and track satellites will take longer.
Time to GPS Fix – This is an estimated time that Strider
will take to start tracking the user's position. This time
is based upon the almanac status as well as other factors
such as the number of satellites already being tracked.
Position Tracking – This informs the user when Strider is
tracking its position as well as when it loses its
position. There are a number of factors affecting whether
or not the GPS receiver is tracking the user's position.
These will be discussed in Chapter 5.
Satellite Configuration Error – This is one such reason why
Strider may not be able track the user's position. This
will be covered in Chapter 5 as well.
Differential Correction Gained – When Strider gains DGPS
corrections the accuracy improves dramatically, and the
user may want to be notified when this happens so a more
accurate position can be determined.
Differential Correction Lost – Here too the user may wish
to be informed when the accuracy is dramatically degraded
so that address information will not taken literally when
the position can be out by 100 meters.
Accuracy Improved or Degraded – When the accuracy improves
or is degraded, this information can be helpful for the
user to make a more informed decision on whether or not to
accept at face value the positional information Strider is
providing.
As shown in
Fig. 13
, the Strider interface connects Atlas
Speaks and Strider to the GPS receiver's DLL (Dynamically
Linked Library). This interface takes requests from
Strider and extracts the requested information from the GPS
receiver through the GPS receiver's DLL. The GPS receiver
can offer a variety of GPS specific information which can
be requested such as altitude, latitude, longitude, current
speed, etc.
Fig. 12
shows the flow diagrams on how this
interface works.
The GPS specific DLLs all have the same Strider Interface
function calls, but each has a different protocol to
extract the data from its specific GPS receiver. See
Appendix F
for a complete listing of the function calls to
the GPS Receiver's DLL. These functions were designed and
implemented exclusively by the author. Here are a couple
examples of how this interface works as was shown in Fig.
12.
-
A function call is made to the Strider Interface
(Update_Position)
-
Then a call is made to the GPS Receiver's DLL (GpsPosition)
(As found in
Appendix F
)
-
The GPS DLL sends back the Latitude and Longitude
-
Conversion is made from
WGS84
that the GPS receiver sends,
to
NAD27
which is the
datum
ETAK
uses for its North
American Maps.
-
These new Latitude and Longitude values are then sent back
to Strider, and the new position is displayed.
-
A function call is made to the Strider Interface (Get_Time)
-
From the Interface module a call is made to the GPS
Receiver's DLL (GpsTime) (as found in
Appendix F
)
-
The GPS DLL sends back the time as the number of seconds
since midnight Saturday
-
Conversion is made to the actual time based on the user
settings (AM / PM, UTC (Co-ordinated Universal Time), 24
Hours)
-
This is then sent back to Strider.
The shaded areas in the above figure are the specific
software modules the author personally developed.
Strider fulfills the second objective of this thesis, the
ability to walk outside and know one's position. Chapter 5
will discuss why the Strider system, as it stands, is
incomplete, and will investigate possible backup systems
for Strider.