# Patent application title: PEDAL NAVIGATION USING LEO SIGNALS AND BODY-MOUNTED SENSORS

##
Inventors:
Isaac Thomas Miller (San Mateo, CA, US)
Brent Michael Ledvina (San Francisco, CA, US)
Clark E. Cohen (Washington, DC, US)
Clark E. Cohen (Washington, DC, US)

IPC8 Class: AG01C2112FI

USPC Class:
701216

Class name: Using global positioning system (gps) means to improve accuracy of position or location having an self-contained position computing means (e.g., dead reckoning)

Publication date: 2011-09-29

Patent application number: 20110238308

## Abstract:

A navigation system includes a navigation radio and sensor mountable to a
pedal subject. The navigation radio processes RF signals to derive
successive range observables for one or more overhead assets such as
low-earth orbit (LEO) satellites. A sensor is operable to generate output
useful in computing successive positional dead reckoning (PDR) data under
pedal motion. The radio includes navigation code operable to obtain a
navigation solution including an absolute position solution and one or
more of a velocity solution, time solution, and attitude solution based
on the successive range observables, ephemerides for the corresponding
LEO satellite, and the generated successive PDR data. A PDR component
including pedal motion constraints is corrected by occasional LEO
satellite ranging data to generate a highly-accurate pedal navigation
solution in environments where GPS fails, such as in buildings, shopping
malls, dense forests, deep open-pit mines, urban canyons, or in jammed
signal environments.## Claims:

**1.**A pedal navigation method comprising: generating successive positional dead reckoning data including at least one of position data, velocity data, acceleration data, angular rate data, rotational angle data, and attitude data based on output from one or more sensors generated during pedal motion; receiving, from one or more LEO satellites, RF signals at an RF antenna coupled to a navigation radio; obtaining satellite ephemerides for the one or more LEO satellites; deriving successive range observables for the one or more LEO satellites, based on the received RF signals; computing a navigation solution including an absolute position solution based on the generated successive positional dead reckoning data, the derived successive range observables, and the obtained ephemerides.

**2.**The navigation method of claim 1, wherein computing the navigation solution comprises computing a dead reckoning solution based on the generated successive positional dead reckoning data and correcting positional dead reckoning errors using the derived successive LEO satellite range observables.

**3.**The navigation method of claim 2, wherein computing the dead reckoning solution includes employing one or more of the following motion constraints: that a foot is substantially stationary during contact with the ground; that a foot is substantially non-rotating during contact with the ground; that a foot is neither accelerating nor decelerating during contact with the ground; that a pedal subject is moving on the ground; that travel is limited to pedal velocities; and that pedal travel is primarily forward travel.

**4.**The navigation method of claim 3, wherein one or more of the employed motion constraints is employed as a soft constraint to determine when to omit sensor data collected during pedal motion that violates one or more of the employed motion constraints.

**5.**The navigation method of claim 1, wherein computing the navigation solution comprises relating the derived successive range observables with state components of a dead reckoning solution calculated using the generated successive positional dead reckoning data.

**6.**The navigation method of claim 1, further comprising establishing an altitude pseudomeasurement for the navigation radio based on at least one of local terrain data, building schematics and an altimeter measurement and employing the altitude pseudomeasurement in computing the navigation solution.

**7.**The navigation method of claim 1, further comprising establishing, using a magnetometer, one or more of a heading measurement, latitude measurement, and altitude measurement for the navigation radio and employing the one or more established measurements in computing the navigation solution.

**8.**The navigation method of claim 7, wherein the one or more established measurements is at least partly established as one or more of: a projection of a measured magnetic field in a local tangent plane; a projection of the measured magnetic field on a local nadir vector; and the strength of a measured magnetic field.

**9.**The navigation method of claim 1, further comprising initializing the navigation radio with an initial navigation solution prior to generating the successive positional dead reckoning data.

**10.**The navigation method of claim 9, wherein the initial navigation solution is based on at least one of a satellite signal, pseudolite signal, UAV signal, terrestrial reference station signal, and user-entered location data.

**11.**The navigation method of claim 1, further comprising determining, using the output from the one or more sensors, when a foot is in contact with the ground.

**12.**The navigation method of claim 11, wherein generating the successive positional dead reckoning data is based, at least in part, on the determining when a foot is in contact with the ground.

**13.**The navigation method of claim 1, further comprising correcting sensor bias estimates and gravity subtraction errors accumulated in generating the successive positional dead reckoning data.

**14.**The navigation method of claim 1, wherein the derived successive range observables include at least one of a pseudorange measurement, carrier phase measurement, and a Carrier Doppler shift frequency measurement.

**15.**The navigation method of claim 14, wherein the range observables are derived from an iGPS Iridium Advanced Waveform signal.

**16.**A pedal navigation system comprising: at least one sensor mountable on a pedal subject and operable to generate one or more outputs useful in computing successive dead reckoning data including at least one of position data, velocity data, acceleration data, angular rate data, rotational angle data, and attitude data; a navigation radio couplable to the sensor, the navigation radio comprising: an RF antenna operable to receive RF signals from one or more LEO satellites; an RF front end operable to downconvert and digitize the RF signals; a digital processor operable to derive successive range observables from the downcoverted RF signals for the one or more LEO satellites; a navigation code stored in media and including instructions executable on the digital processor to compute a navigation solution including an absolute position solution based on the computed successive dead reckoning data, the derived successive range observables, and ephemerides for the one or more LEO satellites.

**17.**The navigation system of claim 16, wherein the sensor comprises a six-degrees of freedom inertial measurement unit (IMU) including three orthogonal rate gyros and three orthogonal accelerometers.

**18.**The navigation system of claim 17, further comprising a three-axis magnetometer substantially fixed relative to a coordinate frame of the IMU and operable to provide at least one of heading data, latitude data, and altitude data to the navigation radio.

**19.**A pedal navigation system comprising: a navigation radio; a sensor mounted to a pedal subject and coupled to the navigation radio, the sensor operable to generate one or more outputs useful in computing successive dead reckoning data including at least one of positional data, velocity data, acceleration data, angular rate data, rotational angle data, orientation data, and attitude data; an RF antenna electrically coupled to the navigation radio and operable to receive RF signals from one or more moving overhead assets; an RF front end operable to downconvert and digitize the RF signals to produce digital IF signals; a digital processor operable to compute successive dead reckoning solutions based on the successive dead reckoning data, and to compute successive range observables from the digital IF signals for the one or more moving overhead assets at a frequency substantially corresponding to the computation of the successive dead reckoning solutions and wherein the one or more moving overhead assets is travelling so as to generate appreciable geometric variation in the successive range observables; a navigation code stored in media and including instructions executable on the digital processor to calculate a navigation solution including an absolute position solution based on the successive dead reckoning solutions and the successive range observables.

**20.**The navigation system of claim 19, wherein the pedal subject comprises one of a pedestrian, a mounted rider, legged animal and a legged robot.

**21.**The navigation system of claim 19, wherein the navigation code is configured to employ one or more of the following motion constraints: that a foot is substantially stationary during contact with the ground; that a foot is substantially non-rotating during contact with the ground; that a foot is neither accelerating nor decelerating during contact with the ground; that a pedal subject is moving near the ground; that travel is limited to pedal velocities; and that pedal travel is primarily forward travel.

**22.**The navigation system of claim 19, further comprising at least one or more of a magnetometer, altimeter, multi-antenna array, sun sensor, and digital compass coupled to the navigation radio and wherein the navigation code is configured to correct one or more navigation solution states using data generated from outputs of the one or more of a magnetometer, altimeter, multi-antenna array, sun sensor, and digital compass.

**23.**The navigation system of claim 19, wherein the navigation code is configured to calculate the navigation solution employing an altitude pseudomeasurement based on at least one of terrain map data, building schematic data, an altimeter measurement and user-provided location data.

**24.**The navigation system of claim 19, wherein the navigation code comprises an extended Kalman filter employing a measurement model, dynamics model and a state vector definition wherein the state vector definition includes a navigation radio position, a navigation radio velocity, a navigation radio clock offset, a sensor rate-gyro bias, a sensor accelerometer bias; and a navigation radio attitude estimate; and wherein the measurement model defines a relationship between the state vector and each of the range observables and sensor measurements.

**25.**The navigation system of claim 19, wherein the navigation solution further includes at least one of a velocity solution, time solution, and attitude solution.

**26.**The navigation system of claim 19, further comprising an ultra-stable oscillator.

**27.**A pedal navigation method comprising: calculating successive positional dead reckoning solutions based on successively sampled positional dead reckoning data including at least one of velocity data, acceleration data, angular rate data, rotational angle data, orientation data, and attitude data based on output from one or more sensors generated during pedal motion; receiving, at an RF antenna coupled to a navigation radio, RF signals broadcast from one or more overhead assets; deriving successive range observables for the corresponding one or more overhead assets based on the received RF signals, wherein the one or more overhead assets is travelling so as to generate appreciable geometric variation relative to the RF antenna in the successive range observables; and computing a navigation solution including an absolute position based on the successive calculated positional dead reckoning solutions and the derived successive range observables.

**28.**The pedal navigation method of claim 27, further comprising determining from the generated sensor output when a foot has impacted the ground.

**29.**The pedal navigation method of claim 27, further comprising determining from the generated sensor output a frequency of a repeating pedal motion.

**30.**The pedal method of claim 27, wherein the navigation solution further includes at least one of a velocity solution, time solution, and attitude solution.

## Description:

**CROSS REFERENCE TO RELATED APPLICATIONS**

**[0001]**This application claims priority to U.S. Provisional Application No. 61/317,867, filed Mar. 26, 2010, and entitled "Vehicle Navigation Using Non-GPS LEO Signals and On-board Sensors," which is incorporated herein in its entirety by reference.

**FIELD OF THE INVENTION**

**[0002]**This invention relates generally to radio navigation and positioning systems and, more specifically, to systems for pedal navigation using motion sensors and signals from overhead assets such as low earth orbit satellite signals.

**BACKGROUND**

**[0003]**With the variety and availability of military and civilian location- and timing-based services on the rise, the desire for robust and accurate personal navigation devices has far outpaced even the cutting edge of navigation technology. Hand-held devices now provide up-to-date maps of every road on Earth and vast databases of geo-registered imagery covering almost every inch of the globe. Navigation has been integrated into many aspects of personal and portable computing, for example, with smart phones that queue up menus of the best restaurants for a given user location. Still, the accuracy such navigation systems is often reliant on the availability and the accuracy of the Global Positioning System (GPS), a constellation of mid-Earth orbit satellites furnished by the United States government to provide global navigation satellite signals (GNSS) for civilian and military positioning.

**[0004]**A user owning either a military or civilian GPS receiver can readily determine his absolute position and synchronize his receiver clock by observing four (or sometimes fewer) GPS satellites. Each satellite delivers data to the user that allows the user to determine the location of the satellite to high accuracy, e.g., a few meters' error at a range of twenty thousand km. The receiver typically measures other observables from GPS satellites, including an effective range measurement via time of flight and an effective range rate measurement, e.g., via apparent signal Doppler shift. With sufficient satellite measurements, a user can triangulate his position and synchronize his receiver clock, using each measurement as a constraint in a nonlinear optimization problem. The more satellites visible, the better constrained the overall navigation solution will be.

**[0005]**Significant problems arise, however, in scenarios in which the receiver loses access to the GPS observables. For example, civilian receivers may become inoperable in urban canyons or indoors, e.g., in shopping malls, or in deep forest deep or open-pit mines. Military receivers may become inoperable in critically low GPS signal environments, e.g., in urban warfare zones with tall buildings or in jammed signal environments, making it difficult to precisely direct air support or other location critical operations. In the worst case scenario, the navigation solution is unsolvable, and the receiver cannot compute a navigation solution or timing solution. Similarly, with too few or too weak of constraints, a navigation solution quickly becomes unusable. For example, even ten meters of error is enough to lead a vehicle off the road or an artillery battery to fire on friendly soldiers. Unfortunately, strong satellite constraints often become scarce in buildings, shopping malls, dense forests, deep open-pit mines, urban canyons, and in jammed signal environments. In each of these cases, the relatively-weak GPS signals from the slowly-orbiting mid-Earth orbit GPS constellation generally yield insufficient signal availability for usable, let alone highly-accurate, navigation solutions.

**[0006]**Various technologies have sought to improve the accuracy and robustness of personal navigation devices by improving access to GPS satellite signals. These technologies include, for example, high-sensitivity GPS (HSGPS) receivers capable of detecting lower GPS signal power, and assisted GPS (A-GPS), which uses cell tower communication to assist in acquiring signals from otherwise hard-to-find GPS satellites. While such technologies can improve signal availability of GPS, the receiver ultimately remains dependent on weak GPS satellite signals and a slow-changing satellite geometry in constructing a final navigation solution.

**[0007]**Still other proposed technologies have sought to improve the accuracy and robustness of the GPS navigation solution through augmentation with sensors such as rate gyros or accelerometers. Inertial measurement units ("IMU") can produce a temporary integrated navigation solution during times when GPS is not available, however, such IMU solutions based on dead reckoning generally accumulate integration errors at alarming speeds. Dead reckoning (DR) is the process of estimating current position based on a previously determined positional fix and advancing that position based upon known or estimated speeds or courses over elapsed time. Because new positions are calculated based on previous positions, the errors of the process are cumulative, so the error in the positional fix can grow rapidly. Even mid-range IMUs, which are more costly than a personal navigation device, yield dead reckoning solutions that become unusable on the time scale of one or two minutes. In contrast, less costly, low-range IMUs yield dead reckoning solutions that become unusable on a time scale of seconds. Thus, conventional dead reckoning algorithms can tolerate only minor outages or errors in positioning information. GPS has been explored as an aiding absolute positioning source, however, GPS suffers from availability and detectability problems in even moderately-challenging signal environments.

**[0008]**Accordingly, improvements are sought in navigation in weak-signal GPS or GPS independent scenarios.

**SUMMARY**

**[0009]**It has been discovered that a combination of a positional dead reckoning ("PDR") solution, with pedal motion constraints, and low-Earth orbit (LEO) satellite signals can generate a GPS-quality, yet GPS independent pedal navigation solution. Various implementations include three components: a positional dead reckoning (PDR) component that applies pedal motion constraints to body-mounted or hand-held sensors to generate successive dead reckoning solutions; a low-Earth orbit satellite signal reception and processing component that provides successive measurements from LEO satellites to correct the successive positional dead reckoning solutions, and a navigation solution (NS) component combining outputs from the PDR and LEO components into a unified navigation solution that simultaneously satisfies pedal motion constraints and LEO satellite constraints.

**[0010]**While various implementations are described in the context of LEO satellite signals, it will be understood that any overhead moving asset may be used if it generates sufficient geometrical variation on the time scales at which errors grow in the positional dead reckoning solution. For example, a UAV signal may be used in some scenarios. GPS and other constellations beyond low-Earth orbit generally do not provide sufficiently dynamic geometry change to produce meaningful geometric variation on the time scale useful for correction of successive pedal dead reckoning solutions. For example, a GPS satellite may orbit the Earth in as many as 12 hours while LEO satellite may do so in 100 minutes or less. Given the rapid accumulation of dead reckoning biases and other errors, ranging variation of the overhead assets becomes increasingly important as lower grade or fewer sensors are used.

**[0011]**The relative signal strength of LEO satellites and near earth overhead assets also provides significant advantages over weaker mid-Earth orbit GPS satellite signals in many common environments such as buildings, dense forests, urban canyons, or in jammed signal environments.

**[0012]**Thus, a combination of pedal motion constraints and rapidly changing LEO satellite measurements may be used to provide a GPS-quality, compact, wearable, accurate, robust pedestrian or other pedal navigation solution without using GPS. In some implementations, the combination of pedal motion constraints in positional dead reckoning solutions and LEO satellite signals can provide more accurate solutions than conventional dead reckoning and GPS.

**[0013]**The use of PDR techniques and subtle pedal motion constraints vastly improves the quality of the navigation solution. The pedal motion constraints greatly reduce the rate at which dead reckoning errors accumulate in the overall navigation solution. The pairing with LEO satellite measurements is well-suited for navigation in challenging signal environments due to higher power of LEO signals, and rapid constellation geometry changes due to short orbital periods. These two LEO satellite features can be used to substantially reduce error growth in successive pedal dead reckoning solutions.

**[0014]**In the case of pedal dead reckoning, velocity error and position error are resolved in absolute terms at the dead-reckoning level. Thus, typical single-satellite ambiguities are not significant. Ranging information from a single LEO satellite is sufficient to accurately solve for the east, north, and time biases to convert a dead reckoning state into absolute position, subject to LEO signal and clock measurement quality.

**[0015]**In some applications, a pedal navigation method includes generating successive positional dead reckoning data including at least one of position data, velocity data, acceleration data, angular rate data, rotational angle data, and attitude data based on output from one or more sensors generated during pedal motion. The method includes receiving, from one or more LEO satellites, RF signals at an RF antenna coupled to a navigation radio, obtaining satellite ephemerides for the one or more LEO satellites, and deriving successive range observables for the one or more LEO satellites, based on the received RF signals. The method further includes computing a navigation solution including an absolute position solution based on the generated successive positional dead reckoning data, the derived successive range observables, and the obtained ephemerides.

**[0016]**In some applications, computing the navigation solution includes computing a dead reckoning solution based on the generated successive positional dead reckoning data and correcting positional dead reckoning errors using the derived successive LEO satellite range observables.

**[0017]**In some applications, computing the dead reckoning solution includes employing one or more of the following motion constraints: that a foot is substantially stationary during contact with the ground; that a foot is substantially non-rotating during contact with the ground; that a foot is neither accelerating nor decelerating during contact with the ground; that a pedal subject is moving on the ground; that travel is limited to pedal velocities; and that pedal travel is primarily forward travel.

**[0018]**In some cases, one or more of the employed motion constraints is employed as a soft constraint to determine when to omit sensor data collected during pedal motion that violates one or more of the employed motion constraints.

**[0019]**In some applications, computing the navigation solution includes relating the derived successive range observables with state components of a dead reckoning solution calculated using the generated successive positional dead reckoning data.

**[0020]**In some applications, the method includes establishing an altitude pseudomeasurement for the navigation radio based on at least one of local terrain data, building schematics and an altimeter measurement and employing the altitude pseudomeasurement in computing the navigation solution.

**[0021]**In some applications, the method includes establishing, using a magnetometer, one or more of a heading measurement, latitude measurement, and altitude measurement for the navigation radio and employing the one or more established measurements in computing the navigation solution. In some cases, the one or more established measurements is at least partly established as one or more of: a projection of a measured magnetic field in a local tangent plane; a projection of the measured magnetic field on a local nadir vector; and the strength of a measured magnetic field.

**[0022]**In some applications, the method includes initializing the navigation radio with an initial navigation solution prior to generating the successive positional dead reckoning data. In some cases, the initial navigation solution is based on at least one of a satellite signal, pseudolite signal, UAV signal, terrestrial reference station signal, and user-entered location data.

**[0023]**In some applications, the method includes determining, using the output from the one or more sensors, when a foot is in contact with the ground. In some cases, generating the successive positional dead reckoning data is based, at least in part, on the determining when a foot is in contact with the ground.

**[0024]**In some applications, the method includes correcting sensor bias estimates and gravity subtraction errors accumulated in generating the successive positional dead reckoning data.

**[0025]**In some applications, the derived successive range observables include at least one of a pseudorange measurement, carrier phase measurement, and a Carrier Doppler shift frequency measurement. In some cases, the range observables are derived from an iGPS Iridium Advanced Waveform signal.

**[0026]**In some implementations a pedal navigation system includes at least one sensor mountable on a pedal subject and operable to generate one or more outputs useful in computing successive dead reckoning data including at least one of position data, velocity data, acceleration data, angular rate data, rotational angle data, and attitude data. The pedal navigation system further includes a navigation radio couplable to the sensor. The navigation radio includes an RF antenna operable to receive RF signals from one or more LEO satellites; an RF front end operable to downconvert and digitize the RF signals; and a digital processor operable to derive successive range observables from the downcoverted RF signals for the one or more LEO satellites. A navigation code is stored in media and includes instructions executable on the digital processor to compute a navigation solution including an absolute position solution based on the computed successive dead reckoning data, the derived successive range observables, and ephemerides for the one or more LEO satellites.

**[0027]**In some implementations, the sensor includes a six-degrees of freedom inertial measurement unit (IMU) including three orthogonal rate gyros and three orthogonal accelerometers. In some cases, the system includes a three-axis magnetometer substantially fixed relative to a coordinate frame of the IMU and operable to provide at least one of heading data, latitude data, and altitude data to the navigation radio.

**[0028]**In some implementations, a pedal navigation system includes a navigation radio and a sensor mounted to a pedal subject and coupled to the navigation radio. The sensor is operable to generate one or more outputs useful in computing successive dead reckoning data including at least one of positional data, velocity data, acceleration data, angular rate data, rotational angle data, orientation data, and attitude data. An RF antenna is electrically coupled to the navigation radio and operable to receive RF signals from one or more overhead assets. An RF front end is operable to downconvert and digitize the RF signals to produce digital IF signals. A digital processor is operable to compute successive dead reckoning solutions based on the successive dead reckoning data, and to compute successive range observables from the digital IF signals for the one or more moving overhead assets at a frequency substantially corresponding to the computation of the successive dead reckoning solutions and wherein the one or more moving overhead assets is travelling so as to generate appreciable geometric variation relative to the RF antenna in the successive range observables. A navigation code is stored in media and includes instructions executable on the digital processor to calculate a navigation solution including an absolute position solution based on the successive dead reckoning solutions and the successive range observables.

**[0029]**Appreciable geometric variation is also relative to the time scale of accumulation of errors in the calculation of the successive positional dead reckoning solutions.

**[0030]**In some cases, the pedal subject is one of a pedestrian, a mounted rider, legged animal and a legged robot.

**[0031]**In some implementations, the system includes at least one or more of a magnetometer, altimeter, multi-antenna array, sun sensor, and digital compass coupled to the navigation radio and wherein the navigation code is configured to correct one or more navigation solution states using data generated from outputs of the one or more of a magnetometer, altimeter, multi-antenna array, sun sensor, and digital compass.

**[0032]**In some implementations, the navigation code is configured to calculate the navigation solution employing an altitude pseudomeasurement based on at least one of terrain map data, building schematic data, an altimeter measurement and user-provided location data.

**[0033]**In some implementations, the navigation code includes an extended Kalman filter employing a measurement model, dynamics model and a state vector definition wherein the state vector definition includes a navigation radio position, a navigation radio velocity, a navigation radio clock offset, a sensor rate-gyro bias, a sensor accelerometer bias; and a navigation radio attitude estimate; and wherein the measurement model defines a relationship between the state vector and each of the range observables and sensor measurements.

**[0034]**In some cases, the navigation solution further includes at least one of a velocity solution, time solution, and attitude solution.

**[0035]**In some implementations, the system includes an ultra-stable oscillator to mitigate accumulation of time errors.

**[0036]**In some implementations, a pedal navigation method includes calculating successive positional dead reckoning solutions based on successively sampled positional dead reckoning data including at least one of velocity data, acceleration data, angular rate data, rotational angle data, orientation data, and attitude data based on output from one or more sensors generated during pedal motion. The method includes receiving, at an RF antenna coupled to a navigation radio, RF signals broadcast from one or more overhead assets. The method further includes deriving successive range observables for the corresponding one or more overhead assets based on the received RF signals, wherein the one or more overhead assets is travelling so as to generate appreciable geometric variation relative to the RF antenna in the successive range observables; and computing a navigation solution including an absolute position based on the successive calculated positional dead reckoning solutions and the derived successive range observables.

**[0037]**In some applications, the method includes determining from the generated sensor output when a foot has impacted the ground.

**[0038]**In some applications, the method includes determining from the generated sensor output a frequency of a repeating pedal motion.

**[0039]**In some applications, the navigation solution further includes at least one of a velocity solution, time solution, and attitude solution.

**[0040]**Accordingly, a high-accuracy navigation solution including an absolute positional solution and one or more of a time solution, velocity solution and attitude solution may be computed using a receiver capable of computing successive varying range observables and sensors useful to generate output useful in computing successive positional dead reckoning solutions. The successive range observables and the successive positional dead reckoning solutions are used to compute the navigation solution.

**BRIEF DESCRIPTION OF THE DRAWINGS**

**[0041]**Various implementations are described in detail below with reference to the following drawings.

**[0042]**FIGS. 1A-1D illustrate various pedal subjects located in an urban valley and seeking a pedal navigation solution with a view of a LEO satellite, but where GPS signals may be blocked.

**[0043]**FIG. 2 is a block diagram of one implementation of a LEO navigation radio for use in pedal navigation.

**[0044]**FIG. 3 is a block diagram of a navigation radio configured to use both LEO satellite signals and pedal motion sensor output to compute a pedal navigation solution.

**[0045]**FIG. 4 is a diagram of a pedal navigation method employing both positional dead reckoning and LEO navigation methods.

**[0046]**FIG. 5 is a flow diagram of a positional dead reckoning method according to one implementation.

**[0047]**FIG. 6 is a flow diagram of a pedal navigation method according to one implementation.

**DETAILED DESCRIPTION**

**[0048]**The invention may be described herein in terms of functional and/or logical block components and various processing steps. It should be appreciated that such block components may be realized by any number of hardware, software, and/or firmware components configured to perform the specified functions. For example, an embodiment of the invention may employ various integrated circuit components, e.g., memory elements, antennas, digital signal processing elements, logic elements, look-up tables, or the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices. In addition, those skilled in the art will appreciate that the present invention may be practiced in conjunction with any number of data transmission protocols and that the system described herein is merely one exemplary application for the invention.

**[0049]**For the sake of brevity, conventional techniques related to signal processing, data transmission, signaling, global positioning systems, satellites, network control, and other such functional aspects of the systems (and the individual operating components of the systems) may not be described in detail herein. Furthermore, the connecting lines shown in the various figures contained herein are intended to represent example functional relationships and/or physical couplings between the various elements. It should be noted that many alternative or additional functional relationships or physical connections may be present in a practical embodiment. The invention may be implemented using any combination of hardware and software as may be appropriate given the particular circumstances.

**[0050]**The terms "pedal" "ambulatory" and "pedestrian" refer to implementations and applications involving legged conveyances or ambulatory subjects such as a foot soldier, mounted rider, legged robot, legged animal and the like. Various sensors described as being hand-held or body-mounted may be positionally fixed on a pedal subject in any suitable manner for corresponding algorithms to take advantage of pedal motion constraints. In some cases, the sensors are mounted near or on the foot of a subject, e.g., on a shoe or boot, or on the leg or subject's clothing. In some cases, the sensor can be mounted on the subject's torso. Still in some cases, the sensor may be mounted on a legged conveyance, e.g., a horse, while the navigation radio is held by a rider. The navigation radio antenna is preferably mounted higher on the pedal subject to optimize satellite visibility and to avoid interference with the sensor. Thus, references to body-mounted antennas, radios or sensors simply refer to substantially fixed positioning of components relative to the pedal subject.

**[0051]**In some implementations, a navigation solution combines outputs from body-mounted sensors with signals from low-Earth orbit (LEO) satellites to generate a pedal navigation solution that is independent of GPS. "LEO satellite" as used herein refers to any airborne or overhead moving asset between near the Earth's surface and approximately 2000 km from the Earth's surface. It will be understood that assets within this range are characterized by rapidly changing geometry, e.g., elevation and/or azimuth, as viewed from a navigation radio located at a point on the surface of the earth, in contrast to the slower geometric changes of a GPS or other higher-orbit asset. Accordingly, references to LEO satellite can also include manned or unmanned aircraft, e.g., UAV platforms and the like. Appreciable geometric variation allows for calculation of successive range observables on a similar time scale of accumulation of errors in the calculation of the successive positional dead reckoning solutions.

**[0052]**With reference to FIGS. 1A-1D, navigation radio 10 is carried by a pedestrian or other pedal subject 11, such as a foot soldier, legged conveyance such as a horse, an animal or legged robot. Navigation radio 10 is capable of providing an absolute navigation solution based on signals received from one or more LEO satellites 12 at a navigation radio antenna 13. This navigation solution can be particularly advantageous in buildings, urban canyons or other low GPS signal environments. A sensor 14, e.g., inertial sensor is coupled to radio 10 and positionally fixed on pedal subject 11, preferably close to the foot. In some cases, sensor 14 can be located on the leg or even torso of the pedal subject. Output from sensor 14 is used to derive successive positional dead reckoning (PDR) solutions. In some implementations, additional sensors such as an altimeter or magnetometer may provide data useful to navigation radio 10. The navigation radio antenna 13 is preferably mounted higher on the pedal subject to optimize satellite visibility and to avoid interference with sensor 14. For example, antenna 13 can be mounted to a helmet or extend upward from a backpack while sensor 14 may be strapped to or integrated into footwear or other pedal subject clothing or equipment. In some cases, radio 10, antenna 13 and sensor 14 may be closely spaced or may even be integrated into a body-mounted or hand-held unit.

**[0053]**In some applications, the LEO satellite 12 is an Iridium® or Globalstar® satellite or UAV platform providing data useful to navigation radio 10 in obtaining an absolute position solution and optionally, one or more of a timing solution, velocity solution, and attitude solution. In some applications, the timing, positional or navigational solutions can be used to initialize a positional dead reckoning component of navigation radio 10. The LEO satellite signal is further used to correct successive positional dead reckoning solutions as described in more detail below.

**[0054]**With reference to FIG. 2, the basic architecture for one implementation of navigation radio 10 includes an antenna 30 to receive the LEO signals, front end 34 including a bandpass filter 35, preamp 32 and LEO receiver 40 coupled to a clock 36, e.g., reference crystal oscillator. The RF front-end 34 draws in signals from the antenna 30 and filters, mixes, and digitizes the signals. The output of the RF front-end 34 is a stream of digital data samples that is routed to the receiver module 40. Front end 34 outputs LEO data to receiver 40.

**[0055]**In a particular implementation, clock 36 includes a compact, low-cost ultra-stable oscillator (USO)--one with the best Allan variance stability practically attainable for time intervals of 30 seconds and longer. Such varieties of USO can be an ovenized crystal oscillator (OCXO) or a chip-scale atomic clock (CSAC). With a highly accurate clock 36, an accurate navigation solution (approaching accuracy better than a few meters) is achievable with only a single LEO satellite in view--even under challenging conditions or with interrupted signal availability. In some cases, an ultra-stable oscillator can minimize time uncertainty such that LEO measurements may be used primarily for reducing position error with less need to correct timing errors.

**[0056]**With reference to FIG. 3, LEO receiver 40 includes memory 44 and computing device, e.g., microprocessor, or "DSP" 46. The DSP 46 processes computer programming instructions stored in memory 44, e.g., to determine absolute navigation radio position. A synthesizer 43 provides a coherent sine wave and clock signals to be used by other radio components based on a clock signal received by the synthesizer. For example, inertial sensor 14 provides accelerometer and rate-gyro measurements time tag synchronized to the receiver clock and may be used to provide raw digital motion samples for use in obtaining successive PDR solutions. Inertial sensor 14 is coupled to navigation radio 10 and provides inertial data, e.g., angular rate data and acceleration data input to DSP 38.

**[0057]**Sensor 14 can include an inertial sensor, an IMU, an integrated multi-axes accelerometer or may include discrete single axis accelerometers or gyros. In some implementations, sensor 14 may be a high-performance navigation grade inertial device, a chip scale inertial device, a chip scale MEMS gyro, a MEMS accelerometer or the like. Combinations of a single axis or multi-axis accelerometers and gyroscopes may be used in some implementations.

**[0058]**The DSP 38 provides estimation capability, for example, in the form of a Kalman Filter in some implementations, that combines available information, including that from the LEO satellite 12 and sensor 14 to obtain a navigation solution. DSP 38 may use outputs from other sensors, such as an altimeter or magnetometer or information stored in memory 44, such as local terrain data or building schematics to augment the navigation solution. A navigation code is stored in memory 44 and includes instructions executable on DSP 38 to precisely calculate the receiver position based on various state inputs to the Kalman filter as described herein.

**[0059]**The Kalman filter produces estimates of the true values of measurements and their associated calculated values by predicting a value, estimating the uncertainty of the predicted value, and computing a weighted average of the predicted value and the measured value with the most weight given to the value with the least uncertainty. The weights are calculated from the covariance, a measure of the estimated uncertainty of the prediction of the system's state. The result of the weighted average is a new state estimate that lies in between the predicted and measured state, and has a better estimated uncertainty than either alone. This process is repeated every time step, with the new estimate and its covariance informing the prediction used in the following iteration. The Kalman filter uses a dynamics model (i.e. physical laws of motion), known control inputs to that system, and sensor measurements to form an estimate of the system's state that is better than the estimate obtained by using any one measurement alone. While particular implementations are described with reference to a Kalman filter, any number of estimators or other suitable algorithms may be used in accordance with various implementations.

**[0060]**The rapid angle motion of LEO satellites enables the timing (code phase) and carrier phase of the incoming LEO signal to be determined precisely and ranging functions to be executed precisely. Thus, rapid angle motion of LEO satellites in combination with inertial sensor inputs and pedal motion constraints can be used to obtain an accurate navigation solution.

**[0061]**The front end 34 of the receiver 40 downconverts the RF LEO signal into an intermediate frequency (IF) signal which is output to the DSP 38. The front end can carry out various bandpass, automatic gain control (AGC), direct RF sampling and A/D conversion functions and may use direct or traditional inphase and quadrature downconversion schemes. For example, a hybrid coupler 33 can separate the signal into inphase and quadrature components and A/D converters 37, 39 can sample incoming inphase and quadrature signals and output to DSP 38 digital data useful to derive a LEO range observable. For example, DSP 38 can derive at least one of a pseudorange, carrier phase or Doppler shift range observable for a corresponding LEO satellite. DSP 38 can determine a clock offset between clock 36 and a LEO reference clock. DSP 38 may perform any number of routines with received signals or data including extracting ephemeris information for a corresponding LEO satellite.

**[0062]**Memory 44 stores data and computer programming instructions for processing. Memory 44 may be an EEPROM chip, electromagnetic device, optical storage devices, or any other suitable form or type of storage medium. Memory 44 can store, inter alia, ephemerides for the corresponding LEO satellite, local terrain data, building schematic data and any type of data derived from the received RF signals, inertial sensor or other sensor outputs, user inputs, or other suitable data source. For example, in some cases, the ephemerides are transmitted or obtained through other than a LEO signal, e.g., via a ground reference station or over a wireless network connection.

**[0063]**The ephemeris data or ephemerides for the LEO satellite generally provide parameters which allow for the computation of a satellite position at a particular time. Ephemeris data may be conveyed and updated via any suitable input, e.g., satellite signal, reference station signal, internet connection, line modem, or local memory update. The ephemerides can also include other information useful by DSP 38 to obtain accurate timing and positional solutions. Any number of DSPs or other processors or computing devices may be used to perform individual routines, or combinations or subsets or routines described herein. Aspects of the invention may be implemented as either software or hardware and are not limited to the illustrative forms described.

**[0064]**With reference to FIG. 4, a pedal navigation method is described. The navigation radio acquires a LEO satellite signal (block 402) and obtains corresponding ephemeris information (block 404). The LEO satellite signal is received at a navigation radio and is processed to obtain successive range observables as part of a LEO component (block 406). Processing the RF signal can include digitizing the RF signal via an RF front end to produce one or more digital IF signals. Successive positional dead reckoning data is obtained under pedal motion, including, for example, positional data, velocity data, acceleration data, angular rate data, rotational angle data or attitude data and received at the navigation radio as part of a positional dead reckoning component (PDR) (block 408). Additional sensors can provide any number of additional useful data or input to the navigation radio. The Kalman filter or other suitable estimator operable on a digital processor is used to calculate a pedal navigation solution based on a combination of the LEO component derived from the LEO range observables, and the PDR component derived from sensor measurements (block 410).

**[0065]**The Kalman filter updates the navigation solution estimation using all inputs received within a predetermined epoch or window. In some cases, the estimate can be updated with each new sensor input, e.g., with each pedal subject foot fall. Navigation radio position can be initialized in a cold start by determining which Iridium® satellite is in view and which of the 48 Iridium® satellite beams the radio is in. The navigation radio obtains ephemeris data for the corresponding Iridium® satellite and obtains a range observable from the RF signal useful in determining the position of the navigation radio. In some applications, the range observable is a pseudorange measurement. In some applications, the range observable is a carrier phase measurement. In some applications, the range observable used to estimate or refine the radio position is a Doppler profile of the Iridium® satellite. In some cases, positional measurements using pseudorange or Iridium® antenna beam measurements may yield a faster solution than waiting for sufficient satellite movement for Doppler shift data to be generated, particularly if multiple Iridium® satellites are in view. Nevertheless, refinement using Doppler measurement profiles may be useful in some cases. Accordingly, any suitable type or combination of range observables may be useful to the navigation radio in determining precise positioning.

**[0066]**In some applications, an initial LEO signal acquisition algorithm performs a signal search routine to establish a phase lock on a LEO satellite based on corresponding ephemeris data. The phase lock is maintained via phase-locked loops and tracking controls. Received LEO data is then downconverted and sampled via an RF front end, e.g., to provide IF signals to be used by a digital signal processor. A pseudorange measurement or other range observable is derived from the downconverted RF signals and stored in local memory. The pseudorange measurement can be used to obtain a position estimate and clock offset estimate. A calculation routine involves a navigation code or algorithm including various corrections of pseudomeasurements and parameters as described in detail below. The navigation code employs the LEO satellite ephemeris information, successive range observables, successive positional dead reckoning solutions based on sensor data (e.g., inertial sensor data), and Kalman filtering techniques to combine the successive range observables and sensor data and pedal motion constraints to calculate a precise absolute position estimate and other navigation solution, e.g., time, velocity and attitude.

**[0067]**With reference to FIG. 5, a positional dead reckoning method 500 is described. A PDR solution is initialized in a navigation radio using one or more of satellite signals, pseudolite signals, reference station signals, local terrain data, or user input location data. (block 502). Inertial data generated from body-mounted sensor outputs is received at the navigation radio. (block 504). The PDR solution is propagated in time (block 506) and the PDR solution is updated using the inertial data (block 508). Sensor outputs are used to identify pedal subject motion cues. (block 510). Motion constraint pseudomeasurements are prepared based on the identified motion cues. (block 512). The PDR solution is updated with the motion constraint pseudomeasurements. (block 514).

**[0068]**With reference to FIG. 6, a pedal navigation method 600 is described including both a LEO component 602 and a PDR component 604. In the LEO component 602, a LEO satellite signal is acquired, e.g., at a navigation radio. (block 606) Ephemeris information is obtained for the corresponding LEO satellite. (block 608). LEO satellite signals are received and processed at a navigation radio to obtain range observables. (block 610).

**[0069]**In the PDR component 604, the PDR solution is initialized. (block 612). Sensor outputs or corresponding data are received from pedal subject mounted sensors. (block 614). A positional dead reckoning solution is predicted forward in time. (block 616). The navigation solution is updated using the sensor data in combination with the range observables from block 610 of the LEO component 602. Pedal subject motion cues are identified based on the sensor outputs. (block 620). Pedal motion constraint pseudomeasurements are prepared based on the indentified motion cues, e.g., foot falls. (block 622). The navigation solution is then updated with the pedal motion constraint pseudomeasurements. (block 624).

**[0070]**In some implementations, an ambulatory or pedal navigation system comprises three components: 1) one or more body-mounted sensors integrated via a positional dead reckoning solution ("PDR component"), e.g., a PDR algorithm, 2) a LEO satellite signal reception and processing component ("LEO component"), e.g., a LEO radio, and 3) a navigation algorithm that combines the outputs of the PDR and LEO components to generate a navigation solution. In general, the navigation solution is initialized from the PDR and/or LEO components or from an external source of information, e.g., a satellite signal, pseudolite signal, reference station signal, terrain data, or user provided location input.

**[0071]**After navigation solution initialization, the PDR component combines outputs from body-mounted sensors to integrate successive navigation solutions under user motion. Simultaneously, the LEO component gathers available satellite signals to provide aiding information for the successive navigation solutions. For example, the navigation algorithm uses successive LEO data, e.g., successive range observables, derived from the received LEO satellite signals to correct errors that accumulate in the successive navigation solutions. Given sufficient LEO signals, the resulting navigation solution will not degrade over time. Significantly, the navigation solution based on the combined PDR and LEO components is independent of GPS.

**[0072]**The following sections describe the function of each of the positional dead reckoning (PDR) component, the low-Earth orbit satellite signal (LEO) component, and the navigation solution (NS) component with respect to the overall pedal navigation solution.

**Positional Dead Reckoning**(PDR)

**[0073]**The positional dead reckoning (PDR) component combines the outputs of one or more body-mounted sensors to integrate the navigation solution under the user's motion (or lack of motion). The PDR component is used to predict the time evolution of the navigation solution under user motion using algorithms that take advantage of pedal motion constraints applicable to scenarios in which the subject travels on foot or via a conveyance with legs. These motion constraints are leveraged to substantially reduce dead reckoning errors in comparison to traditional dead reckoning and inertial navigation algorithms. It is noted that a PDR component employing wheeled vehicle constraints in combination with a LEO component is disclosed in the priority application entitled "Vehicle Navigation Using Non-GPS LEO Signals and On-board Sensors."

**[0074]**The pedal motion constraints are based upon the following assumptions: (1) the foot of a pedestrian is approximately stationary when in contact with the ground; (2) the pedestrian is approximately constrained to move on or near the ground; (3) the pedestrian typically moves at ambulatory or relatively low speed compared to other modes of transportation (e.g., wheeled vehicles, airplanes, etc.); and (4) the pedestrian typically moves in the direction he is currently facing. The combined effect of these constraints substantially limits the motion available to a pedestrian in comparison to the unconstrained motion of an arbitrary rigid body. Thus, apparent motion outside the bounds of these constraints may generally be attributed to observed sensor error as the PDR solution is computed. Absent these pedal motion constraints, a PDR solution or other inertial navigation solution would suffer from significant error accumulation.

**[0075]**In a particular implementation, the PDR component maintains sufficient information to produce an estimate of the user's current position, velocity, and attitude. The PDR component maintains this information in a 10-dimensional state vector x

_{nav}(t

_{k}) consisting of a 3-dimensional position vector p(t

_{k}), a 3-dimensional velocity vector v(t

_{k}), and a 4-dimensional attitude quaternion q(t

_{k}), all valid at the current time t

_{k}:

**x nav**( t k ) = [ p ( t k ) v ( t k ) q ( t k ) ] ##EQU00001##

**though it is noted that other representations of varying dimension and**degrees of freedom have been explored and may be used. In order to compute the time evolution of the state vector x

_{nav}(t

_{k}) from the current time of interest t

_{k}to the next time of interest t

_{k+1}, the dynamics function f

_{nav}(•) that x

_{nav}(t

_{k}) obeys is derived. The particular implementation set forth below is similar to the model discussed in the priority application entitled "Vehicle Navigation Using Non-GPS LEO Signals and On-board Sensors":

**[ p ( t k + 1 ) v ( t k + 1 ) q ( t k + 1 ) ] = f nav ( x nav ( t k ) , b ( t k ) , w b ( t k ) , w n ( t k ) , y imu ( t k ) ) = f IMU ( [ p ( t k ) v ( t k ) q ( t k ) ] , [ b rg ( t k ) b acc ( t k ) ] , [ w rgb ( t k ) w accb ( t k ) ] , [ w rgn ( t k ) w accn ( t k ) ] , [ y rg ( t k ) y acc ( t k ) ] ) ##EQU00002##**

**where b**(t

_{k}) is a vector of inertial measurement unit (IMU) rate gyro and accelerometer biases, w

_{b}(t

_{k}) is a vector of zero mean, Gaussian white noise elements driving the time evolution of those biases, w

_{n}(t

_{k}) is a vector of zero mean, Gaussian white noise elements corrupting the IMU accelerometer and rate gyro measurements, and y

_{imu}(t

_{k}) is a vector of current IMU rate gyro and accelerometer measurements. This dynamics model utilizes a 6-degrees-of-freedom (6-dof) inertial measurement unit (IMU), which includes three orthogonal rate gyros and three orthogonal accelerometers. Other implementations may use other sensors and/or other dynamics functions to propagate the dead reckoning solution subject to user motion.

**[0076]**One benefit of utilizing a 6-dof IMU to propagate the dead reckoning solution in the PDR component is that it can be used to propagate any type of user motion in any direction: walking, running, crawling, climbing, crouching, etc. One drawback of using such an IMU in more traditional dead reckoning systems is that one must know both user attitude and user position with high accuracy in order to subtract the effects of gravity from the accelerometer measurements. Errors in this subtraction can propagate quickly across the dead reckoning solution, the position component p(t

_{k}) of which is advanced in time by integrating gravity-corrected accelerometer measurements twice.

**[0077]**Advantageously, this gravity subtraction can be performed very accurately and repeatedly for such a 6-dof IMU by calibrating IMU biases as the user moves by applying a PDR algorithm employing the pedal motion constraints described herein. For example, in an implementation using an IMU mounted on a user's shoe, this calibration can be done in two steps. First, the PDR component implements a step detection algorithm to determine based on IMU output when the user's foot has momentarily come to rest on the ground, e.g., on land, on a building floor, or other underlying surface. Second, IMU output collected during this momentary stationary period of contact is used to correct IMU bias estimates and gravity subtraction errors. The process can be repeated each time the user's foot is determined to be substantially stationary, which typically provides calibration data at rates higher than the rate of change of IMU biases. The IMU can be positioned on the foot, leg or torso to provide outputs for suitable motion algorithms to determine when the foot is substantially stationary in contact with the ground.

**[0078]**One suitable PDR component step detection algorithm calculates a magnitude of a measured IMU rotation rate vector ω(t

_{k}) and compares it to a threshold Ω

_{step}:

**ω(t**

_{k})=∥y

_{rg}(t

_{k})∥≦Ω.su- b.step

**to test whether**ω(t

_{k}) is small enough to be counted as evidence of a detected step. This threshold can be applied, for example, via statistical hypothesis testing. Assuming the quantity ω(t

_{k})≦Ω

_{step}to be a Bernoulli random variable independent of all ω(t

_{j}) for j≠k, a step is declared detected between t

_{k}-N+1 and t

_{k}if the probability of a step occurring given the sequence of rotation rates ω(t

_{j}) for j=k-N+1 to k is at least P

_{step}, where P

_{step}is presumably set close to unity.

**[0079]**Given that a step is detected at time t

_{j}for j=k-N+1 to k, the following constraints apply:

**v**(t

_{j})=0

**{dot over (v)}(t**

_{j})=A

^{T}(q(t

_{j}))[y

_{acc}(t

_{j})-b

_{acc}(t

_{j})-w-

_{acc}n(t

_{j})]+g(t

_{j},p(t

_{j}))-ω

_{E}×(ω.sub- .E×p(t

_{j}))-2ω

_{E}-v(t

_{j})=0

**{dot over (q)}(t**

_{j})=1/2Ω[y

_{rg}(t

_{j})-b

_{rg}(t

_{j})-w

_{rgn}(t.- sub.j)-A(q(t

_{j}))•ω

_{E}]•q(t

_{j})=0

**where A**(q(t

_{j})) is the direction cosine matrix formed from the user attitude quaternion q(t

_{j}), g(•) is a suitable Earth gravity model, ω

_{E}is the Earth's angular rotation vector, and Ω[•] is the quaternion derivative matrix, often used in spacecraft attitude dynamics.

**[0080]**These three vector constraint equations yield a large number of constraints on the relationships between the states of the dead reckoning solution. These constraints will be described in the context of a simplified case in which the IMU is mounted on a foot or shoe such that the IMU output may be substantially consistent with foot-specific pedal motion constraints. It will be understood that similar constraints and algorithms may be employed with IMUs or other sensors mounted further from the foot.

**[0081]**The first vector constraint equation expresses the fact that the foot is not moving when on the ground. Similarly, the second and third vector constraint equations express the fact that the foot is neither accelerating nor rotating while on the ground. These constraints may be incorporated directly into f

_{nav}(•) as hard constraints, or may be used as soft constraints to influence the current navigation solution. In some cases, some or all of the pedal motion constraints are applied as soft constraints. Further constraints details will be discussed in the section "Pedal Navigation Solution."

**[0082]**As mentioned above, other pedal motion constraints may also be used to slow the rate at which errors enter the PDR dead reckoning solution. The applicability of these constraints will depend on the particular implementation of the PDR component: e.g., what sensors are chosen, where and how the sensors are mounted, what types of pedal motion the user might experience, and what performance metrics are used to judge the resulting dead reckoning solution.

**[0083]**In a particular implementation, four additional constraints are used: two based on an assumption about the user's motion, and two based on the presence of additional sensors. The first of these additional constraints is the assumption that the user moves in the direction that he is facing. This constraint relates the direction of the user's velocity v(t

_{k}) to his attitude quaternion q(t

_{k}) through the following two equations:

**0=v**

^{T}(t

_{k})•A

^{T}(q(t

_{k}))•+(t

_{k})

**0=v**

^{T}(t

_{k})•A

^{T}(q(t

_{k}))•+(t

_{k})

**where A**(q(t

_{k})) is the direction cosine matrix formed from the user attitude quaternion q(t

_{k}), and are two orthogonal unit vectors (expressed in IMU coordinates) that provide a basis of velocity vector space in which walking does NOT occur, and (t

_{k}) and (t

_{k}) are the applicable error vectors that describe the extent to which the velocity constraints are violated. These two equations represent the fact that if the user is constrained to move in one dimension of a three-dimensional space, then there are two linearly-independent directions along which his velocity must be zero. The choice of unit vectors and are somewhat arbitrary, so long as linear combinations of and can be used to describe all directions the user cannot move. These vectors relate to the actual walking direction

_{walk}by the following equations:

_{walk}=×

**[0084]**A particular implementation chooses to point to the user's right, and to point to nadir. The two resulting constraint equations may be incorporated directly into f

_{nav}(•) as hard constraints, or may be used as soft constraints to influence the current navigation solution. In some cases, the constraints are applied as soft constraints. Further details will be discussed in the section "Pedal Navigation Solution."

**[0085]**In some implementations, an altimeter, terrain map, or building schematic may be used to provide altitude measurements to further reduce the growth of errors in the dead reckoning estimates of the user's motion. For example, if an altimeter produces altitude measurements a(t

_{k}) at the current time t

_{k}, these measurements can be related to the elements of the dead reckoning solution x

_{nav}(t

_{k}) by the following equation:

**a**(t

_{k})=h

_{alt}(p(t

_{k}),q(t

_{k}),r

_{alt}(t

_{k}))+v

_{alt}- (t

_{k})

**where k**

_{alt}(•) is the function that calculates the parameterized altitude of the altimeter as a function of user position, attitude, and the relative location of the altimeter r

_{alt}(t

_{k}) with respect to the origin of the navigation coordinate frame, and v

_{alt}(t

_{k}) is the applicable vector of altimeter measurement errors at time t

_{k}. This altimeter equation provides another constraint to be satisfied by the dead reckoning solution each time the altimeter makes a measurement.

**[0086]**Similarly, a terrain map may be used to provide an altitude measurement a

_{map}(t

_{k},p(t

_{k})) that can be related to the elements of the dead reckoning solution x

_{nav}(t

_{k}) by the following equation:

**a**

_{map}(t

_{k},p(t

_{k}))=h

_{map}(p(t

_{k}),q(t

_{k}),r

_{map})- +v

_{map}(t

_{k})

**where k**

_{map}(•) is the function that calculates the parameterized altitude of the user's foot as a function of user position, attitude, and the relative location r

_{map}of the bottom of the user's foot with respect to the IMU, and v

_{map}(t

_{k}) is the applicable vector of errors between the terrain map and the user's true altitude at time t

_{k}.

**[0087]**Additionally, surveyed schematic diagram marking altitudes of each horizontal surface in a building or other man-made structure can also be used to provide an altitude measurement a

_{sch}(t

_{k},p(t

_{k}). This measurement can be related to the elements of the dead reckoning solution x

_{nav}(t

_{k}) by the following equation:

**a**

_{sch}(t

_{k},p(t

_{k}))=h

_{sch}(p(t

_{k}),q(t

_{k}),r

_{sch})- +v

_{sch}(t

_{k})

**where h**

_{sch}(•) is the function that calculates the parameterized altitude of the user's foot as a function of user position, attitude, and the relative location r

_{sch}of the bottom of the user's foot with respect to the IMU, and v

_{sch}(t

_{k}) is the applicable vector of errors between the building schematic and the user's true altitude at time t

_{k}.

**[0088]**The building schematic, terrain map, and/or altimeter equations may be incorporated directly into f

_{nav}(•) as hard constraints, or may be used as soft constraints to influence the current navigation solution. In some implementations, the constraints are applied as soft constraints as discussed in the section "Pedal Navigation Solution."

**[0089]**A magnetometer is another sensor useful to the PDR component as measurements of the Earth's magnetic field may be used to further reduce the growth of errors in the dead reckoning estimates of the user's motion. A magnetometer can provide at least three types of additional information to the PDR component: 1) heading, which can be related to the projection of the measured magnetic field in the local tangent plane, 2) latitude, which can be related to the projection of the measured magnetic field on the local nadir vector, and 3) altitude, which can be related to the strength of the measured magnetic field. Heading information is generally the strongest measurement, whereas the quality of other measurements typically diminishes at high latitudes.

**[0090]**In a particular implementation, a 3-axis magnetometer (consisting of three orthogonal single-axis magnetic measurement devices) is mounted adjacent to the IMU, e.g., on a shoe, such that measurements of the Earth's magnetic field B(t

_{k}) are made with respect to the IMU coordinate frame. If the magnetometer is rigidly-mounted to the IMU at an offset r

_{mag}with respect to the IMU's navigation coordinate frame, then the magnetic field measurements B(t

_{k}) can be related to the components of the dead reckoning solution x

_{nav}(t

_{k}) by the following equation:

**B**(t

_{k})=A(q(t

_{k}))•.left brkt-bot.B

_{mag}(t

_{k},p(t

_{k}),q(t

_{k}),r

_{mag})+ΔB

_{mag}(t

_{k}).right brkt-bot.+v

_{mag}(t

_{k})

**where A**(q(t

_{k})) is the direction cosine matrix formed from the user attitude quaternion q(t

_{k}), B

_{mag}(•) is a suitable model of the Earth's magnetic field, ΔB

_{mag}(•) is the local error in the magnetic field model at the user's position at time t

_{k}, and v

_{mag}(t

_{k}) is the applicable vector of magnetometer measurement noise valid at time t

_{k}. This magnetometer equation provides a relationship between the elements of x

_{nav}(t

_{k}), allowing implementations that employ a 1- or more axis magnetometer to utilize it to aid the PDR component. Like other pedal motion constraints, the magnetometer equations may be incorporated directly into f

_{nav}(•) as hard constraints, or may be used as soft constraints to influence the current navigation solution.

**Low**-Earth Orbit Satellite Signals (LEO)

**[0091]**The low-Earth orbit satellite signals (LEO) component of the pedal navigation system consists of hardware and/or software selected and configured to receive, process, and aggregate non-GPS satellite signals from low-Earth orbit (LEO) satellites that will be used to aid the overall pedal navigation solution. The LEO component provides Earth-referenced absolute positioning information that can be used to correct errors in the more relative PDR component. As previously discussed, without these corrections from the absolute LEO component, errors in the relative dead reckoning solution of the PDR component would grow without bound.

**[0092]**LEO satellite signals include several characteristics that are particularly advantageous as a complement to a PDR algorithm for pedal navigation. First, LEO satellite signals tend to be much stronger on the ground than GPS signals due to the significantly smaller orbital radius of the LEO satellites. This feature substantially increases signal detection probability at a given location, which statistically increases the frequency at which LEO satellite signals can be incorporated into the navigation solution.

**[0093]**Additionally, the comparatively-short orbital period of LEO satellites translates into rapidly-changing satellite geometry as perceived by the user, which means that LEO satellites provide positioning information in many different directions on relatively short timescales. GPS satellites, in contrast, have very little apparent motion on the timescales at which the user's PDR error grows, so a more complete view of the sky is needed to provide positioning information. The combined effect of these two factors, increased signal power and rapid sky coverage, makes LEO satellite signals superior to GPS for pedal navigation in many scenarios of interest, including urban canyons, inside buildings, forests, and open-pit mines Certain LEO satellites, such as the Iridium® constellation, are also available worldwide, making them superior to other approaches in their ability to converge anywhere on the globe without ground infrastructure.

**[0094]**In a particular implementation, the LEO satellite signals are signals from the Iridium® satellite constellation. Two measurements, a pseudorange and carrier Doppler shift measurement derived from one or more Iridium® downlink signals, are particularly useful for their direct relationship to user position and velocity, respectively. These downlink signals may include, for example, the basic visit broadcast burst, Advanced Waveform, enhanced narrowband, or ring alert signals, though other implementations may use a subset of these signals, other signals, or even other satellite constellations. The parameterized models of these signals are briefly summarized here and are more fully described in the priority application entitled "Vehicle Navigation Using Non-GPS LEO Signals and On-board Sensors."

**[0095]**In a particular implementation, the LEO satellite signal is the Advanced Waveform (AW) signal that has been developed for the Iridium satellites under the Navy HIGPS Technology Concept Demonstration Program. AW consists of a high-power, hybrid direct sequence, frequency hopping pseudo-random noise (PRN) timing and ranging code based on the Advanced Encryption Standard (AES). The AW signal is generally strong enough to penetrate building walls. The AW selectively spans up to the full 10 MHz bandwidth of Iridium. Due to this full bandwidth usage, the AW code pseudorange is potentially accurate to the sub-meter level. At the same time, AW is concurrently able to provide both carrier and Doppler observables.

**[0096]**In a particular implementation, the Iridium® pseudorange measurement used is constructed from output from the LEO component for a downlink burst of data. The navigation radio, e.g., Iridium® receiver, used to generate this output can implement delay-lock loop (DLL) calculations to yield an estimate of the reception time t

_{rx}some feature of the signal, as measured in receiver clock time. This time constitutes the time value t

_{k}of the measurement. The LEO component can also implement a method for calculating the transmit time t

_{tx}the same feature of the signal. The pseudorange measurement can then be constructed as follows:

**y**

_{pr}(t

_{k}=t

_{rx})=c•(t

_{rx}-t

_{tx})+v

_{pr}(t

_{k})

**where v**

_{pr}(t

_{k}) is any error between the true and measured pseudoranges, which may be due to signal tracking errors, etc.

**[0097]**In order to use this measurement, the LEO component must also contain methods to relate the pseudorange measurement y

_{pr}(t

_{k}) to relevant pieces of the dead reckoning solution's state x

_{nav}(t

_{k}). A typical relationship is as follows:

**y pr**( t k ) = ρ ( t k , p ( t k ) , q ( t k ) , r ant ( t k ) , δ t R ( t k ) ) + c δ t R ( t k ) - c δ t S ( t k , p ( t k ) , q ( t k ) , r ant ( t k ) , δ t R ( t k ) ) + c δ t iono ( t k , p ( t k ) , q ( t k ) , r ant ( t k ) , δ t R ( t k ) ) + c δ t atmo ( t k , p ( t k ) , q ( t k ) , r ant ( t k ) , δ t R ( t k ) ) ##EQU00003##

**where**ρ(•) is the range between the navigation radio antenna at the time of signal reception and the satellite antenna at the time of signal transmit, r

_{ant}(t

_{k}) is the location of the navigation radio antenna with respect to the origin of the IMU's navigation coordinate frame, δt

_{R}(t

_{k}) is the applicable receiver clock error at signal reception time t

_{k}, δt

^{S}(•) is the applicable satellite clock error at signal transmit time, c is the speed of light, δt

_{iono}(•) is a suitable model of the ionospheric delay along the signal path, and δt

_{atmo}(•) is a suitable model of the neutral atmospheric delay along the signal path. A non-exhaustive discussion of some possible selections for ionospheric and tropospheric delay models is given in the patent "Vehicle Navigation Using Non-GPS LEO Signals and On-board Sensors."

**[0098]**It is noted that the above pseudorange model makes use of a model of the navigation radio clock in order to predict how the LEO component\ measurements evolve with time. A particular implementation makes use of a two-element clock model, whose state x

_{clk}(t

_{k}) at time (t

_{k}) consists of the radio's clock offset δ

_{R}(t

_{k}) and clock drift rate {dot over (δ)}

_{R}(t

_{k}) with respect to an established timing standard. This particular implementation makes a nearly-constant clock drift rate assumption, yielding the following dynamics function:

**x clk**( t k + 1 ) = [ δ t R ( t k + 1 ) δ t R ( t k + 1 ) ] = [ 1 Δ t k 0 1 ] [ δ t R ( t k ) δ . t R ( t k ) ] + Δ t k [ a k 0 b k c k ] w clk ( t k ) ##EQU00004##

**where**Δt

_{k}is the amount of time elapsed between t

_{k}and t

_{k+1}, a

_{k}, b

_{k}, and c

_{k}are projection parameters that describe the properties of the white noise driving the clock's random walk, and w

_{clk}(t

_{k}) is the white noise driving the clock's random walk dynamics. Other implementations may use other clock models, or no clock model at all.

**[0099]**In a particular implementation, an Iridium® carrier Doppler shift measurement is constructed from the LEO component's in-phase and quadrature accumulations over symbols in a downlink burst of data. A least squares estimation scheme is used to estimate a Doppler shift based on in-phase and quadrature accumulations over a downlink burst. The resulting Doppler shift measurement is then constructed directly from the output of the least squares estimator:

**Y**

_{dop}(t

_{k})=f

_{dop}(t

_{k})+v

_{dop}(t

_{k})

**where f**

_{dop}(t

_{k}) is the output of the least squares estimator and v

_{dop}(t

_{k}) is any error between the true apparent Doppler shift and the least squares fit of the sampled in-phase and quadrature accumulations. Other implementations may use other methods to generate carrier Doppler shift measurements, for example, by using the output of a frequency- or phase-locked loop.

**[0100]**The LEO component can be used to relate the Doppler shift measurement y

_{dop}(t

_{k}) to relevant pieces of the dead reckoning solution state x

_{nav}(t

_{k}). A typical relationship is as follows:

**y dop**( t k ) = f LEO [ - 1 + δ t S ( t k , x nav ( t k ) , x clk ( t k ) , b ( t k ) , w n ( t k ) , y IMU ( t k ) , r ant ( t k ) ) t ] [ δ t tof ( t k , x nav ( t k ) , x clk ( t k ) , b ( t k ) , w n ( t k ) , y IMU ( t k ) , r ant ( t k ) ) t { 1 - δ . t R ( t k ) } + δ . t R ( t k ) ] + f LEO δ t S ( t k , x nav ( t k ) , x clk ( t k ) , b ( t k ) , w n ( t k ) , y IMU ( t k ) , r ant ( t k ) ) t ##EQU00005##

**where f**

_{LEO}is the nominal satellite carrier frequency,

**δ t S ( ) t ##EQU00006##**

**is the satellite clock drift rate valid at the time of signal transmit**, and

**δ t tof ( ) t ##EQU00007##**

**is the time rate of change of the signal time of flight evaluated at the**time of signal reception. It is observed that this Doppler shift model depends on the PDR component state x

_{nav}(t

_{k}), as well as current IMU biases b(t

_{k}), white noise w

_{n}(t

_{k}), and the LEO component radio time state x

_{clk}(t

_{k}). Other implementations may utilize different assumptions when constructing their Doppler shift models, or may choose to exclude Doppler shift measurements altogether.

**[0101]**Different measurement models may be used in different implementations of the pedal navigation system. In general, the set of LEO signals selected are used to address the shortcomings of positional dead reckoning techniques to produce a globally-convergent pedal navigation solution with bounded errors. Because of the information contained in the pedal motion constraints, gravity subtraction is not as important an issue in IMU-based positional dead reckoning techniques as it is in traditional unconstrained IMU-based dead reckoning systems. Instead, primary sources of error are 1) the lack of an absolute position solution to serve as an initial condition, and 2) the lack of an absolute attitude reference to restrict unbounded growth in position error. The pedal navigation solution advantageously includes both pieces of information in the LEO component: the first to make the system accurate in the short term, and the second to keep the system accurate in the long term.

**[0102]**In some implementation, Iridium® pseudorange measurements provide absolute position information that provides, in combination with the pedal motion constraints, a rapidly-converging pedal navigation solution in the short term. In contrast, the Iridium® Doppler shift measurement supplies absolute velocity information that provides, in combination with the pedal motion constraints, a stable attitude reference in the long term. The informational quality of both measurements is improved by the fact that LEO satellite geometry changes rapidly, i.e., with similar timescales at which positional dead reckoning position errors grow. This rapid geometry change is a key benefit of the LEO component approach over other sources of absolute position information, such as GPS, which do not provide the as rich of information on such short timescales.

**Pedal Navigation Solution**(NS)

**[0103]**The pedal navigation solution (NS) component of the pedal navigation system includes hardware and software useful to combine outputs of the PDR and LEO components into an overall navigation solution. The NS component can be viewed as both a data aggregation and fusion center as well as the user interface to the navigation and timing output of the pedal navigation system.

**[0104]**Different implementations of the pedal navigation system may combine PDR and LEO component data under varied assumptions to bound errors in the PDR component of the dead reckoning solution. Various implementations may be used to produce desired outputs for different end uses of the pedal navigation system. For example, the NS component can produce estimates of various portions of the user's state, such as x

_{nav}(t

_{k}), x

_{clk}(t

_{k}), b(t

_{k}), ΔB

_{mag}(t

_{k}), or some other related quantity of interest. In a particular non-GPS navigation usage scenario, for example, an implementation may produce estimates of x

_{nav}(t

_{k}), whereas in a non-GPS timing scenario, c

_{clk}(t

_{k}) may be the only output.

**[0105]**In a particular implementation, the pedal navigation system produces an estimate x(t

_{k}) of the following uncertain state vector at time (t

_{k}):

**x**( t k ) = [ p ( t k ) v ( t k ) q ( t k ) b rg ( t k ) b acc ( t k ) Δ B ( t k ) ] ##EQU00008##

**where**, as previously discussed, p(t

_{k}) is a 3-element vector of the Earth-centered, Earth-fixed (ECEF) position of the user's IMU, v(t

_{k}) is a 3-element vector of the ECEF velocity of the user's IMU, q(t

_{k}) is a 4-element vector quaternion describing the orientation of the user's IMU navigation coordinate frame with respect to the ECEF coordinate frame, b

_{rg}(t

_{k}) is a 3-element vector of biases affecting the rate gyros in the user's IMU, b

_{acc}(t

_{k}) is a 3-element vector of biases affecting the accelerometers in the user's IMU, and ΔB(t

_{k}) is a 3-element vector of local magnetic perturbations affecting the user's magnetometer. In some implementations, various other state representations may be used to produce outputs of equivalent or related states for similar end uses.

**[0106]**A particular implementation of the pedal navigation invention combines the PDR and LEO component outputs in an implementation of an Extended Kalman Filter (EKF) known as an extended Square Root Information Filter (SRIF). This approach incurs more computational expense than naive data fusion methods such as averaging, but yields a number of critical benefits in the tradeoff. First, the SRIF, like the EKF, produces a near-optimal estimate of its state, called {circumflex over (x)}(t

_{k}) in the recommended implementation. In this context, "near-optimal" means that the expected mean squared error:

**MSE**(t

_{k})=E[{x)-{circumflex over (x)}(t

_{k})}

^{TP}

^{-1}(t

_{k}){x(t

_{k})-{circumflex over (x)}(t

_{k})}]

**is almost as small as theoretically possible**, where x(t

_{k}) is the true value of the state, {circumflex over (x)}(t

_{k}) is the estimated value of the state, and P(t

_{k}) is the estimated state error covariance matrix. The adjective "almost" is used because the SRIF assumes 1) that all noise sources in the estimated system are Gaussian, 2) that the state x(t

_{k}) evolves according to linear dynamics, and 3) that the observed sensor measurements and constraints z(t

_{k}) are linearly related to the state. These assumptions are not perfectly true in any real physical system, so "almost" is used to represent the extent to which the SRIF's assumptions approximate the real physical system. Nonetheless, the EKF/SRIF has become the de facto standard for practical data fusion.

**[0107]**A second benefit of the SRIF over ad hoc data fusion techniques is that it produces a state error covariance matrix P(t

_{k}) along with the state estimate {circumflex over (x)}(t

_{k}). This is particularly useful for judging the quality of the overall navigation solution, as it gives the user an idea of how accurate each component of the state estimate is. A third benefit of the SRIF is that it is numerically robust, which makes it suitable for badly-scaled estimation problems and for implementation on a digital computer. A final benefit is that the SRIF's inverse representation of the state error covariance matrix can be used to represent infinite uncertainty in the floating point unit of a digital computer. This capability is useful during certain aspects of estimator initialization, where the system may have no reasonable initial guess for certain components of the state vector.

**[0108]**In some cases, the pedal navigation solution is implemented as a 21-element state estimate {circumflex over (x)}(t

_{k}) and a 20-state linearized complementary error SRIF that estimates an error state {circumflex over (x)}

_{err}(t

_{k}) and a 20×20 error covariance matrix P

_{err}(t

_{k}). Here the error state x

_{err}(t

_{k}) is defined to be the difference between the true state x(t

_{k}) and the estimated state {circumflex over (x)}(t

_{k}):

**x err**( t k ) = [ p ( t k ) - p ^ ( t k ) v ( t k ) - v ^ ( t k ) q err ( q ( t k ) , q ^ ( t k ) ) b rg ( t k ) - b ^ rg ( t k ) b acc ( t k ) - b ^ acc ( t k ) Δ B ( t k ) - Δ B ^ ( t k ) ] ##EQU00009##

**[0109]**The relationship between the full state estimate {circumflex over (x)}(t

_{k}) and the error state estimate {circumflex over (x)}

_{err}(t

_{k}) is linear except for the nonlinear 3-element quaternion perturbation function q

_{err}(q

_{a,q}

_{b}), which is defined as:

**q err**( q a , q b ) = [ I 3 × 3 0 ] q a [ - q b 1 - q b 2 - q b 3 q b 4 ] = Ξ T ( q b ) q a ##EQU00010##

**where**, for quaternion q=[q

_{1}q

_{2}q.sub.3 q

_{4}]

^{T},

**Ξ ( q ) = [ q 4 q 3 q 2 q 3 q 4 - q 1 - q 2 q 1 q 4 - q 1 - q 2 - q 3 ] ##EQU00011##**

**[0110]**This quaternion perturbation function creates the following relationship between quaternions q

_{a}, q

_{b}, and the quaternion perturbation Δq

_{ab}=g

_{err}(q

_{a,q}

_{b}):

**q a**= [ 1 - Δ q ab T Δ q ab Δ q ab ] q b = [ Ξ ( q b ) q b ] [ 1 - Δ q ab T Δ q ab Δ q ab ] ##EQU00012##

**[0111]**This relationship is used in spacecraft attitude determination and is implemented to account for the fact that the true 21-element state vector x(t

_{k}) actually resides in a 20-dimensional hyperspace due to the quaternion normalization constraint ∥q(t

_{k})∥=1.

**[0112]**The LEO component delivers successive sensor measurements that are used to update the estimated error state {circumflex over (x)} and error covariance matrix P. This updating procedure is common to Kalman Filtering frameworks, and so is only briefly summarized here. First, suppose one or more LEO measurements z(t

_{k}) arrive at time t

_{k}. The full state estimate, the error state, and the error covariance matrix are then propagated forward to the measurement time t

_{k}. Measurement equations are used to compute expected measurements z(t

_{k}, x(t

_{k}), x

_{err})t

_{k})) given state and error estimates x(t

_{k}) and x

_{err}(t

_{k}) that have been produced before being updated with the most recent measurement z(t

_{k}). The potentially nonlinear function z(t

_{k}, x(t

_{k}), xerr(t

_{k}) is linearized around x(t

_{k}) to form a linear model of the relationship between z(t

_{k}) and x

_{err}(t

_{k}). This linear model is used to solve, in a linear least-squares sense, the new estimated error state {circumflex over (x)}

_{err}(t

_{k}) and error covariance matrix P

_{err}(t

_{k}) given the a priori estimate x

_{err}(t

_{k}) the a priori estimated error covariance matrix P

_{err}(t

_{k}), and suitable statistical models of the measurement noise present in z(t

_{k}). Various other techniques may be used to incorporate new measurements into the state estimate {circumflex over (x)}(t

_{k}), though this linear minimum mean-squared error (LMMSE) update is useful in practical Kalman Filtering implementations.

**[0113]**Like measurements from the LEO component, sensor measurements from body-mounted sensors such as a magnetometer or an altimeter can also be incorporated to update the state error estimate {circumflex over (x)}

_{err}. The update is similar to the update for measurements from the LEO component, except that appropriate measurement and statistical noise models are used for each different sensor.

**[0114]**Conveniently, the SRIF implementation allows pedal motion constraints to be incorporated as pseudo-measurements within the Kalman Filtering framework. To cast a pedal motion constraint as a pseudo-measurement, it is observed that each pedal motion constraint described in the PDR component can be formulated as a possibly nonlinear constraint equation of the form:

**g**(t

_{k,x}(t

_{k}),•)=0

**where**"•" represents any additional inputs to the constraint equation. Given the relationship between x(t

_{k}), {circumflex over (x)}(t

_{k}), and x

_{err}(t

_{k}), the constraint equation g(•) may be written as a function of the current full state estimate and the error state:

**h**(t

_{k},{circumflex over (x)}(t

_{k}),x

_{err}(t

_{k}),•)=g(t

_{k,x}(t

_{k}),•)=0

**[0115]**Like the LEO component measurement updating procedure, the modified constraint equations h(•) can be linearized about the current full state estimate {circumflex over (x)}(t

_{k}) in terms of x

_{err}(t

_{k}). These linearized constraint equations can then be used to solve, in a linear least-squares sense, the new estimated error state {circumflex over (x)}

_{err}(t

_{k}) and error covariance matrix P

_{err}(t

_{k}) given the a priori estimate x

_{err}(t

_{k}) the a priori estimated error covariance matrix P

_{err}(t

_{k}), and suitable statistical models of the extent to which each constraint is expected to be violated in the implementation's usage scenarios.

**[0116]**This pseudo-measurement formulation of the pedestrian constraint equations advantageously incorporates the pedestrian constraints in a manner that is statistically consistent with the other sources of uncertainty in the system. It also allows the implementation of estimator hypothesis testing to detect cases when certain pedal motion constraints are strongly violated, which may happen, for example, if the user crawls, falls, or slides. In these cases, hypothesis testing can be used to correct or discard data from times in which the user's motion violates pedal constraints, to mitigate errors in the NS component from constraint violations.

**[0117]**In a particular implementation, the overall relationship between the full state estimate {circumflex over (x)}(t

_{k}) and the linearized complementary error SRIF within the NS component can be characterized as follows. First, the full state estimate {circumflex over (x)}(0) is initialized with an initial estimate of the user's state. The complementary error filter is initialized with an estimate of zero error, {circumflex over (x)}

_{err}(0)=0, and an appropriately-large or even infinite initial covariance matrix, P(0), depending on the quality of the initial information. As time progresses, the full state estimate and the error state estimate are propagated through their respective nonlinear and linearized dynamics to account for the user's pedal motion as measured by the IMU. This propagation also accounts for growing uncertainty in the error state due to measurement noise in the user's IMU as well as uncertainty in the initial error estimate. The error state estimate and error covariance matrix are successively updated within the complementary SRIF framework using measurements generated by the LEO component's radio and the PDR component's altitude pseudomeasurement (e.g., building schematics, terrain map, altimeter measurement) and/or magnetometer measurements, and with pseudo-measurements generated by the PDR component pedal motion constraints. The measurements and pseudo-measurements are incorporated to the extent that they are available. As the error state is updated, error state corrections are successively absorbed into the full state estimate. Each time such a correction occurs the error state estimate is reset to zero. The NS estimator continues this cycle of predictions, updates, and error corrections ad infinitum, with the error-corrected full state estimate representing the NS component's best estimate of the user's true state given all available information acquired since the estimator's start.

**Other Embodiments**

**[0118]**While the invention(s) is (are) described with reference to various embodiments, it will be understood that these embodiments are illustrative and that the scope of the invention(s) is not limited to them. Many variations, modifications, additions, and improvements are possible. For example, while particular LEO satellite signals, receivers and sensors have been described in detail herein, other variations will be appreciated based on the description herein. For example, while some implementations are described as GPS independent solutions, some implementations can be used to augment, acquire or otherwise complement a GPS navigation solution. Furthermore, while certain illustrative signal processing techniques have been described in the context of certain illustrative applications, persons of ordinary skill in the art will recognize that it is straightforward to modify the described techniques to accommodate other suitable signal processing techniques.

**[0119]**Embodiments may be provided as a computer program product, or software, that may be encoded in a machine-readable medium having using instructions, which may be executed in a computer system (or other electronic device(s) such as a digital processor of a navigation radio) to perform a navigation method in accordance with some embodiments of the present invention. In general, a machine readable medium can include any mechanism for encoding information in a form (e.g., software, source or object code, functionally descriptive information, etc.) readable by a machine (e.g., a computer) including tangible storage incident to transmission of the information. A machine-readable medium may include, but is not limited to, magnetic storage medium (e.g., disks and/or tape storage); optical storage medium (e.g., CD-ROM, DVD, etc.); magneto-optical storage medium; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions, operation sequences, functionally descriptive information encodings, etc.

**[0120]**In general, plural instances may be provided for components, operations or structures described herein as a single instance. Boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the invention(s). In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may fall within the scope of the invention(s).

User Contributions:

Comment about this patent or add new information about this topic: