These and other features, aspects, and advantages will become better understood with regard to the following description, appended claims, and accompanying drawings where:
Like reference numbers and designations in the various drawings indicate like elements.
The following detailed description discusses at least one embodiment for locating objects in restricted environments using a personal navigation system. Advantageously, the personal navigation system is capable of determining positions in absolute or relative terms. By including a range finder, any object can be found within the restricted environment relative to a known location. When a user returns to a prior-known location, post-processing of measurement data using knowledge of the prior-known location will provide higher accuracy measurements than measurements obtained in a real-time measurement session.
Pointing package 104 is a device that is typically held in hand 106 of user 110 when user 110 attempts a range measurement of object 120 with pointing package 104. Examples of pointing package 104 include, without limitation, a laser range finder or similar device with ranging capability. In the example embodiment of
Navigation package 102 attaches to user 110. For example, as shown in environment 100, navigation package 102 is attached to belt 112 worn by user 110. Such an embodiment is desirable to track a current position of user 110 while navigation package 102 determines the position of object 120 with respect to user 110. Pointing package 104 is typically subject to a wide and/or unpredictable range of movements when held in hand 106 of user 110. By separating navigation package 102 from pointing package 104, navigation package 102 is not required to handle and compensate for such a wide and unpredictable range of movements of pointing package 104. In this example embodiment, smaller and/or less expensive sensors and less complex algorithms are suitable for use in navigation package 102. These sensors and algorithms reduce cost, complexity, and size of navigation package 102.
Pointing package 104 is not always in hand 106. For example, in an embodiment described below with respect to
In operation, once user 110 establishes a location of object 120 with navigation package 102 and pointing package 104, the location of object 120 is periodically transmitted over communications link 114 from navigation package 102 to base station 116. In one implementation, communications link 114 is a wireless conmmunications link. Base station 116 stores the location of each object 120 in database 118. After user 110 completes recording the location of each object 120, data contained in database 118 is post-processed by base station 116. In one implementation, the post-processing by base station 116 involves applying a filter to reduce redundant measurements and minimize possible measurement errors. The post-processed data in database 118 is representative of prior knowledge of the location of object 120. Post-processing provides higher accuracy measurements during subsequent locating sessions than measurements obtained in a real-time measurement session.
Navigation package 102 also includes inertial sensor 202, magnetic sensor 214, and altimeter 216 (or other barometric pressure sensor). It is noted that for simplicity in description, a single inertial sensor 202, a single magnetic sensor 214, and a single altimeter 216 are shown in
Navigation package 102 includes inertial navigation unit 204. In the example embodiment of
In one implementation, at least three orthogonal outputs of the at least three accelerometers are vectorially summed by navigation computation block 210 to obtain an acceleration vector for navigation package 102. Navigation computation block 210 integrates the acceleration vector to obtain a velocity vector for navigation package 102. Next, navigation computation block 210 integrates the velocity vector to obtain a position change vector for navigation package 102. Further, at least three orthogonal outputs of the at least three gyroscopes are vectorially summed by navigation computation block 210 to obtain a rotational velocity vector for navigation package 102. Navigation computation block 210 integrates the rotational velocity vector to obtain an attitude change vector of navigation package 102. The position change vector and the attitude change vector are used to generate a position estimate. The position estimate is transferred to location computation block 212. Location computation block 212 receives a current position measurement with respect to object 120 from pointing package 104 as pointing package 104 changes position. Location computation block 212 combines the current position measurement, along with the position estimate from navigation computation block 210, and generates at least one range, bearing, and azimuth measurement of object 120.
Navigation package 102 also includes Kalman filter 234. Kalman filter 234 receives an output from inertial navigation unit 204 (for example, position, velocity, and attitude estimates). Kalman filter 234 generates information indicative of the confidence of the output from inertial navigation unit 204 (that is, navigation confidence 208). Kalman filter 234 also generates corrective feedback 236. In the example embodiment of
In the example embodiment of
Motion classification block 226 incorporates output signals from inertial sensor 202, magnetic sensor 214, and altimeter 216 to estimate step frequency and direction. In one implementation, magnetic sensor 214 comprises at least three magnetic sensors 114 oriented around three mutually orthogonal axes (that is, the x, y, and z axes). Distance traveled and direction of travel are determined using both step frequency (that is, the number of steps per unit of time) along with the heading (direction) of the steps. Motion classification block 226 takes the estimated step length, the step frequency, and the motion direction for the steps (derived from the navigation output or directly from a magnetometer) and calculates a distance-traveled estimate. Further, motion classification block 226 incorporates corrective feedback 236 generated by Kalman filter 234 in generating the distance-traveled estimate. An implementation of such an embodiment is described in the '266 Patent.
Navigation package 102 further includes at least one series of navigational aids. In the example embodiment of
GPS/DGPS receiver 220 receives at least one GPS RF signal from one or more GPS satellites. GPS/DGPS receiver 220 outputs satellite data derived from the received GPS RF signals to Kalman filter 234 via input preprocessing module 228 and measurement pre-filter 232. The satellite data that GPS/DGPS receiver 220 outputs to Kalman filter 234 includes time and three-dimensional position and velocity information. In one implementation, GPS/DGPS receiver 220 provides Kalman filter 234 “raw” in-phase and quadrature (IQ) information for each of the GPS RF signals that GPS/DGPS receiver 220 is able to receive, regardless of whether the receiver 134 is able to receive four, less than four, or more than four GPS RF signals. From the IQ information received through input preprocessing module 228 and measurement pre-filter 232, Kalman filter 234 generates navigation confidence 208 and corrective feedback 236.
Human input 222 receives input from a user of personal navigation system 200. In one implementation, human input 222 comprises one or more buttons or keys (for example, a keypad) user 110 presses in order to input information to navigation package 102. In an alternative implementation, human input 222 comprises a device interface (for example, a universal serial bus (USB) interface, and a BLUETOOTH®, IEEE 802.11, or other wireless protocol interface) for communicatively coupling navigation package 102 to an input device (for example, base station 116 of
Optional RF aid 224 comprises at least one receiver adapted to receive one or more RF signals that are transmitted (or otherwise radiated) for a purpose other than navigation. The one or more RF signals are also referred to here as “signals of opportunity.” Examples of signals of opportunity include, without limitation, cellular telephone and data signals, broadcast television signals, broadcast radio signals, wireless data communications (for example, BLUETOOTH, IEEE 802.11 or IEEE 802.16 networking communications) and RF “interference” signatures or profiles. Optional RF aid 224 further includes appropriate components to process the received signals of opportunity and derive navigation-related information. The derived navigation-related information includes, without limitation, time difference of arrival (TDOA), time of arrival (TOA), and signal-strength measurements and triangulation. Additional examples of derived navigation-related information include identification (that is, signal source), type or content, signature identification, profiling, pattern matching, landmarking, and bearing processing.
In an alternate implementation, optional RF aid 224 comprises a transmitter and receiver for engaging in two-way communications in order to receive or otherwise derive navigation-related information from a signal of opportunity. For example, optional RF aid 224 transmits a “beacon” signal that is received by one or more receivers external to personal navigation system 200. Equipment communicatively coupled to the external receivers triangulates a location of personal navigation system 200 and transmits position information back to navigation package 102 for reception by optional RF aid 224. In another alternate implementation, optional RF aid 224 transmits a “loopback” signal to a transceiver external to personal navigation system 200. The transceiver transmits the received signal back to optional RF aid 224. In still another alternate implementation, optional RF aid 224 (or another component included in navigation package 102) obtains information (for example, landmark information) from a data server by communicating over a public network such as the INTERNET or a public switched telephone network (PSTN). In still yet another implementation, optional RF aid 224 comprises an RF interrogator that communicates with any RF transponders (for example, active and/or passive RF transponders) located with the range of the RF interrogator. Information output by at least one magnetic sensor 106 (for example, bearing information) and information output by at least one altimeter 108 (for example, altitude information) is also input to Kalman filter 234 for generating navigation confidence 208 and corrective feedback 236.
Input preprocessing module 228 further comprises terrain con-elation block 230. Terrain correlation block 230 receives altitude information from one or more of altimeters 116 and user navigation state information from navigation computation block 210. The altitude information comprises, for example, an absolute altitude measurement, a relative altitude measurement (that is, relative to ground level), an altitude change, and/or an altitude gradient. Terrain correlation block 230 derives terrain-correlation information from the altitude and user navigation state information (for example, position of navigation package 102). In one implementation, terrain correlation block 230 implements a minimum absolute differences (MAD) algorithm in which a set of altitude measurements from altimeter 216 are compared to a reference map for generation of 3D position error information. The 3D position error information is transferred to Kalman filter 234. For example, in environments where GPS/DGPS receiver 220 is unable to receive any GPS RF signals, the position error information from terrain correlation block 230 is used by Kalman filter 234 to generate corrective feedback 236.
A plurality of inputs to Kalman filter 234 are pre-processed by input preprocessing module 228 and measurement pre-filter 232. Input preprocessing module 228 receives input information from magnetic sensor 214, altimeter 216, optional optical flow sensor 118, GPS/DGPS receiver 220, human input 222, and optional RF aid 224. Input preprocessing module 228 translates the received input information from a measurement frame of reference of an information source to a navigation frame of reference of navigation package 102. Measurement pre-filter 232 performs various “reasonability” tests on the received information in order to filter out any input information that fails any of the reasonability tests. The various inputs to Kalman filter 234 allow personal navigation system 200 to compensate for one or more navigation errors that typically occur (for example, one or more unstable movements by user 110).
In operation, navigation package 102 attaches to, for example, a belt clip or a backpack worn by user 110. Initial information, such as initial absolute position information, is input to or otherwise received by navigation package 102. In the example embodiment of
Kalman filter 234 uses any available navigation information provided by input preprocessing module 228 to generate navigation confidence 208 and corrective feedback 236. Measurement pre-filter 232 filters out any navigation information received from input preprocessing module 228 that does not meet one or more “reasonableness” tests. For example, due to environmental factors such as jamming, an obstructed view of the sky, unavailability of user input or a signal of opportunity and/or malfunctioning component, any received information will not be used since it does not meet reasonableness test requirements. The received information will not be used in the processing performed by Kalman filter 234. In this manner, Kalman filter 234 uses all “reasonable” navigation information that is available.
At least a portion of corrective feedback 236 output by Kalman filter 234 refines processing performed by inertial navigation unit 204, motion classification module 126, terrain correlation module 130, and input pre-processing module 128 in order to reduce navigation error growth. In this example embodiment, corrective feedback 236 is shown, for the sake of clarity, as being supplied to inertial navigation unit 204, motion classification module 126, terrain correlation module 130, and input preprocessing module 228. It is to be understood that in some implementations, different types and formats of corrective feedback 236 are supplied to different parts of navigation package 102.
In the example embodiment of
After user 110 completes recording the location of each object 120 in real time, data contained in database 118 is post-processed by base station 116. In one implementation, the post-processing performed in base station 116 involves applying a filter to minimize measurement errors. For example, when inputs from user 110 do not correspond with results from object location 206, the filter will use a weighted average (or similar approach) to remove erroneous or redundant measurement, resulting in a higher accuracy measurement. In alternate embodiments, the post-processing performed by base station 116 involves applying one or more navigation models based on the real-time recordings gathered by user 110. The one or more navigation models estimate errors based on motion classification data and navigation sensor feedback data in one or more error estimation processes. The one or more error estimation processes are substantially similar to methods of motion classification and corrective feedback discussed above with respect to motion classification block 226 and corrective feedback 236.
Personal navigation system 200 is able to precisely determine the position of an object inside a building or other difficult environment with minimal effort. Personal navigation system 200 determines the position of object 120 in absolute (that is, latitude, longitude, altitude) or relative (that is, x, y, and z within environment 100) coordinates based on continuous processing of measurement input signals by corrective feedback 236. In this respect, personal navigation system 200 is considered a self-correcting system that allows user 110 to easily determine the location of one or more objects 120 located in environment 100.
At block 406, pointing package 104 determines a range between object 120 and the measuring position. After transferring a range measurement to navigation package 102 at block 408, navigation package 102 combines the range measurement with location coordinates of the measuring position to establish a location of object 120 at block 410. Attributes of the location of object 120 are recorded at block 412 for subsequent locating sessions. In one implementation, the location is displayed to user 110 and/or stored in database 118 in both absolute and relative coordinates. At block 414, the attributes are post-processed to filter out one or more measurement errors. In one implementation, location data from personal navigation system 200 is collected by database 118 at base station 116 while personal navigation system 200 is in use. The location data (that is, attributes) are post-processed to generate a higher accuracy navigation solution. For example, if user 110 traverses over the same position repeatedly, post-processing the location data to filter out one or more measurement errors for higher accuracy comprises estimating which of one or more navigation readings from the measuring position should be filtered out in order to generate the higher accuracy navigation solution. If object 120 is only visible during a first measurement, the post-processed attributes stored in database 118 at step 416 will accurately locate object 120 during subsequent locating sessions.
The methods and techniques described here are suitable for implementation in digital electronic circuitry, or with a programmable processor (for example, a special-purpose processor or a general-purpose processor such as a computer, firmware, software) or in combinations of them. An apparatus embodying these techniques will include appropriate input and output devices, a programmable processor, and a storage medium tangibly embodying program instructions for execution by the programmable processor. A process embodying these techniques is performed by a programmable processor executing a program of instructions to perform desired functions by operating on input data and generating appropriate output. Advantageously, theses techniques are suitable for implementation in one or more programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks; magneto-optical disks; and recordable-type media such as CD-ROMs and DVD-ROMs. Any of the foregoing is suitably supplemented by, or incorporated in, specially-designed application-specific integrated circuits (ASICs) for actual use in a particular personal navigation system.
This application is related to commonly assigned U.S. patent application Ser. No. 09/572,238 (U.S. Pat. No. 6,522,266), filed on May 17, 2000 and entitled “NAVIGATION SYSTEM, METHOD AND SOFTWARE FOR FOOT TRAVEL” (the '266 Patent). The '266 Patent is incorporated herein by reference. This application is related to commonly assigned and co-pending U.S. patent application Ser. No. 10/973,503 (Attorney Docket No. H0006505-1633) filed on Oct. 26, 2004 and entitled “PERSONAL NAVIGATION DEVICE FOR USE WITH PORTABLE DEVICE” (the '503 Application). The '503 Application is incorporated herein by reference.