Embodiments and other aspects of subject matter of the present disclosure will be best understood with reference to a detailed description of specific embodiments, which follows, when read in conjunction with the accompanying drawings, in which:
While the subject matter of the present disclosure is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. The figures and written description are not intended to limit the scope of the inventive concepts in any manner. Rather, the figures and written description are provided to illustrate the inventive concepts to a person skilled in the art by reference to particular embodiments, as required by 35 U.S.C. § 112.
A vehicle position history apparatus and method are disclosed. In one embodiment, the vehicle position history apparatus has at least one device configured to obtain vehicle positions of a vehicle. The at least one device can include one or more of a GPS device, a wireless communication device, and a dead-reckoning device. The apparatus also has a database configured to store a history of position points of the vehicle. The position points have confidence levels. The apparatus can also include a wireless communication device operatively coupled to the controller and configured to transmit the position points stored in the database.
A controller is operatively coupled to the at least one device and the database. When a new position point of the vehicle is obtained, the controller assigns a confidence level to the new position point based on how the new position point of the vehicle is obtained. For example, the new position point is assigned with a high confidence level if it has been obtained using a GPS. In another example, the new position point is assigned with a low confidence level if it has been obtained using dead reckoning only.
Once the confidence level is assigned, the new position point is stored in the database. The database, however, may have a limited number of entries for storing position points for the vehicle. If the database has a free entry, then the controller stores the new position point in the available entry. If the database does not have a free entry, then the controller determines which position point in the database to replace with the new position point. For example, the controller can determine which unprotected position point in the database is the oldest entry. In addition, the controller can determine whether the new position point has a higher confidence level than any of the existing position points in the database.
Based on the determination, the controller replaces the determined position point with the new position point. The controller may then compare the confidence levels of the position points in the database and determine which of those position points to protect. Consequently, one or more entries of the position data stored in the database that have confidence levels greater than the confidence levels of the other entries of the position data stored in the database can be at least temporarily protected from being replaced by new position points.
The foregoing description is not intended to summarize each potential embodiment or every aspect of the present disclosure. Let us now turn to the drawings to discuss the position history apparatus and method of the present disclosure in more detail.
The dead-reckoning device 120 is connected to one or more sensors 122 that are in turn connected to one or more vehicle components 124. The dead-reckoning device 120 and sensors 122 can include any suitable devices and components known and used in vehicles for dead reckoning. During operation, the sensors 122 monitor the vehicle components 124 and relay sensed information to the dead-reckoning device 120. In turn, the dead-reckoning device 120 processes the sensed information to determine a plurality of vehicle positions (i.e., position points of the vehicle 102) over time as the vehicle 102 travels.
For example, one of the sensors 122 can be the vehicle's odometer for monitoring the distance traveled and the speed of the vehicle 120. In another example, one of the sensors 122 can be a compass, dual-gimbaled gyroscope, or the like for monitoring direction or orientation of the vehicle 102. In one implementation, the dead-reckoning device 120 can determine a new position point of the vehicle for each 100-m of travel and/or for more than 5-degrees of direction change made by the vehicle 102.
The GPS device 130 has a GPS receiver connected to an antenna 132. As the vehicle 102 travels, the GPS device 130 can periodically obtain GPS position information for the vehicle using GPS satellites 30. The GPS position information can include elevation, longitude, latitude, and time values, and the GPS device 130 can use various techniques known and used in the art for improving accuracy of the GPS information.
Using techniques know in the art, the controller 110 uses the GPS information to determine the vehicle position (i.e., position points of the vehicle 102) and to adjust, compensate, or correct the position points determined by the dead-reckoning device 120. As the vehicle 102 travels, the controller 110 stores the position points determined over time in the position history database 150. Due to memory limitations, however, it is likely that only a limited or fixed number of position point entries can be stored in the position history database 150. In one implementation, for example, the position history database 150 may maintain a history of only about twenty position points. As the vehicle travels, older position points must be deleted from the position history database 150 as newer position points are added so as not to exceed the storage limitation.
At some point during operation, the vehicle 102 may be instructed to transmit its current position points in the database 150 to a remote service provider 10. For example, the remote service provider 10 may provide Telematics, navigation, tracking, or other services for the vehicle 102. When instructed, the controller 110 accesses the current position points stored in the position history database 150 and transmits them to the service provider 10 using the wireless communication device 140, wireless antenna 142, and wireless network 40. Any suitable wireless technology could be used, such as for example, cellular technology. Again, it is noted that limitations associated with memory and wireless transmission may only allow for a limited number of position points of the position history to be transmitted to the remote service provider 10 at a given time. The remove service provider 10 uses the transmitted position history to provide any of a number of services, such as Telematics, navigation, and tracking.
As the position history apparatus 100 travels with the vehicle 102, it adds position points to the position history database 150. As long as the apparatus 100 can determine its position using a high accuracy source (e.g. the GPS device 130), then the position points can be deemed as highly reliable. Road conditions or gaps in wireless or satellite coverage, however, can prevent the apparatus 100 from receiving the radio signals used to determine position points of the vehicle 102. For example, the vehicle 102 may travel along a path having obstructed coverage, such as, for example, through a long tunnel. As the vehicle 102 travels, the position points can begin to collect significant errors caused by the use of a less accurate positioning system such as, for example, dead reckoning.
Referring to
If a call is made for the apparatus 100 to transmit the vehicle's position history to the remote service provider 10, the apparatus 100 transmits a finite list of the points (e.g., points H-1, H-2, H-3, and H-4), as exemplified in the position history data set 160 in the chart of
To overcome the limitations where only dead-reckoning techniques are used for an extended period of time, the position history apparatus 100 uses a corrective technique for extending which position points will be available in the position history database 160 for eventual transmission to the service provider 10 should it be necessary.
In
In contrast to the previously described data set 160 of
As new position points being added to the data set 160′ replace existing position points 162 in the data set 160′, the protected position point 162 (e.g., H-N) is at least temporarily protected from being replaced in the data set 160′. In this way, the data set 160′ maintains at least one older, more reliable position point 162 as the vehicle 102 travels in the event the position points 162 are to be transmitted to the service provider 10. In the present scenario of the tunnel 50, this protected position point 162 (e.g., H-N) would ensure that at least one position point 162 to be transmitted to the service provider 10 occurs at or near the mouth of the tunnel 50. Ostensibly, this protected position point 162 (e.g., H-N) would have more accurate latitude, longitude, and elevation based on GPS.
The data set 160′ can also be further extended by determining a confidence level 166 for each of the stored position points 162. The confidence level 166 is determined from what type or types of techniques were used to calculate or determine the position points 162. The data set 160′ may also include an indication 168 of the type or types of techniques were used to obtain the position point 162. For example, the types of techniques to obtain position points can include dead reckoning alone (based on one or more of distance traveled, speed, direction change, etc.), two-dimensional (2-D) GPS (i.e., longitude and latitude), three-dimensional (3-D) GPS (i.e., longitude, latitude, and elevation), and a combination of these. The confidence level 166 for a particular position point 162 can be either higher or lower based on the reliability of the type of technique that was used to obtain the position point 162. In addition, the confidence level 166 for a particular position point 162 may be adjusted higher or lower based on its proximity to a more reliably obtained position point 162. For example, a first position point 162 obtained with dead reckoning only and directly following a position point obtained using GPS would have less potential for errors and would have a higher confidence level 166 than the several subsequent position points 162 obtained later with only dead-reckoning techniques.
When the position points 162 of the extended data set 160′ are transmitted to the service provider 10, the direction of the vehicle 102 can generally be determined from the unprotected position points 162 (e.g., H-1, H-2, and H-3). The protected position point 162 (e.g., H-N) can be used to correct or counter at least some of the intrinsic errors contained in the other position points 162 (e.g., H-1, H-2, and H-3) transmitted to the service provider 10. For example, the protected position point 162 (e.g. H-N) when compared to mapping information of the region could be used determine that the apparatus 100 is still situated within the tunnel 50. The service provider 10 can use the confidence level 166 and/or the types 168 of techniques used to analyze the transmitted position points 162 and position information 164.
With an understanding from the above examples of how the position history apparatus 100 maintains certain preferred position points of the vehicle in the position history that can be transmitted to the service provider 10, we now turn to a flowchart in
In the process 200, the controller 110 of the position history apparatus 100 monitors the dead-reckoning device 120 and the GPS device 130 used to determine position of the apparatus 100 as the vehicle 102 travels (Block 202). Next, the controller 110 determines whether to add a new vehicle position point to the position history database 150 (Block 204). The controller 100 may determine whether to add a new position point based on how far the vehicle 102 has traveled or has changed direction. If a new position is not to be added, then the controller 110 returns to Block 202 to monitor the position devices 120 and 130.
If a new position point is to be added, then the controller 110 obtains the new position point using one or more of the devices 120 and 130 (Block 206). The controller 100 then gives the new position point a confidence level based on how it was obtained (Block 208). If the new position point is obtained through dead reckoning alone, for example, then the new position point is given a lower confidence level than a position point that was obtained using 3-D GPS.
Once the confidence level has been determined, the controller 110 determines whether there is a free entry in the database 150 (Block 210). For example, the vehicle 102 may have just started traveling, and the database 150 may not have reached its limit of position history entries that it can store. Alternatively, the storage limit on the number of entries for the database 150 can change during operation due to any of a number of reasons, such as unrelated information being deleted from storage. If a free entry is available, then the new position point is added to the database 150 (Block 211), and operation returns to monitoring the devices 120 and 130 for new position points as the vehicle travels (Block 202).
If a free entry is not available in the database 150 (e.g., because the storage limit has been met), then the controller 110 determines which position point in the database to replace with the new position point (Block 212). Depending on what information is compared or analyzed to make this determination, there are a number of options available to determine which of the existing position points stored in the database 150 should be replaced by the new position point. In general, older position points are preferably deleted when new position points are added as the apparatus 100 travels with the vehicle 102. However, one desire is to protect one or more position points in the database 150 no matter how old they become if less reliable position points are being added. The position points that are flagged as protected are those with higher confidence levels. Consequently, these protected position points are preferably not deleted from the database 150 as long as new, less reliable position points are obtained by the apparatus 100 as it travels.
In one option for determining which position point to replace, the confidence level of the new position point can be compared to the confidence levels of those position points already stored in the database 150. In this option, the controller 110 compares the confidence level of the new position point to the confidence levels of the existing position points in the position history database 150 before adding the new position point. Preferably, the comparison is made to the unprotected position points in the database 150. From the comparison of the confidence levels, the controller 110 determines whether the new position point has a confidence level that is greater than or equal to at least one of the currently unprotected position points in the database 150 (Block 213). If so, then the new position point can be added to the database 150 to replace the unprotected position point with the lowest confidence level (Block 216)
In another option for determining which position point to replace, the controller 110 can determine which of the unprotected position points in the database 150 is the oldest entry (Block 216). How old an entry is can be determined by the age of the entry (i.e., the amount of time from when the position point in the entry was obtained to the present). Alternatively, how old an entry is can be determined by how much distance the vehicle 102 has traveled since obtaining that position point. In addition, the position points can be given sequence numbers as they are obtained during travel so that a position point with the lowest number in the sequence would be the oldest of those in the database 150.
Even though the “oldest” position point may have been protected in past iterations, the fact that it is unprotected and is oldest of all the others makes it the least desirable position point to keep in the database 150. After the determination, the oldest, unprotected position point is deleted from the database 150 due to the storage limitations, and the new position point is added to the database 150 to replace it so that the database maintains its maximum number of entries (Block 216).
Yet another option for determining which position point to replace can involve a combination of the acts performed in Blocks 213 and 214. For example, after determining the oldest unprotected position point in the database 150, the controller 110 can compare the confidence level of the new position point to that of the oldest, unprotected position point. If the confidence level for the new position point is not found to be greater than or equal to that of the oldest, unprotected position point, then the controller 110 can determine whether the confidence level for the new position point is greater than or equal to that of any of the other unprotected position points in the database 150, and the controller 150 can replace that position point with the new position point.
Other options for determining which position point to replace are also possible. In one example, the confidence level of the new position point can be compared to the confidence levels of protected position points in the database 150 if desired. In comparing position points, the new position point can be compared within ranges of the confidence levels of the position points in the database 150. In addition, the new position point can be compared within ranges of age or distances traveled between the position points in the database 150.
After adding the new position point to the database 150, one or more of the position points in the database 150 with the highest confidence levels are then flagged as protected (Block 218). This may require a reassessment of the confidence levels of those current position points in the database 150. Thus, the position points that are protected or not protected may change after adding the new position point to the database 150. The number of position points that are flagged as protected depends on how many position points are stored in the database 150 and depends on how many position points are to be protected as preferred, reliable position points for tracking and other purposes.
Finally, the controller 110 determines whether to transmit the current position points in the database 150, for example, if the service provider 10 initiates a call to the apparatus 100 requesting the current position history of the vehicle 102 (Block 220). If requested, the position history apparatus 100 transmits the current position points in the database 150 to the provider 10 (Block 222), and the controller 110 returns to Block 202 to monitor the position determining devices 120 and 130.
The process described above as well as the other techniques disclosed herein can be implemented as program instruction stored on a programmable storage device. The program instructions can cause a programmable control device to perform the process described above as well as the other techniques disclosed herein.
The foregoing description of preferred and other embodiments is not intended to limit or restrict the scope or applicability of the inventive concepts conceived of by the Applicants. In exchange for disclosing the inventive concepts contained herein, the Applicants desire all patent rights afforded by the appended claims. Therefore, it is intended that the appended claims include all modifications and alterations to the full extent that they come within the scope of the following claims or the equivalents thereof.