CLOSED LOOP TRACKING SYSTEM

Abstract: A closed loop tracking system accurately tracks targets by polling a mobile unit for positional data on a real-time and historical basis. The polled data is filtered and corrected before generating track candidates. The tracking system chooses the best candidate for displaying on a map. When the tracking system needs additional information to make the best candidate choice, the mobile unit is polled for the data necessary to make the correct choice, making the tracking system closed loop. The tracking system transmits digital positional data over the same voice channel that was established for voice communications with a tracking system call taker. This prevents the mobile unit from having to establish a second separate wireless data communication connection with the tracking system. Maps are used to identify the location of the tracked mobile unit. Better positional accuracy in latitude and longitude is provided by using measurement corrections from a variety of different sources in addition to the Global Positioning System and triangulation data.

Description: CLOSED LOOP TRACKING SYSTEM Technical Field The present invention relates to systems and methods for remotely and locally determining and tracking geographic position of GPS-enabled wireless communication devices. Background of the Invention Global Positioning Systems (GPS) use a mobile GPS receiver to receive global positioning data from GPS satellites. The GPS receiver provides the operator with a longitude and latitude position. GPS systems are effective if the position data is reliable, accurate and is obtained economically. Cell telephones give a cell phone user the ability to place calls from almost anywhere at any time. It is often desirable, for example, in the case of an emergency 911 cell phone call, for a 911 operator to determine the location of the cell phone caller. Identifying the location where a cell phone user makes a call is also desirable for non-emergency situations. For example, an operator may wish to locate a particular hotel or restaurant while driving in an unfamiliar city. U.S. Patent No. 5,388,147 to Grimes describes a cellular telecommunications system where a cellular telephone converts geo-coordinates to location information and transmits the location information to a cellular telecommunications system. The problem with these cell phone locating systems is that the location information obtained from the geo-coordinates is often too coarse to have much value in locating a cell phone user. Another problem with these cellular location systems is that the cellular telephones are not capable of transmitting the digital data containing the location information over the same voice channel established by the cell phone operator to communicate with a tracking system operator. Portable locator devices use a communications network completely separate from the cellular network. The present invention addresses this and other problems associated with the prior art. Summary of the Invention A closed loop tracking system accurately tracks targets by polling a mobile unit for positional data on a real-time and historical basis. The polled data is filtered and corrected before generating track candidates. The tracking system chooses the best candidate for displaying on a map. When the tracking system needs additional information to make the best candidate choice, the mobile unit is polled for the data necessary to make the correct choice, making the tracking system closed loop. The tracking system transmits digital positional data over the same voice channel that was established for voice communications with a tracking system call taker. This prevents the mobile unit from have to establish a second separate wireless data communication connection with the tracking system. Maps are used to identify the location of the tracked mobile unit. Better positional accuracy in latitude and longitude is provided by using measurement corrections from a variety of different sources in addition to the Global Positioning System and Triangulation data. The foregoing and other features and advantages of the invention will become more readily apparent from the following detailed description of preferred embodiments thereof, which proceeds with reference to the accompanying drawings. Brief Description of the Drawings FIG. 1 is a system diagram of a communication system that uses closed loop tracking to track a mobile unit. FIG. 2 is a detailed block diagram of the mobile unit shown in FIG. 1. FIG. 3 is a detailed diagram of a tracking system shown in FIG. 1. FIG. 4 is diagram showing message flow for tacking communications between the mobile unit and the tracking system. FIG. 5 is a diagram showing message flow for obtaining mobile unit location from a cold start. FIG. 6 is a diagram showing message flow for mobile unit history requests. FIG. 7 is a block diagram showing preprocessing conducted either in the mobile unit or in the tracking system. FIG. 8 is a block diagram showing coarse filters are used during the preprocessing to filter bad mobile unit measurements. FIG. 9 is a drawing showing a measured kinematic state and predicted kinematic states from maneuver models. FIG. 10 is a diagram showing how a position score is determined for a maneuver model. FIG. 11 is a diagram showing how a heading score is determined for a maneuver model. FIG. 12 is a diagram showing how a speed, acceleration or jerk score is determined for a maneuver model. FIG. 13 is a diagram showing how the overall scores for the maneuver models are used to identify good and bad mobile unit measurements. FIG. 14 is a block diagram showing how tracking is performed in the tacking system. FIG. 15 is a diagram showing road and intersection candidates in a spatial array. FIG. 16 is a diagram showing how bins are interchanged in the spatial array. FIG. 17 is a diagram showing how virtual tracks are generated. FIG. 18 is a diagram showing how more than one virtual track is generated for the same road. FIG. 19 is a diagram showing how virtual tracks are propagated in time. FIG. 20 is a diagram showing how new virtual tracks are generated and how old virtual tracks are deleted for different kinematic states. FIG. 21 is a diagram showing how distance scores are generated for the virtual tracks. FIG. 22 is a diagram showing how heading scores are generated for the virtual tracks. FIG. 23 is a diagram showing how speed scores are generated for the virtual tracks. FIG. 24 is a table showing how the overall scores are generated for the virtual tracks. FIG. 25 is a flow diagram showing how the tracking system selects a best virtual track. FIG. 26 is a diagram showing how an address is derived for the best virtual track. Detailed Description of Preferred Embodiments Referring to FIG. 1, a wireless communications network 12 includes a mobile unit 14 that receives voice signals 22 from a user 23. In the example shown in FIG. 1, the mobile unit 14 is a cellular telephone. However, the mobile unit can be any portable device that provides wireless data communication to a tracking system 40. For example, the mobile unit 14 can also be a device installed in a car or a system installed in a portable computer or palm computer. A voice coder (vocoder) 18 in the mobile unit 14 encodes voice signals 22 into encoded digital voice signals 31 that are then transmitted over a wireless digital radio channel 34 (cell call). The cell phone 14 transmits the encoded voice signals 31 to a cellular communications site (cell site) 36 that relays the cell call to a Cellular Telecommunications Switching System (CTSS) 38. The CTSS 38 connects the cell call through to a PSTN network and/or Internet network 42 to a tracking system 40. A GPS processor 30 in the mobile unit 14 receives longitude, latitude and other location information from one or more GPS satellites 20. An In-Band Signaling (IBS) modem 28 is attached to the mobile unit 14. The IBS modem 28 modulates the digital GPS data 29 into synthesized digital data tones 26. The digital data tones 26 prevent the encoding components in the cellular network 12 and landline network 42, such as vocoder 18, from corrupting the digital data. The voice coder 18 converts the digital data tones 26 into encoded digital data 32 that is transmitted over the same digital audio channel 34 used to transmit the encoded voice signals 31. The encoding and modulation scheme used in the IBS modem 28 allows digital data 29 to be transmitted through the same voice coder 18 used in the mobile unit 14 for encoding voice signals 22. This prevents the user 23 from having to transmit digital data using a separate wireless modem and enables the user 23 to send voice signals and digital data during the same digital wireless call. The IBS modem is described in detail in copending U.S. Patent Application Serial No. 09/531,367 Filed March 21, 2000 and is herein incorporated by reference. The tracking system 40 receives both the encoded voice signals 31 and the encoded digital GPS data 32 transmitted by mobile unit 14. The tracking system 40 includes one or more IBS modems 41 that detect and decode the encoded digital GPS data 32 transmitted over the radio channel 34. FIG. 2 is a more detailed diagram of the mobile unit 14. A switch 60 couples either voice signals 22 from a microphone 58 or the digital data tones 29 from the IBS modem 28 to the voice coder 18. The switch 60 is controlled either through a menu on a display screen 62 in the mobile unit 14 or by a button 64. The button 64 initiates the GPS processor 30 to send the GPS location data 32 obtained from the GPS satellite 20 to IBS modem 28 for transmission over the radio channel 34. The switch 60 can also be controlled by one of the keys (not shown) on the keyboard of the mobile unit 14. The GPS processor 30 also automatically controls switch 60 via tracker requests from the tracking system 40 or from its own initiation. Digital GPS data can also be input through a hands free port 56 on the mobile unit 14. When using advanced modulation techniques this switch is not necessary since both voice and data may be sent simultaneously. The radio channel 34 is established with the tracking system 40 by the user 23 calling up a phone number for the tracking system 40. Voice communication 31 is established between the mobile unit user 23 and a call taker 84 at the tracking system (FIG.3). The call taker 84 directs the user 23 to push button 64. The cell phone operator 23 pushes button 64 to enable the GPS processor 30 to send the GPS data obtained from GPS satellite 20. The GPS processor acquires GPS data on continuous basis. In a tracking application this button action may be periodic rather that push-to- send. At the same time, the switch 60 connects IBS modem 28 to the voice coder 18. The IBS modem 28 then activates. The GPS data 29 is output by the GPS processor 30 to the IBS modem 28. The digital GPS data is modulated and output by the IBS modem 28 to the voice coder 18 in the mobile unit 14. The voice coder 18 outputs the encoded GPS data 32 over the radio channel 34 to the tracking system 40. The user 23 can push the button 64 anytime after manually calling up a phone number for the tracking system 40. The GPS location data (or other digital data) is sent as digital data tones through the IBS modem 28 to the tracking system over the radio channel 34. The tracking system 40 can make subsequent requests 44 to the GPS processor 30 for additional position history. Responsive to those requests 44, the GPS processor 30 sends additional GPS data 32 to the tracking system 40. After the tracking system has identified the best track for the mobile unit 14, the track information 46 is sent to the user 23. The track information 46 can be in the form of actual voice signals by the call taker at the tracking system, electronically generated audio signals from an automated attendant or digital data that is displayed to the user 23 on display 62. After the data has been successfully transmitted, the user can press button 64 again to reconnect switch 60 to the microphone 58. FIG. 3 is a more detailed diagram of the tracking system 40 previously shown in FIG. 1. The tracking system 40 includes a Location Services Controller (LSC) 70 that includes an IBS modem 72 for receiving the digital GPS data 32 from the mobile unit 14. A processor 76 uses the location data, along with maps 74, maneuver models 78 and location history 79 to track the location of the mobile unit 14. The call taker 84 receives the initial location request from the user at the mobile unit over telephone 82. The call taker 84 uses a computer 80 to access the location data decoded by the LSC 70 and for displaying tracking information provided by provided by processor 76. The call taker 84 then either enunciates or digitally communicates the best tracks location information to the user 23 of the mobile unit 14. FIG. 4 is a block diagram showing the closed loop communication sequence between the mobile unit 14 and the tracking system 40. The message flow in FIG. 4 assumes the GPS location measurements have passed a filter test by both the mobile unit and the tacking system. In block 100 the user dials up the tracking system 40 through the wireless communication system. During establishment of the call, the mobile unit maintains a GPS fix with the GPS satellite(s) in block 102. The LSC 70 at the tracking system 40 is bridged in block 104 to the audio path established by the mobile unit 14. In block 106 the LSC detects the open line and listens for a connection with the mobile unit. The tracking system 40 answers the call in block 108. The call taker at the tacking system answers the call and requests the location of the mobile unit in block 110. In response to the location request, the mobile unit user presses the location tacking button in block 112. In block 114, the mobile unit mutes the audio transmit path (TX) that is connected to the microphone that picks up the audio voice signals. This action is not necessary in the simultaneous voice and data scenario. The mobile unit gets a location fix from the GPS receiver and transmits the fix to the tracking system. The LSC in block 118 decodes the location message transmitted by the mobile unit IBS modem. The remote tracking system then conducts the closed loop tracking scheme with the mobile unit. In the closed loop tracking scheme, the remote tracking system may request additional location history data from the mobile unit. The mobile unit stores prior location data and sends that location history when requested to the tracking system. The mobile unit then unmutes the transmit path in block 116. The location data is sent to a map engine (shown as processor 76 in FIG. 3) in block 120 for tracking the mobile unit. The map engine gets and displays a fix for the mobile unit. The map fix is displayed to the call taker at the remote tracking system in block 122. Based on this mobile unit fix, the call taker provides assistance data to the mobile unit user over the unmuted transmit channel. The user accepts the assistance in block 124 by listening to the call takers information and then terminates the call with the tracking system. The call connection is broken in block 126. The LSC detects the call termination and hangs up in block 128. The call taker then hangs up in block 130. FIG. 5 shows the flow for a call where the current GPS position is not currently maintained in the mobile unit. This is alternatively referred to as a "cold start" where the GPS processor requires aid before a position is acquired from the GPS satellite(s). The same operations 100, 104, 106, 108, 110, and 112 are performed to establish communications between the tracking system and the mobile unit. In block 132, the mobile unit requests GPS assistance data from the tracking system. In block 134 the LSC determines the GPS assistance data and time synchronization data necessary for the mobile unit to get a fix on the GPS satellite. The LSC sends the necessary GPS data to the mobile unit and the mobile unit gets a fix from the GPS satellite in block 135. The GPS location data is transmitted to the LSC in block 136. The LSC then decodes the transmitted GPS data and conducts closed loop tracking. When the LSC has all the location information required from the mobile unit, the mobile unit unmutes the audio transmit path in block 137. The LSC sends the location data to the map engine in block 138 where the location data is used to obtain the best track of the mobile unit. The best track is displayed to the call taker in block 138. The call taker in block 140 uses the displayed information to assist the mobile unit user in block 140. The call is then terminated in blocks 142, 144, 146 and 148. FIG. 6 shows the message flow for history requests originated either manually by the call taker or automatically by the tracking system 40. The call taker requests either "stop" history or "maneuver" history from the mobile unit in block 150. The LSC requests the history data from the mobile unit in block 152. The mobile unit then sends the requested location history from memory to the tracking system in block 154. The LSC in block 156 decodes the location history data and performs closed loop tracking in block 156. The location data from the closed loop tracking is sent to the map engine. At the same time, the mobile unit unmutes the audio transmit path in block 160. The map identifying the mobile unit location is displayed to the call taker in block 158. The call taker provides assistance to the mobile unit user based on the map location in block 162. The user receives the assistance and terminates the call in blocks 164, 166, 168, and 170. FIG. 7 is a block diagram showing how the mobile unit 14 preprocesses the GPS data and responds to closed loop tracker requests. In block 200 the mobile unit receives standard digital data strings containing GPS measurement data from one or more GPS satellites. The GPS data strings are converted into a compressed binary format. In block 202 the GPS processor 30 in the mobile unit 14 (FIG. 2) responds to requests 205 from the tracking system 40 for location and history data. The GPS processor 30 (FIG. 2) retrieves the compressed binary data previously saved in historical arrays in memory 208. Block 204 filters bad GPS reports. Based on high, medium, low, and no speed maneuver models, the current GPS reports are filtered against past history to detect and eliminate bad GPS measurements. This is described in further detail in FIG. 8. Positional data for the mobile unit is saved in block 208. Mobile unit stop location history, and previous report history are saved for a specified period of time. The saved positional data is used to determine altitude changes during maneuvers, tracking of complex maneuvers, and location of stops within a previously specified period. In one example, the history period is around 24 hours. The following measurement data is saved in memory block 208. Maneuver history that includes the location of the mobile unit over some predetermined period of time. In one example, the maneuver history is saved for the last thirty seconds. Maneuver history includes full kinematic state for each location. Stop history includes every location where the mobile unit stopped over the last twenty four hours. Refresh data is where the mobile unit periodically and automatically wakes up and updates its current X and Y location. In block 206 the mobile unit location data is converted into packets and modulated for transmitting to the remote tracking system 40 as reports 203. The "In Band" signal modulation enables transmission of the GPS reports 203 over a digital voice channel of the cellular telephone network. The GPS data can be sent using varying frequencies, referred to as Frequency Agile Keying (FAK), to represent different bit representations. These frequencies "fool" digital vocoders into allowing the data to pass as voice. Higher bit rates can be achieved because the data represents multiple bits, rather than the standard 1/0 combinations sent over schemes such as Frequency Shift Keying (FSK). These In-band modulation techniques are described in copending U.S. patent application entitled: IMPROVED IN-BAND SIGNALING FOR DATA COMMUNICATIONS OVER DIGITAL WIRELESS TELECOMMUNICATIONS NETWORKS, Ser. No. 09/531,367 filed March 21, 2000 which is herein incorporated by reference. Using this transmission scheme, block 206 responds to location and history requests 205 and performs time synchronization operations with the remote tracking system 40. FIG. 8 describes in further detail how bad mobile unit GPS measurements are filtered in block 204 of FIG. 7. Based on high/medium/low/no speed maneuver models, the mobile unit filters current reports against past measurement history to detect and eliminate bad GPS location measurements. It should be understood that the filtering described below can alternatively be performed in the tracking system instead of in the mobile unit. Kinematic states of the mobile unit are kept in mobile unit memory 208 of FIG. 7. A previous kinematic state of the mobile unit is identified in block 210. The kinematic state in one example is determined once every second. The kinematic state includes the current position, speed, acceleration, and jerk of the mobile unit. Jerk is the derivative of acceleration. The previous kinematic state is stored for the previous measured position of the mobile unit and a new or current kinematic state of the mobile unit that is determined based partly on the previous kinematic state of the mobile unit. The parameters such as acceleration and jerk are determined based on the position, speed, and acceleration of multiple previously kinematic states. Time filters are used to insure the two compared states are within a reasonable time period to perform such calculations. Block 218 compares the high, medium, low and no speed maneuver models to the actions of the mobile unit derived from the current and previous kinematic state. Maneuver models include a speed range, heading range, position range, acceleration range and jerk range. These ranges vary depending on the maneuver model. For example, a no speed maneuver model represents a mobile unit that is currently in a stopped state. The next direction of a stopped mobile unit could be in any direction. Thus, the heading range for a no speed maneuver model is selected at ±180 degrees. However, the speed range for the no speed maneuver model is relatively small since a stationary mobile unit can only vary speed a limited amount in a one second measurement period. A high speed maneuver model, on the other hand, has a relatively smaller heading range. This is because a high speed mobile unit can vary its heading only a limited amount in one second. For example, a high speed mobile unit, such as a car traveling at 60 MPH, would not be able to change directions 90 degrees in one second. However, the 60 MPH car can vary its speed in one second, either faster or slower, a substantially larger amount than a low speed person carrying a mobile unit. Thus, the high speed maneuver model may have a larger speed range than the low speed maneuver model. The action of the mobile unit is determined from the previous and current kinematic states for the maneuver models generated in block 214. The fast, medium, slow and stopped maneuver models are compared to the derived object actions in block 218. If the current measured kinematic state 216 is within the range for any one of the maneuvers models, the measurement is saved as a good measurement in block 222. If the current measured kinematic state is not within a predetermined threshold for any of the maneuver models, the current measurement is marked as bad in block 220. FIGS. 9 -11 show in more detail how the maneuver models are used to filter bad measurements. Block 230 shows the previous kinematic state Kl for the mobile unit measured at a time Tl. The previous kinematic state Kl includes the position, speed, acceleration, jerk, and heading at time Tl . The kinematic state may have more or less parameters depending upon the particular tracking scheme used to track the mobile unit. The GPS processor 30 is responsible for acquiring the GPS satellites to determine mobile unit location, computing speed, heading, acceleration, and jerk as a tracking preprocessing function. This function could be performed in the tracking system or mobile unit depending on processing needs. This choice would be made based on the desire to spread the processing load vs. the desire to reduce the remote unit cost. The GPS processor 30 in the mobile unit (FIG. 2) or alternatively, the tracking system 40 (FIG. 3), calculates the speed, acceleration, jerk, and heading based on the previous kinematic states. One example of a no speed maneuver model is shown in block 234. Ranges 235 are preselected in the no speed maneuver model 234 for position, speed, acceleration, jerk and heading parameters. For example, the position range in the no speed maneuver model 234 is between 0 - 5 feet from the previous measured position at time Tl . The speed range is 0-5 MPH from the previously measured speed in kinematic state Kl. A range is preselected for the heading. In this example, the heading range is anywhere from 0 - 360 degrees in the no speed maneuver model. Ranges are also predetermined for acceleration and j erk. Block 236 shows one example of the ranges for a low speed maneuver model. The position range for the low speed maneuver model is 0-20 feet. The speed is between 0 MPH and ±5 MPH. Notice that the heading range is only ±90 degrees and is less than the 360 degree range for the no speed maneuver model. That is because a slow moving mobile unit is not likely to change direction more than 90 degrees in one second. Similar maneuver models are used for the medium and high speed maneuver models. FIG. 10 shows one example of how the current measured position Ml of the mobile unit is compared to the predicted position PI of the mobile unit. Circle 238 represents the position range for the medium speed maneuver model from the predicted position PI. The circle 238 represents all the possible positions that the mobile unit would likely be located if traveling at a medium speed of say 10 - 40 MPH. The center of circle 240 represents the current measured position of the mobile unit. The diameter of circle 240 represents the estimated error associated with a GPS measurement. For example, the circle 240 may have a diameter of 100 feet. Any geometric test, such as a chi squared test, can be used to determine the amount of overlap area 242 between circle 238 and circle 240. Determining the intersection of two geometric shapes is known to those skilled in the art and is therefore not described in further detail. The area 242 is proportional to the position score given to the measured kinematic state Ml for the medium speed maneuver model. Dashed circle 244 represents the position range for a high speed maneuver model. Since the mobile unit has a higher speed for the high speed maneuver, the area of circle 244 is larger. The dotted area 246 combined with the shaded area 242 represents the position score of the current measured mobile unit position Ml for the high speed maneuver model. FIG. 11 shows a graphical representation of how a heading score is calculated for the maneuver models. Vector 250 represents the predicted heading of the mobile unit based on the previous kinematic state Kl . Vector 252 represents the current measured heading for the mobile unit at time T2. Dashed lines 254 represent the heading range for the low speed maneuver model. Dashed lines 256 represent the heading range for the medium speed maneuver model. The range of heading changes decrease as the speed of the mobile unit increases. For example, it is more difficult to turn 45 degrees at 40 MPH than at 10 MPH. Accordingly, the heading range 254 for the low speed maneuver model is larger than the heading range 256 for the medium speed maneuver model. It is first determined if the current heading 252 measured at time T2 is within the range of any of the maneuver models. In the example shown in FIG. 11, the measured heading 252 is not within the range 256 of the medium maneuver model. Therefore, the heading score for the medium speed maneuver model is zero. In this example, the current measured heading 252 is within the heading range of the low speed maneuver model. Therefore, an angle 258 between the predicted heading 250 and the measured heading 252 is determined. A heading score for the low speed maneuver model is proportional to the angle 258. FIG. 12 shows a similar vector analysis used for determining speed scores for the different maneuver models. Similar vector analysis is used to derive acceleration and jerk scores. A speed vector 251 represents the predicted current speed of the mobile unit at a current time T2. In one example, the predicted speed is the same as the calculated speed for the previous kinematic state Kl. Dashed lines 255 represent the speed range for the low speed maneuver model. Dashed lines 257 represents the speed range for the medium speed maneuver model. As described above, it is first determined if the current measured speed 253 of the mobile unit is within the range of any of the maneuver models. If not, the speed scores for the maneuver models are all set to zero. If the measured speed 253 is within the range of one or more of the maneuver models, then the measured speed 253 is compared to the predicted speed 251. In this example, the measured speed 253 is within the speed range 257 for the medium speed maneuver model. The difference between the predicted speed 251 and the measured speed 253 is used to derive a speed score for the medium speed maneuver model. Because the measured speed 253 is not within the range 255 for the low speed maneuver model, the speed score for the low speed maneuver model is set to zero. FIG. 13 shows how the scores for the different maneuver models are used to determine whether a measured mobile unit position is kept or discarded. Block 260 shows the scores 262 for the measured position of the mobile unit in relation to the low speed maneuver model. The scores 262 are derived for each parameter for each no, low, medium and high speed maneuver model as described above in FIGS. 9-12. In one example, each score is normalized to be within a range of between zero and one. Weights 264 can be applied to the individual scores 262. The weights 264 allow priority to be assigned to particular parameters that may provide better information regarding the accuracy of the current mobile unit measurement. For example, in one experiment it was found that the position score provided more information regarding the accuracy of the mobile unit measurement than other parameters. Accordingly, weight #1 in block 260 applied to the position parameter was increased more than the other weights 264. The weights 264 are applied to the scores 262 to obtain an overall score 266 for the low speed maneuver model scores 260. A graph 268 shows example scores for each of the maneuver models. The highest score for the current measured position of the mobile unit is for the low speed maneuver model score 266. The low speed maneuver model score in this example has the value 25. If the highest maneuver model score is above a threshold value 270, then the current measurement value is saved by the GPS processor in block 222 in FIG. 8. If the highest maneuver model score is below the threshold value 270, the current measurement value for the mobile unit position is marked as bad and discarded. The threshold value 270 is predetermined from empirical data and can be varied depending system tracking performance. If a measured position has passed the coarse filtering described above, then that measurement value is saved and eventually sent to the tracking system 40 as the new kinematic state of the mobile unit. It is important to note that the actual raw measured position data obtained from the GPS processor is sent to the tracking system. The tracking system then does further prediction processing. This prevents the mobile unit from making assumptions on position without the benefit of the other map, history and other sensor parameters that are made available to the tracking system. Tracking System Processing FIG. 14 shows how the tracking system 40 uses the location data from the mobile unit to generate a best track. In block 280 current GPS location data and past location history data are requested from the mobile unit by the tracking system. The data received from the mobile unit is converted into a common representation and coordinate frame. The common representation is the kinematic state consisting of latitude, longitude (position), altitude, heading, speed, acceleration and jerk. In one example, World Geodetic System (WGS-84) coordinates are used. WGS 84 is an earth fixed global reference frame, including an earth model. Several different reports can be requested from the mobile unit. A first request simply gets the current measured position of the mobile unit. Another request gets history reports. There are at least three different types of history reports. A stop history report identifies all locations where the mobile unit stopped over some previous time period, such as 24 hours. Maneuver history identifies all the positions of the mobile unit for some previous period of time, such as the last 30 seconds. A periodic history report identifies periodic position measurements of the mobile unit taken, for example, once every 30 minutes. Block 282 determines which maneuver model best represents the current kinematic state of the mobile unit. The previous kinematic state Kl at time Tl is compared with the current position of the mobile unit at time T2. By comparing the previous kinematic state to the current position, the tracking system determines a predicted kinematic state at time T2. Block 282 selects the maneuver model that provides the best match with the current kinematic state of the mobile unit. One way of identifying the best maneuver model is by identifying the maneuver model that provides the best score as described in FIGS. 7-13. The maneuver model identifies the mobile unit as being either at a high, medium, slow or no speed. Block 284 determines road and intersection candidates for the current location of the mobile unit. Block 286 generates and updates virtual tracks. Block 288 fuses the virtual tracks to associated roads. Tangential and projection methods are used to mathematically determine latitude and longitude positions for the mobile units current measured kinematic state. Road and intersection candidates identified in block 284 are filtered using geodetic distance. The geodetic distanced used in filtering is based on GPS error. Block 290 uses a Basian method for scoring candidate virtual tracks. Speed, history, distance and heading are the scores used in the Basian scoring method. The result is a computed confidence. These confidences are summed and normalized over time. The best track that rises above a signal to noise ratio over all other virtual tracks is identified. Block 292 selects the best virtual track. The computed confidences of each track are compared. A signal to noise threshold is established (report floor). The signal to noise threshold is variable and can be varied to accommodate maps with geo- reference errors. This allows the tracking system to work on unimproved and slightly geo-corrected map databases. On highly accurate maps, the signal to noise threshold can be placed higher, speeding up the track computation and eliminating unnecessary virtual tracks. The best track is then selected based on speed, heading, maneuver model, distance to road, and previous maneuver conditions. Block 294 updates a track file. A composite track file is built based on the best virtual tracks that pass the noise threshold. In the case where no virtual tracks exist over the signal to noise threshold, the raw position report is used. A covariance is computed for the estimate of error between the target and the projected position of the mobile unit. The confidence values are used by a display engine to show track age-out. The identified best virtual tracks are saved in a composite track file to keep as a multiple hypothesis history of possible track candidates. This history can be used over time to correct miscorrelations and improve track accuracy. Once the best virtual track has been selected, block 296 determines the geo-coded address for the best virtual track. This is accomplished by extracting from an address map database the closest geodetic address point to the best virtual track. Block 298 periodically computes virtual track confidence by computing covariance. When covariance exceeds a reasonableness threshold or the virtual track is aged out over time, the virtual track is deleted and the last known position in the history file is saved. Confidence information is provided in a track file for real-time display of confidence decay. Block 300 provides the track history records to the call taker and includes stopped location points, position, speed, and heading for each best virtual track. This data is used in predictive tracking for future reports. Block 302 outputs the track report to a display. Updates are periodically provided to the track file. The updates include position, speed, heading, altitude, latitude/longitude, confidence and geo-coded address. Virtual Track Generation FIG. 15 shows in further detail how the road and intersection candidates are identified in block 284 of FIG. 14. Intersections and roads for particular regions 304 are sorted into a spatial array based on latitude and longitude. The mobile unit requests position from the tracking system from a current measured location 306. A spatial array of all intersections 308, 310, 312, 314, and 316 within a given distance 318 of location 306 are used as intersection candidates. Intersections 320, 322 and 324 are discarded because they are outside of filter 326. In a similar manner, roads 328, 330, 332, 334, and 336 are used as road candidates because they are within filter 326. Road 338 is discarded because it is outside of filter 326. FIG. 16 shows the how the bins used for spatial array 304 dynamically vary over time according to the current measured position 306 of the mobile unit. The spatial array 304 is separated into multiple bins 340A-340I. Each bin 340 in one example represents 1/10 of one degree in both longitude and latitude. The center bin 340E is the bin that contains the current measured position 306 of the mobile unit. The intersection and road candidates for the center bin 340E and each bin that surrounds bin 340E that come within filter 326 are used for tracking the mobile unit. The intersection and road candidates are sorted according to their respective bins. Whenever the current measured mobile unit location 306 moves to a different bin, the road and intersection candidates from the center bin and the surrounding bins are used to identify new road and intersection candidates. Existing road and intersection candidates that are dropped no longer make up part of the nine bin spatial array for the current mobile unit location. This prevents the location 306 from reaching the edge of a spatial array and having a restricted number of road and intersection candidates. For example, the mobile unit may move from position 306 in bin 340E to a new position 342 in bin 3401. The tracking system keeps the road and intersection candidates from bins 340E, 340F, 340H and 3401 that are still within new filter area 344. The road and intersection candidates for bins 340A, 340B, 340C, 340D, and 340G are discarded and new road and intersection candidates are added from bins 340J, 340K, 340L, 340M, and 340N that come within filter area 344. By always centering the spatial array around the current measured position, not only is the tracking system prevented from reaching the edge of the spatial array, but the road and intersection candidates can be identified quickly. This also allows for dynamic update of the spatial array reducing the need to have all points in memory at the same time. This provides 1 better database management of datasets representing a region. Updating and Propagating Virtual Tracks FIGS. 17-19 show in further detail how the tracking system generates and updates virtual tracks in block 286 of FIG. 14 and fuse the candidates to roads and intersections in block 288 of FIG. 14. The last measured kinematic state of the mobile unit 306 is used to generate new virtual tracks 350 for the identified intersection and road candidates. Each virtual track 350 has its own kinematic state that is based on the last measured kinematic state of the mobile unit, the selected maneuver model, latitude, longitude, heading, altitude, time, road identification, road type, road class and any other parameters associated with the road or intersection candidate. Road class identifies the road as a high speed road or low speed road, railroad tracks, etc. The virtual tracks are predictions of different locations of where the tracking system believes the mobile unit could be located. For example, a virtual track 350A is located at the closest tangential distance from mobile unit measurement location 306 to road candidate 328. The heading of virtual track 350A is selected as the direction of road 328 at the point 351 on road 328 closest to location 306. For example, the road 328 may be running in a general north-south direction at 8 degrees from north in a northerly first direction and 188 degrees off north for traffic traveling in the opposite direction. The heading of the mobile unit at location 306 may have a heading 10 degrees from north. The location of virtual track 350A on road 328 is selected at point 351 at the heading of 8 degrees. When there is no clear road direction that matches the heading of the current kinematic state, virtual vectors 350 may be selected in both directions on the road or in every direction coming out of an intersection. FIG. 18 shows how multiple virtual tracks are generated for the same road candidate. Road candidate 330 can be broken up into segments 352, 354, and 356. The closest tangential distance 355 is calculated from the mobile unit position 306 to segment 354 of road 330. Virtual track 350B is generated for segment 354. Other segments 352 and 356 of road 330 are also identified as candidates. Distances from road sections 352, and 356 are projected to location 306. Virtual tracks 350D, and 350E are generated for road sections 352, and 356, respectfully. FIG. 19 shows how the virtual tracks 350 are propagated along the road candidates to correspond to the current measured kinematic state of the mobile unit. The virtual tracks 350 are propagated according to the maneuver model selected for the current mobile unit kinematic state. For example, vector 350F represents the kinematic state for one virtual track on road 328 at a location 360 that corresponds with the previous measured kinematic state of the mobile unit at location 306 at time Tl. At a second measurement time T2 of the mobile unit, the virtual track 350F is propagated to a new location and kinematic state 362. The new kinematic state for the virtual track 350F at time T2 is changed according to the selected maneuver model. For example, a medium speed maneuver model might have been selected for the mobile unit. The medium speed maneuver model may have an associated speed of 30 MPH. If the virtual track is updated once every second, the propagated virtual track 350F at time T2 is moved to a position 48.5 feet further along road 328. FIG. 20 shows how virtual tracks 350 are constantly generated and updated. The mobile unit is measured at a new location 364 at time T4. As the mobile unit moves to this new location, new road and intersection candidates are identified in the spatial array by the tracking system. New virtual tracks 350K, 350L, 350M, 350N and 35 OR are generated for the new road and intersection candidates that come within filter area 326. The virtual tracks 350G, 350H, 3501, and 350J no longer come within the range 326 of filter 326 and are therefore, deleted. Similarly, virtual tracks may be aged out if they fail to provide a minimal score for a selected period of time. Virtual tracks continue tracking the mobile unit even when the mobile unit fails to produce measurement positions for short periods of time. For example, the mobile unit may be traveling in a tunnel and unable to obtain or send any GPS coordinates for several seconds. The virtual tracks that were generated prior to the mobile unit entering the tunnel, are propagated through the tunnel and can be picked up again and validated after the mobile unit exits the tunnel. Thus, the tracking system can virtually track the mobile unit even when no measurement positions are being transmitted. Virtual Track Scoring The virtual track producing the highest score is reported as the best track to the tracking system call taker. FIGS. 21 - 24 below describe how virtual tracks are scored and how the best virtual track is selected. Distance FIG. 21 shows how distance scores are calculated for the virtual tracks 350. Distances are determined from the virtual tracks 350 to the current measured position 306. The distances are calculated based on two or more possible cases. In the first case, the distance measurements are the tangential distance from the road such as road distance 362. The second case is where the tangential line to the road is outside the physical intersections, which is known as the mapping case. The mapping case was described earlier in FIG. 18. Line 367 represents the distance from the virtual track 350B location (latitude and longitude) to measured location 306. Line 363 represents the distance from virtual track 350G on road 336 to measured location 306, line 365 represents the distance from virtual track 350D on road 332 to location 306, and line 369 represents the distance from virtual track 350F on road 328 to location 306. The distances 371 are stored in table 370. The same or different weighting factors 372 may be applied to the distances. For example, virtual tracks may get a higher weighting if they are associated with the same road as the last best selected track. In another example, a virtual track may have an associated road classification such as a low speed road or a foot path. However, the current measured kinematic state of the mobile unit at location 306 may indicate the mobile unit is traveling on a high speed road. Accordingly, a weighting may be applied to that virtual track to worsen its score. The table 370 produces a list of distance scores 374. The worst distance score would be at the maximum filter distance 318 (FIG. 15). The best distance score would be at a zero distance where the measured mobile unit location is directly on top of a road associated with that virtual track. Virtual track 35 OB has the best distance in table 370 at 10 feet and virtual track 350G has the worst distance at 50 feet. The scores 374 are then weighted as described above. Heading FIG. 22 shows how heading scores are determined for the headings associated with the virtual tracks 350. The heading for the current measured kinematic state of the mobile unit at location 306 is compared with the actual road headings for the virtual tracks 350. The differences are used to determine heading scores. The worst heading score would be 90 degrees from the mobile unit heading and the best heading score would be at zero or 180 degrees from the mobile unit heading. If one of the roads is a one-way, then the heading score is calculated according to the one-way direction of the road and how close the mobile unit is to that direction. Table 376 shows sample heading scores. Virtual tracks 350B and 350D have headings on road 332 of 90 degrees from north. The mobile unit has a measured heading of 60 degrees from north. Therefore, virtual tracks 350B and 350D have heading differences of 30 degrees from the mobile unit. Virtual track 350F has a heading of 2 degrees from north and therefore has a heading difference of 58 from the measured heading of the mobile unit. The same or different weights can also be applied to the heading scores. In this example, the heading scores for all of the virtual tracks are given the same weight of 5. Previous Heading (History) Scores are also calculated for previous headings by taking the heading from a last update and comparing it to the current heading of the mobile unit. Each virtual track is given a score. This function helps offset closeness problems introduced by the "nearest neighbor" distance scoring. Any additional previous kinematic state parameters may also be included in the weighting. Speed FIG. 23 shows how speed scores are calculated for the different virtual tracks 350. The speed scores are calculated by taking the speed rating of the virtual track's associated road and comparing it to the calculated speed of the mobile unit 306 for its current kinematic state. Each virtual track is given a score based on the difference in the current measured speed vs. the rated speed and classification of the virtual track road. Table 378 shows sample speed scores for the virtual tracks 350. The mobile unit is calculated to have a speed of 35 MPH for its current kinematic state at time Tl. Virtual track 350B is associated with road 332. Road 332 at location 377 has a rating of 30 MPH. The speed difference between mobile unit 306 and virtual track 350B is 5 MPH. A weight of two is applied to all of the speed scores in table 378. Virtual track 350B has a final speed score often. Speed scores are calculated for all of the other candidate virtual tracks 350. Virtual tracks 350B, 350D and 350F have the best speed scores because their associated roads have the closest speed ratings to the measured speed (35 MPH) of the mobile unit. Virtual track 350G has the worst speed score because its associated road 336 is rated at 70 MPH. FIGS. 24 and 25 explain in further detail how the different scores are added together for each virtual track to determine a best virtual track for the mobile unit in block 292 of FIG. 14. In table 380, the lowest overall score represents the best virtual track. However, a variety of different scoring techniques can be used to assign the best score to the closest distance, heading or speed virtual track. Other scoring parameters may also be utilized in table 380. For example, scores can be added for speed, acceleration, and j erk. The distance, heading, speed and history scores for each candidate virtual track 350 are added together to calculate at total score for each virtual track in block 382. An additional weighting may be applied to the virtual tracks. A threshold value of 200 is used in the example in FIG. 24. If there are one or more virtual tracks having a score better than the threshold value in decision block 386, the best virtual track with the best score is selected as the best virtual track in block 384. In the example in FIG. 24, the best score is the lowest score. The virtual track having the lowest score below the threshold value of 200 is virtual track 350B. Therefore, virtual track 350B is selected as the best virtual track in block 384. If none of the virtual track scores are better than the threshold value 200 in decision block 386, then the tracking system may request additional measurement history, if available, in block 388. Additional virtual tracks are then generated and new virtual track scores calculated from the history reports in block 390. If one or more of the new virtual track scores are better than the threshold value 200 in decision block 392, the virtual track with the best score is selected as the best virtual track in block 394. If there still is no virtual track score that is better than the threshold value, then the current measured kinematic state of the mobile unit is used as the best track in block 396. The best virtual tracks used for displaying to the call taker change over time. The different virtual tracks selected as the best virtual track are used to update a track file in block 294 of FIG. 14. Only the best virtual track for the measured time reference is output to the call taker. The other virtual tracks are kept and propagated in the tracking system but are not displayed to the call taker. If another virtual track provides a better score for the next measurement time, then that virtual track is sent to the call taker for the next measurement time. This is what makes the system an adaptive multiple hypothesis tracker. Confidence values can be generated for the selected best virtual tracks. The confidence score is proportional to the score of the selected best virtual. For example, in FIG. 24 the confidence score for selected best virtual track 350B is proportional to the score 180. Old virtual tracks are removed from the tracking system database when they fail to provide scores better than the threshold value for some predetermined amount of time. Generate Geo-Coded Addresses FIG. 26 shows how street addresses are identified according to the selected best virtual track. In this example, the virtual track 35 OB is selected as the best virtual track. The virtual track 350B for the current measured time is located at point 399. Virtual tracks, as opposed to the actual measured kinematic state of the mobile unit, are used to identify street addresses since the virtual tracks are associated with known street longitude and latitude positions. Points 401, 403, 405, 407 and 409 represent geocoded addresses (street addresses) that have been previously stored in a map database in the tracking system. Each address 401, 403, 405, 407 and 409 has an associated longitude and latitude. The latitude and longitude of the best virtual track 350B is compared each the longitude and latitude values for the street addresses 401, 403, 405, 407 and 409 within the filter area. The filter area is defined by standard GPS error. The street address with the closest distance to location 300 is selected as the street address. For example, address 409 is identified as the closest distance to the position of virtual track 450B. The street address associated with point 409 is 111 S.W. Morrison Street, Portland, Or. 97205. The address is then output to the call taker for relaying to the mobile unit user, or other emergency/service units. Other parameters may be used to help identify the best address. For example, the mobile unit measured location may be identified on one particular side of road 332. A street address on the same identified side of road 332 may be given priority over addresses located on the opposite side of road 332. The street address may also be selected according to the heading of the selected best virtual track. For example, the best virtual track may have a heading directed east on road 332. Addresses on the south side of road 332 may then be given priority over addresses on the north side of road 332. In a similar manner, if the virtual track heading is west on road 332, then addresses on the north side of road 332 may get preference over addresses on the south side of road 332. The best virtual tracks and the associated street address are then output to the call taker. The call taker then relays the information either by speaking or digitally to the user of the mobile unit. It will be obvious to those having skill in the art that many changes may be made to the details of the above-described embodiments of this invention without departing from the underlying principles thereof. The scope of the present invention should, therefore, be determined only by the following claims.

Claims: Claims 1. A system for tracking a device, comprising: a mobile unit that obtains location data and transfers thelocation data over an audio channel of a communications network, the mobile unit also using the audio channel to transmit voice signals; and a tracking system that receives the location data and the voice signals over the audio channel, the tracking system using the location data to identify a map location for the location data and then relaying the map location back to the mobile unit over the audio channel either as digital data or as voice signals. 2. A system according to claim 1 wherein the tracking system requests location history from the mobile unit and calculates the map location based on the location data history received back from the mobile unit. 3. A system according to claim 1 wherein the tracking system generates intersection and road candidates according to the received location data, identifies virtual tracks on the intersection and road candidates, and selects one of the virtual tracks that best matches the measured location data as a best virtual track. 4. A system according to claim 3 wherein the tracking system identifies a maneuver model that best represents the actions of the mobile unit and then propagates the virtual tracks along the intersection and road candidates according to the maneuver model. 5. A system according to claim 1 wherein the measured location data is filtered either by the mobile unit or by the tracking system according to predetermined maneuver models for the mobile unit. 6. A system according to claim 5 wherein the maneuver models include no, low, medium and high speed maneuver models. 7. A system according to claim 5 wherein the measured location is filtered according to how well the measured location comes within distance, speed, and heading ranges identified in the maneuver models. 8. A system according to claim 7 wherein the measured locations not coming within the ranges are filtered in the mobile unit before being sent to the tracking system. 9. A system according to claim 1 wherein the mobile unit periodically obtains the location data from GPS satellites and then stores the location data as location history, the mobile unit then transmitting the location history over the audio channel when requested by the tracking system. 10. A system according to claim 1 wherein the mobile unit includes an inband signaling modem and a voice codec, the inband signaling modem converting the location data into audio tones that are encoded into audio data by a voice codec for transmitting over the audio channel. 11. A system according to claim 10 wherein the tracking system includes an inband signal modem that converts the encoded audio data back into digital location data. 12. A system according to claim 1 wherein the mobile unit includes a wireless or wired connection to the tracking system for transmitting the location data. 13. A system according to claim 13 wherein a location of a best selected virtual track is used to identify an address for the location data. 14. A system according to claim 1 wherein the tracking system adapts location data for accurate display on uncorrected maps. 15. A system according to claim 1 wherein reduced accuracy location data is improved for accurate display on a corrected map.

Inventors: LUTTER PIERCE, OLSON TRACEY, PRESTON DAN A, PRESTON JOE, LUTTER, PIERCE, OLSON, TRACEY, PRESTON, DAN, A., PRESTON, JOE
Applicants: INTEGRATED DATA COMMUNICATIONS, LUTTER PIERCE, OLSON TRACEY, PRESTON DAN A, PRESTON JOE, INTEGRATED DATA COMMUNICATIONS, INC., LUTTER, PIERCE, OLSON, TRACEY, PRESTON, DAN, A., PRESTON, JOE
Application year: 2000
Main classification: G08G1
IPC codes: G08G1, H04Q7