U.S. patent application number 10/057236 was filed with the patent office on 2002-11-21 for real-time navigation system for mobile environment.
This patent application is currently assigned to TeleVigation, Inc.. Invention is credited to Chao, Yi-Chung, Dai, Donghai, Dhanani, Salman, Glebov, Alexander G., Jin, Haiping, Meshenberg, Ruslan Adikovic.
Application Number | 20020173905 10/057236 |
Document ID | / |
Family ID | 23004887 |
Filed Date | 2002-11-21 |
United States Patent
Application |
20020173905 |
Kind Code |
A1 |
Jin, Haiping ; et
al. |
November 21, 2002 |
Real-time navigation system for mobile environment
Abstract
A system and method for providing navigational information to a
user connected in real-time, such as through a wireless telephone,
PDA, or other device. The system provides navigational information
to the user in the form most useful to the user, such as according
to landmarks, or the number of blocks until the next action. The
system also provides directions to points of interest along the
user's route. Further, the system allows the user to suspend and
resume a session. Also, the system varies the sampling rate at
which the user's location is examined, to enhance efficiency and
convenience.
Inventors: |
Jin, Haiping; (San Jose,
CA) ; Dai, Donghai; (Sunnyvale, CA) ; Chao,
Yi-Chung; (Milpitas, CA) ; Meshenberg, Ruslan
Adikovic; (Santa Clara, CA) ; Dhanani, Salman;
(Mountain View, CA) ; Glebov, Alexander G.; (San
Jose, CA) |
Correspondence
Address: |
Pennie & Edmonds, LLP
3300 Hillview Avenue
Palo Alto
CA
94304
US
|
Assignee: |
TeleVigation, Inc.
|
Family ID: |
23004887 |
Appl. No.: |
10/057236 |
Filed: |
January 24, 2002 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60264164 |
Jan 24, 2001 |
|
|
|
Current U.S.
Class: |
701/408 |
Current CPC
Class: |
G01C 21/26 20130101;
H04W 4/029 20180201; G06Q 10/047 20130101; G08G 1/096838 20130101;
H04W 4/02 20130101; G01C 21/20 20130101; G08G 1/096883 20130101;
H04W 4/024 20180201; G08G 1/096811 20130101; G08G 1/096844
20130101; G08G 1/096861 20130101; G01C 21/00 20130101; G08G
1/096872 20130101; G01C 21/3626 20130101; H04W 4/20 20130101; G01C
21/34 20130101; G01C 21/3679 20130101 |
Class at
Publication: |
701/207 ;
701/200 |
International
Class: |
G01C 021/26 |
Claims
What is claimed is:
1. A method for providing navigational information to a user,
comprising the steps of: establishing a real-time connection with
the user; receiving the user's location in real time; providing
navigational information to the user; suspending the connection
with the user; storing trip information regarding the user's
position and destination at the time the connection was suspended;
re-establishing a real-time connection with the user; and providing
further navigational information to the user, at least partly based
on the stored trip information.
2. The method of claim 1, further comprising, after the step of
re-establishing a real-time connection with the user, the step of
determining if the user's previous trip was suspended.
3. The method of claim 1, further comprising, after the step of
re-establishing a real-time connection with the user, the step of
querying the user to determine if the user is resuming a suspended
call.
4. The method of claim 1, further comprising, before the step of
suspending the connection with the user, the step of instructing
the user to suspend the call.
5. The method of claim 4, further comprising the step of
instructing the user to resume the call.
6. The method of claim 5, wherein said step of instructing the user
to resume the call comprises instructing the user to resume the
call after a given period of time.
7. The method of claim 6, wherein said step of instructing the user
to resume the call comprises instructing the user to resume the
call at a given time.
8. The method of claim 6, wherein the step of instructing the user
to resume the call comprises instructing the user to resume the
call when the user has reached a specified landmark.
9. The method of claim 1, further comprising, after the step of
suspending the call to the user, the step of providing the user
with non-navigational programming.
10. The method of claim 9, wherein the non-navigational programming
comprises music pre-selected by the user.
11. The method of claim 1, wherein the step of providing further
navigational information to the user comprises providing
navigational information in speech format over a connection
comprising a telephone network.
12. The method of claim 1, wherein the step of providing further
navigational information to the user comprises providing
navigational information in text format.
13. The method of claim 1, wherein the step of providing further
navigational information to the user comprises providing
navigational information in graphical format.
14. The method of claim 1, wherein the step of providing further
navigational information comprises transmitting navigational
information over a wireless connection.
15. The method of claim 1, further comprising, prior to the step of
suspending the connection with the user, the step of conveying to
the user the mileage until the next navigational action required by
the user.
16. The method of claim 1, further comprising, prior to the step of
suspending the connection with the user, the step of conveying to
the user the mileage until the user reaches said destination.
17. A method of providing wireless telephone service to a plurality
of subscribers, using the method of claim 1.
18. A method for providing navigational information to a user,
comprising the steps of: receiving a telephone call from the user;
determining identity information for the user; recognizing, at
least in part from the identity information, that the call is a
resumption of a previous call from the user; retrieving historical
information regarding the user, said historical information
relating at least in part to the previous call from the user;
providing navigational information to the user based at least in
part on the historical information.
19. The method of claim 18, wherein said step of recognizing that
the call is a resumption of a previous call comprises prompting the
user to identify if the call is a resumption of a previous
call.
20. The method of claim 18, wherein the step of providing
navigational information to the user comprises transmitting
navigational information over a wireless connection.
21. A system for providing location information to a user,
comprising: an interface communicating with the user over a
communications network; a processor connected to the interface and
configured to generate navigational information based at least in
part on information received from the user; said processor further
configured to suspend interaction with the user and to later resume
interaction with the user; a storage device connected to the
processor and configured to store user information, said user
information comprising location and destination information for the
user; a transmission device connected to a network, through which
the generated navigational information is conveyed to the user.
22. The system of claim 21, said user information further
comprising the location of the user at the time the processor
suspended interaction with the user.
23. The system of claim 21, said storage device comprising a
database of user information, said database comprising an
indication of whether the user has suspended a call for a trip.
24. The system of claim 23, said database further comprising
resumption information, said resumption information comprising the
user's expected location upon resumption of interaction with the
user.
25. A method of providing wireless telephone service to a plurality
of subscribers, using the system of claim 21.
26. A system for providing navigational information to a user,
comprising: interface means for communicating with the user over a
communications network; processor means for generating navigational
information based at least in part on information received from the
user; suspension means for suspending interaction with the user and
to later resume interaction with the user; storage means for
storing user information, said user information comprising location
and destination information for the user; transmission means for
conveying the generated navigational information to the user.
27. A method for providing navigational information to a user,
comprising the steps of: establishing a real-time connection with
the user; receiving location information for the user; determining
the uncertainty in the parameters needed to provide navigational
information to the user; providing navigational information to the
user, said navigational information selected based on said
uncertainty.
28. The method of claim 27, wherein the parameters needed to
provide navigational information comprise the user's present
location.
29. The method of claim 27, wherein the parameters needed to
provide navigational information comprise the user's heading.
30. The method of claim 27, wherein said navigational information
comprises a summary of the navigational action remaining until the
user reaches the user's selected destination.
31. A method for providing navigational information to a user,
comprising the steps of: establishing a real-time connection with
the user, said connection comprising a connection over a wireless
telephone network; generating a set of navigational prompts based
at least in part on the user's location and the user's destination;
identifying a selected area in which the user is traveling;
identifying the navigational prompts that are applicable while the
user is in the selected area; and providing the identified
navigational prompts to the user.
32. A method for providing navigational information to a user,
comprising the steps of: obtaining the user's current location and
ultimate destination; determining an initial preferred path from
the user's current location to the ultimate destination; receiving
an interim point of interest for the user through a connection to
the user, said connection comprising a wireless telephone network;
identifying potential interim destinations for the user, based at
least in part on the user's point of interest and the geographic
locations of related destinations; selecting an interim destination
among the identified potential interim destinations, said selection
based at least in part on the minimal deviation from the initial
preferred path; and providing navigational information to the user,
said navigational information comprising directions to the interim
destination.
33. A method for providing navigational information to a user,
comprising the steps of: obtaining the user's current location and
ultimate destination; generating navigational information to direct
the user to the ultimate destination in text format, said
navigational information comprising a street name; converting the
navigation information in text format to speech format; and
conveying the navigational information in speech format to the user
through a connection, said connection comprising a telephone
network.
34. A system for providing navigational information to a user,
comprising: an interface communicating with the user over a
communications network; a processor connected to the interface and
configured to generate navigational information based at least in
part on information received from the user; a voice generator to
convert said navigational information from text format to speech
format; and a transmission device connected to a network, through
which the generated navigational information is conveyed to the
user in speech format.
35. The system of claim 34, wherein said voice generator comprises
a database of sound files, said sound files corresponding to street
names.
36. A method for providing navigational information to a user,
comprising the steps of: establishing a connection with the user,
said connection comprising a wireless telephone network; obtaining
the user's ultimate destination; obtaining the user's current
location at least in part through said connection; generating
navigational information to direct the user to the ultimate
destination, said navigational information comprising the number of
blocks until the next navigational action required by the user; and
conveying the navigational information to the user through the
connection.
37. A method for providing navigational information to a user,
comprising the steps of: establishing a connection with the user,
said connection comprising a wireless telephone network; repeatedly
receiving location information for the user; periodically providing
the user with navigational directions based at least in part on the
user's location and destination; and varying the frequency for
receiving location information for the user according to selected
factors.
38. The method of claim 37, wherein said selected factors comprise
the current traffic on the wireless telephone network.
39. The method of claim 37, wherein a plurality of said users are
connected to a server, and said selected factors comprise the
number of said users.
40. The method of claim 37, wherein said selected factors comprise
traffic conditions.
41. The method of claim 37, wherein said selected factors comprise
the geographic environment in the vicinity of the user.
42. The method of claim 37, wherein said selected factors comprise
the distance until the next expected navigational action for the
user.
43. The method of claim 37, wherein said selected factors comprise
the user's speed.
44. A method for providing navigational information to a user,
comprising the steps of: establishing a real-time connection with
the user; receiving location information from the user; converting
the location information from a first format into a second format;
generating navigational information to direct the user to a
destination based at least in part on said location information;
and conveying the navigational information to the user through the
connection.
45. The method of claim 44, wherein said first format is a first
language, and said second format is a second language.
46. The method of claim 44, wherein said first format is the
wireless application protocol (WAP).
47. A method for providing navigational information to a user,
comprising the steps of: establishing a real-time connection with
the user; receiving location information from the user; generating
navigational information to direct the user to a destination based
at least in part on said location information; converting the
navigational information from a first format into a second format;
and conveying the navigational information to the user through the
connection.
48. The method of claim 47, wherein said first format is a first
language, and said second format is a second language.
49. The method of claim 47, wherein said second format is the
wireless application protocol (WAP).
50. The method of claim 47, wherein said second format is
extensible markup language (XML).
51. The method of claim 47, wherein said second format is hypertext
markup language (HTML).
52. A system for providing navigational information to a user,
comprising: interface means for sending information to the user and
for receiving information from the user; measurement means for
processing positional information regarding the user; mapping means
for generating a navigational route for the user; deviation
detection means for determining if the user is following the
navigational route; and instruction means for generating
navigational information for the user.
Description
[0001] This application claims the benefit of Provisional
Application No. 60/264,164, filed Jan. 24, 2001.
FIELD OF THE INVENTION
[0002] This invention relates to navigation systems and
location-based information delivery. Specifically, this invention
relates to a method and system for an efficient operating
environment for interactive and real-time navigation.
BACKGROUND OF THE INVENTION
[0003] The present invention relates to a system for providing
navigational information to a user. The increasing use of portable
appliances, such as wireless telephones and personal digital
assistants (PDAs), has led to widespread use of such devices during
travel. If and when such travelers become lost or otherwise need
navigational directions, it would be very convenient and useful to
receive such directions through their wireless devices.
[0004] A number of navigational systems are available or under
development. Systems available over the internet allow users to
receive directions from a starting point to a destination, and to
receive an accompanying map. Such systems, however, do not provide
real-time directions; once the user is on the road, the user cannot
receive clarification or updates to the directions.
[0005] As used herein, "real-time" refers to an approximate
correspondence with the actual time in which events are taking
place. For instance, a user seeking real-time directions from the
corner of Main Street and First Street seeks them at the
approximate time the user is actually at Main Street and First
Street.
[0006] As used herein, "navigational information" broadly refers to
information relating to geographic navigation. In many instances,
the navigational information comprises navigational directions to
the user, instructing the user, for instance, which way and how far
to go to reach a destination. In other instances, navigational
information may refer to other navigation-related information, such
as the user's current, past, or future location(s) or other
information relating to the user's navigation.
[0007] Other systems are becoming popular for use in automobiles.
Such systems often provide a graphical map or directions to the
user. In some cases, these system employ satellite-based global
positioning system (GPS) to identify the location of the vehicle.
Examples of such systems are disclosed in U.S. Pat. Nos. 5,938,720;
5,928,307; 5,922,042; 5,912,635; 5,910,177; 5,904,728; 5,902,350;
and 6,055,478, each of which is incorporated herein by reference.
These systems, however, generally require specialized equipment in
the vehicle, such as specialized input/output apparatus, graphical
displays, a map database, or processor. Such equipment is expensive
and cumbersome for the user, especially in those situations where
the user is walking, changing vehicles, or otherwise away from the
vehicle in which the equipment is installed. Therefore, there is a
need in the art to provide navigation systems in personal handheld
devices.
[0008] In addition, there is a need for wireless mobile devices,
and mobile telephones in particular, to have location-identifying
capability. Recent government regulations have highlighted the need
for wireless carriers to provide such capabilities and
services.
[0009] There are several technical obstacles that stand in the way
of the incorporation of navigational capabilities in handheld
devices for providing turn-by-turn real-time navigation services.
One such obstacle is the amount of geographic data needed to
provide reasonably detailed navigational information. Small
handheld devices include, for example, cellular phones, personal
digital assistants, or computers. The amount of embedded memory in
such devices is limited and thus they are not suited for storage of
large amounts of geographic information. Geographic information is
usually stored in a geographic mapping database stored on a CD-ROM,
hard-disk drive device or other large capacity storage medium.
[0010] Another obstacle is the lack of information processing power
in small devices, such as those mentioned above. For example, the
information processing power of a wireless telephone is typically
provided by an embedded microprocessor with limited memory. While
the information processing power of embedded microprocessors is
generally increasing, such processors are still not suitable for
processor intensive real-time navigational tasks.
[0011] An additional obstacle is the insufficient location accuracy
provided by current technology. Initial sources of inaccuracy of
the GPS based systems, for example, may be imposed by the U.S.
Department of Defense through Selective Availability (S/A), while
other sources of error are due to atmospheric and timing errors
limiting the accuracy of a single GPS receiver to +/-50 meters.
Methods exist that can be used to enhance the location accuracy to
about +/-5 meters. Such methods include Enhanced GPS systems (i.e.,
SnapTrack) and network based system (i.e., Truepoint). These
methods use a known position, such as a survey control point, as a
reference point to correct the GPS position error. These methods of
correcting GPS positions are referred to as Differential GPS or
DGPS. The DGPS corrections can be applied to the GPS data in
real-time using data telemetry (radio modems). Toward expanding the
use of DGPS, the United States and Canadian Coast Guard are
establishing a series of radio beacons to transmit the DGPS
corrections for accurate navigation along the Great Lakes, the
Mississippi River and tributaries, the Gulf Coast, and the Eastern
and Western coasts of North America. However, such radio beacons
are not available to consumers traveling in most inland locations.
For the remainder of this application, the terms "GPS" and "DGPS"
will be used interchangeably, unless indicated otherwise.
[0012] Navigational systems are difficult to develop further
because the desired accuracy depends on the particular application.
For example, if the user is driving in a downtown area with closely
spaced streets, a GPS location with accuracy within, for instance,
+/-50 meters is not adequate to give turn-by-turn directions. In
this context, GPS location information is thus considered ambiguous
and inappropriate for practical navigation. In other situations,
providing a GPS location within +/-50 meters is, however, perfectly
adequate for navigation purposes. For example, if a user is driving
on a highway in a remote area without any nearby exits, the GPS
location is sufficient for calculating further navigation
directions. Thus, in such a situation, the GPS location is not
ambiguous.
[0013] Current automobile GPS navigation systems make use of other
sensors, such as accelerometers, speedometers, etc. plus
sophisticated filtering technology to improve the accuracy of a
navigational system (see, e.g., U.S. Pat. No. 5,912,635, previously
incorporated by reference for all purposes). In addition, many
automobile-based navigational systems use map-aiding technology as
well. However, for a navigational system implemented using handheld
devices, such as cellular telephones, it is undesirable to require
the handheld device to be connected to external sensors, especially
when the device is used while walking.
[0014] Other obstacles confront navigational systems designed for
use when walking. U.S. Pat. No. 6,029,069, which is incorporated
herein by reference, is an example of such a system. Such systems
are generally limited by the user's communication device. For
instance, it is difficult for a user to enter detailed information
over a wireless telephone in a format that is useful for the
central processor, especially if the user is engaged in other
activities such as driving a vehicle. These systems are also
susceptible to imperfections of the underlying service; for
instance, establishing or maintaining a connection over the
wireless network(s) can be difficult. Also, the rate of transfer of
information over wireless networks can be extremely limiting.
[0015] Accordingly, it would be desirable to provide a navigational
system and service which improves upon the inadequacies of prior
systems.
SUMMARY
[0016] This invention is generally directed to method and system
for providing navigational directions to a user. The user is
connected to the system through a real-time connection, such as a
wireless telephone, PDA, or other device. Generally, the system
uses the capabilities of a central processor to conveniently and
efficiently provide navigational directions to a user in
real-time.
[0017] In one embodiment of the present invention, the user is able
to suspend and/or resume the connection to the system. In some
instances, navigational action, such as a turn, stop, check-in, or
other action, will not be required for some time. In other
instances, the requirements of the server, network, or user
environment may require suspension of the connection. In some
embodiments, the user is the connection is suspended at the user's
request, or as a result of a loss of connection. In some
embodiments, the user is instructed to resume the connection at
some future time. That future time may be measured in units of
time, or by other units such as mileage, number of blocks, or
landmarks. To provide this functionality, the server is configured
to store information from suspended sessions, and to recognize new
sessions that are a resumption of a suspended session.
[0018] In another embodiment of the present invention, the call
flow (which generally refers to the prompts to the user, whether
via telephone or other communication medium) is determined from the
uncertainty in the parameters needed to provide navigational
information to the user. For instance, the system may select one
call flow if the user's location in unknown, ambiguous, partially
known, or known to a low level of certainty. The system may select
a different call flow if the user's heading is unknown or
ambiguous. Other call flows may be selected based on other
uncertainties.
[0019] In another embodiment of the present invention, the system
provides paced navigational directions to the user. For instance,
the system may identify the cell-site in which the user is located,
and provide navigational directions that are applicable while the
user is in that cell-site. In another example, the system paces the
navigational information based on the time or distance traveled by
the user and/or the time or distance until the user's next
anticipated navigational action. Alternatively, the system may only
provide navigational information relating to an area corresponding
to potential amount of error in the identification of the user's
location.
[0020] In another embodiment of the present invention, the system
provides navigational directions to an interim point of interest
(POI). As the user travels from an initial location to an ultimate
destination, it may be desirable for the user to detour to an
interim point of interest. This POI may be selected by the user, or
by the network, the system, or some other entity. The POI may be
defined in any number of ways, e.g., "Pac Bell Park," "the nearest
gas station," "200 Page Mill Road," "a police station," "public
restroom," etc. If a number of locations potentially qualify as the
POI (as in the case of, for instance, "the nearest gas station"),
the system identifies potential interim destinations. One or more
interim destination is then selected by various criteria, such as
the deviation from the user's current path required to reach the
potential interim destination(s). The user is then provided with
navigational information relating to the interim destination.
[0021] In another embodiment of the present invention, the system
provides navigational information to the user in speech format,
including the names of streets. After generating the navigational
information, a voice generator converts the navigational
information from text format to speech format.
[0022] In another embodiment of the present invention, the system
provides navigational information to the user in a format in which
certain distances are expressed in terms of blocks, e.g. "Two
blocks down Castro Street, and then turn right."
[0023] In another embodiment of the present invention, the system
varies the sampling rate for receiving location information from
the user. In other words, the system varies the frequency with
which it queries the user, either verbally, automatically, or
otherwise, depending one or more selected factors. For instance,
the system may check the user's location more or less frequently
depending on factors such as the traffic on the wireless network,
the number of users on the server or other factors affecting the
server load, traffic conditions, the density of streets in the
user's vicinity, the distance or time until the user's next
navigational action, the user's speed, etc.
[0024] As will be appreciated by one of skill in the art, the
present invention may be embodied as a method, data processing
system, program products, wireless service, or component of a
wireless service. Accordingly, the present invention may take the
form of navigation systems, navigation methods, navigation devices,
navigation software, components of a larger wireless network, etc.
Software written according to the present invention is to be stored
in a form of computer-readable medium, such as random access
memory, hard disk memory or CD ROM, to be transmitted over a
network, and executed by a processor.
[0025] For a better understanding of these and other aspects of the
present invention, reference should be made to the following
detailed description taken in conjunction with the accompanying
drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] In the drawings, which are not necessarily to scale:
[0027] FIG. 1 is a schematic view of a system in accordance with
one embodiment of the present invention, employing an internet
connection between the navigation servers and the wireless
network;
[0028] FIG. 2 is a schematic view of a system in accordance with
another embodiment of the present invention, employing direct
connections between the navigation servers and the wireless
network;
[0029] FIG. 3 is a schematic view of a server configuration in
accordance with one embodiment of the present invention;
[0030] FIG. 4 is a schematic view of a server configuration in
accordance with one embodiment of the present invention;
[0031] FIG. 5 is a schematic view of the intelligent instruction
agent of FIG. 4;
[0032] FIG. 6 is schematic flowchart of a method of providing
navigational directions in accordance with one embodiment of the
present invention; and
[0033] FIG. 7 is a schematic flowchart of a method of providing
navigational directions in accordance with one embodiment of the
present invention.
DETAILED DESCRIPTION
[0034] The present invention is directed to a method and apparatus
for providing navigational information to a user connected to the
system through a real-time connection, such as a wireless
network.
[0035] FIG. 1 shows an architecture for an interactive real-time
distributed navigation system in accordance with a preferred
embodiment. The various components and their interaction will now
be described. It is to be understood that where like numerals are
used in different figures, such like numerals refer to the same
item. Wireless device 202 may take the form of a cellular
telephone, satellite telephone, wireless Personal Digital Assistant
(PDA), personal computer or other suitable device having wireless
communications capability. Preferably, wireless device 202 is
equipped with positioning capability that takes the form of, for
example, global positioning systems (GPS), emergency 911 (E911)
location, or others, including those that may become available in
the future. Currently, various manufacturers produce wireless
telephones, which may be enabled with the Wireless Application
Protocol to present information to the user. In one specific
embodiment, such telephones are appropriate for use as wireless
device 202. Furthermore, PHONE.COM has at one time made a product
called SDK, available for testing and modeling. That product and
others like it may also be used within the scope of this invention.
One skilled in the art will appreciate that the present invention
is not limited to any particular positioning technology. In one
embodiment, wireless device 202 is manufactured with built-in
positioning capabilities. Wireless device 202 need not include map
information, or may carry only a predetermined amount of map
information, depending on the wireless device's 202 storage
capability. Such a system is described as a distributed system and
will be further discussed below.
[0036] In one embodiment, the capabilities of wireless device 202
are enhanced through interfacing with modular attachments. An
essential function of wireless device 202 is to provide an
interface between the navigational system of this invention and a
user. In particular, wireless device 202 provides a user interface
205 for displaying graphical, textual or audible information. User
interface 205 allows the user to make use of various sensory
capabilities. In an exemplary scenario, a user perceives
geographical markers or other stimuli. The user is then able to
utilize this information using the system and method of the
invention by providing appropriate inputs through user interface
205. User interface 205 can further provide instructions for
completing a task where, for example, electromechanical components
are involved. For example, where the navigation system of the
present invention is incorporated within an automobile, an improved
operation may necessitate moving the automobile to a certain
position or direction. Through user interface 205, the user can
receive specific instructions on how to move and position the
automobile. Such interaction is used to improve the positioning
accuracy of system of the invention, where interaction is achieved
through text, graphics or audible signals. Various modifications
using different human sensors will be apparent and are deemed
within the scope of the invention.
[0037] Because wireless device 202 is capable of relaying
information to a user by means of audible signals or through
displayed text, some embodiments of this invention make use of
audible sound producing devices and/or text displaying devices.
Where a text displaying device is used, enhanced performance is
achieved using a wireless device 202 capable of displaying,
typically, several lines of text. An enhanced video display (not
shown) may also be used with wireless device 202 for use in
displaying maps and enhanced directional information. In another
embodiment, wireless device 202 has incorporated within it
gyroscopic or geomagnetical enhancements. Such enhancements can be
used to provide real-time position and orientation information. One
of skill in the art understands that many more enhancements are
possible for wireless device 202 without deviating from the
teachings of the invention.
[0038] As further shown in FIG. 1, wireless carrier 204 provides
wireless connectivity between wireless device 202 and distributed
navigation servers 212 to be described below. In an embodiment of
the invention, WINDOWS NT servers are used as the operating
platform. Examples of wireless carrier 204 include, for example,
wireless telephone carriers (regardless of operating frequency),
internet service providers with remote-communication capability,
satellite communications carriers, and global positioning system
carriers. In achieving wireless connectivity, wireless carriers
provide an existing infrastructure for the wireless devices and
distributed navigation servers. In one embodiment, GPS is used
along with the government imposed selective availability. One with
skill in the art will understand that where such limitation is
removed, the present invention can further be enhanced. Because of
the adaptive interaction with the user, information ranging from
general to very specific is relayed to the user for a wide range of
navigational applications.
[0039] While keeping within the teachings of the invention,
wireless carrier 204 provides positioning information (which may
also be referred to as measurement information) such as through
GPS, E911 or other positioning systems. In addition, positioning
information may be obtained through a third party and is then used
by wireless carrier 204. For example, wireless service resellers,
wireless internet service provides (ISPs), or satellite wireless
carriers, among others, provide services which can be implemented
in embodiments of the invention. Importantly, wireless throughput
and bandwidth continues to increase through the advent of digital
transmission and through other techniques. Analog (i.e., AMPS)
systems provide for a certain level of service. However, more
advanced digital transmission techniques, such as, but not limited
to GSM, TDMA, CDMA, provide higher data throughput. Because of its
broad application, the present invention is appropriate for these
and many other transmission techniques. In an embodiment of the
invention, wireless carrier 204 receives analog or digital
information from the wireless device 202 and directs such
information to other components of the system of this invention,
such as server 212. Similarly, wireless carrier 204 receives
information from components of the invention such as server 212 and
then directs such information to wireless device 204. Moreover, the
method and system of the present invention, or components thereof,
may be incorporated as elements of the wireless network itself,
within the scope of the present invention.
[0040] As shown in FIG. 1, wireless carrier 204 is connected to
gateway 206 which provides an interface to network 208. In general,
gateway 206 is a network point that acts as an entrance to another
network and is provided by, among others, wireless carriers, ISPs,
or other telecommunications providers. In an embodiment of the
invention, network 208 is the internet. The internet provides
advantages because, among other things, it is a widely distributed
network reaching many areas of the world. In another embodiment,
network 208 is implemented as a proprietary communications network.
For example, by utilizing specialized communications network
connections, network 208 may be customized to provide minimal
latency and optimal performance.
[0041] As illustrated in FIG. 1, in accordance with a preferred
embodiment, one or more distributed navigation servers 212 form
part of the system of the invention and communicate with its other
components using communications network 208. In a preferred
embodiment distributed navigation servers 212 store street map
information and point of interest information and further perform
processing tasks. In this manner, the wireless device 202 is not
burdened with carrying all the necessary information for proper
navigation. In an embodiment, distributed navigation servers 212
also process location-specific information, such as real-time
traffic information. In an embodiment, traffic information is
obtained from a group of navigation service users. By observing and
comparing their positions, speeds and times, and making further
comparisons with nominal street speed limits in a map database,
real-time traffic information is generated and then used by the
invention. Examples of suitable map databases include, for example,
those provided by TELCONTAR with its "DRILL DOWN SERVER", QUALITY
MARKETING SOFTWARE with its "GEOSTAN LIBRARY", and NAVTECH with its
digital map products. Furthermore, examples of suitable traffic
information providers include, for example, ETAK,
TRAFFICSTATION.COM and METROWORKS. In a preferred embodiment, at
each juncture towards a destination, the system dynamically
determines the optimal route for a particular user responsive to
ever changing conditions. For example, where due to changed
conditions a first route becomes less optimal, a second route is
generated and presented to a user. An optimal route is determined
in several ways depending on a user's preference. For example, an
optimal route can be based on minimum time, minimum distance or
minimum consumption of fuel. Processor intensive functions, such as
navigation guide algorithms, are processed by distributed
navigation servers 212 so as to reduce the computational burden on
wireless device 202. As part of the processing function of
distributed navigation servers 212, in an embodiment, these servers
provide conversion functions such as between HDML or WML to HTML
and vice versa.
[0042] An alternative embodiment for the system architecture of the
present invention is shown in FIG. 2. As illustrated in the figure,
wireless device 202, wireless carrier 204 and distributed
navigation servers 212 are substantially the same as described for
FIG. 1. Direct links 210, however, provide an alternative
embodiment to the function of gateway 206 and network 208 of FIG.
1. The direct link architecture is applicable where Internet
infrastructure is not well established or fast response is desired
for user navigation or other location specific information
services. Illustratively, T1, Frame Relay, etc. linked by a LAN or
WAN are appropriate for direct links 210. In another embodiment,
direct links 210 are implemented as dedicated lines. Alternatively,
direct links 210 are implemented as hard wired connections between
wireless carrier 204 and distributed navigation servers 212 where
wireless carrier 204 and distributed navigation servers 212 are
collocated in a central office.
[0043] In some embodiments, the system of the present invention
utilizes a pool of information including map, geographical,
personal and location information to construct an efficient
environment for users of the invention. The present invention
includes techniques for improving the operating environment of a
navigational system, as described below.
[0044] In accordance with one embodiment of the invention, the
Wireless Markup Language (WML) in the Wireless Application Protocol
(WAP) is used by the system and method. WML in the WAP is the
analogue to HyperText Markup Language (HTML) in Internet Protocol
(IP). WML is defined in "WAP WML" as maintained by the WAP Forum
and accessible at www.wapforum.org. Of course, the present
invention is not limited to any particular programming language or
protocol.
[0045] FIG. 3 is a schematic diagram of a distributed navigational
server 212 of the present invention. Generally, the server 212
comprises an interface 302 connected to the communication network
304 through which the server is connected to the user. The
interface may be a PBX, modified PBX, or other switch known in the
art. Broadly speaking, the interface 302 is connected to a voice
response unit (VRU) 306 for receiving and/or conveying information
to the user through the communication network 304 in speech format.
The VRU 306 preferably includes voice-recognition capability and
voice-generation. In particular, specialized voice-recognition
and/or voice-generation may be employed to process the specialized
vocabulary associated with navigational directions, as discussed in
more detail below. The VRU in turn is connected to a processor 308.
This processor 308 is configured to perform a large number of
functions, with the broadly stated end result that the processor
receives information from the user, processes the information, and
delivers navigational information or related queries, prompts, or
other information back to the user. A more specific description of
the processor design is provided below. The processor is connected
to a storage device 310. This device may store the various data
needed by the processor, such as map information, customer
information, and other operational information. The processor may
also be connected to one or more additional gateways 312. These
gateways may provide the processor with various third party
information, such as traffic information, customer information, GPS
information, or information relating to the communication networks.
Of course, the components and structure shown in FIG. 3 are merely
exemplary. Additional components or configurations could also be
employed within the scope of the present invention. Further, the
components could be employed in different form. For instance, the
VRU or storage device could physically be components of the
processor, or could be connected through external gateways.
Likewise, the VRU or other components could be connected directly
to the storage device, gateways, or other components. These and
other variations will be apparent to those of skill in the art.
[0046] As mentioned above, the method and system of the present
invention may employ specialized voice-recognition equipment and/or
techniques. In particular, the server 212 may receive information
from the user in the form of street names, city names, states
names, or other proper nouns. Many of these names are difficult to
recognize. Specific programming regarding various city names, state
names, and other navigational vocabulary and/or syntax is employed
to allow the system to recognize the specialized vocabulary
associated with navigation.
[0047] Similarly, the present invention may employ specialized
voice-generation equipment and/or techniques. Because of the
specialized vocabulary associated with navigation, typical
voice-generation devices may have difficulty converting
navigational information into speech format. The present invention
may equip these devices with additional vocabulary. In particular,
the present invention may employ a database of sound files,
preferably in ".wav" format or equivalent, corresponding to street
names, city names, etc.
[0048] FIG. 4 is a more detailed schematic of a navigation server
212 in accordance with one embodiment of the present invention. The
configuration shown in FIG. 4 is a different, but equivalent,
description of the server than the configuration shown in FIG. 3.
The user connects to the server 212 through the application layer
402. This application layer preferably translates user input into a
form usable or preferred by the server 212. Inside the server, a
subprocessor, which is referred to as the User Interface Controller
404 in the preferred embodiment, controls interaction with the
user, such as receiving information like user instructions or the
user's destination, and conveying instructions, prompts, or other
information to the user. This information is passed to and from a
subprocessor, which is referred to as the Intelligent Instruction
Agent 406 or User Interaction Engine in the preferred embodiment.
This Intelligent Instruction Agent 406 receives information, such
as the user's location and traffic information, from which it
generates instructions to the user.
[0049] As shown in FIG. 4, a number of functional components are
preferably involved in providing information to generate
instructions to the user. A subprocessor, which is referred to in
the preferred embodiment as a Measurement Processor 412, receives
measurement information from a controller component, referred to in
the preferred embodiment as the Measurement Interface Controller
414. This measurement information may include various data
regarding the location of the user, such as GPS, Cellular Digital
Packetized Data (CDPD), U.S. Wireless (USW)(fingerprint
technology), and @road (using CDPD company) information. In many
instances, the measurement information comprises the longitude and
latitude of the user, obtained through GPS or similar capability.
The Measurement Interface Controller receives measurement
information from one or more Measurement Gateways 416. To perform
these operations, the Measurement Processor 412 and/or the
Measurement Controller 414 may receive information from the
Intelligent Instruction Agent 406 including, for instance,
information relating to the sampling rate for gathering measurement
information, as discussed in more detail below.
[0050] Further, as shown in FIG. 4, a subprocessor, referred to in
the preferred embodiment as the Map Controller 422, sends and
receives information to and from a database of map information,
referred to in FIG. 4 as the Map Server and Digital Map Database
424. For example, the Map Controller 422 may convey the user's
location and destination to the Map Server and Digital Map Database
424, and/or may receive a nominal route and surrounding map from
the Map Server and Digital Map Database 424. The Map Server and
Digital Map Database 424 preferably correlates the measurement
information into more useful navigational information. For
instance, the measurement information may comprise latitude and
longitude for the user (derived from, for instance, GPS), and the
Map Server and Digital Map Database 424 may correlate that latitude
and longitude to a map location such as an address, street
location, cross street, landmark, etc. In some embodiments, the Map
Server and Digital Map Database 424 may calculate a route for the
user, or a number of potential routes for the user.
[0051] Also, as shown in FIG. 4, a subprocessor, referred to in the
preferred embodiment as the Traffic Interface Controller 432,
interfaces with one or more Traffic Gateways 434. Generally, the
traffic interface controller 432 may receive nominal route
information for the user from the Intelligent Instruction Agent
406, and pass nominal route information to the traffic gateway(s)
434. The interface controller 432 may receive traffic information,
including alerts regarding the user's route, from the traffic
gateway(s) 434, and provide such information to the Intelligent
Instruction Agent 406. Traffic information may be obtained from
various services known to those of skill in the art, including
those discussed listed above, or may be generated by information
gathered from a plurality of users of the system.
[0052] The information gathered is provided to a number of logic
elements. As shown in FIG. 4, a subprocessor, referred to in the
preferred embodiment as the Snap to Map Core Engine 450, provides
certain processing functions. In the preferred embodiment, the Core
Engine 450 may perform functions such as providing information or
instructions to the measurement interface controller 414 regarding
the rate at which to provide measurement information. It may
receive measurement information (which in some embodiments is
processed by the measurement processor 412) from the measurement
interface controller 414. It may provide user information, such as
the location and destination of the user, to the map controller
422, and receive a nominal route and/or map information from the
map controller 422. Further, the core engine 450 may process the
received information to generate navigational information, such as
a location, route, alert, instruction, or other related
geographical information.
[0053] Generally, the core engine 450 may use a number of
algorithms to perform various tasks. The core engine 450 finds the
most likely location of the user based on information including the
measurement information (e.g., latitude and longitude), map
information, and possible location information and possible routes
provided by the map server and database 424. To do this, the core
engine 450 may employ various technologies, including, for example,
navigational technology, information theory, stochastic analysis,
estimation theory, statistical hypothesis theory, control theory,
game theory, and artificial intelligence.
[0054] Another logic element that may be employed in the preferred
embodiment is the deviation detection logic 460, as shown in FIG.
4. This component preferably receives navigational information from
the core engine 450, and determines if the user is in the correct
location and/or on the correct course. The deviation detection
logic 460 may send or receive location information or map
information to or from the map controller 422 to make this
determination. Further, the deviation detection logic 460 may
forward its determination, or other information, to other
components.
[0055] Yet another logic element that may be employed in the
preferred embodiment is another subprocessor, referred to in the
preferred embodiment as the location predictor 470. Preferably,
this element estimates the user's location at a given time, based
on the determination of the user's location at an earlier time. For
instance, if the core engine 450 received measurement information
regarding the user, such as the longitude and latitude of the user,
as of the noon, there may be a need to predict the user's position
as of the time noon+10 sec (ten seconds after noon). In that
situation, the location predictor may extrapolate upon the
measurement information (or other navigational information, such as
a street location) of the user as of noon, to estimate the user's
location as of the time noon+10 sec. This functionality compensates
for latency or gaps between reception of measurement information,
or may make the system more responsive to user requests for
information. For instance, if the user requests an update on the
user's location or navigational information at time noon+10 sec,
but the measurement processor 412 is not scheduled to update
measurement information until the time noon+20 sec, the location
predictor can generate updated information without the need to seek
measurement information ahead of schedule.
[0056] Of course, the specific components shown in FIG. 4 are
simply one embodiment of a system in accordance with the present
invention. Numerous variations could be made within the scope of
the present invention. For instance, many of the subprocessors,
logic elements, controllers, engines, and other components could be
combined, configured differently, or even omitted. Further, many of
the functions performed by the components shown in FIG. 4 could be
performed by other components, performed by components outside the
server 212, or in some cases omitted, within the scope of the
present invention.
[0057] In operation, the system preferably manages the timing of
the receipt of measurement information, which may be referred to as
the sampling rate. The benefits of such management can be seen from
a review of the process by which measurement information is
obtained. Preferably, measurement information is obtained from the
user's wireless device. For instance, the measurement information
may be received from a GPS component of a wireless telephone, PDA,
or other appliance. Such a component is sometimes referred to as
position determination equipment (PDE). Measurement information may
comprise latitude and longitude, and may also comprise other
information such as the user's speed, heading, or error statistics.
Retrieval of the measurement information, therefore, may be
performed in various ways. For instance, the measurement
information may be retrieved periodically in set periods, such as
every ten seconds. Alternatively, the measurement information may
be retrieved at periods of varying length, depending on various
factors such as the network/carrier load, the type of
network/carrier, the geography surrounding the user, the type of
wireless device employed by the user, the user's subscription
information, etc. In the preferred embodiment, measurement
information is retrieved when the user first appears in the system,
in an initialization process, and at certain periods
thereafter.
[0058] A system in accordance with one embodiment of the present
invention therefore manages the sampling rate. A logic element
within the system, such as the core engine 450, determines or
selects a sampling rate based on one or more factors. For instance,
one factor may be the desire (or need) to minimize the number of
times measurement information is retrieved from the user's wireless
device, in order to conserve the battery of that device, or to
minimize the user's use of network capabilities. Another factor may
be the desire to minimize the load or usage on the server or
network. Another factor may be the geographic environment
surrounding the user, e.g., a lower sampling rate may be used if
the user is not expected to make any turns in the immediate future,
or if there are few streets or other landmarks in the vicinity of
the user, or along the user's expected route, etc. This factor may
dictate different sampling rates for, e.g., dense downtown areas,
less crowded areas, or long distance travel. On the other hand, the
sampling rate is also chosen with an eye toward achieving the best
possible performance. Further, the sampling rate may depend at
least in part on user-specific information, such as the
subscription plan of the user to the service or to the user's
wireless, internet, or other service provider. In one embodiment,
typical instances in which the server checks measurement
information for the user include times when the user is (or should
be) at a location that can confirm that the user is on the nominal
route, times after the user has taken navigational action, and
times where possible deviation from the nominal route is
anticipated.
[0059] In one embodiment of the present invention, the application
layer 402 comprises a media adaptation layer. This media adaptation
layer adapts input and output to the server 212 according to the
localized factors, such as different language or other formats, or
the presentation medium called for by the user's wireless device.
For instance, the user input may be in a number of formats, such as
voice, web, WAP, hypertext markup language (HTML), extensible
markup language (XML), wireless markup language (WML), or other
data formats. Alternatively, the user may be speaking a different
language. The media adaptation layer preferably comprises a logic
element that transforms user input into a format useable for the
server. Similarly, the media adaptation layer preferably comprises
capability to transform the server output into the format or medium
suited for the user or the user's equipment. The media adaptation
layer may be configured, for instance, as part of the application
layer, another gateway 312, or a component of the server 212.
[0060] FIG. 5 shows a more detailed schematic of one embodiment of
the intelligent instruction agent 406 described in FIG. 4. This
logic element generally selects instructions or prompts for the
user. As described above, information generally flows to the
intelligent instruction agent 406 from the core engine 450, the
measurement gateway 416 (under control of the measurement processor
412), and the traffic interface controller 432. As shown,
information is also exchanged between those components. For
instance, information regarding traffic conditions may be passed
from the traffic interface controller 432 to the measurement
processor 412. The nominal route and current location for the user
may be provided to the traffic interface controller 432 or the
measurement processor 412.
[0061] Preferably, this information is received at the operation
mode recognition element 504. Based on the available information,
which may include user inputs and other information regarding the
trip status, the operation mode recognition element 504 determines
whether the user's location has been identified. If the user has
not be located, the initialization mode recognition element 502 is
triggered. The initialization mode recognition element 502 prompts
the user for location information. In the preferred embodiment,
such prompts are referred to as Findme messages 505. Examples of
these messages include asking the user for streets and
cross-streets. U.S. Pat. No. 6,266,615, which is incorporated
herein by reference, describes such a process.
[0062] If the user has been located, the deviation detection module
506 is preferably triggered. This module determines if the user has
deviated from the nominal route. That determination is based on the
nominal route solution generated or provided by the core engine
450, as well as other information such as other possible candidate
routes. The amount of deviation may be based on the error or
uncertainty in the user's location. The determination of whether a
calculated deviation is acceptable is based on factors such as the
type of PDE employed by the user, as well as user input.
[0063] If deviation is detected, the deviation message mode 508 is
preferably triggered. In this mode, the user is informed of the
calculated deviation. The user may be given a menu of possible
responses, such as asking to be re-routed, asking the system to
ignore the deviation or to otherwise leave the user alone, denying
that the user is deviated from the route, or simply stating that
the user does not know. Of course, many variations of this, and
other, portions of the call flow may be employed within the scope
of the present invention.
[0064] If deviation is not detected, the prediction module 510 and
the instruction mode recognition module 512 are preferably
triggered. The prediction module generally analyzes the deviation
and the uncertainty in the determination that the user has deviated
from the nominal route. For instance, this uncertainty may be due
to latency in the connection(s), the sampling rate of measurement
information, or the error size. The instruction mode recognition
module 512 selects one or more modes for further processing. This
selection is preferably based on factors such as the uncertainty in
the calculated location information for the user, the features in
the vicinity of the nominal route for the user, and user input.
Preferably, the instruction mode recognition element 512 selects
one or more of five modes.
[0065] As shown in FIG. 5, the first mode is the precise
instruction message mode recognition element 520. In this mode, the
user may be given any number of relatively precise instructions.
For instance, the user may be given an information message, such as
the distance to the next turn, measured in blocks, mileage, time,
or according to landmarks, or other information to assist the user
in navigation. The user may be given an alert message, such as a
message alerting the user to the speed limit, cross street, or
other useful warning. The user may be given some sort of
preparation message, such as a message to prepare to change lanes,
or a warning that a given street is the last cross street before
some location or action. The user may be given an action message,
such as a message instructing the user to take a certain turn, or
to take a series of turns or actions. Also, as will be discussed in
more detail below, the user may be instructed or given the option
to suspend the call.
[0066] The second mode is the fuzzy instruction mode 530.
Preferably, this mode is selected if the identification of the
user's location is ambiguous. The user is provided with a multiple
information message, such as a message reflecting the uncertainty
in the user's location. For instance, the user may be instructed to
turn within a range of times or distances, or may be instructed to
look ahead for landmarks or cross-streets, etc.
[0067] The third mode is the summary instruction mode 540.
Preferably, this mode is selected if the user has requested a
summary of the trip. The user is provided with an overview of the
trip, including, for instance, the number of actions and time of
the actions taken by the user, the major highway connections, and
other details of the trip.
[0068] The fourth mode is the selective instruction mode 550. This
mode is preferably selected due to uncertainty in the user's
heading or inability to precisely locate the user due to, for
instance, the street density in the immediate location of the user.
The user is provided with a selective instruction message, such as
a message regarding multiple possible scenarios. For instance, if
the system has located the user but is unsure which of two routes
to the destination the user prefers, the user may be instructed as
follows: "if you turn left on Page Mill Road, then follow it for
two blocks and turn left onto El Camino; if you turn right on Page
Mill Road, then follow it for three blocks and turn right onto Sand
Hill Road."
[0069] The fifth mode is the static instruction mode 560. This mode
is preferably selected if suitable measurement information for the
user is not available. This may happen if, for instance, the user's
carrier is not functioning, the user is traveling in an area in
which no suitable carrier is available, or the server's request to
the measurement gateway 416 has otherwise timed out. In this
circumstance, the user is simply given a recitation of the
remaining route.
[0070] Of course, the specific elements and configuration shown in
FIG. 5 are merely exemplary. In particular, the names given for the
various modes, messages, and other elements, are merely labels, and
other elements could performing the same roles could be substituted
in accordance with the present invention. Moreover, the
configuration and connections shown in FIG. 7 could be varied
within the scope of the present invention. For instance, the
various modes, modules, and elements could be combined, connected
differently, or omitted entirely, within the scope of the present
invention.
[0071] In those instances where navigational information, such as
driving directions, are provided to the user, the navigational
information may be given in terms most useful to the user. For
instance, as discussed above, driving directions in speech format
will preferably include street names. The system may provide
navigational information employing landmarks where appropriate.
Such landmarks may include objects or locations with are visually
obvious, known to the user, or otherwise observable by the user.
For instance, the system may instruct the user, "Continue four
blocks past the Safeway on your right, and merge onto Wolf Road."
To provide this capability, information regarding such landmarks is
stored, and the processor(s) are configured to retrieve that
information and use it in formulating navigational information.
[0072] Similarly, the system may provide navigational information
in which distance is measured in terms of stops, blocks, time, or
other units that are useful to the user. For instance, the system
may instruct the user to "go 2 blocks and turn right on University
Avenue" rather than "go 0.3 miles and turn right on University
Avenue." Similarly, the system may instruct the user in terms of
stops: "continue down Market Street and turn left at the third
right onto California Avenue." Likewise, the system may instruct
the user in terms of time: "you should reach the ramp for the San
Mateo Bridge in twenty seconds." To provide these capabilities, the
server processor(s), such as the core engine 450 and/or the
intelligent instruction agent 406, are configured and programmed to
resolve the relevant information from the available map
information, and to generate instructions in the desired format,
using programming methods known in the art.
[0073] Also, in the case of a user connected to the system over a
cellular network, the system in accordance with one embodiment of
the present invention may identify the cell-site in which the user
is located, and provide only those navigational directions that are
applicable while the user is within that cell-site. The system may
receive the cell-site identifying information through methods known
in the art, such as through information through the user's
connection to the server, or through other gateways 312 connected
to the system. The logic elements in the server, such as the core
engine 450 and/or the intelligent instruction agent 406, are
configured and programmed to identify the navigational information
that will be applicable while the user is within that cell-site,
using methods known in the art.
[0074] Similarly, in another embodiment, the system may provide
only the navigational information that will be applicable while the
user is within a certain area, which may or may not correspond to a
wireless cellular cite. For instance, the area may be selected to
correspond to the potential error in the determination of the
user's location.
[0075] FIG. 6 generally shows a call flow for the operation of a
method of providing navigational information in accordance with one
embodiment of the present invention. After connecting with the
server 602, the user, through a wireless telephone 604, PDA, or
other appliance, provides a destination input 606 to the server
602. In some embodiments, the user may have provided the
destination information in advance, either through a wireless
connection or through some other connection. The user's destination
instruction is received by voice recognition software 608. After
processing the user's input, the server provides destination
validation 610. The server then obtains local map information 612,
as well as measurement information such as GPS information 614.
This information is processed in the subprocessor referred to in
the preferred embodiment as the Snap to Map processor 616, and/or
other subprocessors, to determine the location of the user 618. The
server then calculates a nominal route 620 for the user. This route
information, as well as surrounding street information and point of
interest information, are then provided to the user 622. The
information is also saved 624. Typically, the system again collects
measurement information 626. That information is processed in the
Snap to Map engine 628, and/or the intelligent guidance engine 630.
Further instructions 632 are provided to the user, e.g.,
instructions regarding deviation from the nominal route. Again, the
call flow shown in FIG. 6 is merely exemplary, and other variations
may be within the scope of the present invention.
[0076] As mentioned above, the method shown in FIG. 6, carried out
by the elements described elsewhere in this application, may also
be used to provide the user with directions to a point of interest.
As the user is traveling to an ultimate destination, the user may
request directions to some other POI. This POI may take many forms,
such as a specific address, a business name, a type of location,
etc. For instance, the POI could be a specific location, e.g., "the
office" or "Acme Bakery." Or the POI could be a type of location,
such as "gas station" or "police station." If the POI is a specific
location, the system generates navigational information to direct
the user to the POI, and subsequently to the ultimate destination,
using the methods and equipment described in this application. If
the POI is a category of location, the core engine 450 identifies a
subset of potential interim destinations, such as a group of gas
stations along the user's route. Among that subset, the system
provides the user with directions to one or more interim
destinations.
[0077] FIG. 7 shows a schematic view of a call flow, in broad
terms, of a method of providing navigational information in
accordance with one embodiment of the present invention, in which
the user is instructed or given the option to suspend the
connection. This option may be given or taken for a number of
reasons. Suspending the connection may conserve the battery or
other power source of the user's appliance. If the user's
connection is through a service for which the user is charged,
suspending the connection can save the user money. In addition,
suspending the call may conserve resources for the network(s)
through which the connection is made, as well as the resources of
the navigational server 212. In some cases, the user will be unable
to maintain the connection with the server at certain times during
the user's trip due, for instance, to loss of connection with the
user's wireless network, or lack of coverage in the user's area by
the user's wireless carrier and/or its affiliates. Moreover, there
may be long periods between navigational action for the user, and
the user may not wish to be connected to the server during these
periods. In fact, the system may provide other programming to the
user during these or other periods. For instance, the system may
play music, advertisement, news, or other programming.
Alternatively, the system may provide the user with selected or
recorded information, including information pre-selected or
pre-recorded by the user.
[0078] In this embodiment, the user enters in start mode 702. At
this point, the user has already undergone initialization in the
system. At step 704, the system determines if action is needed,
e.g., if it is time for the user to make a turn or take other
action. If so, the system generates an action message for the user
instructing the user to take the necessary action at step 706. The
user then proceeds into nominal mode 720. If action is not needed
at step 704, the system provides the user with a different message
708, such as a welcome message and/or a preparation message
informing the user of upcoming action, e.g., "you will be turning
left on Wolf road in 25 seconds." The user then proceeds to nominal
mode 720.
[0079] Alternatively the user may enter in resume mode 712. Again,
the system, at step 714, determines if navigational action is
needed. If so, the generates the action message instructing the
user to take the necessary action at step 706, and the user
proceeds to nominal mode 720. If not, the system provides the user
with a different message 718, such as a resumption message and/or
preparation message regarding upcoming navigational action, and the
user proceeds to nominal mode 720.
[0080] In the usual case, the user enters resume mode after
connecting to the system. The system may recognize that the user
has suspended a session, or the user may request to resume a
previous trip. In one embodiment, the system recognizes the user's
identity information, which comprises various information allowing
the system to identify the user, such as account number, telephone
number, mobile identification number, ESN, Caller ID, or automatic
number identification (ANI). That identity information allows the
system to recognize features of the user's account such as a
previously suspended session, and historical information regarding
that session. In some cases, when a user is requested or instructed
to suspend a connection, the user is instructed to resume the
connection at a given time. That time may be expressed in a number
of ways, such as a given time of day, after a given interval of
time, when the user has traveled a certain distance, when the user
reaches a certain street or location, when the user has reached a
certain landmark, etc. The server's processors, such as the core
engine 450 and/or the intelligent instruction agent 406, are
preferably configured and programmed to generate such instructions,
using methods known in the art. Once the user resumes the
connection, the system may retrieve information from the user's
suspended session, such as the user's route or expected location,
to determine if the user is on the nominal route.
[0081] In nominal mode, if the system detects that the user has
deviated from the nominal route, the user enters deviation mode
732. The system determines if action is needed in behalf of the
user at step 734. If so, the user is given an action message 736
instructing the user to take the required action. If not, the user
is given a different message 738, such as a message alerting the
user to the deviation and/or upcoming navigational action.
[0082] In nominal mode, the system may determine that the user is
arriving at the destination. If so, the user enters arrival mode
740, is played a final arrival message 742, and the session ends at
step 744. Alternatively, the system may determine that the
connection to the user is lost. If so, the user is placed in no
service mode 750. Once service is regained, the user is placed in
the resume mode flow.
[0083] In some circumstances, the system is directed to
suspend/cleanup 760. This may occur if the connection to the user
is lost, if the user elects to suspend the connection, or for other
reasons. In the suspend/cleanup step 760, the system saves
information regarding the user and/or the session, for later use if
the connection is resumed. The system may also close certain
connections on the server, delete information, or take other steps
for system housekeeping.
[0084] Those skilled in the art to which the invention pertains may
make modifications and other embodiments employing the principles
of this invention without departing from its spirit or essential
characteristics particularly upon considering the foregoing
teachings. The described embodiments are to be considered in all
respects only as illustrative and not restrictive and the scope of
the invention is, therefore, indicated by the appended claims
rather than by the foregoing description Consequently, while the
invention has been described with reference to particular
embodiments, modifications of structure, sequence, materials and
the like would be apparent to those skilled in the art, yet still
fall within the scope of the invention.
* * * * *
References