The present invention relates generally to group location, and in particular to group location and remote tracking.
Global Positioning System (GPS) is a valuable tool for self locating as well as tracking members of a group. The benefits of GPS are recognized in numerous military as well as civilian applications. In many situations, however, GPS signals are simply not available or, at best, intermittently observable. For example, in military or emergency rescue team applications, it is desirable for a team member to track the locations of his/her peers and to have a centralized location tracking the location of the team. Examples include a Marine fire team in a combat operation, or a rescue team entering a building or an underground cave. In these cases, extended absence of UPS is expected, which makes GPS-only tracking systems almost unusable.
A traditional approach to this problem relies on Inertia Measurement Units (IMU) and applies an appropriate reference frame transformation to estimate position. However, for low-cost commercial grade IMU, the bias in the accelerometer and gyroscope of the IMU produces substantial errors and renders this approach ineffective. Adding ranging sensors among group members using RF or ultrasonic devices has also been studied; these techniques may provide sufficient range accuracy, but are not able to provide accurate group navigation due to lack of directional information.
A novel method, called Self-correcting Adaptive Tracking System (SATS), which focuses on solving the group location problem when GPS is not available, is presented. The novel system makes group navigation and remote tracking possible when GPS is not available.
An inventive system and method for self and group location and tracking based on ultra wide band ranging among members of the group is presented. The system comprises an anchored station, a plurality of nodes, each node having at least knowledge of where the node is facing and heading, knowledge of all pair wise distances among all of the plurality of nodes, and ability to exchange information among the nodes and with the anchored station via one or more relays. A leader node among a plurality of nodes determines placement of the relays by detecting a weak signal from the anchored station and an adaptive search process finds a new position estimate of the group based on constraints of the pair wise distances, enabling extracting of directional information and adaptively stabilizing orientation of the group. In one embodiment, both GPS-enabled and GPS-denied partitions are in the system. In one embodiment, the ability to exchange information comprising inertial measurements and pair wise ranging measurements is performed using WLAN. In one embodiment, the remote command node initializes the plurality of nodes, assigns one of the nodes as a leader node, runs a graphical user interface in a north-facing mode, and maintains communication with the leader node via WLAN. In one embodiment, adaptively stabilizing the orientation of the group is performed using an orientation-correcting polygon matching process. In one embodiment, the orientation-correcting polygon matching process comprises initializing a first orientation and a second orientation for each node at a first time, incrementing the first time and obtaining polygon matching results, calculating an error function value for the first orientation and the second orientation at the first time, and if the error function of the first orientation is greater than the error function of the second orientation, setting a second-time-first orientation for a second time to the first orientation less a constant, setting a second-time-second orientation for the second time to the second orientation less the constant, otherwise setting the second-time-first orientation for the second time to the first orientation plus the constant, setting the second-time-second orientation for the second time to the second orientation plus the constant, and incrementing the second time. In another embodiment, the orientation-correcting polygon matching process comprises determining whether the pair wise distance between a first node and a second node of the plurality of nodes has changed, calculating an expected distance between expected positions of the first node and the second node, and detecting a flip based on the expected positions of the first and second nodes and the pair wise distance between the first and second nodes.
The invention is further described in the detailed description that follows, by reference to the noted drawings by way of non-limiting illustrative embodiments of the invention, in which like reference numerals represent similar parts throughout the drawings. As should be understood, however, the invention is not limited to the precise arrangements and instrumentalities shown. In the drawings:
The inventive Self-correcting Adaptive Tracking System (SATS) is part of the Office of Naval Research (ONR) program entitled “Navigation in a GPS-denied Environment”. SATS targets solving a self- and peer-group-location problem when GPS is not available. In the absence of GPS, SATS augments navigation capability by using intelligent processing of a combination of reference signals of Inertial Measurement System (IMS), Ultra-Wide Band (UWB) localization, and 802.11 (WLAN) radio for exchanging information. Each of these reference signals has a unique capability that can contribute to the final solution. Accordingly, SATS is a dynamic adaptive procedure that performs self-correction of location and orientation errors.
The inventive system can be viewed as a group of nodes called a clique moving with close proximity most of the time. Each node, e.g. SATS node, in the clique has the following capabilities: knowledge of where the node is facing and/or heading, knowledge of all the pair wise distances among all the nodes, the ability to exchange information among nodes, and the ability to exchange information with a remote command node using WLAN via relays.
The overall system consists of multiple cliques of SATS devices, one to three relays, and an anchored station or command node as shown in
In one embodiment, the Command Node 10 is a computer that has an 802.11 interface. The Command Node 10 is responsible for the following functions: initialization of the SATS nodes 12, including assignment of one SATS node, e.g., node #1, as the SATS leader node, running a graphical user interface (GUI) in the north-facing mode, discussed below, to keep updating the location of the clique, and maintaining communication with the SATS leader node via WLAN.
A number of SATS nodes 12, typically from three to twenty, form a clique, e.g., small fire team, and the clique has a SATS leader node. Each SATS node 12 communicates with every other node via two RF links: UWB and WLAN. UWB is for pair wise ranging among SATS nodes, and WLAN is used to convey other data such as IMU data. The WLAN is also used to communicate between the SATS leader node and the Command Node 10 via Smart Relays 14. Each SATS node 12 has a GUI that shows the location of clique members. Both a forward-facing and a north-facing mode of viewing are supported. The forward-facing mode provides a view following the direction the user, e.g., Marine, rescue worker, is facing. The north-facing mode provides a view that always points in the north direction (like a map). The north-facing mode view is the only view supported in the Command Node 10.
Other auxiliary functions of the SATS node include: Warning of foreign WLAN detected; Alert of dropping of Smart Relay 14; Icon to display the north direction (like a compass); and Text capability.
Smart Relays 14 are used by SATS to relay messages between the SATS leader node and the Command Node 10, when a clique wanders too far from the Command Node 10. The Smart Relay 14 operates on a WLAN interface. When the SATS leader node is getting far from the Command Node 10, it senses that the WLAN signal is weak. The Command Node 10 then displays a message to alert the SATS leader to drop a Smart Relay 14. In addition to the message, a beeping sound can be emitted. The Smart Relay 14 can be a minicomputer with a WLAN interface. Once a Smart Relay 14 is deployed, that is dropped and/or placed in a convenient location, it relays messages by re-broadcasting. Each message has a sequence number, so that duplicated messages can be dropped by the receiver.
Two key metrics for analysis and quantification of the performance of GPS-Denied navigation can be used. The first is the Relative Position Error (RPE), which is represented by two components, the relative distance error (RDE) measured in meters and relative orientation error (ROE) measured in degrees of an angle. The second metric is Clique Drift Error (CDE). This measures the absolute error between the centroid, e.g., center of mass, of the polygon formed by the clique, and the centroid of the SATS polygon, with respect to a fixed reference point.
CDE is defined as the absolute root mean square distance error with respect to a fixed reference point between the SATS estimated position and the true position.
In certain applications, RPE is considered to be a more important metric. For example, the key strength of Orientation-correcting Polygon Matching Algorithm (OPMA), discussed below, is targeted improvement of the performance of RPE.
The inventive system is based on using UWB ranging information as a constraint tracking process. The SATS process performs a search and optimization procedure to find the best new locations subject to constraints provided by updated ranging information and per-node magnetometer information. In addition, SATS has an orientation error tracking feedback loop to perform self-correction of clique level orientation errors.
The inventive approach can be illustrated using a 4-node clique. Suppose at a time t, the estimated positions of the nodes are known, and the node positions at time t+1 are desired. Note that each unit of time corresponds to a position estimate. Therefore, in practice each time unit may be within one to a few seconds. To perform the estimate of new position at t+1, we use a procedure called Polygon Matching Algorithm (PMA).
The PMA is composed of two distinct steps. The first step is called PMA-Search and the second step is called PMA-Rotate. The goal of the PMA-Search is to find a best reference polygon whose links are closest to those of the UWB Polygon at time t+1 (UT+1). As shown in
where i,j,k,l ranges from 0 to 6 v, (v is a search step). xy's are the links of the polygon, Rxy is the length of the link of the reference polygon, Uxy is the length of the corresponding link from UWB Polygon.
Equation (1) searches for the reference polygon that is closest to the UWB polygon. Due to various errors from UWB, previous estimates, and FFV, the reference polygon will not match the UWB polygon. The second part of PMA, i.e. the PMA-Rotate step, estimates the new position at time t+1 using the UWB polygon. This is achieved by first placing the floating UWB polygon with its centroid coinciding with that of the reference polygon obtained from PMA-Search. The distances from the UWB vertices (Vu) to the reference polygon vertices (Vr) are then computed and added together to form a new penalty function with respect to an initial UWB polygon orientation of β. The UWB polygon will be rotated until the minimum of the penalty function (Jr) is found according to:
The positions corresponding to this minimum penalty Jr are the new clique estimate.
The PMA-Search procedure requires SN search steps (where N is the number of nodes and S is the number of equidistant, search points). The requirement becomes computationally impractical for even a moderate number of nodes, say 10, making the approach un-scalable with respect to the number of nodes. A modification to the search process, which achieves a linear increase in computation with respect to the number of nodes, is now described.
In this modified process, instead of searching for all the combination of the points on each of the FFV, pick one node, for example node A, and search on the FFV of A for S points. For each of the S points, a circle of radius is drawn, the radius given by the UWB distance between node A and node D (node D can be selected without loss of generality). The circle from A will intersect the FFV of D at none, one, or two points. If there is no intersection, the point on the circle that is closest to D's FFV is used as the solution point. If there are two points or solutions, the distance moved is compared, and the point that is within the search range is selected.
The PMA described above exerts no control on the clique orientation, which is expected to wander randomly without bound, and roughly as a linear function of time. This error accumulation could be quite bad from a user perspective. For example, if clique orientation error accumulates at a rate of 0.5° per second, it would only take 6 minutes to incur 180 degrees clique orientation error. If that happens, it would mean that node A will think that node B is on its left side, while node B is really on its right side. To attain an error bound to within 45° in 1 hour would require the clique orientation (CO) error rate to be about 0.01 degree/sec, an impractical performance benchmark.
Accordingly, it is necessary to attain control over clique orientation, given that the main measurement device is distance among nodes. A review of PMA shows that an assumption with respect to the PMA-Search was that the node reset positions are used to predict the next positions. However, the reset node positions contain errors resulting from both steps of PMA, namely, searching for the reference polygon, and the polygon matching between UWB polygon and the reference polygon. Part of this error manifests itself as the clique orientation error, which accumulates without bound. If just the clique orientation error component is detected and quantified, this component can be controlled.
As described above, the capability to navigate in SATS is based on the PMA. Further, the PMA already provides a framework that allows measurement of clique orientation error. However, the PMA needs to be modified to direct the resource for clique orientation. This addition capability can be called “Orientation-correcting PMA” or OPMA.
The steps for OPMA are as follows. Find an “error function” associated with clique orientation. The error function is smallest for correct clique orientation compared to other incorrect clique orientations. In one embodiment, a measure of the deviation (P) between the reference polygon and the UWB polygon as the error function for measuring the degree of clique orientation error can be used. This measure is given by:
P(θ
n)=Σt=t0t0+TΣi|Ri−Ui| (3)
where: θn is the n-th trial clique orientation at time=t0;
Ri is the i-th leg of the reference polygon resulted from PMA search;
Ui is the i-th leg of the UWB polygon resulted from PMA matching; and
P(θn) is computed from t0 to t0+T (T is an interval of error accumulation).
The goal is to find θn which gives the smallest P(θn) by trying multiple different clique orientations. Clique Orientation (CO) is defined as the angle between North and the a-b link of
The rationale for choosing this error function is illustrated in
The graphical representation of
In the MATLAB simulation, rotate the original polygon of
P(θ)=Σt=t0t0+1Σi|Ri−Ui| (4)
Notice equation (4) is very similar to equation (3) except that T=1 in equation (4), and that θ covers all the possible orientations, in 5° increments. The result of the simulation is shown in
The OMPA process is described.
The OPMA operates in the following way. At a given time, each node starts with two orientations θa and θb, such that θa−θb+q, where q (>0) is a design parameter. As an example, q is set to 10°. For each update instance T, the error function values P(θa) and P(θb) are computed and compared. Depending on which value is larger, θa and θb for the next update period is adjusted according to the following rule:
where ρ (>0) is a design parameter. As an example, ρ may be set to 5°.
The simulation result suggests that the clique orientation can be adjusted according to two measurements, namely, P(θa) and P(θb).
In step S5, the error functions P(θa) and P(θb) are computed. The steps S2 through S5 are repeated until n=T. In step S6, n is compared with T. If n is not equal to T (S6=NO), processing continues at step S2.
When n=T (S6=YES), in step S7, n is reset to 0; and if P(θa) is greater than P(θb) (S7=YES), then in step S8, θa(t0+T) is set to θa(t0)−ρ, and θb(t0+T) is set to θb(t0)−ρ, then processing continues at step S2.
If P(θa) is less than P(θb) (S7=NO), then in step S9, θa(t0+T) is set to θa(t0)+ρ, and θb(t0+T) is set to θb(t0)+ρ, then processing continues at step S2.
The Orientation-correcting PMA (OPMA) described above adaptively corrects a clique orientation drift by trying two different orientation angles at each starting time of orientation correction intervals and selecting estimated positions that give a smaller error, i.e., a smaller P(ρn). However, if a polygon flip occurs at each starting time of orientation correction updates, OPMA cannot correct the clique orientation drift. This is because the error function P(θn) of OPMA does not show the characteristics shown in
A polygon flip is defined as a situation in which the simple polygon of estimated positions is flipped compared to the simple polygon of true positions.
a shows two true polygons consisting of four nodes at t=t0 and t=t0+T, respectively, and true forward facing vectors (FFVs) of the nodes at t=t0.
Once two types of floating UWB polygons (a non-flipped polygon and a flipped polygon) are obtained, the PMA-Search and PMA-Rotate are applied to the previous estimated polygon using the two floating UWB polygons. The polygon flip is caused by a combination of various errors such as UWB measurements errors, the orientation errors of previous estimates, and FFV errors. In the example of
A polygon flip often occurs when two nodes get close and move away from each other without crossing each other. UWB measurement outliers also cause a polygon flip. In some cases, a polygon flip situation lasts for a long period of time. In these cases, OPMA does not work since the OPMA error function P(θn) defined above does not show the characteristics shown in
A polygon flip detection procedure is derived by observing the relationship between forward facing vectors and changes of UWB pair-wise measurements.
In this example, suppose that at time t=t0, the estimated polygon 16 is flipped as shown in
In each update of polygon matching, find all Uxy satisfying |Uxy,t−Uxy,t-T|>lth, where x and y are node indices, Uxy,t is the UWB ranging measurement between the two nodes, Uxy,t-T is the UWB ranging measurement at previous update, and T is the PMA update interval. The threshold, lth (>0) in distance change is used to make sure that a distance between two nodes actually changed considering UWB measurement errors. One recommended value is 0.5 meters considering the accuracy of UWB measurement.
For all Uxy satisfying the above condition, find all Uxy satisfying 90−θθth
Calculate the expected distance Exy,t between two expected positions EPx and EPy, where EPx and EPy, are the calculated positions obtained by adding the unit FFVs of nodes x and y to the previous estimated position vectors of nodes x and y, respectively as shown in
The positions of two nodes x and y are considered as flipped if (Uxy,t−Uxy,t-T)*(Exy,t−Uxy,t-T)<b 0.
If the number of consecutive flip detections for a pair of nodes x and y is greater than a certain positive integer number NF, the process declares that the current estimated positions of x and y are flipped. One recommended value for NF is 3.
For a pair of nodes x and y meeting all conditions above, flip the current estimated polygon across the line which is perpendicular to the line segment connecting nodes x and y and intersects the center of the line segment. If more than one pair of two nodes meet all of the above conditions, do this polygon flip for any one of such pair of nodes.
If (Uxy,t−Uxy,t-T)*(Exy,t−Uxy,t-T) is greater than or equal to zero (S13=NO), nodes x and y are indicated to be not flipped in step S16.
The invention can be implemented as computer software or a computer readable program for operating on a computer. The computer program can be stored on computer readable medium. Various aspects of the present disclosure may be embodied as a program, software, or computer instructions embodied in a computer or machine usable or readable medium, which causes the computer or machine to perform the steps of the method when executed on the computer, processor, and/or machine.
System and method of the present disclosure may be implemented and run on a general-purpose computer or special-purpose computer system. The computer system may be any type of known or will be known systems and may typically include a processor, memory device, a storage device, input/output devices, internal buses, and/or a communications interface for communicating with other computer systems in conjunction with communication hardware and software, etc.
The terms “computer system” and “computer network” as may be used in the present application may include a variety of combinations of fixed and/or portable computer hardware, software, peripherals, and storage devices. The computer system may include a plurality of individual components that are networked or otherwise linked to perform collaboratively, or may include one or more stand-alone components. The hardware and software components of the computer system of the present application may include and may be included within fixed and portable devices such as desktop, laptop, and/or server. A module may be a component of a device, software, program, or system that implements some “functionality”, which can be embodied as software, hardware, firmware, electronic circuitry, or etc.
The embodiments described above are illustrative examples and it should not be construed that the present invention is limited to these particular embodiments. Thus, various changes and modifications may be effected by one skilled in the art without departing from the spirit or scope of the invention as defined in the appended claims.
The present invention claims the benefit of U.S. provisional patent application 61/075,986 filed Jun. 26, 2008, the entire contents and disclosure of which are incorporated herein by reference as if fully set forth herein.
Number | Date | Country | |
---|---|---|---|
61075986 | Jun 2008 | US |