Abstract:
The typical global positioning system (GPS) estimates the three-dimensional, global position of a radio receiver and associated vehicle, such as an aircraft, using the range measurements between the radio receiver and a set of earth-orbiting satellite transmitters. Estimating the position of the receiver from these range measurements generally entails using an iterative calculation process, which computes a series of position estimates, with each successive estimate converging with increasing accuracy toward the actual receiver position. This iterative approach, however, is not only time consuming, but sometimes fails to converge toward the actual receiver position. Though others have tried to solve these problems, their approaches either fail to consistently converge on a single solution or give multiple solutions. Accordingly, the inventors devised, among other things, new non-iterative methods, for using range measurements to estimate position. One exemplary position-estimation method entails receiving a set of two or more range measurements; defining an error function based on the set of range measurements, with the error function having only one local minimum; and then determining a position estimate based the one local minimum of the error function. This and other exemplary embodiments of the invention promise to reduce the time for computing position estimates.

Description:
TECHNICAL FIELD 
     The present invention concerns position-measurement systems and methods, particularly methods of using range measurements to estimate position. 
     BACKGROUND OF THE INVENTION 
     Some position measurement systems use radio signals broadcast from transmitters to measure the position of a radio receiver that receives the radio signals. A seminal example of one such system is a global positioning system. 
     The typical global positioning system (GPS) measures the three-dimensional, global position of a radio receiver. The receiver, sometimes mounted to a vehicle such as an automobile or aircraft, receives signals from a set of earth-orbiting satellite transmitters. Each signal indicates not only the position of its transmitter but also its is transmission time, enabling the receiver to approximate signal transit times and to estimate or measure the distances to the transmitters. A processor coupled to the receiver uses at least four of these measured distances, known as range measurements, to approximate or estimate the position of the receiver and the associated vehicle. 
     Estimating the position of the receiver from the range measurements generally entails solving a set of nonlinear range equations using an iterative calculation process. The iterative process entails starting with an initial position estimate, computing a second estimate using the initial estimate, computing a third estimate using the second estimate, and so on, with each successive estimate being better than the previous one and thus converging toward the actual receiver position. This process continues until the change between successive position estimates become insignificantly small. 
     Unfortunately, this iterative process is not only time consuming, but often fails to converge toward the actual receiver position when the receiver is not between the earth and the earth-orbiting satellite transmitters. Thus, for example, vehicles traveling in space outside the constellation of satellite transmitters cannot rely on a global positioning system for navigation. 
     In trying to solve these problems, others have sought to develop non-iterative, or closed-form, solutions to the range equations. See, for example, Bancroft and Chaffee, “An Algebraic Solution of the GPS Equation,” IEEE Trans on Aerospace and Elect Systems, January 1985. However, this and other approaches have not been entirely acceptable, because they either fail to consistently converge on a single solution or give multiple solutions to the pseudorange equations, and thus require further analysis to pick the right one. 
     Accordingly, there remains a need for better ways of estimating position from range measurements. 
     SUMMARY OF THE INVENTION 
     To address this and other problems, the inventors devised new methods as well as systems and software embodying these methods, for using range measurements to estimate position. One exemplary method entails receiving a set of two or more range measurements; defining an error function based on the set of range measurements, with the error function having only one local minimum; and then determining a position estimate based the one local minimum of the error function. Other embodiments use this position estimate as an initial position estimate in an iterative process, such as Kalman filtering, to promote its rapid and consistent convergence to an appropriate position solution. 
     One exemplary application for this and other embodiments of the invention is GPS-based position estimation for spacecraft outside a GPS satellite constellation. Other applications include position estimation of cellular phones outside a triangle of three base towers, and in distributed robotic systems, position estimation of scout robots outside a triangle of three ranger robots. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a first exemplary navigation and guidance system  100  incorporating the present invention. 
     FIG. 2 is a flow chart illustrating a first exemplary method of operating the system of FIG. 1 according to the present invention. 
     FIG. 3 is a flow chart showing a second exemplary method of operating the system of FIG. 1 according to the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The following detailed description, which references and incorporates FIGS. 1-3, describes and illustrates specific embodiments of the invention. These embodiments, offered not to limit but only to exemplify and teach the concepts of the invention, are shown and described in sufficient detail to enable those skilled in the art to implement or practice the invention. Thus, where appropriate to avoid obscuring the invention, the description may omit certain information known to those of skill in the art. 
     Exemplary System Incorporating Invention 
     FIG. 1 shows an exemplary vehicle navigation system  100  incorporating the present invention. System  100  includes a transmitter system  110 , a receiver  120 , a closed-form position estimator  130 , an iterative position estimator  140 , and a vehicle control system  150 . 
     Transmitter system  110  includes a number, m, of transmitters, of which transmitters  111 ,  112 ,  113 ,  114 , and  115  are representative. In the exemplary embodiment, the m transmitters are a subset of the NAVSTAR GPS constellation of satellite transmitters. However, in other embodiments, the transmitters are incorporated in mobile robots or terrestrial communication towers. In the exemplary embodiment, each transmitter broadcasts a respective signal indicating its respective transmitter positions and signal transmission times to receiver  120 . (Some embodiments include a transmitter identification code, instead of transmitter position., that facilitates determination of transmitter position using a look-up table.) 
     Receiver  120 , mounted to or carried by a vehicle (not shown), such as a landcraft, watercraft, aircraft, or spacecraft (not shown), receives the signals, extracts position and time data, and computes a set of m range measurements, generally one range measurement for each received transmitter signal. In the exemplary embodiment, receiver  120  is NAVSTAR GPS compatible receiver which computes pseudoranges, that is, range measurements and receiver clock offsets for the signals. (As used herein, the term “range measurements” includes pseudorange measurements.) However, in other embodiment the receiver is part of a wireless communications devices, such as a cellular telephone or personal digital assistant, or is part of a ranger or scout in a distributed robotics system. In any case, the receiver outputs the range measurements to closed-form position estimator  130 . 
     Closed-form position estimator  130 , which includes one or more processors  132  and programmed memory modules or software  134 , processes the range measurements using a closed-form, that is, non-iterative or deterministic, algorithm to determine a position solution, or estimate. In some embodiments, estimator  130  outputs the position solution to a display or control device; however, in the exemplary embodiment, estimator  130  outputs the position solution as well as the range measurements to iterative position estimator  140 . 
     Iterative position estimator  140  comprises one or more processors  142  and programmed memory modules  144 . (Although the exemplary embodiment shows estimators  130  and  140  as comprising separate processors, other embodiments use one processor for both estimators.) Estimator  140  uses the closed-form position solution from estimator  130  as an initial position estimate in an iterative position-estimation algorithm for solving the non-linear pseudorange equations. 
     In the exemplary embodiment, this entails linearizing a set of pseudorange or range equations around the closed-form position estimate. An exemplary linearization procedure entails determining a set of estimated range measurements that would yield the initial position solution and subtracting these estimated range measurements from the actual range measurements. Once linearization is complete, the iterative position estimator proceeds to determine another position estimate using the linearized range measurements within a least-squares estimation procedure, such as Kalman filtering or extended Kalman filtering. This position estimate is output to a device, such as vehicle control system  150 . 
     Vehicle control system  150  receives the position estimate, compares it to a desired position, determines if vehicle control adjustments are necessary, and actuates one or more vehicle controls as necessary to adjust vehicle position or heading. In some embodiments, vehicle control system is an aircraft or spacecraft flight-management system. 
     First Exemplary Closed-Form Method of Estimating Position 
     FIG. 2 shows a flowchart  200  which illustrates further details of operating system  100 , particularly details of operating closed-form position estimator  130 . Specifically, flowchart  200 , which includes process blocks  202 - 208 , depicts a first exemplary method of computing a non-iterative, or deterministic, solution for the following m pseudorange equations: 
     
       
         ( x   i   −x   0 )′( x   i   −x   0 )= c   2 ( t   i   −t   0 ) 2   , i= 1 , . . . m   (1) 
       
     
     where subscript i is an index ranging from I to m (the number of range measurements); x i  ε R n  denotes the n-element known position vector of the i-th transmitter; x 0  ε R n  denotes the unknown position of the receiver; and ( )′ denotes vector or matrix transposition; n denotes the dimension of the position vectors. When altitude is known, n is 2, and when altitude is unknown, n is 3. (In the exemplary embodiment, m is greater than or equal to n+1.) Additionally, c denotes the speed of light; t i  denotes the known time that the i th  transmitter transmits its signal; and t 0  denotes the unknown time (not known to the needed precision) at which the receiver receives the signals from all the transmitters. In typical applications, the signals from each transmitter may not be received at the same time. However, the positions of the transmitters, for example in the form of ephemeris or orbit data, are known, and the exemplary embodiment mathematically shifts them back to the point where they would have to be for their signals to arrive at the receiver at the same time. (Embodiments with knowledge of to generally use one less range measurement.) 
     At block  202 , the exemplary method begins by expressing the m pseudorange equations in equation (1) more advantageously as a series of intersecting cones, each centered at (Z i , t i ), or as: 
      ( z   i −z 0 )′ S ( z   i   −z   0 )=0 i= 1 , . . . , m   (2) 
     where z i  ε R n+1  for i=1 to m denotes the combined position and time vector for the transmitters and z 0  ε R n+1  denotes the same for the receiver. More succinctly, this is expressed as                  z   i     =         [           x   i               ct   i           ]                   i     =   0       ,   1   ,   2   ,   …              ,   m           (   3   )                                
     S is defined as                S   =       [           I   n         0           0         -   1           ]     ∈     R       (     n   +   1     )     ×     (     n   +   1     )                                (   4   )                                
     where I n  is the n×n identity matrix. 
     In equation (2), the unknown z 0  lies at an intersection of the m cones. Notably, equation (2) shows that each of the m pseudorange equations is quadratic in the unknown vector Z 0 . When there are more equations than unknowns, the unique solution for z 0  always lies on the half. cone that has t 0 &gt;t i  since the receiver must receive the signal after it is sent. When there are as many equations as unknowns, there are two solutions. One of the solutions will lie on the half cone with t 0 &gt;t i . If the second solution lies on the other half cone with t 0 &lt;t i , then that second solution has to be discarded. With definition of the equation at (2), Execution of the exemplary method proceeds to block  204 . 
     Block  204  derives a set of m−1 linear equations from the m quadratic equations defined in (2). In the exemplary embodiment, this entails selecting one equation, for example, the m th  equation and then subtracting each of the m−1 other equations from it to determine m−1 equations which are linear in z 0 . These m−1 equations are defined as 
     
       
         0=( z   i   −z   0 )′ S ( z   i   −z   0 )−( z   m   −z   0 )′ S ( z   m   −z   0 )=( z   i   ′Sz   i   −z   m   ′Sz   m )−2( z   i   −z   m )′ Sz   0   (5) 
       
     
     Rearranging equation (5) yields                    (       z   i     -     z   m       )     ′          Sz   0       =       1   2          (         z   i   ′          Sz   i       -       z   m   ′          Sz   m         )               (   6   )                                
     which can be further manipulated to obtain                    (       z   i     -     z   m       )     ′          S        (       z   0     -     z   m       )         =       1   2            (       z   i     -     z   m       )     ′          S        (       z   i     -     z   m       )                 (   7   )                                
     Equation (7) can be rewritten in the form 
     
       
           M′S ( z   0   −z   m )= w   (8) 
       
     
     where matrix M is defined as 
     
       
           M=[z   1   −z   m   ,z   2   −z   m   , . . . , z   m−1   −z   m   ]εR   (n+1)×(m−1)   (9) 
       
     
     and vector w is defined as              w   =       1   2                [               (       z   1     -     z   m       )     ′          S        (       z   1     -     z   m       )                       (       z   2     -     z   m       )     ′          S        (       z   2     -     z   m       )                 ⋮                 (       z     m   -   1       -     z   m       )     ′          S        (       z     m   -   1       -     z   m       )               ]             (   10   )                                
     The matrix M and vector w both are known quantities based on the measurement data. The exemplary embodiment selects m to be a transmitter near the center of visible sky or visible region to avoid or mitigate errors stemming from transmitter geometry. Thus, with this choice, equations based on a low-quality range measurement for a poorly positioned transmitter will not pollute or corrupt the equations based on range measurements from better positioned satellites. After defining this set of linear equations execution continues at block  206 . 
     Block  206  entails solving the system of m−1 linear equations in (8). Although there are a number of methods for solving these equations, the exemplary embodiment determines a least-squares solution according to 
       z   0   =z   m +( SM M′S ) −1   SMw=z   m   +S ( M M′ ) −1   Mw   (11) 
     Notably, equation (11) expresses a complete and unique linear-algebraic solution to the range equations for cases where redundant range measurements are available. 
     In block  208 , this position estimate is forwarded to iterative position estimator  140  for use an initial position solution in a Kalman filtering algorithm. 
     Second Exemplary Closed-Form Method of Estimating Position 
     FIG. 3 shows a flowchart  300  which. illustrates a second exemplary method for computing a non-iterative or deterministic solution for the pseudorange equations given at equation (2). Flowchart  300  includes process blocks  302 - 310 . For convenience equation (2), which expresses the m quadratic pseudorange equations as a set of intersecting cones, each centered at (x i , t i )is repeated here as equation (12): 
     
       
         ( z   i   −z   0 )′ S ( z   i   −z   0 )=0  i = 1 , . . . ,m   (12) 
       
     
     The method begins at block  302 , which entails using range measurements from receiver  120  to define a matrix N. In the exemplary embodiment, the N matrix definition stems from expressing the m−1 equations in (12) in the scaled form of 
     
       
         N v =0 εR   m   (13) 
       
     
     where matrix N is defined as                N   =       [           r   2             -   2          z   1   ′        Sr             z   1   ′          Sz   1                 r   2             -   2          z   2   ′        Sr             z   2   ′          Sz   2               ⋮       ⋮       ⋮             r   2             -   2          z   m   ′        Sr             z   m   ′          Sz   m             ]     ∈     R     m   ×     (     n   +   3     )             ,           (   14   )                                
     and vector v is defined as              v   =       [             z   0   ′          Sz   0                   z   0        r               r   2           ]     ∈     R     n   +   3                 (   15   )                                
     In both equations (14) and (15), r denotes a fixed scalar having a magnitude approximately equal to the average or typical distance between transmitters. The fixed scalar is used to make all the entries in the N matrix approximately the same magnitude, and thus to ensure better numerical conditioning in subsequent portions of the exemplary method. Once matrix N has been defined execution proceeds to block  304 . 
     Block  304  entails determining the v vector, which from inspection includes a scaled version of the desired position solution, from matrix N. The exemplary method determines the v vector using the kernel of matrix N. This determination relies on the insight that for noiseless measurements, the right kernel of matrix N includes terms that match the v vector. So, with noisy measurements, the exemplary embodiment determines a v vector that gives the smallest error, N * v. This entails equating v to the right singular vector of matrix N corresponding to the smallest singular value of N. The length of a numerically computed kernel vector v is arbitrarily set to 1. After determination of the vector, execution continues on one of two exemplary paths depending on whether one desires an optimal or non-optimal closed-form solution based on the v-vector. 
     Block  306  entails determining a non-optimal closed-form position solution from the v vector. The exemplary embodiment recognizes that the v vector includes a scaled version of the position solution and thus attempts to re-scale the v vector to match the ideal, that is, noiseless, v vector definition in equation (15). Although there are a number of ways to re-scale this vector, the exemplary method scales the length of the computed vector v so that its bottom element is r 2 . This can be done by taking the unit vector in the v direction (from the svd (singular value decomposition)), re-scaling it so that element (n+3) has a magnitude of r 2 , and then dividing elements (2) through (n+2) by r. Following this procedure yields the position solution as                z   0     =       r     v     n   +   3                (       v   2     ,     v   3     ,   …              ,     v     n   +   2         )     .               (   16   )                                
     Thus, this non-optimal solution essentially computes the position solution using all but the first element of the v vector, z 0 ′Sz 0 . This means that the constraints on the elements of the v vector are not precisely met and that the solution in equation (16) is not optimal in the sense of having a minimum error. To minimize error in the solution, one can use the exemplary procedure outlined below for block  308 . 
     Block  308  entails determining an optimal position solution based on the computed v vector. In the exemplary embodiment, this entails executing process blocks  308   a,    308   b,  and  308   c.    
     Block  308   a  defines a norm that minimizes the error in all elements of v and then computes the optimal solution based on this norm. There are a number of ways to define the norm. For example, one could minimize the quartic polynomial 
     
       
         min z0   ∥v− ( z   0   ′Sz   0   ,z   0   r,r   2 )′∥ 2 .  (17) 
       
     
     However, this minimization would require setting the derivative of this quartic polynomial to zero, and solving a system of n+1 cubic polynomials in the n+1 elements of z 0 . Such a system of polynomials typically has multiple zeros, meaning there could be multiple local minima to the quartic function. To avoid this local minima problem, the exemplary embodiment defines a different norm, a norm having the property that it is zero when the range measurements are noiseless, that is non-negative, and that has a single local minimum. 
     More particularly, the exemplary embodiment constructs the norm, using the following procedure. A part step in this procedure entails defining a P matrix using terms of the v vector. In defining the P matrix, the exemplary embodiment recognizes that the ideal, that is, noiseless v vector, adheres to the following constraint: 
     
       
           v   1   v   n+3 −∥( v   2   , v   3   , . . . , v   n+1 )∥ 2   v   n+2   v   n+2   (18) 
       
     
     Moreover, this constraint equates to the zero-valued determinant of the following 2×2 matrix P:              P   =     [             v   1          r   2               [            (       v   2     ,     v   3     ,   …              ,     v     n   +   1         )          -     v     n   +   2         ]        r                 [            (       v   2     ,     v   3     ,   …              ,     v     n   +   1         )          +     v     n   +   2         ]        r           v     n   +   3             ]             (   19   )                                
     The determinant of matrix P is zero for noiseless measurements, because P has the form of the following rank 1 matrix P (no noise)                 P     (     no                 noise     )       =       [                  (       v   2     ,     v   3     ,   …              ,     v     n   +   1         )          -     v     n   +   2                 r         ]                          [              (       v   2     ,     v   3     ,   …              ,     v     n   +   1         )          +     v     n   +   2         ,   r     ]                 (   20   )                                
     Correspondence in the terms of equations (19) and (20) can be verified using equation (15) and (18). From equation (15), which defines the vector v, it follows for noiseless measurements that 
     
       
         ( v   2   , v   3   , . . . , v   n+1 )= x   0   r   (21) 
       
     
     and 
     
       
           v   n+2   =ct   0   r .  (22) 
       
     
     Substituting equations (21) and (22) into equation (20) yields                P     (     no                 noise     )       =       [                  x   0          -     ct   0               r         ]                [              x   0          +     ct   0       ,   r     ]             (   23   )                                
     With this recognition, the exemplary embodiment proceeds to approximate matrix P in equation (19) using noisy measurements. More particularly, this entails calculating a rank 1 approximation for matrix P using a singular-value decomposition (SVD) of matrix P, and then dropping the second singular value of P. The singular-value decomposition of matrix P is given as 
     
       
           P=UΣV′,   (24) 
       
     
     where 
     
       
         Σ=diag((σ 1 , σ 2 )  (25) 
       
     
       U′U=I   2   =V′V   (26) 
     With the P matrix defined based on the v vector, the exemplary embodiment defines the norm based on the matrix P and a rank 1 matrix {circumflex over (P)} that is closest to the P matrix, or in other words, minimizes the matrix norm of P−{circumflex over (P)}. Mathematically, this is expressed as 
     
       
         min rank({circumflex over (P)})=1   ∥P−{circumflex over (P)} μ=σ 2 ( P )≧0  (27) 
       
     
     In block  308   b,  after defining the norm, the exemplary method computes the vector v that minimizes the norm. Since matrix {circumflex over (P)} includes the terms of the optimum v vector, this entails computing the unique optimum value of matrix {circumflex over (P)} according to: 
     
       
           {circumflex over (P)}=U   1 σ 1   V   1 ′  (28) 
       
     
     where U 1  is the first column of U and V 1  is the first column of V. When σ 1 ≠σ 2 , this solution is unique, since then the singular value decomposition is unique (up to simultaneous sign flips on columns of U and V). 
     Then, as block  308   c  shows, the exemplary method uses the unique optimum value of matrix {circumflex over (P)} to determine an optimal solution for z 0 . More particularly, this entails setting P (no noise) =P to obtain                [                  x   0          -     ct   0               r         ]     =       [     r   /       U   1          (   2   )         ]          U   1               (   29   )                               [∥ x   0   ∥+ct   0   , r]=[r/V   1 (2)] V   1 ′  (30) 
     Subsequently, the exemplary embodiment solves for ∥x 0 ∥and ct 0 . This entails equating the corresponding components in equation (29) and (30) to obtain expressions for ∥x 0 ∥−ct 0  and ∥x 0 ∥+ct 0 . Adding the resulting expressions for ∥x 0 ∥−ct 1  and ∥x 0 ∥+ct 0  produces 2∥x 0 ∥, and subtracting these expressions produces 2cto, enabling one to determine ∥x 0 ∥ and cto. After determining ∥x 0 ∥and ct 0 , the exemplary embodiment computes z 0  using the following expression to compute x 0  from its length and the components of the v vector:                x   0     =            x   0          *       (       v   2     ,     v   3     ,   …              ,     v     n   +   1         )            (       v   2     ,     v   3     ,   …              ,     v     n   +   1         )                      (   31   )                                
     Thus, equation (31) provides the value of x 0  that minimizes the error 
     
       
         min rank({circumflex over (P)})=1 ∥P−{circumflex over (P)}∥  (32) 
       
     
     In block  310 , this solution x 0  and ct 0  are forwarded to iterative position estimator  140  for use an initial position solution in a Kalman filtering or other type of iterative algorithm. 
     Use of Exemplary Methods in Distributed Robotics Applications 
     Embodiments of the present invention are applicable to distributed robotic system. In these systems, the transmitters of transmitter system  110  and receiver  120  are components of transceivers mounted to respective system robots. In general operation, m robots, called rangers, have known positions x i , and at least one robot, called a scout, has an unknown position x 0 . One ranger sends out a pulse to a scout and all other rangers. After an unknown time delay, dt, the scout responds, sending a response pulse to ranger 1 as well as the other rangers. Each ranger has its own clock and computes a time difference based on the pulse transmission time and the time it received the response pulse. The ranger clocks are not synchronized. The rangers then compute the unknown position of the scout using one of the exemplary methods described above. 
     Use of the exemplary methods, however, entails converting the robotic range measurements to fit the (x i , ct i ) i=1, 2, . . . , m, form used in the exemplary methods of FIGS. 2 and 3 to compute (x 0 ,ct 0 ). More specifically, this entails defining a range L i  between each ranger and the scout as 
       L   i   =∥x   i   −x   1 ∥  (33) 
     and a range R i  between the first, or primary ranger, and the each i-th ranger as 
     
       
           R   i   =∥x   1   −x   1 ∥i=2, . . . ,  m.   (34) 
       
     
     The exemplary method then calculates t i , i=1, 2, . . . , m for each of the rangers. For the primary ranger, designated ranger 1, the signal receipt time t 1 , that is the time ranger 1 received the response signal from the scout, is define as the total time delay between sending the pulse to the scout and receiving the response pulse from the scout. Mathematically, this is expressed as 
     
       
           t   1   =t   response at 1 from scout   −t   send from 1 =2 *L   1   /c+dt   (35) 
       
     
     For the other rangers 2 through m, ranger 1 calculates signal receipt times t i ,i=2,m from 
     
       
           t   1   =t   response at i from scout   −t   receive from 1   +R   i /c=( L   1 +L i )/ c+dt   (36) 
       
     
     In arriving at this result, the exemplary method defines t response at i from scout −t receive from 1 , the delay between receipt of the pulse from ranger  1  and the receipt of the response from the scout, as 
     
       
           t   response at i from scout   −t   receive from 1 =( L   1   +L   i −R i )/ c+dt   (37) 
       
     
     Once these times have been computed, the unknown position of the scout is computed using one or more of the exemplary methods described in FIGS. 2 and 3. 
     An alternative send-and-response scenario gives rise to another method of converting robotic range measurements to fit the exemplary methods of FIGS. 2 and 3. In this scenario, each ranger sends out a pulse and listens for a reply from the scout. The delay dt does not change rapidly, so for one range computation, each ranger can assume the scout had the same dt and compute 
     
       
           ti =( t _response_at —   i _from_scout —   t _receive_from i )/2= Li/c+dt/ 2 t= ( t   response at i from scout   −t   receive from 1 )/2=( L   i )/ c+dt/ 2  (38) 
       
     
     Compute the times according to equation (36) gives each ranger the same time bias of dt/2. 
     Conclusion 
     In furtherance of the art, the inventors have presented new methods as well as systems and software embodying these methods, for using range measurements to estimate position. One exemplary non-iterative method entails receiving a set of m range measurements, including redundant measurements, defining a set of m non-linear range equations based on the range measurements, deriving a set of m−1 linear range equations from the m non-linear equations, and then solving the m−1 range equations using linear algebraic techniques. Another non-iterative method entails receiving a set of two or more range measurements; defining an error function based on the set of range measurements, with the error function having only one local minimum; and then determining a position estimate based the one local minimum of the error function. These and other exemplary methods based on the teachings of the present invention are expected to reduce the time necessary to compute position solutions in numerous position-measurement applications. 
     The embodiments described above are intended only to illustrate and teach one or more ways of practicing or implementing the present invention, not to restrict its breadth or scope. The actual scope of the invention, which embraces all ways of practicing or implementing the teachings of the invention, is defined only by the following claims and their equivalents.