U.S. patent application number 16/126640 was filed with the patent office on 2019-01-10 for systems, methods and devices for satellite navigation reconciliation.
The applicant listed for this patent is Elwha LLC. Invention is credited to Tom Driscoll, Joseph R. Guerci, Russell J. Hannigan, Roderick A. Hyde, Muriel Y. Ishikawa, Jordin T. Kare, Nathan P. Myhrvold, David R. Smith, Clarence T. Tegreene, Yaroslav A. Urzhumov, Charles Whitmer, Lowell L. Wood, JR., Victoria Y.H. Wood.
Application Number | 20190011571 16/126640 |
Document ID | / |
Family ID | 56975123 |
Filed Date | 2019-01-10 |
![](/patent/app/20190011571/US20190011571A1-20190110-D00000.png)
![](/patent/app/20190011571/US20190011571A1-20190110-D00001.png)
![](/patent/app/20190011571/US20190011571A1-20190110-D00002.png)
![](/patent/app/20190011571/US20190011571A1-20190110-D00003.png)
![](/patent/app/20190011571/US20190011571A1-20190110-D00004.png)
![](/patent/app/20190011571/US20190011571A1-20190110-D00005.png)
![](/patent/app/20190011571/US20190011571A1-20190110-D00006.png)
![](/patent/app/20190011571/US20190011571A1-20190110-D00007.png)
![](/patent/app/20190011571/US20190011571A1-20190110-D00008.png)
![](/patent/app/20190011571/US20190011571A1-20190110-D00009.png)
![](/patent/app/20190011571/US20190011571A1-20190110-D00010.png)
View All Diagrams
United States Patent
Application |
20190011571 |
Kind Code |
A1 |
Driscoll; Tom ; et
al. |
January 10, 2019 |
SYSTEMS, METHODS AND DEVICES FOR SATELLITE NAVIGATION
RECONCILIATION
Abstract
A three-dimensional map of an environment with buildings is used
to computationally predict locations and times of global navigation
satellite system (GNSS) transmission quality. A global navigation
satellite system (GNSS) receiver can reconcile received satellite
transmissions with these predicted satellite transmissions. By
comparing actual transmission quality with predicted transmission
quality, a system can determine unmodeled obstructions, temporary
obstructions, jamming, spoofing or other origins of interference
with predicted transmission quality of a satellite in a GNSS.
Inventors: |
Driscoll; Tom; (San Diego,
CA) ; Guerci; Joseph R.; (Arlington, VA) ;
Hannigan; Russell J.; (Sammamish, WA) ; Hyde;
Roderick A.; (Redmond, WA) ; Ishikawa; Muriel Y.;
(Livermore, CA) ; Kare; Jordin T.; (San Jose,
CA) ; Myhrvold; Nathan P.; (Bellevue, WA) ;
Smith; David R.; (Durham, NC) ; Tegreene; Clarence
T.; (Mercer Island, WA) ; Urzhumov; Yaroslav A.;
(Bellevue, WA) ; Whitmer; Charles; (North Bend,
WA) ; Wood, JR.; Lowell L.; (Bellevue, WA) ;
Wood; Victoria Y.H.; (Livermore, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Elwha LLC |
Bellevue |
WA |
US |
|
|
Family ID: |
56975123 |
Appl. No.: |
16/126640 |
Filed: |
September 10, 2018 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14667402 |
Mar 24, 2015 |
10073179 |
|
|
16126640 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G01S 19/49 20130101 |
International
Class: |
G01S 19/49 20060101
G01S019/49 |
Claims
1. A method for using global navigation satellite system (GNSS)
comprising: receiving a measured transmission quality of a signal
transmission of a satellite in the GNSS at a spacetime position;
predicting a predicted transmission quality from the satellite to
the spacetime position based on a three-dimensional spatial map of
an environment including one or more buildings and satellite
ephemeris data; and determining an anomaly exists based at least in
part on the measured transmission quality and the predicted
transmission quality.
2. A method for using global navigation satellite system (GNSS)
comprising: receiving a set of measured transmission qualities of
signal transmissions of a set of satellites in the GNSS at a
spacetime position; predicting a set of predicted transmission
qualities from the set of satellites to the spacetime position
based on a three-dimensional spatial map of an environment and
satellite ephemeris data; and determining an anomaly exists based
at least in part on the set of measured transmission qualities and
the set of predicted transmission qualities.
3. The method of claim 2, wherein determining an anomaly exists
based at least in part on the set of measured transmission
qualities and the set of predicted transmission qualities comprises
comparing one or more measured transmission qualities from a
specified satellite in the set of satellites to one or more
predicted transmission qualities from the specified satellite.
4. The method of claim 2, wherein the three-dimensional spatial map
comprises one or more man-made structures.
5. The method of claim 2, wherein determining the anomaly exists
further comprises determining that a locus of the set of measured
transmission qualities converges to identify an unmodeled
obstruction on the three-dimensional spatial map.
6. The method of claim 5, further comprising adding the unmodeled
obstruction to the three-dimensional spatial map.
7. The method of claim 6, further comprising transmitting at least
the unmodeled obstruction to a network service that provides the
three-dimensional spatial map.
8. The method of claim 5, further comprising: updating the
three-dimensional spatial map to include the unmodeled obstruction;
providing the updated three-dimensional spatial map via a network
service.
9. The method of claim 2, further comprising identifying the
spacetime position as a candidate for secondary navigation.
10. The method of claim 9, wherein the secondary navigation is
assisted global positioning system.
11. The method of claim 2, further comprising receiving the
three-dimensional spatial map of the environment from a network
service.
12. The method of claim 2, wherein receiving a set of measured
transmission qualities of signal transmissions of a set of
satellites in the GNSS at a spacetime position further comprises
receiving, from a plurality of devices, the set of measured
transmission qualities.
13. The method of claim 2, further comprising providing an
application program interface (API) configured to provide the
three-dimensional spatial map of the environment.
14. The method of claim 2, wherein receiving a set of measured
transmission qualities further comprises determining that a signal
transmission from a satellite in the set of satellites is
obstructed.
15. The method of claim 14, further comprising predicting a
spacetime location when the signal transmission will be greater
than or equal to a transmission quality threshold.
16. The method of claim 15, wherein predicting the spacetime
location when the signal transmission will be greater than or equal
to the transmission quality threshold further comprises predicting
a duration of time that the signal transmission will be greater
than or equal to the transmission quality threshold after the
spacetime location.
17. The method of claim 2, wherein receiving a set of measured
transmission qualities further comprises determining that a signal
transmission from a satellite in the set of satellites is greater
than or equal to a transmission quality threshold.
18. The method of claim 17, further comprising predicting a
spacetime location when the signal transmission will be less than
or equal to the transmission quality threshold.
19. The method of claim 18, wherein predicting the spacetime
location when the signal transmission will be less than or equal to
the transmission quality threshold further comprises predicting a
duration of time that the signal transmission will be less than or
equal to the transmission quality threshold after the spacetime
location.
20. The method of claim 2, further comprising using the set of
satellites in the GNSS to determine a geographic position.
21. A method for using global navigation satellite system (GNSS)
comprising: receiving a spacetime location; and applying the
spacetime location to a time dependent coverage map derived at
least in part from an environment map that includes one or more
buildings to estimate transmission quality of a satellite from the
GNSS at the spacetime location.
22. The method of claim 21, further comprising one or more
instructions that, when executed by the one or more processors of
the computer system, cause the computer system to at least:
applying the spacetime location to a set of time dependent coverage
maps derived at least in part from the environment map that
includes the one or more buildings to estimate a set of
transmission qualities of a set of satellites from the GNSS at the
spacetime location; and predicting coverage of the GNSS based at
least in part on the set of transmission qualities.
23. The method of claim 21, further comprising constructing the
time dependent coverage map based at least in part on GNSS
satellite ephemeris data and a three-dimensional spatial map of an
environment that includes the buildings.
24. The method of claim 23, wherein constructing further comprises
simulating transmissions from a set of satellites in the GNSS
within the three-dimensional spatial map of the environment over a
time period.
25. The method of claim 21, further comprising retrieving the time
dependent coverage map from a network service.
26. The method of claim 21, wherein applying the spacetime location
to the time dependent coverage map further comprises: transmitting
the spacetime location to a service over a network; and receiving
data representing predicted transmission qualities of GNSS
satellites at the spacetime location.
27. The method of claim 21, wherein applying the spacetime location
to the time dependent coverage map further comprises: receiving
data representing predicted transmission qualities of GNSS
satellites at a future predicted spacetime location.
28. The method of claim 21, wherein applying the spacetime location
to the time dependent coverage map further comprises: determining a
position within a three-dimensional spatial map of an environment
and a time; determining a satellite position at the time based at
least in part on satellite ephemeris data; simulating a signal
transmission from the satellite to the position at the time within
the three-dimensional spatial map of the environment; and
determining a signal transmission quality of the signal
transmission at the position and the time.
29. A system for navigation, comprising: storage configured to
store a three-dimensional spatial map of an environment including
one or more buildings and satellite ephemeris data; a processor
configured to: determine a first route associated with a first set
of times within the three-dimensional spatial map; determine a
first set of positions of a first set of satellites associated with
the first set of times based at least in part on satellite
ephemeris data; simulate transmission of first satellite navigation
signals from the first set of satellites to the first route at the
associated first set of times; determine a first set of
transmission qualities associated with the first set of satellites
to the first route associated with the first set of times.
30. The system of claim 29, wherein the processor is further
configured to: determine a second route associated with a second
set of times within the three-dimensional spatial map; determine a
second set of positions of a second set of satellites associated
with the second set of times based at least in part on the
satellite ephemeris data; simulate transmission of second satellite
navigation signals from the second set of satellites to the second
route at the associated second set of times; determine a second set
of transmission qualities associated with the second set of
satellites to the second route associated with the second set of
times.
31. The system of claim 30, wherein the processor is further
configured to: perform a comparison of the first set of
transmission qualities with the second set of transmission
qualities; and determine a recommended route based at least in part
on the comparison.
32. The system of claim 31, wherein comparison is based at least in
part on location based services quality.
33. The system of claim 31, wherein to simulate further comprises
simulating aGPS transmissions, DGPS transmissions, or WLAN
transmissions.
34. The system of claim 29, wherein the processor is further
configured to: predict location-based cellular service quality; and
provide a rating of the route based at least in part on the
predicted location-based cellular service quality.
35. The system of claim 29, wherein the processor is further
configured to transmit the first route to a robotic vehicle.
Description
[0001] If an Application Data Sheet ("ADS") has been filed on the
filing date of this application, it is incorporated by reference
herein. Any applications claimed on the ADS for priority under 35
U.S.C. .sctn. 119, 120, 121, or 365(c), and any and all parent,
grandparent, great-grandparent, etc., applications of such
applications, are also incorporated by reference, including any
priority claims made in those applications and any material
incorporated by reference, to the extent such subject matter is not
inconsistent herewith.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] The present application claims the benefit of the earliest
available effective filing date(s) from the following listed
application(s) (the "Priority Applications"), if any, listed below
(e.g., claims earliest available priority dates for other than
provisional patent applications or claims benefits under 35 U.S.C.
.sctn. 119(e) for provisional patent applications, for any and all
parent, grandparent, great-grandparent, etc., applications of the
Priority Application(s)).
PRIORITY APPLICATIONS
[0003] This application is a continuation of U.S. patent
application Ser. No. 14/667,402, filed Mar. 24, 2015, for "SYSTEMS,
METHODS AND DEVICES FOR SATELLITE NAVIGATION RECONCILIATION."
[0004] If the listings of applications provided herein are
inconsistent with the listings provided via an ADS, it is the
intent of the Applicants to claim priority to each application that
appears in the Priority Applications section of the ADS and to each
application that appears in the Priority Applications section of
this application.
[0005] All subject matter of the Priority Applications and the
Related Applications and of any and all parent, grandparent,
great-grandparent, etc., applications of the Priority Applications
and the Related Applications, including any priority claims, is
incorporated herein by reference to the extent such subject matter
is not inconsistent herewith.
TECHNICAL FIELD
[0006] The present disclosure relates to navigation systems and
more specifically to modeling environments to reconcile detected
satellite system behavior with predicted global navigation
satellite system behavior.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] FIG. 1 is a diagram illustrating a global navigation
satellite system (GNSS) modeling system consistent with embodiments
disclosed herein.
[0008] FIG. 2 is a diagram illustrating GNSS modeling consistent
with embodiments disclosed herein.
[0009] FIG. 3 is a diagram of an environment with satellite
transmission spoofing consistent with embodiments disclosed
herein.
[0010] FIG. 4 is a diagram of an environment with satellite
transmission jamming consistent with embodiments disclosed
herein.
[0011] FIG. 5 is a diagram of a GNSS receiver consistent with
embodiments disclosed herein.
[0012] FIG. 6 is a process diagram of a set of GNSS receivers
interacting with a GNSS service consistent with embodiments
disclosed herein.
[0013] FIG. 7 is a process diagram of a set of GNSS receivers
interacting in a peer-to-peer configuration consistent with
embodiments disclosed herein.
[0014] FIG. 8 is a flow chart illustrating a method for predicting
transmission quality consistent with embodiments disclosed
herein.
[0015] FIG. 9 is a flow chart illustrating a method for empirically
reconciling blockage information consistent with embodiments
disclosed herein.
[0016] FIG. 10 is a schematic diagram of a GNSS service consistent
with embodiments disclosed herein.
[0017] FIG. 11 is a schematic diagram of a computing system
consistent with embodiments disclosed herein.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0018] A detailed description of systems and methods consistent
with embodiments of the present disclosure is provided below. While
several embodiments are described, it should be understood that the
disclosure is not limited to any one embodiment, but instead
encompasses numerous alternatives, modifications, and equivalents.
In addition, while numerous specific details are set forth in the
following description in order to provide a thorough understanding
of the embodiments disclosed herein, some embodiments can be
practiced without some or all of these details. Moreover, for the
purpose of clarity, certain technical material that is known in the
related art has not been described in detail in order to avoid
unnecessarily obscuring the disclosure.
[0019] Techniques, apparatus and methods are disclosed that enable
a global navigation satellite system (GNSS) receiver to reconcile
received satellite transmissions with predicted satellite
transmissions. By comparing actual transmission quality with
predicted transmission quality, a system can determine unmodeled
obstructions, temporary obstructions, jamming, spoofing or other
origins of interference with predicted transmission quality of a
satellite in a GNSS.
[0020] For example, a three-dimensional spatial map of an
environment with buildings (or other man-made structures) can be
used to computationally predict locations and times of GNSS
blockages (e.g., low satellite transmission quality at a location).
For example, in urban environments (e.g., New York City) some GNSS
satellites are occluded by buildings. These blockages can be a
predicable event. A computing system can make a map showing which
satellites are or are not visible as a function both of location
within the city and time (based at least in part on satellite
orbits). This map can be made empirically (by actually measuring
signals at different locations and times) or virtually (given a
digital model of the city and knowledge of the orbits). Such maps
can be made on a satellite-by-satellite basis, using a given
satellite's behavior (as the behavior depends on time in orbit
relative to Earth's rotation). The map can enable a mobile GNSS
receiver to determine which satellites to use in a given situation.
The computing system can determine when a given satellite will
enter or leave a GNSS receiver view during a route (or a contiguous
set of locations). The map can be stored in the GNSS receiver (or a
host of the GNSS) or can be stored by a network service. This
mapping can also be used to determine situations that include
multi-path effects for a given satellite.
[0021] In some embodiments, a GNSS receiver can share data and
correlate results. In an embodiment, unexpected obstructions to
satellite transmissions (as seen by degraded transmission quality)
are correlated. Using this correlation, an obstruction can be
determined and added to a three-dimensional map. In one embodiment,
temporary obstructions can be differentiated from permanent
obstructions (such as by time of day of observations, etc.).
[0022] In some embodiments, a GNSS receiver or service can
determine active interference with GNSS. A GNSS receiver can use
simulation to determine inconsistencies with simulated results that
can indicate external actions such as spoofing, jamming or other
active measures to interfere with GNSS operation. In an embodiment,
a GNSS receiver determines that a result of a simulation indicates
that a satellite transmission has a low predicted transmission
quality. A received transmission with a higher transmission quality
can indicate spoofing. In another embodiment, a simulation
indicates that a satellite transmission has a high predicted
transmission quality. A low transmission quality can indicate
jamming. In one embodiment, a higher than expected background noise
indicates jamming.
[0023] A GNSS can include global satellite systems, regional
satellite systems and enhanced systems. Satellite systems include
the global positioning system (GPS), GLONASS, Beidou navigation
satellite system (BDS), Galileo, doppler orbitography and
radio-positioning integrated by satellite (DORIS), Indian regional
navigational satellite system (IRNSS) and quasi-zenith satellite
system (QZSS). Enhanced systems include wide area augmentation
system (WAAS), European geostationary navigation overlay service
(EGNOS), multi-functional satellite augmentation system (MSAS),
GPS-aided geo-augmented navigation (GAGAN), StarFire, assisted GPS
(A-GPS or aGPS) and differential GPS (DGPS).
[0024] In one embodiment, a satellite visibility system can include
storage that holds a three-dimensional spatial map that includes
buildings. Using satellite ephemeris data and a position within the
map at a time, a satellite signal transmission can be simulated
from the satellite to the position at the time within the map. A
transmission quality of the transmission can be estimated based on
the simulation. In some embodiments, multiple satellites can be
simulated. In other embodiments, satellite transmissions can be
modeled over time (such as at a fixed location, or over a route)
taking into account satellite motion, Earth rotation, and user
motion.
[0025] In an embodiment, a navigation system can predict
transmission qualities of satellite signals over time in an urban
environment that includes buildings. The transmission qualities can
be simulated over time to predict if or when the transmission
qualities will degrade below a quality threshold. When too few
satellite signals are above a transmission quality threshold, a
navigation position can be difficult to determine and/or unreliable
(also known as an outage). The transmission qualities can also be
simulated over time to predict a duration of an outage. When the
transmission qualities are predicted to degrade below a quality
threshold and/or for a threshold period of time, the navigation
system can be configured to use a backup navigation subsystem with
less or zero reliance on the satellites (e.g., inertial navigation,
assisted global positioning system (A-GPS), differential global
positioning system (DGPS), etc.).
[0026] In some embodiments, a navigation system can use the
predicted transmission quality from simulated transmissions in the
three-dimensional maps to determine positional quality estimates.
In one embodiment, a navigation system can determine multi-path
effects (such as time spread) during the simulation of
transmissions of the three-dimensional environment using buildings.
Simulations can also include estimates that include building
materials and numbers of satellites. In an embodiment, a positional
quality estimate can be represented by a shape that forms a contour
(e.g., circle or ellipse) of uncertainty of the current position.
As the positional quality degrades, the size of the shape
increases, showing a greater uncertainty of the position. In one
embodiment, a positional quality can be estimated over time,
including a duration of a positional quality below a positional
quality threshold.
[0027] In some embodiments, a GNSS receiver can be
network-connected. In an embodiment, a GNSS receiver can be
connected to a local, regional and/or global network. In one
embodiment, a GNSS receiver can be connected with a network service
that provides navigation support (such as three-dimensional maps,
satellite data, warm start information, satellite maps, time
dependent service coverage maps or other navigation and/or
simulation information). In another embodiment, the GNSS receiver
can be connected with other GNSS receivers through the network. In
an embodiment, GNSS receivers share information, such as updated
maps, unexpected blockages, or other measurements, predictions,
estimates and/or data.
[0028] In some embodiments, a network service can provide some or
all of the simulation processing results and/or navigation data to
a connected GNSS receiver. In several embodiments, the GNSS
receiver offloads processing to a network service. In one
embodiment, a GNSS receiver provides a position and time to a
network service and receives data describing predicted transmission
qualities of satellites. In another embodiment, a GNSS receiver
provides a route to a network service and receives predicted outage
information. In one embodiment, a GNSS receiver provides a current
position to a network service and receives a set of updates on
simulated transmission qualities of satellites along a route
estimated by the network service. In other embodiments, a GNSS
receiver receives updated information from a network service. In an
embodiment, a GNSS receiver receives updated three-dimensional maps
from the network service.
[0029] In one embodiment, a GNSS receiver can communicate with
other GNSS receivers in a peer-to-peer fashion. In one embodiment,
the peer-to-peer connections are over a wide-area network (such as
the Internet). In another embodiment, the peer-to-peer connections
are over a local network connection (such as a device-to-device
connection). In some embodiments, the GNSS receivers share data,
such as transmission quality history, updated maps, inconsistencies
between measured and predicted information, blockage information,
etc. In an embodiment, local GNSS receivers share computing
resources (such as splitting up computing tasks, computing
positions, detecting satellite ephemeris data, or simulating
satellite positions) by computing in parallel and sharing
results.
[0030] In some GNSS systems (such as GPS) a satellite transmission
includes a pseudorandom code, satellite ephemeris data and almanac
data. The pseudorandom code identifies a satellite from which the
transmission originates. The satellite ephemeris data can include
information about satellite location (current and/or predicted),
timing and satellite health. Almanac data can describe coarse
orbital parameters of the satellite and other satellites in the
GNSS.
[0031] In one embodiment, a GNSS receiver uses trilateration to
determine latitude, longitude and altitude. By aligning an internal
clock with received transmissions from satellites (taking into
account delays in receipt), a GNSS receiver can determine a
distance away from a satellite based on a delay of transmission to
receipt. By combining these distance measurements with satellite
ephemeris data, a GNSS receiver can determine its position. Using
historical information, a GNSS receiver can also determine speed,
direction, acceleration and other position-based information. Based
on signals from three satellites, a GNSS receiver can estimate
latitude and longitude using trilateration and an assumption of the
Earth as a sphere. Based on signals from four or more satellites, a
GNSS receiver can estimate latitude, longitude and altitude.
[0032] By using a three-dimensional map to estimate transmission
quality of satellite transmissions to a GNSS receiver, decisions
can be made based on GNSS navigation quality (such as number of
satellites having transmission quality above a transmission quality
threshold, expected duration of a threshold number of satellites
having transmission quality above a transmission quality threshold,
expected duration of satellites having transmission quality below a
transmission quality threshold, etc.).
[0033] GNSS based systems can also be used to enable location-based
services besides route guidance. Location based services can
include routing, fleet services, medical services and directed
advertising. In one embodiment, GNSS services can be used to
predict location based services quality (which can include Internet
connectivity quality). For example, a GPS receiver can use aGPS
information (e.g., cellular towers, wireless local area network
(WLAN or Wi-Fi.TM.) signals) to predict location determination time
(e.g. GPS "lock-on" time) as well as cellular signal strength. In
another embodiment, WLAN signals are used to supplement low quality
GNSS signals and aid in prediction of a location indoors through
use of a database of WLAN access point locations. In another
embodiment, a hybrid GPS system is used which can use GPS signals,
cell tower signals, wireless internet signals, Bluetooth.TM.
sensors, IP addresses and/or network environment data.
[0034] GNSS based systems can also be used to predict
location-based-service quality and/or compare predicted
location-based-service quality between routes. Simulations of GNSS
systems can include supplemental simulations or information in the
three-dimensional map, such as cell towers and reference sites. For
example, a GPS system can use aGPS information (cellular towers,
etc.) and/or DGPS information (reference sites, etc.) in its
simulation to predict location-based-service quality. As satellite
signals transmission quality changes in spacetime in simulation,
the aGPS and/or DGPS behavior can be simulated in spacetime to
determine effects on location-based-service quality. The simulating
system can recommend a route based on the predicted
location-based-service quality. In some embodiments, the predicted
location-based-service quality is Internet service quality.
[0035] In one embodiment, routing information is delivered to a
robotic vehicle. The vehicle can be dependent on a data link which
includes a link with a GNSS service to provide routing information.
The GNSS service can provide rating on routes based at least in
part on efficacy for location-based services (including
location-based cellular services, etc.). The route can then be
delivered to the robotic vehicle over the data link.
[0036] FIG. 1 is a diagram 100 of a GNSS modeling system 102 that
uses a three-dimensional map 112 containing buildings 114 with
satellite ephemeris data to predict GNSS coverage of a spacetime
location 122. The GNSS modeling system 102 can create a model 103
of an environment using a three-dimensional map 112 (such as those
created by light detection and ranging (LIDAR) or other methods).
Using attributes 104 of the predicted spacetime location 122 (such
as latitude, longitude, altitude and time) and satellite ephemeris
data, satellite transmission quality can be predicted.
[0037] In the embodiment shown, satellites 106, 108 and 110 are
modeled to provide transmissions 116, 118 and 120 to the spacetime
location 122. Transmissions 118 and 120 are predicted to have a
high transmission quality (shown by solid lines), while
transmission 116 is predicted to be blocked by a building 114 and
become a low quality transmission (shown by the dashed line).
[0038] In some embodiments, the GNSS modeling system 102 can
include other modeling techniques. For example, a line of sight
from the spacetime location 122 and a satellite is modeled to be a
high quality transmission. The GNSS can also model non-line of
sight situations, which provide a degraded quality transmission
(such as blocking by a building or the Earth). The GNSS modeling
system 102 can use construction material (composition data) to
determine reflection, refraction, transmittance and/or absorption
of signal transmissions from the satellites 106, 108 and 110. In
another example, the GNSS modeling system 102 can estimate
multi-path effects from reflections in between buildings 114 (such
as delay and/or frequency spread). These models can aid in
determining an uncertainty in predicted navigation position
determination.
[0039] In some embodiments, a navigation quality can be determined
using the model 103. In some embodiments, if a minimum number of
satellites 106, 108 and 110 having a predicted transmission quality
that exceeds a transmission quality threshold is not met, then a
navigation quality can be predicted to be degraded. When a
navigation quality is sufficiently degraded, it is called an
outage. In some embodiments, a minimum of four satellites with a
transmission quality that exceeds a transmission threshold is
needed to provide accurate latitude, longitude and altitude
estimates. In an embodiment, a minimum of three satellites with a
transmission quality that exceeds a transmission threshold is
needed to provide accurate latitude and longitude estimates.
[0040] In some embodiments, predictions are on a per-satellite
basis. For a given spacetime location, the model indicates which
satellites have a clear line of sight. The model can indicate how
many and which satellites a given spacetime location should be able
to access. In some embodiments, this information is used to
determine when and where a GNSS system will have insufficient (such
as less than four) satellites in view. In some embodiments, this
information is used to determine which satellites a GNSS receiver
should attempt to access. In some embodiments, this information is
used to determine the effect which transmissions from specific
satellites will have on location accuracy provided by a GNSS
receiver at a spacetime location, and can be used to determine not
only which satellites the GNSS receiver should attempt to access,
but also their relative priority and/or the order in which they
should be accessed.
[0041] In addition to blockage information, a three-dimensional map
can be used to predict multipath effects in some embodiments. The
predictions can include a time spread for each satellite's signals
at a given spacetime location, a strength of reflected signals and
a frequency spread. This prediction can be computed whether or not
the satellite line of sight is blocked. This prediction (or
predictions) can be used to determine where alternative navigation
systems (such as AGPS) are needed. In some embodiments, spatial
locations that suffer frequent blockages can be selected as prime
candidates for alternative navigation systems.
[0042] FIG. 2 is a diagram 200 illustrating GNSS modeling. In some
embodiments, a GNSS modeling system can create a time dependent
coverage map 212. In the embodiment shown, a GNSS receiver can
apply the time dependent coverage map 212 to a route 222. Based on
the time dependent coverage map 212, transmissions 224 and 226 will
be obstructed by a building 214 during the route 222. Transmissions
228, 230 and 232 will have line of sight and are predicted to have
a high transmission quality along the route 222.
[0043] A time dependent coverage map 212 can be obtained by
different sources. In one embodiment, a central service computes
the time dependent coverage map 212. The central service can then
provide the map and/or updates to the map through a network (such
as a wireless network (e.g., cellular, wireless local area network
(WLAN), personal area network (PAN), etc.)) to the GNSS system. In
some embodiments, the service provides an application programming
interface (API) to allow GNSS receivers to request the time
dependent coverage map 212. In other embodiments, the service can
provide a push message to provide the time dependent coverage map
212. In another embodiment, a GNSS receiver calculates the time
dependent coverage map 212 itself. In yet another embodiment, GNSS
receivers can share time dependent coverage maps through peer
networking. In one embodiment, GNSS receivers share processing
resources and compute a time dependent coverage map 212 in
parallel.
[0044] In some embodiments, satellite transmission quality
predictions can be made for travel along a route. These
transmission quality predictions can include a determination of
which satellites are predicted to be available at any spacetime
location along the route. The predictions can include when and/or
where a single satellite, or full GNSS, outage will occur along a
route and for how long given travel along the route. For example,
if a satellite "k" is currently obstructed, the GNSS modeling
system can tell when it will become available and for how long. If
satellite k is currently available, the GNSS modeling system can
tell when it will become obstructed.
[0045] The time dependent coverage map 212 can be based on a
three-dimensional map and satellite ephemeris data. Satellite
ephemeris data can include information about a satellite 206 and a
constellation of satellites. For example, satellite ephemeris data
from the satellite 206 can indicate that the satellite 206 moves
along a trajectory 202.
[0046] In some embodiments, predictions as to length of outages and
number of satellites involved can be used to decide how to deal
with an outage. If satellite k is predicted to be visible for a
short period, the navigation system can decide not to attempt to
use it. If an outage (along the route) is short, the navigation
system can decide to rely on inertial backup. If the outage is
predicted to last longer, the navigation system can engage
alternative navigation systems (e.g., inertial systems, augmented
systems such as AGPS systems, etc.). In one embodiment, a decision
as to which type of alternative system to use during an outage can
depend on how many satellites are still available (and their
directions).
[0047] In addition to computational predictions based on a
three-dimensional map of the environment, the predictions can
include empirically measured blockage information from GPS
receivers at various spacetime locations. These measurements can
come from a local receiver or from other receivers (e.g.,
peer-to-peer, or report to a service). These measurements may be
used to infer locations of obstructions.
[0048] The predictions can be made into a time dependent coverage
map, allowing users to get coverage information for any desired
spacetime location. The coverage map can be made on board each GPS
receiver, using either an on-board or service-based
three-dimensional map of the environment. In an embodiment, a
coverage map can be provided by an off-board entity which supplies
the information to GNSS receivers.
[0049] In some embodiments, the predictions can be used to diagnose
coverage issues. A low signal level for satellite k at a location
where coverage should exist can indicate an unmodeled obstruction.
If a locus of blockages of lines of sight converges, a fixed
obstruction can be inferred from the blockages, allowing the fixed
obstruction to be added to the three-dimensional map. If the
lines-of-sight blockages do not converge, this result can indicate
a temporary obstruction (e.g., from a nearby vehicle).
[0050] An application of the modeling system is used in some
embodiments, shown in FIGS. 3 and 4, to identify spoofing or
jamming. If the modeling system predicts, using the map, that
satellite k has a low transmission quality at the time/location,
then a "signal" from the satellite represents a spoofing attempt.
If the modeling system predicts, using the map, that satellite k
has a high transmission quality at the time/location, then a low
transmission quality due to high noise represents a jamming event,
whereas a low transmission quality due to low signal strength
represents a blockage event.
[0051] FIG. 3 is a diagram of an environment 300 with satellite
transmission spoofing. In the embodiment shown, a modeling system
predicts, using a four-dimensional spacetime map 312 (i.e., a
time-dependent three-dimensional spatial map), that a predicted
transmission 324 from a satellite 306 is obstructed by a building
314 to form a predicted degraded transmission 326 having a low
transmission quality to a position 322. However, a GNSS receiver at
the position 322 receives a measured transmission 328 of high
transmission quality that appears to be from the satellite 306, but
is from a spoofing system 302. A GNSS receiver can determine that a
spoofing attempt is occurring due to the difference between a
predicted transmission quality of the predicted degraded
transmission 326 having a low transmission quality and the measured
transmission 328 having a high transmission quality. For example,
an apparently valid serial number (S/N) for satellite k at a
location where coverage is predicted to not exist can indicate a
spoofing attempt.
[0052] FIG. 4 is a diagram of an environment 400 with satellite
transmission jamming. In the embodiment shown, a modeling system
predicts, using a four-dimensional spacetime map 412, that a
predicted transmission 424 from a satellite 406 will have a high
transmission quality to a location 422 due to line of sight between
the satellite 406 and the location 422. However, a GNSS receiver at
the position 322 receives a measured degraded transmission 426
having a low transmission quality to the location 422 due to the
jamming by a jamming system 402. A GNSS receiver can determine that
at least one of an unmodeled blockage or a jamming attempt is
occurring due to the difference between a predicted transmission
quality of the predicted transmission 424 having a high
transmission quality and the measured transmission having a low
transmission quality. In addition, a high noise level can further
indicate jamming rather than blockage. For example, a high noise
level for a satellite k at a location where coverage should exist
can indicate jamming.
[0053] FIG. 5 is a diagram 500 of a navigation system 502 that
includes a GNSS receiver 506. The navigation system 502 can include
a navigation control system 504, the GNSS navigation subsystem 506,
an augmented GNSS system (such as an aGPS navigation system 510), a
secondary navigation subsystem (such as inertial navigation system
514), a network interface 520 and storage 528. The navigation
system 502 can determine which navigation subsystem to select based
on predicted effectiveness. The predicted effectiveness can be
computed by the navigation control system 504 and/or received
through a network interface from a network service 526. For
example, when a GNSS navigation subsystem 506 is predicted to be
less effective, an augmented GNSS system (such as the aGPS
navigation system 510) or an inertial navigation system 514 can be
selected for use.
[0054] Depending on the embodiment, a GNSS modeling system can be
incorporated into the receiver or a GNSS service. In some
embodiments, the navigation control system 504 can predict
satellite transmission qualities to a position at a time using a
GNSS prediction system 518. The navigation control system 504 can
retrieve information from storage 528 and model satellite
transmissions to a location at a time as described above (e.g., in
conjunction with FIGS. 1 and 2). For example, the navigation
control system 504 can retrieve a three-dimensional map from map
storage 530 and satellite ephemeris data from satellite data
storage 532 (and/or from satellite signals received through the
GNSS receiver 506). Using determined route data (which can be
retrieved from route data storage 534 or predicted based on
position history retrieved from history storage 536), the
navigation control system 504 can model satellite transmissions in
the three-dimensional maps to an expected spacetime location of the
navigation system 502 using the GNSS receiver 506. This predicted
data can be used to determine whether to rely on the GNSS receiver
506, engage augmented systems (such as the aGPS system 510 with a
GPS antenna 512) or use alternate navigation systems (such as the
inertial navigation system 514 with inertial sensors 516).
[0055] In some embodiments, the navigation control system 504 can
communicate with the network service 526 over the network interface
520 (connected to an antenna 522) to receive information for
predicting satellite transmission qualities. The navigation control
system 504 can perform all or some computations locally or rely on
the network service 526 to receive data (e.g., three-dimensional
maps, ephemeris data, coverage maps, time dependent coverage maps,
predicted transmission quality data, etc.). For example and in one
embodiment, the navigation control system 504 receives an updated
three-dimensional map from the network service 526 over a wireless
network 524 (such as a cellular network, WLAN, PAN, etc.). The
navigation control system 504 can store the updated map in map
storage 530 and use it in future modeling of satellite
transmissions. In some embodiments, the navigation control system
504 can use an offline cache 538 to store data for when
communication with the network service 526 is unavailable.
[0056] In another embodiment, the network service simulates a model
of satellites over time and provides a time dependent map to the
navigation control system 504. The navigation control system 504
can then use the predicted coverage map to make decisions regarding
navigation (such as relying on a GNSS receiver, using alternate
navigation, waiting for an outage to pass, estimating position
based on historical data and/or predicted data, etc.).
[0057] In an embodiment, the network service simulates a model of
satellites over time in a three-dimensional map with buildings and
provides a predicted satellite transmission quality at a spacetime
position. The model can simulate a transmission of satellite
navigation signals from a set of satellites to a set of locations.
The simulation can be requested by the navigation control system
504 through an API of the network service 526. The simulation can
be performed by the network service 526 and reported to the
navigation control system 504 based on prior requests and a
predicted route with timing.
[0058] In another embodiment, the navigation control system 504 can
provide GNSS receiver data to the navigation service 526 and
receive results. For example, the navigation control system 504 can
provide the received transmission data to the network service 526.
The network service 526 can compare the measured data (signal
strength, timing, noise, the receiver's derived position estimate,
etc.) to predicted data (signal strength, timing, noise, a position
estimate predicted from satellite data and a three-dimensional map,
etc.). The network service 526 can then report the predicted
position, anomalies (such as jamming or spoofing) and/or suggested
recommendations for navigation. Recommendations for navigation can
be based on predictions of outages, determined spoofing or jamming,
and/or measured satellite transmission qualities. The network
service 526 can also correlate multiple reports of unexpected low
transmission qualities to determine temporary or permanent
unmodeled obstructions.
[0059] In some embodiments, the navigation control system 504 can
communicate with the GNSS receiver 506 to compare received GNSS
signals (over an antenna 508) to predicted GNSS signals. The
navigation control system 504 can use these anomalies to determine
unmodeled obstructions, spoofing or jamming, and/or to make
decisions on navigation.
[0060] FIGS. 6 and 7 describe processes in which data from multiple
GNSS receivers can be correlated to determine new information about
the environment which can be shared among the GNSS receivers. In
FIG. 6, this correlation and processing can be performed by a
central service. In FIG. 7, the correlation and processing can be
performed in a peer-to-peer environment.
[0061] FIG. 6 is a process diagram 600 of a set of GNSS receivers
interacting with a GNSS service. The process can be accomplished by
a system such as the one shown in FIG. 5 including a plurality of
navigation systems 502 and the network service 526. The process
involves a plurality of GNSS navigation systems 602, 604 and 606.
The process includes the GNSS navigation systems 602, 604 and 606
predicting satellite transmission qualities in operation 610. The
GNSS navigation systems 602, 604 and 606 report to a GNSS service
608 a failure of the prediction to match measured transmission
qualities in operation 612 at a position and time. The GNSS service
608 correlates the results in operation 614. The GNSS service then,
at operation 616, sends updated obstruction information (such as a
three-dimensional map with an obstruction removed or added) to GNSS
navigation systems 602, 604 and 606.
[0062] For example, GNSS navigation system #1 (602), predicts a
satellite transmission quality using a three-dimensional map and
satellite ephemeris data in block 618a. GNSS navigation system #2
(604), predicts a satellite transmission quality using a
three-dimensional map and satellite ephemeris data in block 618b.
This repeats with a plurality of GNSS navigation systems up to N
systems, including GNSS navigation system #N (606) which predicts a
satellite transmission quality using a three-dimensional map and
satellite ephemeris data in block 618x. The GNSS navigation systems
602, 604 and 606 then perform a sensing of transmission quality in
blocks 620a, 620b and 620x that matches the prior prediction in
blocks 618a, 618b and 618x. At least some of the predictions do not
match the measured satellite transmission quality. These failures
are reported to the GNSS service 608. GNSS navigation system #1
(602) reports the failure to match in operation 622a. GNSS
navigation system #2 (604) reports the failure to match in
operation 622b. GNSS navigation system #N (606) reports the failure
to match in operation 622x. The GNSS service 608 correlates reports
in block 624 until the correlation converges (e.g., a previously
unknown obstruction is identified or a previously known obstruction
is removed) in block 626. The GNSS service 608 then sends an update
(such as an updated three-dimensional map, an updated coverage map,
etc.) to the GNSS navigation systems 602, 604 and 606 in operation
616. The GNSS navigation system #1 (602) receives a transmission
from the GNSS service 608 in operation 628a. The GNSS navigation
system #2 (604) receives a transmission from the GNSS service 608
in operation 628b. This continues to include the GNSS navigation
system #N (606) receiving a transmission from the GNSS service 608
in operation 628x.
[0063] FIG. 7 is a process diagram of a set of GNSS receivers
interacting in a peer-to-peer configuration. The process can be
accomplished by a system such as shown in FIG. 5 including a
plurality of navigation systems 502. The process involves a
plurality of GNSS navigation systems 702, 704 and 706. The process
shows an example when GNSS navigation system #1 (702) begins in
peer-to-peer network communication range of GNSS navigation system
#2 (704) during operation 710, moves out of range during operation
714 and then back in range for operation 718. GNSS navigation
system #2 (704) begins out of peer-to-peer network communication
range of GNSS navigation system #N (706) during operation 710,
moves in range during operation 714 and then back out of range for
operation 718.
[0064] The GNSS navigation systems 702, 704 and 706 perform a
prediction in operation 708. The GNSS navigation systems 702, 704,
while within communication range, share information wherein
predictions of satellite transmission qualities did not match
measured satellite transmission qualities, in operation 710. The
GNSS navigation systems 702, 704 perform correlation of the shared
data in operation 712 in an attempt to discover unknown
obstructions or remove obstructions from three-dimensional maps.
The GNSS navigation systems 702, 704 and 706 perform another
prediction in operation 713. The GNSS navigation systems 704, 706,
while within communication range, share information wherein
predictions of satellite transmission qualities did not match
measured satellite transmission qualities, in operation 714. The
GNSS navigation systems 704, 706 perform correlation of the shared
data in operation 716 in an attempt to discover unknown
obstructions or remove obstructions from three-dimensional maps.
Updated three-dimensional maps can be shared with GNSS navigation
systems 702, 704 and 706 in operation 718.
[0065] For example, the GNSS navigation systems 702, 704 and 706
determine predicted satellite transmission qualities in operation
708. GNSS navigation system #1 (702) predicts transmission
qualities from satellites in block 720a. GNSS navigation system #2
(704) predicts transmission qualities from satellites in block
720b. GNSS navigation system #N (706) predicts transmission
qualities from satellites in block 720x. The GNSS navigation
systems 702, 704 and 706 then sense measured satellite transmission
qualities in blocks 722a, 722b and 722x respectively. Significant
deviations between predicted satellite transmission quality and
measured transmission quality can be shared between the GNSS
navigation systems 702 and 704 when they are in peer-to-peer
network range in operation 710. GNSS navigation system #1 (702)
reports deviations to GNSS navigation system #2 (704) in
transmission 724a. GNSS navigation system #2 (704) reports
deviations to GNSS navigation system #1 (702) in transmission 724b.
The GNSS navigation systems 702 and 704 then perform a correlation
operation 712. GNSS navigation system #1 (702) performs a
correlation operation in block 726a and updates an internal map
with discovered information (such as potential new obstructions or
potential obstructions that are no longer present) in block 728a.
GNSS navigation system #2 (704) performs a correlation operation in
block 726b and updates an internal map with discovered information
(such as potential new obstructions or potential obstructions that
are no longer present) in block 728b.
[0066] The prediction operations, report operations and correlation
operations can repeat until it is determined that a new obstruction
is present or a previous obstruction is no longer present on a
three-dimensional map that includes buildings. In the example
shown, the GNSS navigation systems 702, 704 and 706 determine
predicted satellite transmission qualities in operation 713. GNSS
navigation system #1 (702) predicts transmission qualities from
satellites in block 730a. GNSS navigation system #2 (704) predicts
transmission qualities from satellites in block 730b. GNSS
navigation system #N (706) predicts transmission qualities from
satellites in block 730x. The GNSS navigation systems 702, 704 and
706 then sense measured satellite transmission qualities in blocks
732a, 732b and 732x respectively. Significant deviations between
predicted satellite transmission quality and measured transmission
quality can be shared between GNSS navigation systems 704 and 706
when they are in peer-to-peer network range in operation 714. GNSS
navigation system #2 (704) reports deviations to GNSS navigation
system #N (706) in transmission 734b. GNSS navigation system #N
(706) reports deviations to GNSS navigation system #2 (704) in
transmission 734x. The GNSS navigation systems 704 and 706 then
perform a correlation operation 716. GNSS navigation system #2
(704) performs a correlation operation in block 736b and updates an
internal map with discovered information (such as potential new
obstructions or potential obstructions that are no longer present)
in block 738b. GNSS navigation system #N (706) performs a
correlation operation in block 736x and updates an internal map
with discovered information (such as potential new obstructions or
potential obstructions that are no longer present) in block
738x.
[0067] Due to the correlation operation 736b performed by GNSS
navigation system #2 (704), an obstruction was discovered and added
to the three-dimensional map in block 738b. This updated map can be
shared via a network connection (shown here as a peer-to-peer
connection, but other connections are also possible, e.g., network
service, repository, WLAN, PAN, etc.) as shown in operation 718. In
the embodiment shown, GNSS navigation system #2 (704) transmits the
updated three-dimensional map to GNSS navigation system #1 (702) in
transmission 740. GNSS navigation system #1 (702) then updates its
map with the new information in block 742. Depending on the
embodiment, the update can be information describing the change to
the three-dimensional map (e.g., an addition), or an update to a
portion of a three-dimensional map, or an update of the entire
three-dimensional map.
[0068] FIGS. 8 and 9 describe methods that can be used to predict
satellite transmission quality in an environment with buildings. In
FIG. 8, a method is shown that predicts satellite transmission
quality based on a three-dimensional map and satellite ephemeris
data. In FIG. 9, the predicted transmission quality is compared
with measured transmission quality to identify significant
differences.
[0069] FIG. 8 is a flow chart illustrating a method 800 for
predicting transmission quality. The process can be accomplished by
a system such as shown in FIG. 5 including a plurality of
navigation systems 502 and/or the network service 526. In block
802, a GNSS navigation system determines a position that is outside
buildings and a time within a three-dimensional map for modelling.
In block 804, the GNSS navigation system determines a satellite
position at the time based at least in part on satellite ephemeris
data. In block 806, the GNSS navigation system simulates a signal
transmission from the satellite to a position and time using the
three-dimensional map and satellite ephemeris data. In block 808,
the GNSS navigation system determines a predicted transmission
quality associated with the signal transmission.
[0070] FIG. 9 is a flow chart illustrating a method 900 for
empirically reconciling blockage information. The process can be
accomplished by a system such as shown in FIG. 5 including a
plurality of navigation systems 502 and/or the network service 526.
In block 902, a GNSS navigation system determines a position that
is outside buildings and a time within a three-dimensional map for
modeling. In block 904, the GNSS navigation system determines a
satellite position at the time based at least in part on satellite
ephemeris data. In block 906, the GNSS navigation system simulates
a signal transmission from the satellite to a position and time
using the three-dimensional map and satellite ephemeris data. In
block 908, the GNSS navigation system determines a predicted
transmission quality associated with the signal transmission. In
block 910, the predicted transmission quality is compared with a
measured transmission quality. In block 912, the GNSS navigation
system determines interference information based on the comparison
in block 910 (such as jamming, spoofing, unmodeled obstructions,
removal of modeled obstructions, modeling of temporary
obstructions, etc.).
[0071] FIG. 10 is a system diagram illustrating a system 1000
configured to provide services to a GNSS navigation system over a
network (such as an Internet 1014) consistent with embodiments
disclosed herein. A GNSS navigation system can communicate with a
service 1016 over the Internet 1014 as described above. The service
1016 can include load balancers 1002 capable of decryption,
application servers 1004, storage 1006, control servers 1010 and/or
a logging server 1008. The load balancers 1002 can receive requests
from GNSS navigation systems and format the requests to be received
by the application servers 1004. The application servers 1004 can
receive data from the GNSS navigation systems, cause data to be
stored by data servers with storage 1006 and model satellite
transmissions from a satellite to a location on a three-dimensional
map at a time. The application servers 1004 can provide results
(such as predicted transmission quality, time dependent coverage
map, etc.) to the load balancers 1002, which transmit the results
to GNSS navigation systems. Database servers with storage 1006 can
store data regarding the GNSS navigation system, satellite
ephemeris data, routes, positions, history and/or user and/or
device account information. A control server 1010 can monitor
systems of the service 1016 and/or cause servers to be added to
pools of servers (such as the load balancers 1002, application
servers 1004 and/or database servers 1006). The control server 1010
can also provide data integrity/redundancy services such as causing
snapshotting, caching and/or other features. The logging service
1008 can track usage and operations performed by the service 1016
and on behalf of the service 1016.
[0072] In one example, a user can set up an account with the
service 1016 using an application on a mobile device. The user
registers an account with the service 1016. The service 1016 can
store user credentials in storage 1006.
[0073] FIG. 11 is a schematic diagram of a computing system 1100
consistent with embodiments disclosed herein. The computing system
1100 can be viewed as an information passing bus that connects
various components. In the embodiment shown, the computing system
1100 includes a processor having logic 1102 for processing
instructions. Instructions can be stored in and/or retrieved from
memory 1106 and a storage device 1108 that includes a
computer-readable storage medium. Instructions and/or data can
arrive from a network interface 1110 that can include wired 1114 or
wireless 1112 capabilities. Instructions and/or data can also come
from an I/O interface 1116 that can include such things as
expansion cards, secondary buses (e.g., USB), devices, etc. A user
can interact with the computing system 1100 though user interface
devices 1118 and a rendering system 1104 that allows the computer
to receive and provide feedback to the user.
[0074] Embodiments and implementations of the systems and methods
described herein may include various operations, which may be
embodied in machine-executable instructions to be executed by a
computer system. A computer system may include one or more
general-purpose or special-purpose computers (or other electronic
devices). The computer system may include hardware components that
include specific logic for performing the operations or may include
a combination of hardware, software, and/or firmware.
[0075] Computer systems and the computers in a computer system may
be connected via a network. Suitable networks for configuration
and/or use as described herein include one or more local area
networks, wide area networks, metropolitan area networks, and/or
Internet or IP networks, such as the World Wide Web, a private
Internet, a secure Internet, a value-added network, a virtual
private network, an extranet, an intranet, or even stand-alone
machines which communicate with other machines by physical
transport of media. In particular, a suitable network may be formed
from parts or entireties of two or more other networks, including
networks using disparate hardware and network communication
technologies.
[0076] One suitable network includes a server and one or more
clients; other suitable networks may contain other combinations of
servers, clients, and/or peer-to-peer nodes, and a given computer
system may function both as a client and as a server. Each network
includes at least two computers or computer systems, such as the
server and/or clients. A computer system may include a workstation,
laptop computer, disconnectable mobile computer, server, mainframe,
cluster, so-called "network computer" or "thin client," tablet,
smart phone, personal digital assistant or other hand-held
computing device, "smart" consumer electronics device or appliance,
medical device, or a combination thereof.
[0077] Suitable networks may include communications or networking
software, such as the software available from Novell.RTM.,
Microsoft.RTM., and other vendors, and may operate using TCP/IP,
SPX, IPX, and other protocols over twisted pair, coaxial, or
optical fiber cables, telephone lines, radio waves, satellites,
microwave relays, modulated AC power lines, physical media
transfer, and/or other data transmission "wires" known to those of
skill in the art. The network may encompass smaller networks and/or
be connectable to other networks through a gateway or similar
mechanism.
[0078] Various techniques, or certain aspects or portions thereof,
may take the form of program code (i.e., instructions) embodied in
tangible media, such as floppy diskettes, CD-ROMs, hard drives,
magnetic or optical cards, solid-state memory devices, a
nontransitory computer-readable storage medium, or any other
machine-readable storage medium wherein, when the program code is
loaded into and executed by a machine, such as a computer, the
machine becomes an apparatus for practicing the various techniques.
In the case of program code execution on programmable computers,
the computing device may include a processor, a storage medium
readable by the processor (including volatile and nonvolatile
memory and/or storage elements), at least one input device, and at
least one output device. The volatile and nonvolatile memory and/or
storage elements may be a RAM, an EPROM, a flash drive, an optical
drive, a magnetic hard drive, or other medium for storing
electronic data. One or more programs that may implement or utilize
the various techniques described herein may use an application
programming interface (API), reusable controls, and the like. Such
programs may be implemented in a high-level procedural or an
object-oriented programming language to communicate with a computer
system. However, the program(s) may be implemented in assembly or
machine language, if desired. In any case, the language may be a
compiled or interpreted language, and combined with hardware
implementations.
[0079] Each computer system includes one or more processors and/or
memory; computer systems may also include various input devices
and/or output devices. The processor may include a general purpose
device, such as an Intel.RTM., AMD.RTM., or other "off-the-shelf"
microprocessor. The processor may include a special purpose
processing device, such as ASIC, SoC, SiP, FPGA, PAL, PLA, FPLA,
PLD, or other customized or programmable device. The memory may
include static RAM, dynamic RAM, flash memory, one or more
flip-flops, ROM, CD-ROM, DVD, disk, tape, or magnetic, optical, or
other computer storage medium. The input device(s) may include a
keyboard, mouse, touch screen, light pen, tablet, microphone,
sensor, or other hardware with accompanying firmware and/or
software. The output device(s) may include a monitor or other
display, printer, speech or text synthesizer, switch, signal line,
or other hardware with accompanying firmware and/or software.
[0080] It should be understood that many of the functional units
described in this specification may be implemented as one or more
components, which is a term used to more particularly emphasize
their implementation independence. For example, a component may be
implemented as a hardware circuit comprising custom very large
scale integration (VLSI) circuits or gate arrays, or off-the-shelf
semiconductors such as logic chips, transistors, or other discrete
components. A component may also be implemented in programmable
hardware devices such as field programmable gate arrays,
programmable array logic, programmable logic devices, or the
like.
[0081] Components may also be implemented in software for execution
by various types of processors. An identified component of
executable code may, for instance, comprise one or more physical or
logical blocks of computer instructions, which may, for instance,
be organized as an object, a procedure, or a function.
Nevertheless, the executables of an identified component need not
be physically located together, but may comprise disparate
instructions stored in different locations that, when joined
logically together, comprise the component and achieve the stated
purpose for the component.
[0082] Indeed, a component of executable code may be a single
instruction, or many instructions, and may even be distributed over
several different code segments, among different programs, and
across several memory devices. Similarly, operational data may be
identified and illustrated herein within components, and may be
embodied in any suitable form and organized within any suitable
type of data structure. The operational data may be collected as a
single data set, or may be distributed over different locations
including over different storage devices, and may exist, at least
partially, merely as electronic signals on a system or network. The
components may be passive or active, including agents operable to
perform desired functions.
[0083] Several aspects of the embodiments described will be
illustrated as software modules or components. As used herein, a
software module or component may include any type of computer
instruction or computer-executable code located within a memory
device. A software module may, for instance, include one or more
physical or logical blocks of computer instructions, which may be
organized as a routine, program, object, component, data structure,
etc., that perform one or more tasks or implement particular data
types. It is appreciated that a software module may be implemented
in hardware and/or firmware instead of or in addition to software.
One or more of the functional modules described herein may be
separated into sub-modules and/or combined into a single or smaller
number of modules.
[0084] In certain embodiments, a particular software module may
include disparate instructions stored in different locations of a
memory device, different memory devices, or different computers,
which together implement the described functionality of the module.
Indeed, a module may include a single instruction or many
instructions, and may be distributed over several different code
segments, among different programs, and across several memory
devices.
[0085] Some embodiments may be practiced in a distributed computing
environment where tasks are performed by a remote processing device
linked through a communications network. In a distributed computing
environment, software modules may be located in local and/or remote
memory storage devices. In addition, data being tied or rendered
together in a database record may be resident in the same memory
device, or across several memory devices, and may be linked
together in fields of a record in a database across a network.
[0086] Reference throughout this specification to "an example"
means that a particular feature, structure, or characteristic
described in connection with the example is included in at least
one embodiment of the present invention. Thus, appearances of the
phrase "in an example" in various places throughout this
specification are not necessarily all referring to the same
embodiment.
[0087] As used herein, a plurality of items, structural elements,
compositional elements, and/or materials may be presented in a
common list for convenience. However, these lists should be
construed as though each member of the list is individually
identified as a separate and unique member. Thus, no individual
member of such list should be construed as a de facto equivalent of
any other member of the same list solely based on its presentation
in a common group without indications to the contrary. In addition,
various embodiments and examples of the present invention may be
referred to herein along with alternatives for the various
components thereof. It is understood that such embodiments,
examples, and alternatives are not to be construed as de facto
equivalents of one another, but are to be considered as separate
and autonomous representations of the present invention.
[0088] Furthermore, the described features, structures, or
characteristics may be combined in any suitable manner in one or
more embodiments. In the following description, numerous specific
details are provided, such as examples of materials, frequencies,
sizes, lengths, widths, shapes, etc., to provide a thorough
understanding of embodiments of the invention. One skilled in the
relevant art will recognize, however, that the invention may be
practiced without one or more of the specific details, or with
other methods, components, materials, etc. In other instances,
well-known structures, materials, or operations are not shown or
described in detail to avoid obscuring aspects of the
invention.
[0089] Although the foregoing has been described in some detail for
purposes of clarity, it will be apparent that certain changes and
modifications may be made without departing from the principles
thereof. It should be noted that there are many alternative ways of
implementing both the processes and apparatuses described herein.
Accordingly, the present embodiments are to be considered
illustrative and not restrictive, and the invention is not to be
limited to the details given herein, but may be modified within the
scope and equivalents of the appended claims.
[0090] Those having skill in the art will appreciate that many
changes may be made to the details of the above-described
embodiments without departing from the underlying principles of the
invention. The scope of the present invention should, therefore, be
determined only by the following claims.
* * * * *