WO2013147560A1 - Method for correcting position information - Google Patents
Method for correcting position information Download PDFInfo
- Publication number
- WO2013147560A1 WO2013147560A1 PCT/KR2013/002663 KR2013002663W WO2013147560A1 WO 2013147560 A1 WO2013147560 A1 WO 2013147560A1 KR 2013002663 W KR2013002663 W KR 2013002663W WO 2013147560 A1 WO2013147560 A1 WO 2013147560A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- speed
- time stamp
- error
- value
- tuple
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/40—Correcting position, velocity or attitude
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/52—Determining velocity
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/0205—Details
- G01S5/021—Calibration, monitoring or correction
Definitions
- the present invention relates to a method for determining whether there is an error in position data collected by a user device and a technique for correcting a position value in which an error exists.
- a method for solving this problem is to provide a method for real-time implementation so that it can be performed in a user device with limited computing ability.
- a method according to an aspect of the present invention for determining whether there is an error in position data measured by a user device is a statistical technique using mean, expectation, and standard deviation calculated for the measured speed. Can be used. Also, a technique using the measured value of acceleration can be used.
- the method according to an aspect of the present invention for correcting a position value determined to be an error may use a statistical technique based on a calculated difference with respect to the measured position value.
- 'measurement' may mean directly acquiring information about a position, a speed, and an acceleration from a user device that does not use the position data filtering method and the position data correction method according to the present invention.
- the measured values of the speed and acceleration of the user can be obtained from the movement position data having the format of ⁇ latitude, longitude, time> measured from the user equipment.
- the moving position data having a format of ⁇ latitude, longitude, time> may be referred to as a 'tuple' or 'location data tuple'.
- the present invention using the data selected by the moving window (or sliding window), it is possible to calculate the statistics of position and velocity and to update the calculated values repeatedly.
- the measured position data may be filtered using the controllable parameter. Since the algorithm according to the embodiment of the present invention is simple, the present invention can be applied to a mobile user equipment having a small computing power.
- the size of the moving window may be optimized to improve performance.
- a backtracking interpolation method can be used to replace the speed value and / or position value determined to be an error with an appropriate estimate.
- the mean value and standard deviation of the velocity at a certain time interval are known, for example, a significant interval following a normal distribution can be set and this interval can be set.
- the passing speed can be determined as an error value.
- the location information processing method processes information on a tuple including latitude, longitude, and time stamp collected from the location information collecting device.
- the current speed at the time stamp [i] (V i) is, the time stamp [i -1] in the case of an exchange included in the window that includes greater than a statistical value calculated from the speed, the time stamp [i
- a second step of replacing the information about the tuple [ i ] with an estimated value when it is determined that the error exists.
- the second step may be performed at a time stamp immediately after the time stamp on which the first step is performed.
- the statistical value may be a mobile confidence interval obtained from the past speeds.
- the mobile confidence interval may be a value obtained by adding an average value MA speed of the past speeds to a first value s ⁇ MSD speed that is proportional to the standard deviation of the past speeds.
- this processing method includes a speed [ i + 1] at timestamp [i + 1] including timestamp [ i ⁇ n + 1] to timestamp [ i ] before calculating the estimated value. Determining that an error exists in the speed [ i + 1] if it is greater than a second statistical value calculated from past speeds included in the window; And if it is determined that the velocity error in [i +1] is present, can be prior to the step of the estimated the speed comprising [i +1] replace previously in the second statistics more.
- the second statistical value may be MA speed + s 99.5 ⁇ MSD speed .
- s 99.5 means a confidence interval of 99.5%, but another parameter indicating a different range of confidence intervals, for example, s 99.9 which means a confidence interval of 99.9% may be used.
- the processing method may further include determining whether an error has occurred for the tuple [ i -1] in the time stamp [i-1]; If the acceleration error for the tuple [i -1] is not generated speed error for the tuple [i -1] occurs, by calculating the statistical values described above, measured in the time stamp [i -1] Determining whether the determined speed value is smaller than the aforementioned statistical value; And is smaller than the actual speed value above which the statistics case, the step of replacing the speed, latitude, and longitude for the time stamp [i -1] to the values measured in the time stamp [i -1] It may further include. In this case, n is the size of the window.
- the present invention it is possible to filter out the location data in error in real time, and provide a technique for replacing in real time using the corrected new location data instead of discarding the location data determined to be in error.
- FIG. 2 is a view for explaining a speed calibration method of interpolating a speed value by a least square method according to another embodiment of the present invention.
- 3 to 5 illustrate a position tuple filtering method, a speed estimation method using interpolation, and a speed error correction method according to an embodiment of the present invention.
- FIG. 7 illustrates a speed error detected by applying a speed correction according to an interpolation technique according to an embodiment of the present invention.
- Fig. 8 shows the speed measured using a commercially available position detection device.
- 9 and 10 are graphs derived by applying the concept of a moving intention interval, acceleration error detection, and correction speed according to the present invention.
- the movement trajectory (trace) of the user may be represented using a set of tuples (ie, a moving data tuple) measured and collected in the form of ⁇ latitude, longitude, time>.
- a data set representing user mobility can be obtained.
- P t One tuple obtained for the time t is herein referred to as P t, and can be referred to as t, respectively lat, lon t latitude and longitude provided by the P t.
- Table 1 shows the typical maximum speeds that can occur depending on the mode of transport.
- the maximum speed MAX speed for applying to an embodiment of the present invention may be defined as 250 m / s.
- MAX acceleration can be expressed by defining the maximum value of acceleration considered to be possible in everyday environment. If the measured speed or acceleration is greater than MAX speed or MAX acceleration , it can be determined that an error has occurred.
- the moving average of speed can be calculated and the moving standard deviation of speed can be calculated.
- the moving average value of the speed and the moving standard deviation value can be expressed as MA speed (n) and MSD speed (n), respectively.
- N represents the number of past data of ⁇ P x : t-n + 1 ⁇ x ⁇ t ⁇ , which is a set of tuples.
- the past n data can be obtained by applying a window of size 'n'.
- V t and a t calculated from the tuple P t are acceptable values in the everyday environment. If the calculated V t is outside the range of normal distribution according to the moving average value MA speed (n) and the moving standard deviation of speed MSD speed (n), the tuple P t is filtered out from a series of traces. (Ie, removed). The condition for removing P t may be given by Equation 1 below.
- V t MA speed (n) + s * MSD speed (n)
- 's' represents the sensitivity of filtering and is a user controllable parameter.
- V t does not satisfy Equation 1, it is determined that the new tuple P t has a valid value, and the new values can be used to update the values of MA speed (n) and MSD speed (n). This calculation is relatively simple and can be performed in real time on a low power device such as a mobile user equipment.
- the filtering characteristic may vary depending on the size n of the window described above. Therefore, in order to perform an experiment to determine the influence of the window size, it is possible to collect the value measured by a commercial mobile user equipment.
- the user device may store and output location data whenever it detects a change in location. Alternatively, if the user device is in the stopped state, the location data may be stored and output every user defined interval, for example, every 3 to 60 seconds. The location data thus obtained may be displayed on a map using various techniques.
- the location data obtained in three different ways at the same time that is, a location using a cellular base station, a location using a WiFi device for a crowd source, and a location using a GPS were simultaneously provided.
- the values of the three types of location data provided at the same time indicate different values.
- experience has shown that position data with the smallest velocity value is likely to be valid data. Therefore, in the first step of filtering the position data, it is possible to select a method of selecting the position data that has moved the least from the previous position among the plurality of position data provided by different methods at the same time.
- the algorithm can successfully cope with successive errors in the absence of movement, but it can be expected that it will not respond to situations where the speed changes rapidly.
- the window is small, it will show a quick response to sudden speed changes to the moving state, which is believed to contain consecutive error tuples. However, if there are m consecutive errors, m> n, i.e. if the window size is small, the errors cannot be filtered out.
- n 5, 10, 25, 50, and 100 were set. For each case, the moving average of the speed and the moving standard deviation of the speed were calculated.
- the window size is small, especially at the beginning of the speed change, it reacts quickly and sensitively to the speed change. However, they tend to overfilter out the right data.
- the window size is as small as 5 or 10 10, there are cases where two or more tuples that appear to be correct velocity data are removed.
- the position data was collected for several hours while the position detection devices were fixed in the outdoor and the indoor.
- the first position detection device is a commercial Garmin GPSMAP62s, used purely for GPS data collection.
- the second location detector is a commercial Samsung Galaxy Tab, used to obtain location data from a 3G base station (3GBS) connected to the device. It was assumed that more error would be shown in the position data obtained using 3GBS, and both position data obtained from GPS and 3GBS would indicate an error. In particular, it was assumed that the position detection error would be shown indoors.
- Table 2 shows the errors that occur when measuring location data. The unit of measurement is meters.
- the error distance is calculated from the position data, and the variance and average of the error distance can be calculated.
- 3GBS showed a larger error rate, larger error size, larger maximum error size, and larger standard deviation of error size.
- indoor GPS data can be thought of as not meaningful data. GPS data in the open air has a sufficient level of accuracy to obtain sophisticated location data, and the maximum error size is within a reasonable range of 52 meters.
- [Algorithm 1] of Table 3 is for determining whether there is an error in the measured position data and filtering the position data having an error. Upon acquiring new position data P i + 1 , this [Algorithm 1] can determine whether to filter P i + 1 .
- Acceleration and velocity can be used as parameters for filtering and can be used in different ways, but they can all be considered as throttling parameters. Tuples with out-of-range or over-acceleration are filtered out of the so-called 'moving significant interval' values, where velocity V i + 1 is expressed as MA speed + s ⁇ MSD speed . s represents the significant level of the normal distribution.
- Line 12 in Algorithm 1 99.5% confidence interval of the normal distribution to reflect the speed of this tuple in the moving window, even if a tuple needs to be filtered out by Equation 1: It may be limited or calibrated to be within, to include the speed of this tuple. This is intended to update the mobile window with fast speed values to cope with rapid changes in speed. That is, even if there is an error-free tuple, a sudden speed change may be filtered out. In such a case, even if the tuple is filtered, the moving window may reflect the speed change of the maximum allowable for this tuple.
- n and s can be set by the user.
- n is the number of tuples in the window, that is, the size of the window
- s is the sensitivity level of the filtering (ie, the significance level of the normal distribution).
- the size of the window may be made smaller.
- the incorrect speed value is calibrated, the abnormal acceleration value is limited, and the speed value can be replaced by the average speed calculated by the moving window.
- the smaller window size limits the trailing effect, but results in a more flexible response to speed changes.
- Algorithm 1 can be modified in consideration of the following.
- the size of the window instead of defining the size of the window as the number of tuples in one window, it can be defined by the time interval included in the window. Considering that speed is a function of time, it can be seen that this modified approach will be effective and accurate when collecting location data regularly.
- the window size may be dynamically increased or decreased according to the number of consecutive errors. Once we find that the number of consecutive errors is large, we can increase the window size to minimize the effect of the continuous errors on the moving average and the moving standard deviation. If the number of consecutive errors is small, the window size can be reduced to respond appropriately to rapid speed changes and to reduce the amount of computation for filtering.
- [Algorithm 1] can be transformed into a pseudo real time algorithm rather than a real time algorithm.
- window size n we're going to be in the middle of the window instead of filtering the (n + 1) th tuple
- the first tuple can be filtered. This method can reduce the tendency of underfiltering and overfiltering even though it cannot be implemented in full real time.
- Algorithm 2 adds the steps for interpolation to Algorithm 1 (see lines 18 to 21 of Algorithm 2).
- Algorithm 2 adds the steps for interpolation to Algorithm 1 (see lines 18 to 21 of Algorithm 2).
- the speed of this last tuple can be replaced with the interpolated value.
- the last tuple marked as filtered out in the window can be interpolated.
- Another variation for the construction of moving windows for more precise approximation is that the approximate midpoint of the window The first tuple is interpolated using n tuples in the window.
- an asymptotic curve estimated from n tuples can be used to interpolate the middle tuple in the window to enable more precise interpolation.
- this may result in computational overhead and may be difficult to apply to mobile user equipment.
- the horizontal axis of FIG. 1 represents an index (ie, a timestamp) of tuples obtained continuously, and the vertical axis is a speed according to each tuple stored in a memory.
- the size n of the moving window is illustrated as 10.
- the MA speed and MA speed + s 99.5 ⁇ MSD speed can be calculated from the 10 speeds present in the moving window, an example of which is shown in FIG.
- acceleration a i + 1 at index [i + 1] is greater than MAX acceleration . Therefore, the speed V i + 1 at the index [i + 1] was corrected to MA speed (row 15 of [Algorithm 2]).
- the newly acquired tuple is first calibrated by lines 10 to 17 of Algorithm 2. Then, when another new tuple is acquired, the calibrated rate is [algorithm]. Can be calibrated secondaryly by lines 18 to 21 of 2]. It can be appreciated that the primary and secondary corrections described above for the speed of any tuple may occur, only one of them, or none at all.
- Speed V i is the interpolation with the calibration value of the aforementioned tuple P i in [Algorithm 2], but little is usually less than the value (MA speed + s 99.5 ⁇ MSD speed) corrected by the second line 11, in the next time stamp It may be larger depending on the interval of movement or the corrected value of.
- Algorithm 2 the newly acquired mobile data tuple P i + 1 and the latest mobile data tuple P i present in the mobile window are processed.
- it can be modified to perform processing for the moving data tuple P m for any time stamp in the moving window.
- rows 18 to 21 of Algorithm 2 may be modified as shown in Table 6.
- FIG. 2 is a view for explaining a speed correction method of interpolating a speed value by a least square method according to another embodiment of the present invention.
- FIG. 2 shows the results of using the modified interpolation method from the interpolation method according to the 18th to 21st lines of [Algorithm 2].
- a nonlinear interpolation method using a plurality of data in a moving window is used.
- a moving data tuple having an index [i-4] may be corrected using a plurality of data included in the moving window and a value corresponding to an asymptote approximated using a least square method.
- 3 to 5 illustrate a position tuple filtering method, a speed estimation method using interpolation, and a speed error correction method according to another embodiment of the present invention.
- 3 to 5 represent the index of the time stamp and the vertical axis represents the speed.
- Reference numeral 100 denotes the measured velocity in the corresponding timestamp
- reference numeral 101 denotes the measured velocity obtained from the tuple filtered out using one of the algorithms disclosed herein.
- 3 to 5 show an example in which the window size is 10.
- Reference numeral 103 denotes an average value of the speed in the window
- reference numeral 102 denotes a value 102 of the moving significant value described above.
- the position tuple of reference numeral 101 shown in Fig. 3 is filtered out because its speed is larger than the value 102 of the movement significance section.
- Reference numeral 101 (index i) of FIG. 4 represents an actual velocity obtained from the filtered position tuple according to the algorithm of the present invention.
- Reference numeral 200 in FIG. 4 denotes an estimated value of the speed provided by the speed value of index i being linearly interpolated by the speed values of index i-1 and index i + 1 before and after it.
- the tuples of the index i and the index i + 1 are both filtered out.
- the measured speed of the index i (see reference numeral 101 of the index i) is larger than the value of the movement intention interval, it has already been calibrated to a predetermined size (see reference numeral 300 of the index i).
- the measured speed of index i + 1 (see reference numeral 101 of index i + 1) is also calibrated to a predetermined size because it is larger than the value of the movement intention interval (see reference numeral 300 of index i + 1).
- the speed of index i is interpolated using the speeds of index i + 1 and index i-1.
- a calibration of speed may be used as a pre-step for accurate estimation of speed.
- the parameter ET D for introducing a normal distance error is introduced (line 4).
- ET D can be set to 15 m for a GPS system with SA enabled.
- ET D may determine the minimum speed, minimum difference between latitude and longitude, and affect the moving standard deviation, resulting in a non-zero moving significance interval. That is, by using ET D , the concept of CEP of the positioning system can be introduced in Algorithm 3 according to one embodiment of the present invention, which overfilters tuples because of small possible speed error within the accuracy of the positioning system. Can be avoided.
- Algorithm 3 similar to the velocity estimation process of [Algorithm 2], a position estimation process can be introduced for the filtered tuple.
- the main difference in the location estimation process included in Algorithm 3 lies in the direction of latitude and longitude. In other words, only a positive value needs to be considered for the velocity value, but a negative difference between latitude and longitude cannot be ignored to estimate the position.
- [Algorithm 3] shows the entire process for position estimation, which corresponds to the entire process for velocity estimation of [Algorithm 2].
- Vlat and Vlon in [Algorithm 3] refer to the difference between latitude and longitude, respectively. Algorithm 3 calculates the moving average of Vlat and Vlon. If one tuple is filtered by excessive speed, this indicates that the difference in position is excessive. Once this is done, we need to estimate the correct position. When an acceleration error occurs, the position data is corrected to a moving average value of the difference value (rows 25 and 26), similarly to that performed for the speed. Finally, as with the velocity estimation, interpolation is performed for latitude and longitude at the end of the travel window (lines 31 and 32). The direction of the difference is also preserved (lines 25, 26, 31, and 32).
- FIG. 6 illustrates speed errors obtained from measured data
- FIG. 7 illustrates speed errors detected by applying speed correction according to an interpolation technique according to an exemplary embodiment of the present invention.
- Each figure contains information about the actual speed, the acceleration, the section of motion, the calibrated speed, the estimated speed, and the detected acceleration error. Acceleration errors are shown in inverted triangle shapes. 6 does not include information on the interpolated speed.
- An empty rectangle represents a limited speed according to a calibration mechanism according to an embodiment of the present invention, and a black rectangle represents an estimated speed by an interpolation technique.
- the velocity on the y-axis is in m / s
- the x-axis represents time of day.
- the algorithm according to an embodiment of the present invention estimated the possible speed value well.
- the speed error was limited to an appropriate range by the calibration method of the present invention, and then the speed was corrected by the speed estimation method. .
- the method of estimating the speed by the interpolation method can further reduce the influence on the moving window. Therefore, in FIG. 7, the moving significance interval following the interpolation shows a difference, since the statistical value of the moving window varies according to the interpolated speed value. The difference at 13:33:04 is quite large.
- Tables 9 to 11 are for explaining the fourth algorithm for position estimation according to another embodiment of the present invention.
- [Algorithm 4] is the same as [Algorithm 3] except lines 2, 5, 6, 17-25, 28-32, and 38 of [Algorithm 4]. Hereinafter, the lines 5, 6, 17-25, 28-32, 38 of [Algorithm 4] are demonstrated.
- V can be changed to another value by another part of [Algorithm 4].
- V may be replaced by another calibrated or estimated value.
- Line 6 of Algorithm 4 sets the MIN speed for the minimum speed to the smaller of ET D / ( t i +1 - t i ) the predetermined minimum value MINSPEED . That is, it determines the minimum value of the moving standard deviation.
- Lines 17 and 18 of [Algorithm 4] Different parts of [Algorithm 4] can change lat and lon to different values. For example, in lines 41, 42, 47, and 48 of Algorithm 4, lat and lon can be replaced with other calibrated or estimated values. However, in lines 21 and 22 of Algorithm 4, we can replace this replaced value with the original value. To do this, we store the original values of lat and lon separately in lines 17 and 18.
- Line 19 of [Algorithm 4] represents a condition for performing backtracking shown in lines 20 to 22 of [Algorithm 4].
- Lines 20 to 24 of [Algorithm 4] Replace the V, lon, and lat values with the original values when the condition of Line 19 of [Algorithm 4] is satisfied. have. That is, it is determined that the original V, lon and lat values are more accurate than the V, lon and lat values that have been corrected or estimated by other parts of [Algorithm 4], and return to the measured data (backtracking). If backtracking occurs, initialize NCE to 0 on line 23 and reduce window size n on line 24. However, the window size n cannot be smaller than the minimum value IWS .
- Lines 28 and 29 of [Algorithm 4] Increase NCE on line 28 if the tuple P i +1 is filtered. That is, to increase the number of consecutive errors.
- line 29 we increase the window size n.
- the window size n cannot be larger than the maximum value MWS .
- Figure 8 shows the speed measured using a commercial position detection device iPhone and Garmin. In this experiment, the speed changes with a continuous value over time, but the actual data of iPhone and Garmin show that the sudden increase and decrease of the speed sometimes occurs, which is an error.
- FIG. 9 and 10 are graphs derived by applying the concepts of a moving significant interval, acceleration error detected, and calibrated speed described in the above-described embodiment of the present invention. 9 shows that the window size is set to 5, and FIG. 10 shows the result of setting the window size to 100. FIG. 9 and 10 use 287 measured position data acquired on February 27, 2012.
- FIG. 11 shows an example of data processed according to [Algorithm 4].
- This graph was created using nine position data measured on August 28, 2012, and it detects filtered original speed, moving significant interval, acceleration, and acceleration error. (acceleration error detected), interpolated speed, calibrated speed, and revived speed by backtracking.
- the filtered original velocity is not only out of the range of movement mean but acceleration error is detected, thus maintaining the interpolated velocity.
- time 08:49:56 and time 08:49:59 since the original speed is in the range of movement significance and acceleration error was not detected, it was confirmed that the playback was replaced by the interpolated speed by [Algorithm 4]. Can be.
- the following steps may be performed.
- step S11 it may be determined whether there is an error in the speed [i + 1] (V i + 1 ) at the time stamp [i + 1] (see line 34).
- step S12 if it is determined in step S11 that there is an error in speed [i + 1] ( V i +1 ⁇ MA speed + s 99.5 ⁇ MSD speed ), the speed [i + 1] is corrected in advance. Calibrate or restrict (see line 35). At this time, if the speed [i + 1] is less than or equal to the predetermined minimum speed (MIN speed ), it is determined that there is no error in the speed [i + 1] (see line 35). In this case, the minimum speed may be determined by an error tolerance of distance (ET D ) or a predetermined minimum value MINSPEED (see line 6).
- step S13 it is determined whether there is an error in the acceleration [i + 1] (a i + 1 ) at the time stamp [i + 1] (see line 37). In this case, when the acceleration [i + 1] is greater than or equal to the preset maximum acceleration (MAX acceleration ), it may be determined that there is an error in the acceleration [i + 1] (see line 37).
- MAX acceleration preset maximum acceleration
- step S14 when it is determined in step S13 that there is an error in acceleration [i + 1], latitude [i + 1] and longitude [i + 1] are corrected in advance (lines 41 and 42). Reference).
- the hardness [i + 1] is corrected using the average hardness difference (MA Vlongitude ) up to the time stamp [i] and the hardness [i] (lon i ) in the time stamp [i], and the time stamp [i] Latitude [i + 1] can be corrected using the mean latitude difference (MA Vlatitude ) and latitude [i] (lat i ) in time stamp [i] (see lines 41 and 42).
- the average hardness difference (MA Vlongitude ) set in the 16th row of Algorithm 4 means the average value of the hardness difference in each timestamp set in the 14th row according to the time
- the average latitude difference set in the 13th row Vlatitude means the average of the latitude difference in each timestamp set in row 11 over time.
- step S21 it is checked whether there is an error in the tuple [ i ] ( P i ) at the time stamp [ i ] ( t i ) (see line 44).
- an error means that the tuple [ i ] ( P i ) is filtered by the speed error as described above.
- step (S22) if it is determined that the error is present, the time stamp [i +1] (t i +1) latitude in [i +1] (lat i +1) and the time stamp [i ] the interpolation of one or more previously acquired latitude estimation (estimation) latitude [i] (lat i) in the time stamp [i], and the hardness at the time stamp [i +1] [i +1 ] ( lon i +1 ) and one or more longitudes obtained before the timestamp [ i ] are interpolated to estimate the longitude [ i ] ( lon i ) at the timestamp [ i ] (see lines 47 and 48). ).
- 'acquired' may mean that the algorithm is processed by [Algorithm 4] and stored in the memory.
- the location calibration method according to the embodiment may further include step S23.
- step S23 the speed [i + 1] (V i + 1 ) at timestamp [i + 1] and one or more speeds obtained before timestamp [i] are interpolated to generate the timestamp [i].
- the velocity [i] (V i ) at can be estimated (see line 45).
- step S31 if the error in time stamp [ i -1] is caused by an error due to speed and not due to an error due to acceleration, time stamp [ in +1] to time stamp [ i].
- Statistical values using the mean of the stored speeds ( MA speed ) and the standard deviation ( MSD speed ) can be calculated to determine whether the measured speed value in the timestamp [ i -1] is less than the statistical value. (See line 19).
- 'stored speed' refers to a value stored in the memory processed by [Algorithm 4].
- step S32 when it is determined in step S31 that the measured speed value is smaller than the statistical value, the speed, latitude, and longitude for the time stamp [ i ] may be replaced by the original value measured. (See lines 20-22). In this case, n is the size of the window.
- step S33 when it is determined in step S31 that the measured speed value is smaller than the statistical value, the n value can be decreased (see line 24).
- step S34 if the time stamp [ i ] is found to have the above error, increase the size of the window (see line 29), and if it is confirmed that there is no error at the timestamp [ i ], The size can be reduced (see line 32).
- an error may include both an error in speed and an error in acceleration.
- a user device includes: a location information collecting unit configured to collect information about a tuple including latitude, longitude, and a timestamp; And a processing unit configured to process information about the tuple.
- the processing unit may perform lines 19, 20 to 22, 24, 29, 32, 34, 35, 37, 41, 42, 44, 45, 47, and 48 of [Algorithm 4].
- Algorithm 4 is described based on the time point of the time stamp [i + 1] at which the new tuple is obtained. Algorithm 4 may be described as the time stamp [i + 2]. In this case, for example, in the above description of the step S31, the index of the time stamp is increased by +1.
- Each of the above steps may be executed in a user device including a location information collecting unit configured to collect information about a tuple including latitude, longitude, and a timestamp, and a processing unit configured to process information about the tuple. have.
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
- Navigation (AREA)
Description
본 발명은 사용자기기에 의해 수집된 위치데이터에 오류가 있는지 여부를 판단하는 방법 및 오류가 존재하는 위치값을 보정하는 기술에 관한 것이다.The present invention relates to a method for determining whether there is an error in position data collected by a user device and a technique for correcting a position value in which an error exists.
사람들은 빈번하게 방문하지 않는 장소를 목적지로서 선택하는 것을 꺼리는 경향이 있다. 이에 관하여, 사람의 방문 목적지를 예측하기 위한 다양한 연구결과가 존재한다. 사람의 이동을 예측하기 위해서는 우선 그 사람에 대한 정확한 위치데이터를 얻어야 한다. 이를 위하여, GPS, GLONASS 및 Galileo와 같은 잘 알려진 위치데이터 시스템을 이용할 수 있다. 또는, 이동통신 기지국 또는 크라우드 소스(crowd source)로서의 WIFI 위치 접근법을 이용한 무선 통신망 포지셔닝을 이용할 수 있다. 이러한 방법들은 이동형 사용자기기에 구현될 수 있다. 그러나 실제로 측정된 위치데이터(raw position data)에는 에러가 존재할 수 있다. 특정 회사에서 제조한 이동형 사용자기기에서 측정한 위치데이터에는 많은 에러가 존재한다. 명백한 에러들을 필터링하고, 나아가 에러라고 판단된 위치를 보정할 필요가 있다.People tend to be reluctant to choose places they don't visit often as destinations. In this regard, various studies exist for predicting a person's visit destination. In order to predict a person's movement, we must first obtain accurate location data about that person. To this end, well-known location data systems such as GPS, GLONASS and Galileo can be used. Alternatively, wireless network positioning using a WIFI location approach as a mobile base station or crowd source may be used. These methods may be implemented in a mobile user device. However, there may be an error in the raw position data actually measured. There are many errors in the location data measured by mobile user equipment manufactured by a specific company. It is necessary to filter the obvious errors and further correct the position determined to be an error.
실험에 따르면, 상용의 스마트폰, 휴대용 GPS 장치, 크라우드 소싱(crowd sourcing)을 위한 WIFI 위치검출장치, 및 셀룰러 네트워크 장치 등으로부터 수집한 실측 위치데이터의 12% 이상에 에러가 나타난다. 따라서 에러가 있는 위치데이터를 필터링 아웃할 필요가 있다. 나아가 단순히 에러가 있는 위치데이터를 보정할 필요가 있다. 본 발명에서는 이러한 문제점을 해결하기 위한 방법을 제공하고자 한다. 또한 이러한 문제점을 해결하기 위한 방법이 컴퓨팅 능력이 제한된 사용자기기에서 잘 수행될 수 있도록 실시간으로 구현하는 방법을 제공하고자 한다.Experiments have shown that more than 12% of actual location data collected from commercial smartphones, portable GPS devices, WIFI location sensors for crowd sourcing, cellular network devices, and the like appear. Therefore, it is necessary to filter out the location data in error. Furthermore, it is necessary to simply correct the erroneous position data. The present invention seeks to provide a method for solving this problem. In addition, a method for solving such a problem is to provide a method for real-time implementation so that it can be performed in a user device with limited computing ability.
사용자기기에 의해 실측된 위치데이터에 오류가 있는지 여부를 판단하기 위한 본 발명의 일 양상에 따른 방법은 실측된 속도에 대하여 계산된 평균값(mean, expectation) 및 표준편차(standard deviation)를 이용하는 통계적 기법을 이용할 수 있다. 또한 실측된 가속도의 값을 이용하는 기법을 이용할 수 있다. A method according to an aspect of the present invention for determining whether there is an error in position data measured by a user device is a statistical technique using mean, expectation, and standard deviation calculated for the measured speed. Can be used. Also, a technique using the measured value of acceleration can be used.
그리고 오류가 있다고 판단된 위치값을 보정하기 위한 본 발명의 일 양상에 따른 방법은 실측된 위치값에 대하여 계산된 차이(difference)에 기반하는 통계적 기법을 이용할 수 있다.The method according to an aspect of the present invention for correcting a position value determined to be an error may use a statistical technique based on a calculated difference with respect to the measured position value.
본 명세서에서 '실측'이라 함은, 본 발명에 따른 위치데이터 필터링방법 및 위치데이터 보정방법을 이용하지 않은 사용자기기로부터 위치, 속도, 가속도에 관한 정보를 직접 획득하는 것을 의미할 수 있다. In the present specification, 'measurement' may mean directly acquiring information about a position, a speed, and an acceleration from a user device that does not use the position data filtering method and the position data correction method according to the present invention.
사용자기기로부터 실측된 <위도, 경도, 시간>의 형식을 갖는 이동 위치데이터로부터 사용자의 속도 및 가속도의 실측값을 얻을 수 있다. 이하, <위도, 경도, 시간>의 형식을 갖는 이동 위치데이터를 '튜플(tuple)' 또는 '위치데이터 튜플'이라고 지칭할 수 있다.The measured values of the speed and acceleration of the user can be obtained from the movement position data having the format of <latitude, longitude, time> measured from the user equipment. Hereinafter, the moving position data having a format of <latitude, longitude, time> may be referred to as a 'tuple' or 'location data tuple'.
본 발명에서는 이동윈도우(또는, 슬라이딩 윈도우)에 의하여 선택된 데이터를 이용하여 위치 및 속도의 통계량을 계산하고 이 계산값들을 반복적으로 갱신할 수 있다. 그리고 제어가능한 파라미터를 이용하여 실측된 위치데이터에 대한 필터링을 수행할 수 있다. 본 발명의 일 실시예에 따른 알고리듬은 간단하기 때문에, 본 발명은 계산능력(computing power)이 작은 이동형 사용자기기에도 적용될 수 있다. In the present invention, using the data selected by the moving window (or sliding window), it is possible to calculate the statistics of position and velocity and to update the calculated values repeatedly. The measured position data may be filtered using the controllable parameter. Since the algorithm according to the embodiment of the present invention is simple, the present invention can be applied to a mobile user equipment having a small computing power.
본 발명의 일 실시예에서는 성능의 향상을 위하여 이동윈도우의 크기를 최적화할 수 있다. 또한 에러가 있다고 판단된 속도값 및/또는 위치값을 적당한 추정값으로 교체하기 위해 백트래킹(backtracking) 인터폴레이션 방법이 사용될 수 있다.In an embodiment of the present invention, the size of the moving window may be optimized to improve performance. Also, a backtracking interpolation method can be used to replace the speed value and / or position value determined to be an error with an appropriate estimate.
속도는 일정 수준 이상으로 급격하게 증가하지 않는다고 볼 수 있기 때문에, 일정 시구간에서의 속도의 평균값과 표준편차를 알 수 있다면, 예컨대 정규분포를 따르는 유의구간(significant interval)을 설정하고 이 유의구간을 넘어가는 속도는 오류값이라고 판단할 수 있다.Since the velocity does not increase rapidly above a certain level, if the mean value and standard deviation of the velocity at a certain time interval are known, for example, a significant interval following a normal distribution can be set and this interval can be set. The passing speed can be determined as an error value.
본 발명의 일 양상에 따른 위치정보 처리방법은, 위치정보 수집장치로부터 수집한 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 처리한다. 이때, 타임스탬프[i]에서의 현재의 속도(V i )가, 타임스탬프[i-1]를 포함하는 윈도우에 포함된 과거의 속도들로부터 계산된 통계값보다 큰 경우, 상기 타임스탬프[i]에서의 튜플[i]에 오류가 존재하는 것으로 판단하는 제1 단계; 및 상기 오류가 존재하는 것으로 판단된 경우에는, 상기 튜플[i]에 관한 정보를 추정값으로 대체하는 제2 단계를 포함한다. 이때, 상기 제2 단계는 상기 제1 단계가 수행된 타임스탬프의 바로 다음 타임스탬프에서 수행될 수 있다.The location information processing method according to an aspect of the present invention processes information on a tuple including latitude, longitude, and time stamp collected from the location information collecting device. At this time, the current speed at the time stamp [i] (V i) is, the time stamp [i -1] in the case of an exchange included in the window that includes greater than a statistical value calculated from the speed, the time stamp [i A first step of determining that there is an error in the tuple [ i ] at; And a second step of replacing the information about the tuple [ i ] with an estimated value when it is determined that the error exists. In this case, the second step may be performed at a time stamp immediately after the time stamp on which the first step is performed.
이때, 상기 통계값은, 상기 과거의 속도들로부터 얻은 이동신뢰구간일 수 있다. 구체적으로는, 상기 이동신뢰구간은, 상기 과거의 속도들의 표준편차에 비례하는 제1 값(s × MSD speed )에 상기 과거의 속도들의 평균값(MA speed )을 더한 값일 수 있다.In this case, the statistical value may be a mobile confidence interval obtained from the past speeds. Specifically, the mobile confidence interval may be a value obtained by adding an average value MA speed of the past speeds to a first value s × MSD speed that is proportional to the standard deviation of the past speeds.
이때, 이 처리방법은, 상기 추정값을 계산하기 이전에, 타임스탬프[i+1]에서의 속도[i+1]가, 타임스탬프[i-n+1] 내지 타임스탬프[i]를 포함하는 윈도우에 포함된 과거의 속도들로부터 계산된 제2 통계값보다 큰 경우, 상기 속도[i+1]에 오류가 존재하는 것으로 판단하는 단계; 및 상기 속도[i+1]에 오류가 존재하는 것으로 판단된 경우에는, 상기 추정하는 단계 이전에 상기 속도[i+1]를 상기 제2 통계값으로 미리 대체하는 단계를 더 포함할 수 있다. 여기서 상기 제2 통계값은 MA speed + s 99.5 × MSD speed 일 수 있다. 여기서 s 99.5 는 99.5%의 신뢰구간을 의미하는 것이지만, 이와 다른 범위의 신뢰구간을 의미하는 다른 파라미터, 예컨대, 99.9%의 신뢰구간을 의미하는 s 99.9 가 이용될 수도 있다.At this time, this processing method includes a speed [ i + 1] at timestamp [i + 1] including timestamp [ i − n + 1] to timestamp [ i ] before calculating the estimated value. Determining that an error exists in the speed [ i + 1] if it is greater than a second statistical value calculated from past speeds included in the window; And if it is determined that the velocity error in [i +1] is present, can be prior to the step of the estimated the speed comprising [i +1] replace previously in the second statistics more. Here, the second statistical value may be MA speed + s 99.5 × MSD speed . Here, s 99.5 means a confidence interval of 99.5%, but another parameter indicating a different range of confidence intervals, for example, s 99.9 which means a confidence interval of 99.9% may be used.
또한, 이 처리방법은, 상기 타임스탬프[i-1]에서의 튜플[i-1]에 대한 오류가 발생했는지 여부를 판단하는 단계; 상기 튜플[i-1]에 대한 가속도 오류는 발생하지 않고 상기 튜플[i-1]에 대한 속도 오류가 발생한 경우에, 상술한 통계값을 계산하여, 상기 타임스탬프[i-1]에서의 실측된 속도값이 상술한 통계값보다 작은지 여부를 결정하는 단계; 및 상기 실측된 속도값이 상술한 통계값보다 작은 경우에는, 상기 타임스탬프[i-1]에 대한 속도, 위도, 및 경도를 상기 타임스탬프[i-1]에서 실측된 값으로 대체하는 단계를 더 포함할 수 있다. 이때, 위의 n은 윈도우의 크기이다.The processing method may further include determining whether an error has occurred for the tuple [ i -1] in the time stamp [i-1]; If the acceleration error for the tuple [i -1] is not generated speed error for the tuple [i -1] occurs, by calculating the statistical values described above, measured in the time stamp [i -1] Determining whether the determined speed value is smaller than the aforementioned statistical value; And is smaller than the actual speed value above which the statistics case, the step of replacing the speed, latitude, and longitude for the time stamp [i -1] to the values measured in the time stamp [i -1] It may further include. In this case, n is the size of the window.
본 발명에 따르면 에러가 있는 위치데이터를 실시간으로 필터링 아웃할 수 있으며, 에러가 있다고 판단된 위치데이터를 버리는 것이 아니라 보정한 새로운 위치데이터를 이용하여 실시간으로 대체하는 기술을 제공할 수 있다.According to the present invention, it is possible to filter out the location data in error in real time, and provide a technique for replacing in real time using the corrected new location data instead of discarding the location data determined to be in error.
도 1은 본 발명의 일 실시예에 따른 속도교정 알고리듬을 설명하기 위한 것이다.1 is for explaining a speed calibration algorithm according to an embodiment of the present invention.
도 2는 본 발명의 다른 실시예에 따라, 최소 자승법으로 속도값을 인터폴레이션하는 속도교정방법을 설명하기 위한 것이다.2 is a view for explaining a speed calibration method of interpolating a speed value by a least square method according to another embodiment of the present invention.
도 3 내지 도 5는 본 발명의 일 실시예에 따른 위치튜플 필터링 방법, 인터폴레이션을 이용한 속도 추정방법, 및 속도에러 교정방법을 설명하기 위한 것이다.3 to 5 illustrate a position tuple filtering method, a speed estimation method using interpolation, and a speed error correction method according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 속도보정없이 검출한 속도에러를 설명하기 위한 것이다. 6 is for explaining a speed error detected without speed correction according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 인터폴레이션 기법에 따른 속도교정을 적용하여 검출한 속도에러를 설명하기 위한 것이다.7 illustrates a speed error detected by applying a speed correction according to an interpolation technique according to an embodiment of the present invention.
도 8은 상용의 위치검출장치를 이용하여 실측한 속도를 나타낸 것이다. Fig. 8 shows the speed measured using a commercially available position detection device.
도 9 및 도 10은 본 발명에 따른 이동유의구간, 가속도 에러 검출, 및 교정속도의 개념을 적용하여 도출한 그래프이다. 9 and 10 are graphs derived by applying the concept of a moving intention interval, acceleration error detection, and correction speed according to the present invention.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various forms.
<위도, 경도, 시간>의 형식으로 실측되어 수집된 한 세트의 튜플(즉, 이동데이터 튜플)를 이용하여 사용자의 이동궤적(자취)을 나타낼 수 있다. 이 튜플에 각 튜플을 식별할 수 있는 식별 파라미터를 결합함으로써 사용자 이동성을 나타내는 데이터 세트를 얻을 수 있다. 본 명세서에서 시각 t에 대해 얻은 하나의 튜플을 Pt 라고 지칭하고, Pt 에 의해 제공되는 위도 및 경도를 각각 latt , lont 라고 지칭할 수 있다.The movement trajectory (trace) of the user may be represented using a set of tuples (ie, a moving data tuple) measured and collected in the form of <latitude, longitude, time>. By combining this tuple with an identification parameter identifying each tuple, a data set representing user mobility can be obtained. One tuple obtained for the time t is herein referred to as P t, and can be referred to as t, respectively lat, lon t latitude and longitude provided by the P t.
아래 표시한 참조문헌 [1]에 공개된 내용을 이용하여, 두 개의 연속적인 튜플인 <lati-1 ,loni-1>와 <lati ,loni>를 이용하여 시각 ti 에서의 이동거리 Di 와 속도 Vi, 및 가속도 ai를 계산할 수 있다. 그러므로 튜플 Pt 는 부가적인 속성을 포함하는 <t, latt , lont, Dt, Vt at>와 같은 코어 형식(core form)을 가질 수 있다. 상술한 t, latt, lont, Dt, Vt, at 은 본 명세서에서 실측값이라고 지칭될 수 있다.Using the contents disclosed in Ref. [1] shown below, two consecutive tuples, <lati-1, loni-1> And <lati, loniTime t using>iTravel distance fromiAnd speed Vi, And acceleration aiCan be calculated. Therefore tuple Pt<T, lat contains additional attributest, lont, Dt, Vt atIt can have a core form such as>. T, lat mentioned abovet, lont, Dt, Vt, at May be referred to herein as an actual value.
* 참조문헌 [1]: T. Vincenty, "Direct and Inverse Solutions of Geodesics on the ellipsoid with Application of Nested Equations," Survey Review, Volume 23, Number 176, April 1975 , pp. 88-93(6).* Reference [1]: T. Vincenty, "Direct and Inverse Solutions of Geodesics on the ellipsoid with Application of Nested Equations," Survey Review, Volume 23, Number 176, April 1975, pp. 88-93 (6).
표 1에는 운송수단에 따라 나타날 수 있는 일반적인 최대속도를 조사하여 나타냈다. 예컨대 본 발명의 일 실시예에 적용하기 위한 최대속도 MAXspeed 을 250m/s로 정의할 수 있다. 또한 일상환경에서 가능하다고 여겨지는 가속도의 최대값을 정의하여 MAXacceleration 라고 표기할 수 있다. 실측된 속도 또는 가속도가 MAXspeed 또는 MAXacceleration보다 큰 경우에는 오류가 발생한 것으로 판단할 수 있다.Table 1 shows the typical maximum speeds that can occur depending on the mode of transport. For example, the maximum speed MAX speed for applying to an embodiment of the present invention may be defined as 250 m / s. In addition, MAX acceleration can be expressed by defining the maximum value of acceleration considered to be possible in everyday environment. If the measured speed or acceleration is greater than MAX speed or MAX acceleration , it can be determined that an error has occurred.
표 1
그 다음, 실측되거나 저장되어 있는 속도의 이동평균(moving average of speed)을 계산할 수 있고, 속도의 이동표준편차(moving standard deviation of speed)를 계산할 수 있다. Then, the moving average of speed can be calculated and the moving standard deviation of speed can be calculated.
임의의 시각 t에서 속도의 이동평균 값과 이동표준편차 값을 각각 MAspeed(n)과 MSDspeed(n)라고 표기할 수 있다. 여기서 n은 튜플의 집합인 {Px : t-n+1 ≤ x < t}의 과거 데이터의 수를 나타낸다. 이때, 과거의 n개의 데이터는 크기 'n'의 윈도우를 적용함으로써 얻을 수 있다. At any time t, the moving average value of the speed and the moving standard deviation value can be expressed as MA speed (n) and MSD speed (n), respectively. N represents the number of past data of {P x : t-n + 1 ≦ x <t}, which is a set of tuples. At this time, the past n data can be obtained by applying a window of size 'n'.
일단 새로운 튜플 Pt 를 얻게되면, 튜플 Pt 로부터 계산된 Vt 및 at 가 일상 환경에서 용인될 수 있는 값인지 여부를 확인할 수 있다. 계산된 Vt 가 속도의 이동평균값 MAspeed(n)과 속도의 이동표준편차 MSDspeed(n)에 따른 정규분포(normal distribution)의 범위 밖에 존재하는 경우에는 튜플 Pt 가 일련의 자취로부터 필터링 아웃(즉, 제거)될 수 있다. Pt를 제거하기 위한 조건은 수학식 1과 같이 주어질 수 있다.Once a new tuple P t is obtained, it can be ascertained whether V t and a t calculated from the tuple P t are acceptable values in the everyday environment. If the calculated V t is outside the range of normal distribution according to the moving average value MA speed (n) and the moving standard deviation of speed MSD speed (n), the tuple P t is filtered out from a series of traces. (Ie, removed). The condition for removing P t may be given by
[수학식 1][Equation 1]
Vt > MAspeed(n)+ s * MSDspeed(n)V t > MA speed (n) + s * MSD speed (n)
수학시 1에서 's'는 필터링의 민감도를 나타내며 사용자가 통제 가능한 파라미터이다. In
만일 Vt가 수학식 1을 만족하지 않는다면, 새로운 튜플 Pt 이 유효한 값을 갖고 있다고 판단하고, 이 새로운 값을 이용하여 MAspeed(n)와 MSDspeed(n)의 값을 갱신할 수 있다. 이 계산은 비교적 간단하기 때문에 이동형 사용자기기와 같은 저전력 장치에서 실시간으로 수행될 수 있다. If V t does not satisfy
상술한 윈도우의 크기 n에 따라 필터링 특성이 달라질 수 있다. 따라서 윈도우의 크기에 따른 영향을 파악하기 위한 실험을 수행하기 위하여 상용의 이동형 사용자기기에 의해 실측된 값을 수집할 수 있다. 사용자기기는 위치변화를 감지할 때마다 위치데이터를 저장하고 출력할 수 있다. 또는 사용자기기가 정지 상태에 있다면 사용자가 정의한 매 간격, 예컨대 3초에서 60초마다 위치데이터를 저장하고 출력할 수 있다. 이렇게 획득한 위치데이터들을 다양한 기법을 이용하여 지도(map) 상에 표시할 수 있다. The filtering characteristic may vary depending on the size n of the window described above. Therefore, in order to perform an experiment to determine the influence of the window size, it is possible to collect the value measured by a commercial mobile user equipment. The user device may store and output location data whenever it detects a change in location. Alternatively, if the user device is in the stopped state, the location data may be stored and output every user defined interval, for example, every 3 to 60 seconds. The location data thus obtained may be displayed on a map using various techniques.
본 발명을 위한 실험에 따르면, 상용의 사용자기기는 3개의 서로 다른 방식에 따라 얻은 위치데이터를 가끔 동시에 제공하였다. 즉, 셀룰라 기지국을 이용한 위치, 크라우드 소스(crowd source)를 위한 WiFi 장치를 이용한 위치, 및 GPS를 이용한 위치가 동시에 제공되었다. 이때 동일한 시각에 제공된 3가지 종류의 위치데이터의 값이 서로 다른 값을 나타내는 경우가 발생했다. 동시에 다수의 위치값들을 얻게되는 경우, 경험에 따르면 가장 작은 속도값을 가진 위치데이터가 유효한 데이터일 확률이 크다. 그러므로 위치데이터를 필터링하기 위한 첫 단계에서는 같은 시간에 서로 다른 방식에 의해 제공된 다수의 위치데이터 중 이전의 위치에 대해 가장 조금 이동한 위치데이터를 고르는 방식을 선택할 수 있다. According to an experiment for the present invention, commercial user equipment sometimes provided the location data obtained in three different ways at the same time. That is, a location using a cellular base station, a location using a WiFi device for a crowd source, and a location using a GPS were simultaneously provided. At this time, the values of the three types of location data provided at the same time indicate different values. When multiple position values are obtained at the same time, experience has shown that position data with the smallest velocity value is likely to be valid data. Therefore, in the first step of filtering the position data, it is possible to select a method of selecting the position data that has moved the least from the previous position among the plurality of position data provided by different methods at the same time.
위치데이터 필터링을 위하여 사용되는 알고리듬에 적용되는 윈도우의 크기 n 의 최적값을 결정하기 위하여 n의 크기를 변화시키면서 다양한 실험을 수행하였다. Various experiments were performed by varying the size of n to determine the optimal value of the size n of the window applied to the algorithm used for the location data filtering.
윈도우 크기가 큰 경우에 상기 알고리듬은, 이동이 없는 상태에서는 연속적인 에러들에 대해 성공적으로 대처할 수 있지만, 속도가 빠르게 변하는 상황에는 반응하지 못할 것이라고 예상할 수 있다. If the window size is large, the algorithm can successfully cope with successive errors in the absence of movement, but it can be expected that it will not respond to situations where the speed changes rapidly.
반면에, 윈도우의 크기가 작은 경우라면, 연속적인 에러 튜플들을 포함하는 것으로 여겨지는 이동 상태에 대한 갑작스런 속도 변화에 대한 빠른 반응을 보여줄 것이다. 그러나 m개의 연속적인 에러가 존재하는 경우에 m > n이라면, 즉 윈도우의 크기가 작다면 상기 에러들을 필터링할 수가 없다. On the other hand, if the window is small, it will show a quick response to sudden speed changes to the moving state, which is believed to contain consecutive error tuples. However, if there are m consecutive errors, m> n, i.e. if the window size is small, the errors cannot be filtered out.
이를 확인하기 위하여, 상기 실측된 한 세트의 데이터세트에 대하여 윈도우 크기 n울 변경하면서 다양한 실험을 하였다. 각 실험에서 n = 5, 10, 25, 50, 100로 설정하였으며, 각 경우에 대하여 속도의 이동평균과 속도의 이동표준편차를 계산했다. In order to confirm this, various experiments were performed while changing the window size n of the measured dataset. In each experiment, n = 5, 10, 25, 50, and 100 were set. For each case, the moving average of the speed and the moving standard deviation of the speed were calculated.
윈도우 크기가 클수록, 실측된 속도값에 매우 큰 에러가 있는 데이터가 입력되는 경우 에러의 영향이 더 긴 시간 동안 유지된다. 그 결과 에러가 있는 데이터에 대한 언더 필터링(under filtering) 현상이 발생한다. 윈도우 크기가 100 또는 50인 경우에, 테일링 효과(tailing effect)가 있음을 확인하였다. The larger the window size, the longer the effect of the error will be maintained if data with very large errors are entered into the measured speed value. As a result, an under filtering phenomenon occurs on the data in error. When the window size is 100 or 50, it is confirmed that there is a tailing effect (tailing effect).
반면에, 윈도우 크기가 작은 경우에는, 특히 속도변화의 시작단계에서, 속도 변화에 빠르고 민감하게 반응한다. 그러나 올바른 데이터를 오버 필터링하여 제거하는 경향이 있다. 윈도우 크기가 5 또는 10과 같이 작을 때에, 올바른 속도 데이터인 것으로 보이는 2개 이상의 튜플들이 제거되는 경우가 발생한다. On the other hand, when the window size is small, especially at the beginning of the speed change, it reacts quickly and sensitively to the speed change. However, they tend to overfilter out the right data. When the window size is as small as 5 or 10, there are cases where two or more tuples that appear to be correct velocity data are removed.
위의 현상을 통해, 윈도우 크기에 따른 테일링 효과(tailing effect)를 피하기 위해서는 이동윈도우에 대한 조절 메카니즘을 도입해야만 한다는 점을 알 수 있다.From the above phenomenon, it can be seen that in order to avoid the tailing effect according to the window size, the adjustment mechanism for the moving window must be introduced.
이하 실측된 위치데이터의 에러를 파악하기 위한 사전실험(pre-experiments)에 대해 설명한다. Hereinafter, pre-experiments for identifying errors in the measured position data will be described.
이 사전실험에서 위치검출 장치들을 실외와 실내에 고정한 상태에서 수 시간 동안 위치데이터를 수집하였다. 첫 번째 위치검출 장치는 상용의 Garmin GPSMAP62s 으로서 순수하게 GPS 데이터 수집을 위해 사용되었다. 두 번째 위치검출 장치는 상용의 삼성 갤럭시 탭으로서, 이 장치에 연결된 3G 기지국(3GBS)으로부터 위치검출 데이터를 얻기 위해 사용되었다. 3GBS를 이용하여 얻은 위치데이터에 더 많은 에러를 나타낼 것이라고 추측하였으며, GPS 및 3GBS로부터 얻은 위치데이터 모두 에러를 나타낼 것이라고 추측하였다. 특히 실내에서도 위치검출 에러를 보일 것이라고 추측하였다. 이 사전실험의 결과는 표 2에 표시되어 있다. 표 2는 위치데이터 실측 시 발생하는 에러를 나타낸 것이며, 표기 단위는 미터(meter)이다.In this preliminary experiment, the position data was collected for several hours while the position detection devices were fixed in the outdoor and the indoor. The first position detection device is a commercial Garmin GPSMAP62s, used purely for GPS data collection. The second location detector is a commercial Samsung Galaxy Tab, used to obtain location data from a 3G base station (3GBS) connected to the device. It was assumed that more error would be shown in the position data obtained using 3GBS, and both position data obtained from GPS and 3GBS would indicate an error. In particular, it was assumed that the position detection error would be shown indoors. The results of this preliminary experiment are shown in Table 2. Table 2 shows the errors that occur when measuring location data. The unit of measurement is meters.
표 2
위치데이터로부터 에러거리가 계산되며, 에러거리의 분산(variance)과 평균을 계산할 수 있다. 추측한 바와 같이, 3GBS가 더 큰 에러율을 나타냈으며, 에러의 크기도 더 컸고, 에러 크기의 최대값도 더 컸으며, 에러 크기의 표준편차도 더 컸다. Garmin GPSMAP62s 에서는 GPS 신호를 잃은 경우에도 과거의 속도에 근거하여 사용자의 위치를 계산하도록 되어 있는데, 이 때문에 실내에서도 매우 큰 에러를 나타냈다. 따라서 실내의 GPS 데이터는 의미있는 데이터가 아닌 것으로 생각할 수 있다. 실외에서의 GPS 데이터는 정교한 위치데이터를 얻기 위하여 충분한 수준의 정확성을 나타내며, 최대 에러 크기도 52 미터라는 합리적인 수준의 범위 내에 들어왔다.The error distance is calculated from the position data, and the variance and average of the error distance can be calculated. As expected, 3GBS showed a larger error rate, larger error size, larger maximum error size, and larger standard deviation of error size. In the Garmin GPSMAP62s, even if the GPS signal is lost, the user's position is calculated based on past speeds, resulting in very large errors indoors. Therefore, indoor GPS data can be thought of as not meaningful data. GPS data in the open air has a sufficient level of accuracy to obtain sophisticated location data, and the maximum error size is within a reasonable range of 52 meters.
이하 본 발명의 일 실시예에 따른 필터링 알고리듬을 설명한다. 표 3의 [알고리듬 1]은 실측된 위치데이터에 오류가 있는지 여부를 판단하고, 오류가 있는 위치데이터를 필터링하기 위한 것이다. 새로운 위치데이터 Pi+1 를 획득하면, 이 [알고리듬 1]은 Pi+1 를 필터링할지 여부를 결정할 수 있다.Hereinafter, a filtering algorithm according to an embodiment of the present invention will be described. [Algorithm 1] of Table 3 is for determining whether there is an error in the measured position data and filtering the position data having an error. Upon acquiring new position data P i + 1 , this [Algorithm 1] can determine whether to filter P i + 1 .
표 3
표 3의 [알고리듬 1]의 각 부분의 기능을 아래에 설명한다.The function of each part of [Algorithm 1] of Table 3 is demonstrated below.
* [알고리듬 1]의 3~6 번째 중 : n개 미만의 튜플이 존재하는 경우, 크기 n의 윈도우를 채우기 위한 완전한 데이터를 준비할 수 있다. 대신에 적은 수의 정보를 이용하여 불완전한 윈도우를 구성할 수 있다.* In the 3rd to 6th of [Algorithm 1]: If there are less than n tuples, complete data can be prepared to fill a window of size n. Instead, a small amount of information can be used to construct an incomplete window.
* [알고리듬 1]에서 8~10 번째 줄 : 가속도와 속도는 필터링을 위한 파라미터로 사용될 수 있으며 서로 다른 방식으로 사용될 수 있지만, 모두 조절 파라미터(throttling parameter)로서 간주될 수 있다. 속도 Vi+1 이 MAspeed + s×MSDspeed 로 표현되는 소위 '이동유의구간(moving significant interval)'의 값을 범위를 벗어나거나 지나친 가속도를 가진 튜플은 필터링된다. s는 정규분포의 유의수준(significant level)을 나타낸다.Lines 8-10 in Algorithm 1: Acceleration and velocity can be used as parameters for filtering and can be used in different ways, but they can all be considered as throttling parameters. Tuples with out-of-range or over-acceleration are filtered out of the so-called 'moving significant interval' values, where velocity V i + 1 is expressed as MA speed + s × MSD speed . s represents the significant level of the normal distribution.
* [알고리듬 1]에서 11~13 번째 줄 : 하나의 튜플의 속도가 너무 크면 MAspeed와 MSDspeed 값에 영향을 주게되며 신뢰구간(confidence interval)의 확장과 같은 필터링 에러를 초래하기 때문에, 필터링-아웃되어야 하는 튜플이 필터링-인(filter-in) 되는 결과가 나타난다. 이와 같이 하나의 튜플의 속도가 너무 크면, 가능한 빠른 속도의 변화를 포함하고 신뢰구간의 확장 오류를 피하기 위해, MAspeed(n) + s99.5 * MSDspeed = MAspeed(n) + 2.57 * MSDspeed를 이용하여 속도값을 수정할 수 있다. * Line 11 ~ 13 in Algorithm 1: If the speed of one tuple is too big, MAspeedAnd MSDspeed This affects the value and results in filtering errors, such as extending the confidence interval, resulting in the filter-in tuples to be filtered out. As such, if the speed of one tuple is too large, to include the change in speed as fast as possible and to avoid errors in extending the confidence interval, MAspeed(n) + s99.5 * MSDspeed= MAspeed(n) + 2.57 * MSDspeedYou can modify the speed using.
* [알고리듬 1]의 11~13 번째 줄에서 s99.5 : s99.5 = 2.57은 정규분포의 99.5%의 신뢰구간을 나타낸다. 이것은 이동윈도우에 대한 에러가 있는 속도의 영향을 감소시키는 조절 파라미터이다.* S in line 11-13 of Algorithm 199.5: s99.5= 2.57 represents a 99.5% confidence interval of the normal distribution. This is an adjustment parameter that reduces the effect of erroneous speed on the moving window.
* [알고리듬 1]에서 12 번째 줄 : 어떤 하나의 튜플이 수학식 1에 의하여 필터링 아웃(filtered out)되어야 하는 경우라고 하더라도, 이 튜플의 속도를 이동 윈도우에 반영하기 위하여 정규분포의 99.5% 신뢰구간 내에 있도록 제한(restriction) 또는 교정(calibration)하여, 이 튜플의 속도를 포함할 수 있다. 이는 속도의 빠른 변화에 대처하기 위해 이동윈도우가 빠른 속도값을 포함하여 업데이트 되도록 의도한 것이다. 즉, 오류가 없는 튜플이라고 하더라도 급격한 속도 변화가 있는 것은 필터링 아웃될 수 있다. 그러한 경우에, 튜플이 필터링되더라도, 이동윈도우는 이 튜플에 대한 용납할 수 있는 가능한 최대치의 속도 변화를 반영할 수 있다.Line 12 in Algorithm 1: 99.5% confidence interval of the normal distribution to reflect the speed of this tuple in the moving window, even if a tuple needs to be filtered out by Equation 1: It may be limited or calibrated to be within, to include the speed of this tuple. This is intended to update the mobile window with fast speed values to cope with rapid changes in speed. That is, even if there is an error-free tuple, a sudden speed change may be filtered out. In such a case, even if the tuple is filtered, the moving window may reflect the speed change of the maximum allowable for this tuple.
* [알고리듬 1]에서 11번째 줄 MINvelocity : 인간 보행은 보통 2.77m/s (10Km/h)보다 작은 속도 내에서 가능하며 또한 GPS 에러범위에 있기 때문에, 2.77m/s (10Km/h)보다 적은 속도는 필터링 아웃되지 않는다.* Line 11 MIN in [Algorithm 1]velocity: Since human walking is usually possible at speeds less than 2.77 m / s (10 km / h) and is in the GPS error range, speeds less than 2.77 m / s (10 km / h) are not filtered out.
* [알고리듬 1]에서 14번째 줄 MAXacceleration : 비현실적인 가속도를 가진 튜플들은 필터링 아웃된다.* MAX 14th line in [Algorithm 1]acceleration: Tuples with unrealistic acceleration are filtered out.
* [알고리듬 1]에서 12~16 번째 줄 : 일단 과도한 가속도를 갖는 튜플은 필터링 아웃되고, 이 튜플의 가속도 값은 MAXacceleration 으로 교정(calibration)되며, 속도값은 비현실적인 속도값의 영향을 무효화시키기(nullify) 위해 MAspeed(n)으로 교정된다. Lines 12-16 in Algorithm 1: Once a tuple with excessive acceleration is filtered out, the acceleration value of this tuple is calibrated with MAX acceleration , and the velocity value negates the effect of unrealistic velocity values. nullify) to correct for MA speed (n).
* 차량이 커다란 음의 가속도를 가지고 급하게 멈추는 것은 항상 가능하기 때문에, 음의 가속도 값들을 가진 튜플들은 에러가 없는 유효한 것으로 간주된다. 반면에, MAXacceleration보다 더큰 양의 가속도값을 가진 튜플들은 에러가 있는 것으로 간주된다. Because it is always possible for a vehicle to stop quickly with a large negative acceleration, tuples with negative acceleration values are considered valid without errors. On the other hand, tuples with positive acceleration values greater than MAX acceleration are considered to be in error.
[알고리듬 1]에서 2개의 변수인 n과 s는 사용자에 의해 설정될 수 있다. n은 윈도우 내의 튜플의 개수, 즉 윈도우의 크기이고, s는 필터링의 민감도 수준(즉, 정규분포의 유의수준)이다. 사용자 민감도 수준 s는 상대적으로 간단히 결정할 수 있다. 정규분포의 특성으로부터 적절한 신뢰구간을 갖는 s를 얻을 수 있다. 필터링을 위해 정규분포의 양의 영역만을 사용할 것이기 때문에, 95%의 신뢰구간에 대해서는 s=1.64로 설정하고, 99%의 신뢰구간에 대해서는 s=2.33으로 설정할 수 있다. 사용자들은 그들 자신의 목적에 따라 s를 결정할 수 있다. 예를 들어, 민감도 수준 s를 아래와 같이 선택할 수 있다. [표 2]는 기기가 움직이지 않을 때, 위치데이터 수집에 대한 보통의 에러율(error rate)을 보여준다. GPS의 경우에 대하여, 12.3%의 위치데이터에 에러가 존재하였고, 3GBS 셀룰러 위치검출 시스템에 대하여는 36.75%의 위치데이터에 에러가 존재하였다. 따라서 이 경우, GPS 데이터에 대하여는 s=1.16으로 설정하고, 셀룰러 위치검출 데이터에 대해서는 s=0.34로 설정할 수 있다.In
상술한 바와 같이 윈도우의 크기가 크면 트레일링 효과가 발생하기 때문에 이를 피하기 위하여 윈도우의 크기를 더 작게 할 수 있다. [알고리듬 1]에 의해 부정확한 속도 값이 교정(calibrate)되고, 비정상적인(abnormal) 가속도 값은 제한되며, 속도 값은 이동윈도우에 의해 산출된 평균속도로 대체될 수 있다. 이러한 교정 방식(calibration mechanism)에 따른 윈도우 크기의 효과를 살펴보기 위해 몇 가지 실험을 하였다. 첫 번째 실험에서는 윈도우 크기를 n = 5, 10, 25, 50, 100으로 선택하였고, 민감도 수준을 s=1.16으로 선택하여 실측된 위치데이터 중의 88%가 정확한 데이터라고 가정하고 필터링하였다. 윈도우 크기가 작은 경우 트레일링 효과가 제한되지만 속도변화에 따른 반응(reaction)이 더 유연한 결과를 얻었다. 첫 번째 실험에서 윈도우의 크기가 5 또는 10인 경우 좋은 결과를 얻었다.As described above, since the trailing effect occurs when the size of the window is large, the size of the window may be made smaller. By [Algorithm 1], the incorrect speed value is calibrated, the abnormal acceleration value is limited, and the speed value can be replaced by the average speed calculated by the moving window. Several experiments were conducted to investigate the effect of window size on the calibration mechanism. In the first experiment, the window size was selected as n = 5, 10, 25, 50, 100, and the sensitivity level was selected as s = 1.16, and it was assumed that 88% of the measured position data were accurate data. The smaller window size limits the trailing effect, but results in a more flexible response to speed changes. In the first experiment, we found good results when the window size was 5 or 10.
두 번째 실험에서는 연속적인 에러의 효과를 고려하였다. 연속적인 에러들은 본 알고리듬에서 사용되는 이동평균과 이동표준편차에 영향을 줄 수 있다. 실제 실험에서 사용한 위치검출 데이터 세트에서 최대 4개의 연속적인 에러가 존재하였다. 따라서 두 번째 실험에 대하여는 n=5로는 부족하다는 결론을 내렸고, n=10인 경우에 연속적인 에러에 대하여 대응할 수 있으며 더 큰 윈도우 크기에 의한 테일링 효과(tailing effect)를 줄일 수 있다고 결론내렸다. 따라서 이 실험에 있어서 윈도우 크기는 최종적으로 10으로 결정되었다. 더 많은 개수의 연속적인 에러를 경험한다면 이에 적합한 윈도우 크기를 선택하거나 윈도우의 크기를 동적으로 증가시킬 수 있다.In the second experiment, we consider the effects of continuous errors. Successive errors can affect the moving average and moving standard deviation used in this algorithm. There were up to four consecutive errors in the location data set used in the actual experiment. Therefore, for the second experiment, we concluded that n = 5 is not sufficient, and we conclude that n = 10 can cope with continuous errors and reduce the tailing effect due to the larger window size. Thus, in this experiment, the window size was finally determined to be 10. If you are experiencing a greater number of consecutive errors, you can choose a window size that is suitable for this or dynamically increase the size of the window.
본 발명에 따른 [알고리듬 1]을 이용한 다양한 실험 결과 두 가지 결론을 얻을 수 있다. 첫째, 윈도우 크기와 민감도 수준을 적절히 선택하면 적절한 필터링 결과를 얻을 수 있다. 둘째, 윈도우 크기와 민감도 수준의 여러가지 조합에 따라, 모든 위치검출 데이터 세트에 대해 필터링을 수행할 수 있다. 표 4는 파라미터들의 각 조합에 대하여 필터링-아웃된 튜플들의 백분률을 나타낸다. 본 발명의 일 실시예에 따른 알고리듬의 사용자는 그들의 환경에 따라 표 4에 따른 윈도우 크기와 민감도 수준을 선택할 수 있다. [알고리듬 1]에서 윈도우 크기, 민감도 수준, 최대 속도 및 최대 가속도와 같은 알고리듬의 다양한 파라미터들은 사용자에 의해 정의될 수 있다. 사용자가 MAXaccelertaion, s99.5(=최대 민감도 수준), 및 MINvelocity(=필터링을 위한 속도의 최소 임계값)와 같은 알고리듬의 상수(constant)를 변화시키는 것도 가능하다. Two conclusions can be obtained from various experiments using [Algorithm 1] according to the present invention. First, proper window size and sensitivity levels can provide adequate filtering results. Second, filtering can be performed on all of the location data sets according to various combinations of window sizes and sensitivity levels. Table 4 shows the percentage of filtered-out tuples for each combination of parameters. The user of the algorithm according to an embodiment of the present invention can select the window size and sensitivity level according to Table 4 according to their environment. In [Algorithm 1], various parameters of the algorithm such as window size, sensitivity level, maximum speed, and maximum acceleration can be defined by the user. It is also possible for the user to change the constants of the algorithm, such as MAX accelertaion , s 99.5 (= maximum sensitivity level), and MIN velocity (= minimum threshold of speed for filtering).
표 4
[알고리듬 1]은 아래와 같은 사항을 고려하여 변형할 수 있다.
첫째, 윈도우의 크기를 하나의 윈도우 내의 튜플들의 개수로 정의하는 대신에 윈도우가 포함하는 시간 간격으로 정의할 수 있다. 속도는 시간의 함수라는 점을 고려하면, 위치데이터를 규칙적으로 수집할 때에 이 변형된 방식이 효과적이며 또한 정확할 것이라는 것을 알 수 있다. First, instead of defining the size of the window as the number of tuples in one window, it can be defined by the time interval included in the window. Considering that speed is a function of time, it can be seen that this modified approach will be effective and accurate when collecting location data regularly.
둘째, 윈도우 크기를 동적으로 교정(dynamic calibration)할 수 있다. [알고리듬 1]로부터 변형된 다른 실시예에서는 연속적인 에러의 개수에 따라 윈도우 크기를 동적으로 증가 또는 감소시킬 수 있다. 일단 연속적인 에러의 개수가 많다는 것을 발견하면, 연속적인 에러가 이동평균과 이동표준편차에 미치는 영향을 최소화하기 위하여 윈도우 크기를 증가시킬 수 있다. 만일 연속적인 에러의 개수가 작은 경우에는 윈도우 크기를 감소시킴으로써 급격한 속도 변화에 대해 적절한 반응을 보일 수 있고 필터링을 위한 계산량을 감소시킬 수 있다.Second, it is possible to dynamically calibrate the window size. In another embodiment modified from
셋째, [알고리듬 1]을 실시간 알고리듬이 아닌 의사 실시간 알고리듬(pseudo real time)으로 변형할 수 있다. 윈도우 크기 n에 대해 우리는 (n+1)번째 튜플을 필터링하는 것 대신에 윈도우의 대략 중간에 있는번째 튜플을 필터링할 수 있다. 이 방법은 완벽하게 실시간으로 구현될 수 없을지라도 언더 필터링과 오버 필터링의 경향을 줄일 수 있다. Third, [Algorithm 1] can be transformed into a pseudo real time algorithm rather than a real time algorithm. For window size n, we're going to be in the middle of the window instead of filtering the (n + 1) th tuple The first tuple can be filtered. This method can reduce the tendency of underfiltering and overfiltering even though it cannot be implemented in full real time.
넷째, [알고리듬 1]에 인터폴레이션(interpolation) 기법을 추가할 수 있다. 아래 표 5에 제시한 [알고리듬 2]는 인터폴레이션을 위한 단계를 [알고리듬 1]에 추가한 것이다([알고리듬 2]의 18~21번째 행 참조). 새로운 튜플(인덱스 i+1)을 획득하였을 때에, 현재 존재하는 윈도우 내의 마지막 튜플(인덱스 i)이 필터링 아웃된 것으로 확인된다면, 이 마지막 튜플의 속도를 인터폴레이션된 값으로 대체할 수 있다. 이러한 인터폴레이션을 이용하면, 튜플의 필터링을 위해 도입된 이동윈도우를 더 정밀하게 제공할 수 있다([알고리듬 2]의 18~21행 참조). 즉, [알고리듬 2]의 가장 마지막 부분에 의해, 새로운 튜플을 얻을 때마다 윈도우 내의 필터링 아웃되었다고 마킹된 마지막 튜플을 인터폴레이션 할 수 있다. 좀 더 정밀한 근사화를 위한 이동윈도우 구성을 위한 또 다른 변형예는, 윈도우의 대략적 중간지점에 있는 번째 튜플을 윈도우 내의 n개의 튜플들을 이용하여 인터폴레이션 하는 것이다. 더 정밀하게 추정(estimation)하기 위하여 n개의 튜플들로부터 추정된 점근 곡선(asymptotic curve)을 이용하여 윈도우 내의 중앙 튜플(middle tuple)을 인터폴레이션하여 더 정밀한 인터폴레이션을 가능하게 할 수 있다. 그러나 이 때문에 계산 오버헤드(computational overhead)가 발생할 수 있기 때문에 이동형 사용자기기에 적용하기 어려울 수 있다.Fourth, an interpolation technique can be added to [Algorithm 1].
표 5
도 1은 본 발명의 일 실시예에 따른 속도보정 알고리듬을 설명하기 위한 것이다.1 is for explaining a speed correction algorithm according to an embodiment of the present invention.
도 1의 가로축은 연속적으로 얻은 튜플의 인덱스(즉, 타임스탬프)를 나타내며, 세로축은 메모리에 저장된 각 튜플에 따른 속도이다. 도 1에서는 이동윈도우의 크기 n이 10인 것으로 예시되어 있다. 이동윈도우 내에 존재하는 10개의 속도들로부터 MAspeed와 MAspeed + s99.5 × MSDspeed를 계산할 수 있으며, 이 값의 예가 도 1에 표시되어 있다. 도 1에서 인덱스 [i+1]에서의 가속도 ai+1는 MAXacceleration 보다 큰 것으로 가정하였다. 따라서, 인덱스 [i+1]에서의 속도 Vi+1는 MAspeed으로 보정되었다([알고리듬 2]의 제15행). 도 1에서 인덱스 [i]에 대한 이동 데이터 튜플 Pi는 [알고리듬 2]에 따라 이미 필터링 아웃된 것으로 마킹되었다고 가정하였다([알고리듬 2]의 제18행). 어떤 튜플이 필터링 아웃되었다는 것은 그 튜플이 나타내는 위치에 오류가 있다고 판단했다는 뜻이지만, 그 튜플로부터 계산된 속도나 가속도 값은 여전히 저장되어 있을 수 있다. 따라서 [알고리듬 2]의 제19행에 따라, 이동 데이터 튜플 Pi의 속도 Vi는 이동 데이터 튜플 Pi-1의 속도 Vi-1과 이동 데이터 튜플 Pi+1의 속도 Vi+1를 이용하여 선형 인터폴레이션 된 값으로 대체된다. 이와 같이 [알고리듬 2]에 의하면 새로 획득한 튜플의 속도는 [알고리듬 2]의 제10~17행에 의해 1차적으로 교정되고, 그 후 또 다른 새로운 튜플이 획득될 때에 이 교정된 속도는 [알고리듬 2]의 제18~21행에 의해 2차적으로 교정될 수 있다. 임의의 튜플의 속도에 대하여 상술한 1차적 교정과 2차적 교정이 모두 일어나거나, 둘 중 하나만 일어나거나 또는 전혀 일어나지 않을 수 있음을 이해할 수 있다.The horizontal axis of FIG. 1 represents an index (ie, a timestamp) of tuples obtained continuously, and the vertical axis is a speed according to each tuple stored in a memory. In FIG. 1, the size n of the moving window is illustrated as 10. The MA speed and MA speed + s 99.5 × MSD speed can be calculated from the 10 speeds present in the moving window, an example of which is shown in FIG. In FIG. 1, it is assumed that acceleration a i + 1 at index [i + 1] is greater than MAX acceleration . Therefore, the speed V i + 1 at the index [i + 1] was corrected to MA speed (row 15 of [Algorithm 2]). In FIG. 1, it is assumed that the moving data tuple P i for the index [i] is marked as already filtered out according to [Algorithm 2] (
상술한 튜플 Pi의 속도 Vi가 인터폴레이션되어 교정된 값은 [알고리듬 2]의 제11행에 의해 교정된 값( MAspeed + s99.5 × MSDspeed )보다 작은 것이 보통이지만, 그 다음 타임스탬프에서의 이동유의구간 또는 교정된 값에 따라 더 크게 나올 수도 있다. Speed V i is the interpolation with the calibration value of the aforementioned tuple P i in [Algorithm 2], but little is usually less than the value (MA speed + s 99.5 × MSD speed) corrected by the second line 11, in the next time stamp It may be larger depending on the interval of movement or the corrected value of.
[알고리듬 2]에서는 새롭게 획득한 이동 데이터 튜플(Pi+1) 및 이동윈도우에 존재하는 가장 최신의 이동 데이터 튜플(Pi)에 대한 처리가 이루어졌다. 이와 달리 본 발명의 다른 실시예에서는 이동윈도우 내의 임의의 타임 스탬프에 대한 이동 데이터 튜플(Pm)에 대한 처리를 수행하도록 변형될 수 있다. 이를 위하여 [알고리듬 2]의 제18~21행을 표 6과 같이 변형할 수 있다.In
표 6
도 2는 본 발명의 다른 실시예에 따라, 최소 자승법으로 속도값을 인터폴레이션하는 속도보정방법을 설명하기 위한 것이다.2 is a view for explaining a speed correction method of interpolating a speed value by a least square method according to another embodiment of the present invention.
도 2에서는 [알고리듬 2]의 제18행 내지 제21행에 의한 인터폴레이션 방법으로부터 변형된 인터폴레이션 방법을 사용한 결과를 나타낸다. 도 2에서는 이동 윈도우 내의 복수 개의 데이터를 이용한 비선형 인터폴레이션 방법을 이용한다. 예컨대, 이동 윈도우 내에 포함된 복수 개의 데이터와 최소 자승법을 이용하여 근사화한 점근선에 해당하는 값을 이용하여 인덱스 [i-4]를 갖는 이동 데이터 튜플을 보정할 수 있다.2 shows the results of using the modified interpolation method from the interpolation method according to the 18th to 21st lines of [Algorithm 2]. In FIG. 2, a nonlinear interpolation method using a plurality of data in a moving window is used. For example, a moving data tuple having an index [i-4] may be corrected using a plurality of data included in the moving window and a value corresponding to an asymptote approximated using a least square method.
도 3 내지 도 5는 본 발명의 다른 실시예에 따른 위치튜플 필터링 방법, 인터폴레이션을 이용한 속도 추정방법, 및 속도에러 교정방법을 설명하기 위한 것이다.3 to 5 illustrate a position tuple filtering method, a speed estimation method using interpolation, and a speed error correction method according to another embodiment of the present invention.
도 3 내지 도 5의 가로축은 타임스탬프의 인덱스를 나타내며 세로축은 속도를 나타낸다. 참조번호 100은 해당 타임스탬프에서 실측된 속도를 나타내며, 참조번호 101은 본 명세서에 공개한 알고리듬 중 하나를 사용하여 필터링 아웃한 튜플로부터 얻은 실측속도를 나타낸다. 도 3 내지 도 5에서는 윈도우 크기가 10인 예를 나타내었다. 참조번호 103은 윈도우 내의 속도의 평균값을 나타내며 참조번호 102는 상술한 이동유의구간(moving significant value)의 값(102)을 나타낸다. 도 3에 나타낸 참조번호 101의 위치튜플은, 그 속도가 상기 이동유의구간의 값(102)보다 크기 때문에 필터링 아웃되었다.3 to 5 represent the index of the time stamp and the vertical axis represents the speed. Reference numeral 100 denotes the measured velocity in the corresponding timestamp, and
도 4의 참조번호 101(인덱스 i)은 본 발명의 알고리듬에 따라 필터링 아웃된 위치튜플로부터 얻은 실측속도를 나타낸다. 도 4의 참조번호 200은 인덱스 i의 속도값이 그 전후의 인덱스 i-1 및 인덱스 i+1의 속도값들에 의해 선형 인터폴레이션되어 제공된 속도의 추정값(estimated value)을 나타낸다. Reference numeral 101 (index i) of FIG. 4 represents an actual velocity obtained from the filtered position tuple according to the algorithm of the present invention.
도 5의 경우에는 인덱스 i 및 인덱스 i+1의 튜플이 모두 필터링 아웃된 경우를 나타낸다. 이때, 인덱스 i의 실측속도(인덱스 i의 참조번호 101 참조)가 이동유의구간의 값보다 크기 때문에 소정의 크기(인덱스 i의 참조번호 300 참조)로 이미 교정(calibration)되었다. 그 다음, 인덱스 i+1의 실측속도(인덱스 i+1의 참조번호 101 참조) 역시 이동유의구간의 값보다 크기 때문에 소정의 크기로 교정(calibration)된다(인덱스 i+1의 참조번호 300 참조). 그 다음, 인덱스 i의 튜플은 필터링 아웃되었기 때문에, 인덱스 i의 속도는 인덱스 i+1과 인덱스 i-1의 속도를 이용하여 인터폴레레이션 된다. 말하자면, 본 발명의 일 실시예에서는, 속도의 교정(calibration)이 속도의 추정(estimation)을 정확하게 하기 위한 전단계로서 이용될 수도 있다.In FIG. 5, the tuples of the index i and the index i + 1 are both filtered out. At this time, since the measured speed of the index i (see
[알고리듬 2]를 이용하면 실측된 튜플 중 필터링 아웃된 튜플에 대한 속도를 추정할 수 있지만, 필터링 아웃된 튜플의 위치값은 단순히 제거된 상태에 불과하다. 아래 표 7 및 표 8에 나타낸 [알고리듬 3]을 이용하면 상기 필터링 아웃된 튜플에 대한 위치값을 추정할 수 있다. [알고리듬 2]의 속도 추정에서는 양(+)의 속도값만을 고려하면 되었지만, 이에 비하여 위도와 경도에는 방향성이 존재하기 때문에 [알고리듬 3]에 추가된 위치 추정에서는 위도와 경도의 음(-)의 차이(difference)를 무시할 수 없다는 차이점이 있다.Using
표 7
표 8
이하 상기 [알고리듬 3]의 내용을 이용하여 본 발명의 일 실시예에 따른 위치교정방법을 설명한다. Hereinafter, a position correction method according to an embodiment of the present invention will be described using the contents of
[알고리듬 3]에서는 통상의 거리오류를 허용하기 위한 파라미터 ETD가 도입된다(4행). 통상의(usual) 포지셔닝 시스템의 CEP(Circular Error Probable) 개념으로부터, 예컨대 SA가 활성화된 GPS 시스템에 대하여 ETD를 15m로 설정할 수 있다. 물론 포지셔닝 시스템의 정확성에 따라 ETD의 값을 변경할 수도 있다. ETD에 의해 최저속도 및 위도와 경도의 최소 차이(difference)가 결정될 수 있으며, 이동 표준편차에 영향을 줄 수 있으며, 그 결과 이동 유의구간이 0이 아닌 값을 갖도록 할 수 있다. 즉, ETD를 이용함으로써 포지셔닝 시스템의 CEP라는 개념을 본 발명의 일 실시예에 따른 [알고리듬 3]에 도입할 수 있으며, 포지셔닝 시스템의 정확도 내의 작은 가능한 속도 오류 때문에 튜플들을 오버필터링(overfiltering)하는 것을 회피할 수 있다.In
[알고리듬 3]에 따르면, [알고리듬 2]의 속도추정 프로세스와 비슷하게, 필터링 된 튜플에 대하여 위치추정 프로세스를 도입할 수 있다. [알고리듬 3]에 포함된 위치추정 프로세스의 주된 다른 점은 위도와 경도의 방향성에 있다. 즉, 속도값에 대해서는 양의 값만을 고려하면 되었으나, 위치를 추정하기 위해서는 위도와 경도의 음의 차이(difference)를 무시할 수 없다. [알고리듬 3]은 위치 추정에 대한 전체 프로세스를 나타낸 것이며, 이는 [알고리듬 2]의 속도 추정을 위한 전체 프로세스에 대응한다.According to [Algorithm 3], similar to the velocity estimation process of [Algorithm 2], a position estimation process can be introduced for the filtered tuple. The main difference in the location estimation process included in
[알고리듬 3]의 Vlat와 Vlon은 각각 위도와 경도의 차이(difference)를 지칭한다. [알고리듬 3]은 Vlat와 Vlon의 이동 평균을 계산한다. 하나의 튜플이 과다한 속도에 의해 필터링되는 경우 이는 위치의 차이가 과다함을 나타낸다. 일단 이렇게 되면, 올바른 위치를 추정할 필요가 있다. 가속도 오류가 발생한 경우에는, 속도에 대하여 수행한 것과 마찬가지로, 위치 데이터를 차이값의 이동평균(MA of difference) 값으로 보정한다(25 및 26행). 마지막으로, 속도 추정에 대하여 수행한 바와 마찬가지로, 이동 윈도우의 끝에서 위도와 경도에 대하여 인터폴레이션한다(31 및 32행). 그리고 차이값(difference)의 방향성도 보존된다(25, 26, 31, 및 32행).Vlat and Vlon in [Algorithm 3] refer to the difference between latitude and longitude, respectively.
4행에서 위치 튜플의 시간 간격이 커지는 경우 ETD에 의한 MINspeed 값이 매우 작아지는 경우가 있다. 이 때 MINspeed 값의 일정 하한선을 보장하기 위하여 4행의 코드를 "Set MINspeed = (ETD/(ti+1-ti)>MINSPEED)?ETD/(ti+1-ti):MINSPEED"로 변경 가능하다. 여기서 MINSPEED는 발명의 사용자가 임의로 정한 최저 속도이다.In
도 6은 실측된 데이터로부터 얻은 속도에러를 설명하기 위한 것이고, 도 7은 본 발명의 일 실시예에 따른 인터폴레이션 기법에 따른 속도보정을 적용하여 검출한 속도에러를 설명하기 위한 것이다. 각각의 도면은 실측 속도(original speed), 가속도, 이동유의구간, 교정속도(calibrated speed), 추정속도(estimated speed), 및 검출된 가속도 에러에 관한 정보를 포함한다. 가속도 에러는 역삼각형 모양으로 도시된다. 다만, 도 6은 인터폴레이션된 속도에 관한 정보를 포함하지 않는다. 속이 빈 사각형(empty rectangle)은 본 발명의 일 실시예에 따른 교정기법(calibration mechanism)에 따라 제한된 속도를 나타내며, 검은색 사각형(dark rectangle)은 인터폴레이션 기법에 의한 추정속도를 나타낸다. y축의 속도는 m/s 단위이고, x축은 하루 중의 시각을 나타낸다. 13:33:06 근처에서 실측 속도가 이동 유의 구간의 바깥에 위치하는 에러가 발견되었음에도 불구하고, 본 발명의 일 실시예에 따른 알고리듬은 가능한 속도값을 잘 추정하였다. 2012년 12월 18일 13:32:59에 가속도 제한에 의한 명백한 에러가 발행하였지만, 본 발명의 교정방식에 의해 적절한 범위 안으로 속도 오류가 제한되었으며, 그 다음에는 속도 추정 방식에 의해 속도가 보정된다. 오류 속도를 교정하는 방법보다는, 인터폴레이션 방식에 의해 속도를 추정하는 방법이 이동 윈도우에 미치는 영향을 더 줄일 수 있다. 따라서 도 7에서 인터폴레이션을 뒤따르는 이동 유의 구간은 차이점을 나타내는데, 이는 인터폴레이션된 속도 값에 의해 이동 윈도우의 통계값이 달라지기 때문이다. 13:33:04에서의 차이점은 상당히 크다. FIG. 6 illustrates speed errors obtained from measured data, and FIG. 7 illustrates speed errors detected by applying speed correction according to an interpolation technique according to an exemplary embodiment of the present invention. Each figure contains information about the actual speed, the acceleration, the section of motion, the calibrated speed, the estimated speed, and the detected acceleration error. Acceleration errors are shown in inverted triangle shapes. 6 does not include information on the interpolated speed. An empty rectangle represents a limited speed according to a calibration mechanism according to an embodiment of the present invention, and a black rectangle represents an estimated speed by an interpolation technique. The velocity on the y-axis is in m / s, and the x-axis represents time of day. Although an error was found in which the measured speed was located outside the moving significance section near 13:33:06, the algorithm according to an embodiment of the present invention estimated the possible speed value well. On December 18, 2012 13:32:59, a clear error due to the acceleration limitation was issued, but the speed error was limited to an appropriate range by the calibration method of the present invention, and then the speed was corrected by the speed estimation method. . Rather than correcting the error speed, the method of estimating the speed by the interpolation method can further reduce the influence on the moving window. Therefore, in FIG. 7, the moving significance interval following the interpolation shows a difference, since the statistical value of the moving window varies according to the interpolated speed value. The difference at 13:33:04 is quite large.
표 9 내지 표 11은 본 발명의 다른 실시예에 따른 위치추정에 관한 4번째 알고리듬을 설명하기 위한 것이다.Tables 9 to 11 are for explaining the fourth algorithm for position estimation according to another embodiment of the present invention.
표 9
표 10
표 11
[알고리듬 4]는, [알고리듬 4]의 라인 2, 5, 6, 17~25, 28~32, 38을 제외하고는 [알고리듬 3]과 동일하다. 이하, [알고리듬 4]의 라인 5, 6, 17~25, 28~32, 38에 대하여 설명한다.[Algorithm 4] is the same as [Algorithm 3] except
*[알고리듬 4]의 라인 2: 연속적인 에러의 개수를 세기 위하여 NCE(Number of Continuous Error)라는 파라미터를 도입하고 그 값을 0으로 초기화한다.*
*[알고리듬 4]의 라인 5: [알고리듬 4]의 다른 부분에 의해 V가 다른 값으로 변경될 수 있다. 예컨대 [알고리듬 4]의 라인 35, 39, 45에서 V가 다른 교정된 값이나 추정된 값으로 대체될 수 있다. 그런데 [알고리듬 4]의 라인 20에서는, 이 대체된 추정값을 원래값(=실측값에서 계산된 후 저장된 값)으로 다시 대체할 수 있는데, 이러한 작업을 수행하기 위하여 라인 5에서는 V의 원래값을 따로 저장해 둔다.* Line 5: [Algorithm 4] V can be changed to another value by another part of [Algorithm 4]. For example, in lines 35, 39, and 45 of
*[알고리듬 4]의 라인 6: 최소속도에 관한 MIN
speed 를 ET
D /(t
i
+1-t
i ) 미리 결정된 최소값 MINSPEED 중 더 작은 값으로 설정한다. 즉 이동 표준 편차의 최소값을 결정 해준다.*
*[알고리듬 4]의 라인 17, 18: [알고리듬 4]의 다른 부분에 의해 lat과 lon이 다른 값으로 변경될 수 있다. 예컨대 [알고리듬 4]의 라인 41, 42, 47, 48에서 lat과 lon이 다른 교정된 값이나 추정된 값으로 대체될 수 있다. 그런데 [알고리듬 4]의 라인 21, 22에서는, 이 대체된 값을 원래값으로 다시 대체할 수 있는데, 이러한 작업을 수행하기 위하여 라인 17, 18에서는 lat과 lon의 원래값을 따로 저장해 둔다.
*[알고리듬 4]의 라인 19: [알고리듬 4]의 라인 19는 [알고리듬 4]의 라인 20~22에 나타낸 백트래킹을 수행하기 위한 조건을 나타낸다. 이때 3가지 조건을 검토하는데, 첫째, 백트래킹 검토 대상 타임스탬프(=i-1)에서의 튜플(P
i
-1)이 필터링되었거나 인터폴레이션되었어야 하고, 둘째, 백트래킹 검토 대상 타임스탬프(=i-1)에서의 튜플(P
i
-1)이 가속도 오류에 의해 필터링(accel_filtered)되지 않았어야 하고, 셋째, 백트래킹 검토 대상 타임스탬프(=i-1)에서의 튜플의 원래 속도(V
i-1,original )가 타임스탬프 [i-n+1, ..., i]로 정의되는 윈도우에 의해 결정되는 이동유의구간(MA
speed + s × MSD
speed )에 속해 있어야 한다는 조건을 만족해야 한다.* Line 19 of [Algorithm 4]: Line 19 of [Algorithm 4] represents a condition for performing backtracking shown in
*[알고리듬 4]의 라인 20~24: [알고리듬 4]의 라인 20~22에서는 [알고리듬 4]의 라인 19의 조건이 만족되는 경우에, V, lon, lat 값을 원래값으로 다시 대체하도록 되어 있다. 즉, [알고리듬 4]의 다른 부분에 의해 교정되거나 추정되었던 V, lon, lat 값보다 원래의 V, lon, lat 값이 더 정확한 것으로 판단하여, 실측 데이터로 복귀시킨다(백트래킹, backtracking). 백트래킹이 일어나는 경우에는, 라인 23에서 NCE를 0으로 초기화 하고, 라인 24에서 윈도우 크기 n을 감소시킨다. 단, 윈도우 크기 n은 최소값 IWS보다 작을 수 없다.* Lines 20 to 24 of [Algorithm 4]:
*[알고리듬 4]의 라인 28, 29: 튜플 P i +1이 필터링되는 경우에는 라인 28에서 NCE를 증가시킨다. 즉 연속적 에러의 개수를 증가시킨다. 그리고 라인 29에서는 윈도우 크기 n을 증가시킨다. 단, 윈도우 크기 n은 최대값 MWS보다 클 수 없다.Lines 28 and 29 of [Algorithm 4]: Increase NCE on line 28 if the tuple P i +1 is filtered. That is, to increase the number of consecutive errors. In line 29, we increase the window size n. However, the window size n cannot be larger than the maximum value MWS .
*[알고리듬 4]의 라인 31, 32: 튜플 P i +1이 필터링되지 않은 경우에는 라인 31에서 NCE를 0으로 초기화 한다. 그리고 라인 32에서는 윈도우 크기 n을 감소시킨다. 단, 윈도우 크기 n은 최소값 IWS보다 작을 수 없다.* Lines 31 and 32 of [Algorithm 4]: If tuple P i +1 is not filtered, initialize NCE to 0 in line 31. And reduce the window size n in line 32. However, the window size n cannot be smaller than the minimum value IWS .
*[알고리듬 4]의 라인 38: 새로 측정된 가속도가 최대가속도보다 큰 경우 새로 실측된 튜플을 필터링하되, 가속도 오류에 의한 필터링(accel_filtered)이라고 기록한다.* Line 38 of [Algorithm 4]: If the newly measured acceleration is greater than the maximum acceleration, filter the newly measured tuple, and record it as accel_filtered.
도 8은 상용의 위치검출장치인 iPhone과 Garmin을 이용하여 실측한 속도를 나타낸 것이다. 이 실측 실험에서 속도가 시간에 따라 연속적인 값을 가지고 변화하였지만, iPhone과 Garmin의 실측 데이터에서는 갑작스런 속도의 증감이 때때로 일어나는 것을 확인할 수 있으며, 이는 오류에 해당한다.Figure 8 shows the speed measured using a commercial position detection device iPhone and Garmin. In this experiment, the speed changes with a continuous value over time, but the actual data of iPhone and Garmin show that the sudden increase and decrease of the speed sometimes occurs, which is an error.
도 9 및 도 10은 상술한 본 발명의 실시예에서 설명한 이동유의구간(Moving significant interval), 가속도 에러 검출(Acceleration error detected), 및 교정속도(Calibrated speed)의 개념을 적용하여 도출한 그래프이다. 도 9는 윈도우 크기를 5로 설정한 것이고, 도 10은 윈도우 크기를 100으로 설정한 결과를 나타낸다. 도 9 및 도 10은 2012년 2월 27일에 획득한 287개의 실측위치 데이터를 이용한 것이다.9 and 10 are graphs derived by applying the concepts of a moving significant interval, acceleration error detected, and calibrated speed described in the above-described embodiment of the present invention. 9 shows that the window size is set to 5, and FIG. 10 shows the result of setting the window size to 100. FIG. 9 and 10 use 287 measured position data acquired on February 27, 2012.
도 9와 같이 윈도우 크기가 작은 경우(n=5), 이동유의구간과 교정속도가 속도의 변화를 민감하게 반영한다. 그러나 도 10과 같이 윈도우 크기가 큰 경우(n=100), 테일링 효과에 의하여 이동유의구간과 교정속도가 속도 변화를 민감하게 반영하지 못하는 것을 알 수 있다.When the window size is small as shown in FIG. 9 (n = 5), the moving section and the correction speed sensitively reflect the change in speed. However, as shown in FIG. 10, when the window size is large (n = 100), it can be seen that the moving section and the correction speed do not sensitively change the speed due to the tailing effect.
도 11은 [알고리듬 4]에 따라 가공된 데이터의 예를 나타낸 것이다. 이 그래프는 2012년 8월 28일에 실측한 9개의 위치데이터를 이용하여 생성한 것으로서, 필터링된 원래 속도(filtered original speed), 이동유의구간(moving significant interval), 가속도(acceleration), 가속도 에러 검출(acceleration error detected), 인터폴레이션된 속도(interpolated speed), 교정속도(calibrated speed), 및 백트래킹에 의해 재생된 속도(revived)에 관한 정보를 포함하고 있다. 시각 08:49:54에서, 필터링된 원래 속도는 이동유의구간의 범위를 벗어나 있을 뿐만 아니라 가속도 에러가 검출되어 있는 상태이므로, 인터폴레이션된 속도를 그대로 유지하고 있다. 반면, 시각 08:49:56 및 시각 08:49:59에서는 원래 속도가 이동유의구간의 범위에 속해 있으며, 가속도 에러가 검출되지 않았기 때문에 [알고리듬 4]에 의해 인터폴레이션된 속도를 대체하여 재생되었음을 확인할 수 있다.11 shows an example of data processed according to [Algorithm 4]. This graph was created using nine position data measured on August 28, 2012, and it detects filtered original speed, moving significant interval, acceleration, and acceleration error. (acceleration error detected), interpolated speed, calibrated speed, and revived speed by backtracking. At time 08:49:54, the filtered original velocity is not only out of the range of movement mean but acceleration error is detected, thus maintaining the interpolated velocity. On the other hand, at time 08:49:56 and time 08:49:59, since the original speed is in the range of movement significance and acceleration error was not detected, it was confirmed that the playback was replaced by the interpolated speed by [Algorithm 4]. Can be.
이하, 본 발명의 일 실시예에 따른 위치교정방법을 [알고리듬 4]를 참조하여 설명한다.Hereinafter, a position correction method according to an embodiment of the present invention will be described with reference to [Algorithm 4].
위치정보 수집장치로부터 수집한 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 처리하기 위하여 후술하는 단계를 수행할 수 있다.In order to process information about a tuple including latitude, longitude, and a timestamp collected from the location information collecting device, the following steps may be performed.
단계(S11)에서, 타임스탬프[i+1]에서의 속도[i+1](Vi+1)에 오류가 있는지 여부를 결정할 수 있다(라인 34 참조). In step S11, it may be determined whether there is an error in the speed [i + 1] (V i + 1 ) at the time stamp [i + 1] (see line 34).
단계(S12)에서는, 단계(S11)에서 속도[i+1]에 오류가 있는 것으로 판단된 경우(V i +1 ≥ MA speed + s 99.5 × MSD speed ), 속도[i+1]를 미리 교정(calibration) 또는 제한(restriction)한다(라인 35 참조). 이때, 속도[i+1]가 미리 결정된 최저속도(MINspeed) 이하인 경우에는 속도[i+1]에 오류가 없는 것으로 판단한다(라인 35 참조). 이때, 상기 최저속도는 허용오차거리(error tolerance of distance, ETD) 또는 미리 설정한 최소값(MINSPEED)에 의해 결정될 수 있다(라인 6 참조).In step S12, if it is determined in step S11 that there is an error in speed [i + 1] ( V i +1 ≥ MA speed + s 99.5 × MSD speed ), the speed [i + 1] is corrected in advance. Calibrate or restrict (see line 35). At this time, if the speed [i + 1] is less than or equal to the predetermined minimum speed (MIN speed ), it is determined that there is no error in the speed [i + 1] (see line 35). In this case, the minimum speed may be determined by an error tolerance of distance (ET D ) or a predetermined minimum value MINSPEED (see line 6).
단계(S13)에서는, 타임스탬프[i+1]에서의 가속도[i+1](ai+1)에 오류가 있는지 여부를 결정한다(라인 37 참조). 이때, 가속도[i+1]가 미리 설정된 최대가속도(MAXacceleration) 이상인 경우에는 상기 가속도[i+1]에 오류가 있는 것으로 결정할 수 있다(라인 37 참조).In step S13, it is determined whether there is an error in the acceleration [i + 1] (a i + 1 ) at the time stamp [i + 1] (see line 37). In this case, when the acceleration [i + 1] is greater than or equal to the preset maximum acceleration (MAX acceleration ), it may be determined that there is an error in the acceleration [i + 1] (see line 37).
단계(S14)에서는, 단계(S13)에서 가속도[i+1]에 오류가 있는 것으로 판단된 경우, 위도[i+1] 및 경도[i+1]를 미리 교정하도록 되어 있다(라인 41, 42 참조). 이때, 타임스탬프[i]까지의 평균경도차이(MAVlongitude) 및 타임스탬프[i]에서의 경도[i](loni)를 이용하여 경도[i+1]를 교정하고, 타임스탬프[i]까지의 평균위도차이(MAVlatitude) 및 타임스탬프[i]에서의 위도[i](lati)를 이용하여 위도[i+1]를 교정할 수 있다(라인 41, 42 참조). 여기서 알고리듬 4의 16행에서 설정되는 평균경도차이(MAVlongitude)는 14행에서 설정되는 각 타임스탬프에서의 경도차이를 시간에 따라 평균한 값을 의미하며, 13행에서 설정되는 평균위도차이(MAVlatitude)는 11행에서 설정되는 각 타임스탬프에서의 위도차이를 시간에 따라 평균한 값을 의미한다.In step S14, when it is determined in step S13 that there is an error in acceleration [i + 1], latitude [i + 1] and longitude [i + 1] are corrected in advance (lines 41 and 42). Reference). At this time, the hardness [i + 1] is corrected using the average hardness difference (MA Vlongitude ) up to the time stamp [i] and the hardness [i] (lon i ) in the time stamp [i], and the time stamp [i] Latitude [i + 1] can be corrected using the mean latitude difference (MA Vlatitude ) and latitude [i] (lat i ) in time stamp [i] (see lines 41 and 42). Here, the average hardness difference (MA Vlongitude ) set in the 16th row of
단계(S21)에서는, 타임스탬프[i](t i )에서의 튜플[i](P i )에 오류가 있는지 여부를 확인한다(라인 44 참조). 이때, 오류가 있다는 것은 튜플[i](P i )이 상술한 바와 같이 속도 오류에 의하여 필터링 되었다는 것을 의미한다.In step S21, it is checked whether there is an error in the tuple [ i ] ( P i ) at the time stamp [ i ] ( t i ) (see line 44). In this case, an error means that the tuple [ i ] ( P i ) is filtered by the speed error as described above.
단계(S22)에서는, 상기 오류가 존재하는 것으로 확인된 경우에는, 타임스탬프[i+1](t i +1)에서의 위도[i+1](lat i +1)와 상기 타임스탬프[i] 이전에 획득한 한 개 이상의 위도들을 인터폴레이션하여 상기 타임스탬프[i]에서의 위도[i](lat i )를 추정(estimation)하고, 상기 타임스탬프[i+1]에서의 경도[i+1](lon i +1)와 상기 타임스탬프[i] 이전에 획득한 한 개 이상의 경도들을 인터폴레이션하여 상기 타임스탬프[i]에서의 경도[i](lon i )를 추정한다(라인 47, 48 참조). 이때, '획득'했다는 것은 [알고리듬 4]에 의해 처리되어 메모리에 저장되어 있다는 것을 의미할 수 있다.In step (S22), if it is determined that the error is present, the time stamp [i +1] (t i +1) latitude in [i +1] (lat i +1) and the time stamp [i ] the interpolation of one or more previously acquired latitude estimation (estimation) latitude [i] (lat i) in the time stamp [i], and the hardness at the time stamp [i +1] [i +1 ] ( lon i +1 ) and one or more longitudes obtained before the timestamp [ i ] are interpolated to estimate the longitude [ i ] ( lon i ) at the timestamp [ i ] (see lines 47 and 48). ). In this case, 'acquired' may mean that the algorithm is processed by [Algorithm 4] and stored in the memory.
이때, 단계(S21)에서 상기 오류가 존재하는 것으로 확인된 경우에는, 상기 일 실시예에 따른 위치교정방법은 단계(S23)를 더 포함할 수 있다.In this case, when it is determined in step S21 that the error exists, the location calibration method according to the embodiment may further include step S23.
단계(S23)에서는, 타임스탬프[i+1]에서의 속도[i+1](Vi+1)와 타임스탬프[i] 이전에 획득한 한 개 이상의 속도들을 인터폴레이션하여 상기 타임스탬프[i]에서의 속도[i](Vi)를 추정(estimation)할 수 있다(라인 45 참조).In step S23, the speed [i + 1] (V i + 1 ) at timestamp [i + 1] and one or more speeds obtained before timestamp [i] are interpolated to generate the timestamp [i]. The velocity [i] (V i ) at can be estimated (see line 45).
단계(S31)에서는, 타임스탬프[i-1]에서의 상기 오류가 속도에 의한 오류에 의해 발생한 것이고 가속도에 의한 오류에 의해 발생한 것이 아닌 경우에, 타임스탬프[i-n+1] 내지 타임스탬프[i]에 대해 저장된 속도들의 평균(MA speed ) 및 표준편차(MSD speed )를 이용한 통계값을 계산하여, 상기 타임스탬프[i-1]에서의 실측된 속도값이 상기 통계값보다 작은지를 결정할 수 있다(라인 19 참조). 여기서 '저장된 속도'는 [알고리듬 4]에 의해 처리되어 메모리에 저장되어 있는 값을 의미한다.In step S31, if the error in time stamp [ i -1] is caused by an error due to speed and not due to an error due to acceleration, time stamp [ in +1] to time stamp [ i]. Statistical values using the mean of the stored speeds ( MA speed ) and the standard deviation ( MSD speed ) can be calculated to determine whether the measured speed value in the timestamp [ i -1] is less than the statistical value. (See line 19). Here, 'stored speed' refers to a value stored in the memory processed by [Algorithm 4].
단계(S32)에서는, 단계(S31)에서 상기 실측된 속도값이 상기 통계값보다 작다고 판단한 경우에, 상기 타임스탬프[i]에 대한 속도, 위도, 및 경도는 실측된 원래 값으로 대체할 수 있다(라인 20~22 참조). 이때, 상기 n은 윈도우의 크기이다.In step S32, when it is determined in step S31 that the measured speed value is smaller than the statistical value, the speed, latitude, and longitude for the time stamp [ i ] may be replaced by the original value measured. (See lines 20-22). In this case, n is the size of the window.
단계(S33)에서는, 단계(S31)에서 상기 실측된 속도값이 상기 통계값보다 작다고 판단한 경우에, n값을 감소시킬 수 있다(라인 24 참조).In step S33, when it is determined in step S31 that the measured speed value is smaller than the statistical value, the n value can be decreased (see line 24).
단계(S34)에서는, 타임스탬프[i]에 상기 오류가 있는 것으로 확인된 경우에는 윈도우의 크기를 증가시키고(라인 29 참조), 타임스탬프[i]에 상기 오류가 없는 것으로 확인된 경우에는 윈도우의 크기를 감소시킬 수 있다(라인 32 참조). 여기서 오류가 있다는 것은, 속도에 오류가 있는 경우와 가속도에 오류가 있는 경우를 모두 포함할 수 있다.In step S34, if the time stamp [ i ] is found to have the above error, increase the size of the window (see line 29), and if it is confirmed that there is no error at the timestamp [ i ], The size can be reduced (see line 32). Here, an error may include both an error in speed and an error in acceleration.
본 발명의 다른 실시예에 따른 사용자기기는, 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 수집하도록 되어있는 위치정보 수집부; 및 상기 튜플에 관한 정보를 처리하도록 되어 있는 처리부를 포함할 수 있다.According to another embodiment of the present invention, a user device includes: a location information collecting unit configured to collect information about a tuple including latitude, longitude, and a timestamp; And a processing unit configured to process information about the tuple.
이때, 상기 처리부는, [알고리듬 4]의 라인 19, 20~22, 24, 29, 32, 34, 35, 37, 41, 42, 44, 45, 47, 48을 수행할 수 있다.In this case, the processing unit may perform
상술한 각 단계들은 매 타임스탬프에서 실행될 수 있다. 알고리듬 4는 새로운 튜플이 획득되는 타임스탬프[i+1]의 시점을 기준으로 기술한 것인데, 알고리듬 4를 타임스탬프[i+2]의 시점으로 기술할 수 있다. 이렇게 하면, 예컨대 상술한 단계(S31)에 대한 설명에 있어서 타임스탬프의 인덱스가 +1만큼 증가하게 된다.Each of the above steps can be executed at every timestamp.
상술한 각 단계들은, 위도, 경도, 및 타임스탬프를 포함하여 이루어지는 튜플에 관한 정보를 수집하도록 되어있는 위치정보 수집부 및 상기 튜플에 관한 정보를 처리하도록 되어 있는 처리부를 포함하는 사용자기기에서 실행될 수 있다.Each of the above steps may be executed in a user device including a location information collecting unit configured to collect information about a tuple including latitude, longitude, and a timestamp, and a processing unit configured to process information about the tuple. have.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.Although the present invention has been described with reference to the embodiments shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
Claims (17)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/389,475 US20150087333A1 (en) | 2012-03-30 | 2013-03-29 | Method for correcting position information |
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2012-0033533 | 2012-03-30 | ||
| KR20120033533 | 2012-03-30 | ||
| KR10-2012-0103572 | 2012-09-18 | ||
| KR1020120103572A KR101467317B1 (en) | 2012-03-30 | 2012-09-18 | Method for determining the presence of positioning data error |
| KR1020130010032A KR101447582B1 (en) | 2013-01-29 | 2013-01-29 | Method for correcting position error |
| KR10-2013-0010032 | 2013-01-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2013147560A1 true WO2013147560A1 (en) | 2013-10-03 |
Family
ID=49260723
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2013/002663 Ceased WO2013147560A1 (en) | 2012-03-30 | 2013-03-29 | Method for correcting position information |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2013147560A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100535394B1 (en) * | 2003-08-21 | 2005-12-08 | 현대자동차주식회사 | Method for processing gps signals |
| JP4119256B2 (en) * | 2001-03-05 | 2008-07-16 | クゥアルコム・インコーポレイテッド | Method and apparatus for providing an improved position estimate based on an initial coarse position estimate |
| KR20090089343A (en) * | 2006-11-07 | 2009-08-21 | 스카이후크 와이어리스, 인크. | System and method for estimating positioning error in a LAN-based positioning system |
| JP4348441B2 (en) * | 2007-01-22 | 2009-10-21 | 国立大学法人 大阪教育大学 | Position detection apparatus, position detection method, data determination apparatus, data determination method, computer program, and storage medium |
| KR20120079624A (en) * | 2011-01-05 | 2012-07-13 | 에스케이플래닛 주식회사 | Car navigation system, position detecting method and path re-searching method thereof |
-
2013
- 2013-03-29 WO PCT/KR2013/002663 patent/WO2013147560A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4119256B2 (en) * | 2001-03-05 | 2008-07-16 | クゥアルコム・インコーポレイテッド | Method and apparatus for providing an improved position estimate based on an initial coarse position estimate |
| KR100535394B1 (en) * | 2003-08-21 | 2005-12-08 | 현대자동차주식회사 | Method for processing gps signals |
| KR20090089343A (en) * | 2006-11-07 | 2009-08-21 | 스카이후크 와이어리스, 인크. | System and method for estimating positioning error in a LAN-based positioning system |
| JP4348441B2 (en) * | 2007-01-22 | 2009-10-21 | 国立大学法人 大阪教育大学 | Position detection apparatus, position detection method, data determination apparatus, data determination method, computer program, and storage medium |
| KR20120079624A (en) * | 2011-01-05 | 2012-07-13 | 에스케이플래닛 주식회사 | Car navigation system, position detecting method and path re-searching method thereof |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8788185B2 (en) | Method and system for estimating traffic information by using integration of location update events and call events | |
| CN110954128B (en) | Method, device, electronic equipment and storage medium for detecting lane line position change | |
| CN107289951B (en) | Indoor mobile robot positioning method based on inertial navigation | |
| EP3045001B1 (en) | Methods, wireless device and network node for managing positioning method based on prediction | |
| KR101309291B1 (en) | Indoor localization system and method | |
| WO2021118039A1 (en) | Deep learning-based method for filtering similar images, and apparatus using same | |
| CN111627237B (en) | Road condition detection method, device, server and computer readable storage medium | |
| WO2017104919A1 (en) | Event-based image management using clustering | |
| CN105004340A (en) | Inertial navigation-fingerprint location-combined positioning error correction method | |
| WO2017160026A2 (en) | Location estimation method and apparatus using access point in wireless communication system | |
| WO2020093645A1 (en) | Method, system and apparatus for reducing power consumption for positioning wearable device, and storage medium | |
| EP3624497A1 (en) | Positioning offset correction method and apparatus | |
| CN107404566A (en) | A kind of terminal scene determination methods and device | |
| CN114291025B (en) | Vehicle collision detection method and system based on data segmentation aggregation distribution | |
| WO2018016663A1 (en) | Vehicle to pedestrian (v2p) collision prevention system and method therefor | |
| CN108684074A (en) | Distance measuring method based on RSSI and device | |
| WO2013147560A1 (en) | Method for correcting position information | |
| KR101467318B1 (en) | Method for correcting global position error | |
| WO2020222373A1 (en) | Indoor positioning device and method | |
| KR101447582B1 (en) | Method for correcting position error | |
| US20150087333A1 (en) | Method for correcting position information | |
| CN106920389B (en) | Traffic condition control method and system based on user telecommunication behaviors | |
| WO2017026582A1 (en) | Method and system for positioning and positioning database construction, using moving pattern | |
| CN109889988B (en) | Method and device for analyzing network condition based on subway scene communication record | |
| KR101577752B1 (en) | Method and apparatus for calculating vehicle speed, and method and apparatus for recording vehicle driving status |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13769228 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 14389475 Country of ref document: US |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13769228 Country of ref document: EP Kind code of ref document: A1 |