Method and device for updating the position of a moving object based on GNSS

By generating compensated position and displacement vectors and using pseudorange variation and velocity vectors to determine satellite weights, the problem of inaccurate pseudorange caused by obstacle interference in GNSS position estimation is solved, and more accurate position estimation is achieved.

CN114063123BActive Publication Date: 2026-08-04SAMSUNG ELECTRONICS CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SAMSUNG ELECTRONICS CO LTD
Filing Date
2021-05-28
Publication Date
2026-08-04

AI Technical Summary

Technical Problem

Existing Global Navigation Satellite Systems (GNSS) are susceptible to interference from obstacles when determining the location of objects, resulting in inaccurate pseudorange and affecting the accuracy of position estimation.

Method used

By generating compensated position and displacement vectors, determining satellite weights based on pseudorange variation and velocity vectors, and then using a Kalman filter for filtering, the accuracy of position estimation is improved.

Benefits of technology

It effectively compensates for errors in GNSS position estimation, improving the accuracy and reliability of object position, especially in environments with obstacle interference.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114063123B_ABST
    Figure CN114063123B_ABST
Patent Text Reader

Abstract

A method and apparatus for updating a position of a moving object based on GNSS are provided. The method includes generating a compensated position associated with a target satellite at a compensated target time based on a pseudo-range between the object and the target satellite at the compensated target time, generating a displacement vector of the object based on the compensated position at the compensated target time and a previous position of the object at a previous time before the compensated target time, determining a weight for the compensated position associated with the target satellite based on a velocity vector at the compensated target time and the displacement vector, and compensating a predicted position of the object according to the weight and the compensated position.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is based on and claims priority to Korean Patent Application No. 10-2020-0097542, filed on August 4, 2020, with the Korean Intellectual Property Office, the entire disclosure of which is incorporated herein by reference. Technical Field

[0002] The method consistent with this disclosure relates to a method for compensating the position of an object, and more specifically, to a method for determining the weights of satellites used to compensate the position of an object by using a Global Navigation Satellite System (GNSS). Background Technology

[0003] Global Navigation Satellite Systems (GNSS) provide location information for ground objects (such as moving devices) by using satellites orbiting the Earth. A GNSS system may include GNSS satellites and at least one GNSS receiver. Recently, because GNSS receivers are included in moving systems (such as terminals), the location information of the terminals can be generated. Summary of the Invention

[0004] One aspect provides a GNSS processor capable of accurately determining the location of an object using a Global Navigation Satellite System (GNSS).

[0005] According to one aspect of one or more embodiments, a method is provided, the method comprising: generating a compensated position associated with a target satellite at a compensated target time based on a pseudorange between an object and a target satellite at a compensated target time; generating a displacement vector of an object based on the compensated position at the compensated target time and a previous position of the object at a previous time prior to the compensated target time; determining weights for the compensated position associated with the target satellite based on a velocity vector and a displacement vector at the compensated target time; and compensating for a predicted position of the object based on the weights and the compensated position.

[0006] According to another aspect of one or more embodiments, a method is provided, the method comprising: predicting the position of an object at a compensation target time based on the object's velocity; generating, for each of a plurality of satellites, a compensation position for compensating the predicted position of the object based on pseudorange between the satellite and the object at the compensation target time; generating a displacement vector of the object for each of the plurality of satellites based on the compensation position and a previous position of the object at a previous time relative to the compensation target time; determining a weight of the compensation position of each of the plurality of satellites based on the displacement vector for each of the plurality of satellites and the velocity vector at the compensation target time; and estimating the position of the object based on the predicted position of the object, the weight for each satellite, and the compensation position for each satellite.

[0007] According to another aspect of one or more embodiments, a method is provided, the method comprising: predicting the position and velocity vector of an object at a target time based on the position and velocity vector of the object at a previous time prior to the target time; compensating the predicted velocity vector based on a change in pseudorange at the target time and the previous time; generating a compensated position of each of a plurality of satellites based on the pseudorange between the object and each of a plurality of satellites at the target time; generating a displacement vector of the object based on the compensated position and the object's previous position at the previous time; determining a weight for each satellite based on the compensated velocity vector and the displacement vector; and estimating the position of the object based on the predicted position, the weight of each satellite, and the compensated position of each satellite. Attached Figure Description

[0008] Various embodiments will become clearer from the following detailed description taken in conjunction with the accompanying drawings, in which:

[0009] Figure 1 This is a block diagram of a device for determining the position of an object according to an embodiment;

[0010] Figure 2 This is a flowchart illustrating an example of a method for adjusting the position of an object according to an embodiment;

[0011] Figure 3 This is a diagram illustrating a method for tracking the location of an object using a Global Navigation Satellite System (GNSS);

[0012] Figure 4 This is an example of obtaining an inaccurate pseudorange due to obstacles located between the target object and the object;

[0013] Figure 5A and Figure 5B This is a diagram illustrating an example of the estimated velocity vector according to an embodiment;

[0014] Figure 6 This is an illustration of an example of predicting the position of an object based on velocity according to an embodiment;

[0015] Figure 7 This is an illustration of an example of generating a compensated position for an object when no multipath is generated in the communication between the object and the target satellite, according to an embodiment.

[0016] Figure 8 This is an illustration of an example of generating the location of an object when generating a multipath in communication between an object and a target satellite, according to an embodiment;

[0017] Figure 9 A coordinate system is shown according to an embodiment for indicating the position of an object predicted based on velocity and the compensated position of the object obtained based on pseudorange;

[0018] Figure 10 A coordinate system is shown according to an embodiment for illustrating the relationship between velocity vectors and displacement vectors when no multipath is generated in communication between an object and a target satellite;

[0019] Figure 11 This is a diagram illustrating the relationship between velocity vectors and displacement vectors when multipath is generated in communication between an object and a target satellite according to an embodiment;

[0020] Figure 12 This is a flowchart illustrating an example of determining the weights of target satellites according to an embodiment; and

[0021] Figure 13 This is a flowchart illustrating an example of a method for estimating the position of an object by determining the weights of satellites, according to an embodiment. Detailed Implementation

[0022] Various embodiments will be described in detail below with reference to the accompanying drawings.

[0023] Figure 1 This is a block diagram of a device 100 for determining the location of an object according to an embodiment. In some embodiments, the object may be the device 100.

[0024] The device 100 for determining the location of an object may include a processor, and the processor may have different functions. That is, in some embodiments, the processor may be implemented as a chip included in a separate package, but in other embodiments, the processor may be a separate component with different functions included in a chip in a single package. The device 100 for determining the location of an object may be a system-on-a-chip (SoC) or a user terminal including a SoC.

[0025] Device 100 for determining the location of an object may include an application processor (AP) 110, a communication processor (CP) 120, and a Global Navigation Satellite System (GNSS) processor 130. The application processor 110 may perform operations based on data received from the GNSS processor 130 and the communication processor 120, and the application processor 110 may execute an operating system (OS), applications, etc., by performing data processing.

[0026] The communication processor 120 may include an auxiliary information generator 121 and a communication interface (I / F) 122, and the GNSS processor 130 may include a radio frequency (RF) receiver 131, a signal processor 132, and a position processor 133. The communication processor 120 and the GNSS processor 130 may be implemented as hardware independently, but embodiments are not limited thereto. In some embodiments, the communication processor 120 and the GNSS processor 130 may be software components that perform different functions and are implemented as a single piece of hardware.

[0027] The communication processor 120 may include a communication interface 122 and an auxiliary information generator 121. The communication interface 122 can receive / send data from external devices, the GNSS processor 130, and the application processor 110. The communication interface 122 can receive satellite information from external devices to quickly obtain the position of the target satellite 140. For example, the communication interface 122 can receive almanac information and ephemeris data as information associated with the target satellite 140, and the auxiliary information generator 121 can generate auxiliary information for identifying the position of the target satellite 140 based on the almanac information and ephemeris data. Furthermore, the communication interface 122 can receive information associated with the target satellite 140 from a network that manages information about the target satellite 140. Device 100 can predict the location of an object by receiving signals directly from target satellite 140. However, since receiving signals directly from target satellite 140 can take a considerable amount of time, information associated with target satellite 140 can be received from the network when communication with a network managing information about target satellite 140 is possible. For example, communication interface 122 can receive the coordinates of target satellite 140 from the network. Auxiliary information generator 121 can generate auxiliary information based on the information received from communication interface 122, and since the position processor 133 of GNSS processor 130 estimates the object's location based on the auxiliary information, the accuracy of estimating the object's location and positioning speed can be improved.

[0028] The GNSS processor 130 can predict the position of an object and can compensate for the position of the object based on the pseudorange with respect to the target satellite 140, thereby predicting the position of the object. The GNSS processor 130 may include an RF receiver 131, a signal processor 132, and a position processor 133, and the RF receiver 131, signal processor 132, and position processor 133 may be divided according to the functions performed by the GNSS processor 130.

[0029] RF receiver 131 can directly receive data about the target by receiving radio signals directly from the target satellite 140, and can also communicate with communication processor 120 to receive auxiliary information about the target from communication processor 120. Signal processor 132 can provide the position information of target satellite 140 to position processor 133 by decoding the radio signals broadcast from target satellite 140.

[0030] The position processor 133 can predict the position of an object at a compensation target time based on its velocity at a previous time prior to the compensation target time during the propagation operation. The compensation target time can be the point in time when position compensation of the object is required after a specific time interval from the previous time, and the object can obtain the pseudorange between the object and the target satellite 140 from the target satellite 140 at the compensation target time.

[0031] Then, the position processor 133 can compensate for the predicted position of the object during the propagation operation based on the pseudorange between the object and the target satellite 140 at the compensation target time during the update operation. Furthermore, the position processor 133 can estimate the velocity vector at each time point based on the change in pseudorange at each time point and its previous time points. For example, the position processor 133 can estimate a second velocity vector at a second time point based on the change in pseudorange at a second time point and a previous time point relative to the second time point. In other words, the velocity vector at the first time point can be compensated based on the amount of pseudorange change and can be updated to a second velocity vector at the second time point. In one example, the velocity vector is predicted by filtering at least one of the velocity information, position information, pseudorange change, target satellite position change, and line-of-sight (LoS) vector of the object at the compensation target time point using a Kalman filter.

[0032] The position processor 133 can generate a compensated position based on the pseudorange at the compensated target time, and can generate a displacement vector as the difference between the compensated position and the previous position, which is the position of the object at a previous time. The position processor 133 can determine the weight of the target satellite 140 based on the result of comparing the displacement vector with the velocity vector, and can adjust the predicted position of the object according to the weight.

[0033] Device 100 may include a System-on-a-Chip (SoC), and various components within the SoC may be interconnected via a system bus (not shown). For example, the Advanced Microcontroller Bus Architecture (AMBA) protocol for Advanced RISC Machines (ARM) may be used as a bus standard for the system bus. Examples of buses based on the AMBA protocol may include Advanced High Performance Bus (AHB), Advanced Peripheral Bus (APB), Advanced Extensible Interface (AXI), AXI4, AXI Coherence Extension (ACE), etc.

[0034] Figure 2This is a flowchart of an example of a method for compensating the position of an object based on an example.

[0035] When compensating for the position of an object, the GNSS processor 130 can generate a compensated position associated with the target satellite (the compensated position is compensated relative to the position of the object predicted based on the pseudorange between the object and the target satellite). The accuracy of the compensated position can be determined by comparing the displacement vector generated based on the compensated position with the velocity vector, and thus the reflectivity of the target satellite can be determined based on the accuracy of the compensated position.

[0036] In operation S100, the GNSS processor 130 can generate a compensated position associated with the target satellite. For example, the GNSS processor 130 can generate a compensated position associated with the target satellite for compensating the position of the object based on the pseudorange between the object and the target satellite at the compensation target time. The compensation target time can be the time point when the position compensation of the object is required after a specific time period from the previous time, and the GNSS processor 130 can obtain the pseudorange between the object and the target satellite from the target satellite at the compensation target time.

[0037] In operation S200, the GNSS processor 130 can generate a displacement vector of the object based on the object's position at the compensated position generated in operation S100 and its previous position. For example, the GNSS processor 130 can generate a displacement vector based on the difference between the coordinates of the object's compensated position and the coordinates of its previous position. That is, the displacement vector can be generated by connecting the above coordinates.

[0038] In operation S300, the GNSS processor 130 can determine the weights of the compensated position associated with the target satellite. For example, the GNSS processor 130 can determine the compensated reflection level of the target satellite as a weight based on the object's displacement vector and velocity vector. The object's velocity vector can be generated at a specific time point and can be generated based on the change in pseudorange at the compensated target time and previous time. For example, the GNSS processor 130 can estimate the velocity vector using a formula generated by differentiating the formula that linearizes the position determination equation. The GNSS processor 130, which generates the displacement and velocity vectors, can determine the weights of the compensated position associated with the target satellite based on the similarity of the displacement and velocity vectors. The weights can be values ​​indicating the reflection level associated with the target satellite.

[0039] In operation S400, the GNSS processor 130 can estimate the predicted position of an object based on weights. For example, the GNSS processor 130 can adjust the compensation position associated with the target satellite according to the weights. When determining the position using satellites, the GNSS processor 130 can estimate the object's position by adjusting the compensation position associated with the target satellite to a position estimated by some satellites as the compensation position associated with the target satellite. Therefore, when determining the object's position at the target time, the GNSS processor 130 can estimate the object's position more accurately by applying greater weights to satellites with high reliability. In one example, the GNSS processor 130 can estimate the object's position by estimating a third position generated based on the object's predicted position and the weighted compensation position as the object's position.

[0040] Figure 3 This is a diagram illustrating a method of tracking the position of object 310 using GNSS.

[0041] According to an embodiment, object 310 may be a device on which a communication processor 120 and a GNSS processor 130, on which a user terminal, wearable device, vehicle, etc., may be mounted, and the communication processor 120 mounted on object 310 may receive position information from each of satellites 320, 321, and 322. Specifically, satellites 320, 321, and 322 may orbit the Earth and may continuously broadcast their position information as radio signals as they orbit the Earth, and object 310 may obtain the position information of each satellite by receiving and decoding the radio signals of satellites 320, 321, and 322.

[0042] The GNSS processor 130 of object 310 can calculate pseudorange data from satellites 320, 321 and 322 as the distance between the satellites and object 310, and can determine the compensated position of object 310 based on the pseudoranges L0, L1 and L2 from satellites 320, 321 and 322.

[0043] When the position of object 310 at a previous time (i.e., the previous position) is stored in the memory connected to GNSS processor 130, GNSS processor 130 can generate a velocity vector and a compensated position at the compensated target time based on the pseudorange (one of pseudoranges L0, L1, and L2) at the estimated target time using a Kalman filter. The Kalman filter can be a filter used to process data that changes continuously over time. GNSS processor 130 can predict the position and velocity of object 310 at the compensated target time based on the position and velocity of object 310 at a previous time, and can ultimately estimate the position and velocity of object 310 at the compensated target time by compensating for the predicted position and velocity of the object. In one example, GNSS processor 130 can compensate for the predicted velocity vector based on the change in pseudorange at the estimated target time and the previous time. GNSS processor 130 can compensate the predicted position and velocity of object 310 multiple times according to the weights of each of satellites 320, 321, and 322, and can ultimately estimate all the compensation results as the position and velocity of object 310 at the compensated target time.

[0044] Figure 4 This is an example of obtaining inaccurate pseudoranges because an obstacle is located between the target satellite 420 and the object 410.

[0045] Reference Figure 4 Object 410 may be a user terminal (e.g., device 100 in some embodiments), and when object 410 fails to communicate with target satellite 420 in the line of sight (LoS) due to tall buildings and surrounding facilities in a downtown area, object 410 can communicate with target satellite 420 via the scattering and reflection of satellite signals from tall buildings and surrounding facilities. In this case, the straight-line distance between target satellite 420 and object 410 is required for GNSS processor 130 to accurately estimate the position of object 410, and when reflection, diffraction, or interference occurs in the signal communicating with target satellite 420, GNSS processor 130 of object 410 may not be able to obtain the straight-line distance between target satellite 420 and object 410 as pseudorange, and therefore can obtain the distance of the signal in which the error occurs as pseudorange. That is, GNSS processor 130 may not obtain the straight-line distance between target satellite 420 and object 410 as pseudorange in areas with concentrated tall buildings and facilities (e.g., downtown areas), and in this case, GNSS processor 130 can obtain the distance including a specific error from the straight-line distance as pseudorange. The GNSS processor 130 can obtain the compensated position estimated at the time of target estimation based on the pseudorange between the object 410 and the target satellite 420, and the compensated position can also include the error when the pseudorange includes the error.

[0046] When the target satellite 420 and the object 410 cannot communicate with each other in the LoS state, the GNSS processor 130 can compare the displacement vector with the velocity vector to determine whether a compensated position with high reliability can be obtained, and can determine the accurate position of the object 410 based on the determination result.

[0047] Figure 5A This is a diagram illustrating an example of estimating the velocity vector at target time based on the pseudorange changes at the first position 510 and the second position 520 when the target satellite and object are in a Loss of Space (LoS) state. Figure 5B This is a diagram illustrating an example of estimating the velocity vector when the target satellite and object are not in a state of Loss of Space (LoS). Figure 5A and Figure 5B In the middle, reference numeral 530 can indicate the target satellite.

[0048] In the following text, the aforementioned prior time may be referred to as the first time (or first time point), and the compensation target time may be referred to as the second time (or second time point). The position and velocity vector of the object at the first time may be referred to as the first position 510 and the first velocity vector, respectively, and the position and velocity vector of the object at the second time may be referred to as the second position 520 and the second velocity vector, respectively.

[0049] Reference Figure 5A During propagation, the GNSS processor 130 can predict a second position 520 and a second velocity vector based on a first position 510 and a first velocity vector using a Kalman filter. Then, the GNSS processor 130 can obtain a first pseudorange 511a by measuring the time or phase difference of the wave transmitted from the target satellite at a first time, and can obtain a second pseudorange 521a from the target satellite at a second time. In this case, the GNSS processor 130 can compensate for the predicted second velocity vector during propagation based on the changes in the first pseudorange 511a and the second pseudorange 521a with respect to the time variations between the first and second time points, and thus can estimate the second velocity vector.

[0050] In other words, the GNSS processor 130 can estimate the velocity vector at the second time point by performing Kalman filtering on the pseudorange and pseudorange variation measured at the first and second time points.

[0051] Reference Figure 5B When an object can communicate with a target satellite outside of its Loss of Space (LoS) state, it can do so by using reflected signals from tall buildings or facilities. In this case, as shown in the reference... Figure 4As stated above, because the communication distance between the object and the target satellite is not a straight line, the GNSS processor 130 may not be able to obtain accurate pseudorange, and the first pseudorange 511b and the second pseudorange 521b may be pseudoranges that include the error of the actual distance between the target satellite and the object.

[0052] The GNSS processor 130 can obtain the velocity vector of an object based on the direction of motion and the change in pseudorange of the target satellite, and the pseudorange errors measured at two different time points can be similar to each other when they are close to each other. Although pseudorange includes errors due to multipath, these errors can be largely canceled out when the pseudorange change is calculated. That is, when the pseudorange obtained by the GNSS processor 130 at the first and second time points is based on signals reflected from surrounding buildings, the error distance generated by reflection can be canceled out. Therefore, although the GNSS processor 130 fails to obtain accurate pseudorange in the Loss of Sight (LoS) state, the change in pseudorange can still have high reliability compared to the pseudorange itself.

[0053] Figure 6 This is an example illustration of predicting the position of an object based on velocity, as shown in the example. Figure 6 In the middle, reference numeral 630 can indicate the target satellite.

[0054] Reference Figure 5A and Figure 5B The GNSS processor 130 can measure the velocity of the object at a first time based on the change in pseudorange at a first time (i.e., when the object is at a first position 610) and a previous time relative to the first time, and can predict the position of the object by calculating a second position 620 at a second time from the first position 610 based on the object's velocity.

[0055] The GNSS processor 130 can predict a second position 620 from the velocity at a first time point based on the equation of motion. The GNSS processor 130 can predict the direction of the second position 620 from the first position 610 based on the direction of the first velocity vector V1, and can predict how far the second position 620 is from the first position 610 based on the magnitude of the first velocity vector V1. For example, the GNSS processor 130 can predict the direction of the second position 620 in the same direction as the first velocity vector V1, and can predict the second position 620 by adding the first position 610 to a value obtained by multiplying the magnitude of the first velocity vector V1 by the time interval between the first and second time points.

[0056] Reference Figure 6The GNSS processor 130 can predict the position at a second time from the position at a first time based on the velocity at the first time. Furthermore, the predicted position of the object can be compensated based on the pseudorange of the satellite obtained at the second time and the changes in pseudorange, to ultimately compensate for the position of the object.

[0057] Figure 7 This is an illustration of an example of generating a compensated position for an object when no multipath is generated in communication between the object and the target satellite 730, according to an embodiment.

[0058] Reference Figure 7 The GNSS processor 130 can generate a first position 710 and a second position 720 based on a first pseudorange 711 and a second pseudorange 721 measured at a first time and a second time, respectively, and can determine the second position 720 obtained according to the second pseudorange 721 as a compensated position 720 of the target satellite 730 (e.g., a compensated position 720 associated with the target satellite 730). Figure 7 In some embodiments, the second position 720 estimated and obtained by the GNSS processor 130 at a second time may differ from that obtained according to... Figure 6 The velocity prediction of the object and the second position obtained 620.

[0059] Because the object typically communicates with multiple satellites (see, for example) Figures 3 to 4 Therefore, the object can obtain multiple second pseudoranges 721 in the second time, and the GNSS can generate multiple compensated positions based on the multiple second pseudoranges 721 respectively. Figure 7 In the example shown, the target satellite 730 can communicate with the object in a Loss of Time (LoS) state without reflections from surrounding facilities, and in this case, the GNSS processor 130 can obtain the straight-line distance between the target satellite 730 and the object as a pseudorange. Therefore, the GNSS processor 130 can generate a position similar to the actual position of the object at a second time using a Kalman filter as a compensated position for the target satellite 730.

[0060] Figure 8 This is an illustration of an example of generating the location of an object when generating a multipath in communication between the object and the target satellite 830, according to an embodiment.

[0061] Reference Figure 8 The target satellite 830 may not perform LoS communication due to surrounding buildings, and the GNSS processor 130 may receive radio waves broadcast from the target satellite 830 in response to signals reflected from other surrounding buildings. In this case, the GNSS processor 130 may obtain a second pseudorange 821 in response to signals reflected from surrounding buildings at a second time. For example, the GNSS processor 130 may obtain a pseudorange 821 by receiving signals from positioning satellites (e.g., Figure 8In the example, the target satellite 830 broadcasts a signal to obtain the time or phase difference of the wave. In this case, when the GNSS processor 130 receives the signal after it has been reflected from surrounding buildings, the pseudorange may be greater than that of the actual satellite (e.g., Figure 8 The distance between the target satellite (830) and the object in the example.

[0062] When the second pseudorange 821 includes errors after comparison with the actual straight-line distance, the GNSS processor 130 can generate a compensated position 820 by using a Kalman filter, and can generate a second position 820 that is less accurate than the case when the pseudorange is obtained via LoS communication as the compensated position 820. The GNSS processor 130 can compare the velocity vector at the second time point with the displacement vectors at the first and second time points, and thus determine the weight of the compensated position 820. Figure 8 In the reference numeral 811, the first pseudorange between the object and the target satellite 830 at the first time point can be indicated; the reference numeral 810 can be indicated as the position of the object at the first time point.

[0063] Figure 9 A coordinate system is shown according to an embodiment for indicating the position of an object predicted based on velocity and the compensated position of an object generated based on pseudorange.

[0064] According to the embodiment, the GNSS processor 130 can determine the first position P1 of an object at a first time, and can estimate the first velocity vector at the first position P1 by using a Kalman filter. The GNSS processor 130 can estimate the first velocity vector by substituting the changes in pseudorange at the first time and at a previous time relative to the first time into a formula obtained by differentiating the linear position determination equation.

[0065] Then, based on the first velocity vector The object is predicted to be at a second position P2 at a second time, and a compensated position P'2 for the object at the second time can be generated based on pseudorange from the satellite. The GNSS processor 130 can measure pseudorange from a target satellite or receive pseudorange information from a target satellite, and can generate the compensated position P'2 for the object at the second time based on the pseudorange from the target satellite. In this case, the GNSS processor 130 can generate a displacement vector based on the difference between the first position P1 and the compensated position P'2.

[0066] Reference Figure 9The GNSS processor 130 can specify the first position P1, the second position P2, and the compensation position P'2 as coordinates in a two-dimensional (2D) coordinate system including the X and Y axes, and can generate a displacement vector based on the difference between the coordinates of the first position P1 and the compensation position P'2. Displacement vector generated by GNSS processor 130 Not limited to Figure 9 Position coordinates generate displacement vector It can also include generating a displacement vector based on the difference between the coordinates of two positions in the polar coordinate system.

[0067] For example, the GNSS processor 130 can be based on Figure 9 The difference between the first position coordinates (P1(x1,y1)) and the compensated position coordinates (P'2(x'2,y'2)) in the 2D coordinate system generates the displacement vector. In this case, the velocity vector This can correspond to the difference between the first position coordinate (P1(x1,y1)) and the second position coordinate (P2(x2,y2)).

[0068] Figure 10 This illustration shows a second velocity vector according to an embodiment when no multipath is generated in communication between the object and the target satellite. With displacement vector A diagram illustrating the relationship between them. Figure 11 This illustrates a second velocity vector when generating multipath in communication between an object and a target satellite according to an embodiment. With displacement vector A diagram illustrating the relationship between them.

[0069] As described above, the GNSS processor 130 can estimate the second velocity vector based on the changes in pseudorange with the target satellite at the first and second time points. Furthermore, the change in pseudorange can be a parameter with relatively higher reliability than the pseudorange in an environment where multipath is generated. Therefore, the second velocity vector The direction can correspond to the actual object's movement direction from the first time to the second time, and the GNSS processor 130 can be based on the displacement vector. With the second velocity vector The degree of similarity determines the compensation position P'2 of the target satellite as the compensation position.

[0070] For example, refer to Figure 10 When an object communicates with a target satellite in the Loss of Space (LoS) state, the displacement vector is generated based on the pseudorange to the target satellite. The direction can be similar to the second velocity vector. The direction. Conversely, refer to Figure 11 When an object can communicate with a target satellite outside of its Loss of Space (LoS) state, compared to the case where the object communicates with the target satellite in its LoS state, the displacement vector generated based on the pseudorange to the target satellite... Direction and second velocity vector The similarity in direction can be reduced. That is, the GNSS processor 130 can reduce the similarity in the second velocity vector. With displacement vector When the similarity is high, a larger weight is set, and it can be applied to the second velocity vector. With displacement vector Set a smaller weight when the similarity is low.

[0071] According to an embodiment, the GNSS processor 130 can utilize a second velocity vector. With displacement vector The inner product value is used to determine the weight of the target satellite. For example, because the magnitude of the vector varies depending on the time interval between the first and second time points, the GNSS processor 130 can generate a vector that includes only the displacement vector. Second velocity vector The GNSS processor 130 can calculate the dot product of the displacement and velocity unit vectors, and the dot product can be a real number greater than or equal to -1 and less than or equal to 1.

[0072] When the inner product value is -1, the unit displacement vector and unit velocity vector are in opposite directions, and when the inner product value is 1, the unit displacement vector and unit velocity vector are in the same direction. Therefore, the GNSS processor 130 can determine a weight proportional to the inner product value. For example, when the inner product value based on information obtained from the first satellite is 0.8, the GNSS processor 130 can set a weight of 0.8 to a first compensated position estimated by the first satellite, and when the inner product value based on information obtained from the second satellite is 0.3, the GNSS processor 130 can set a weight of 0.3 to a second compensated position estimated by the second satellite. The GNSS processor 130 can determine that the first compensated position has higher reliability than the second compensated position; therefore, the position closer to the first compensated position can be determined as the position of the object.

[0073] According to the above embodiments, the GNSS processor 130 is based on displacement vectors. Second velocity vector The inner product value is used to determine the displacement vector. Second velocity vector The similarity, but the displacement vector With the second velocity vector The similarity between them is not limited to this. All methods can be used to determine the similarity between two different vectors by using Euclidean distance and cosine similarity.

[0074] Figure 12 This is a flowchart illustrating an example of determining the weights of target satellites. Figure 12 The processing shown in [the document] can be used in [the following context] Figure 2 The weights are determined in operation S300.

[0075] When GNSS processor 130 is in Figure 2 When determining weights in operation S300, it can be determined whether the compensated position associated with the target satellite, generated based on whether the velocity vector and displacement vector satisfy the conditions, should be used as the position of the object.

[0076] In operation S301, the GNSS processor 130 can determine whether the difference between the velocity vector and the displacement vector is equal to or greater than a threshold. In this case, the GNSS processor 130 can calculate the inner product of the velocity vector and the displacement vector and determine whether the inner product satisfies a condition. For example, when the inner product of the velocity vector and the displacement vector is equal to or greater than a reference inner product value, the GNSS processor 130 can determine that the difference between the velocity vector and the displacement vector is equal to or greater than the threshold by determining that the similarity between the velocity vector and the displacement vector is high. Conversely, when the inner product of the velocity vector and the displacement vector is less than the reference inner product value, the GNSS processor 130 can determine that the difference is less than the threshold by determining that the similarity between the velocity vector and the displacement vector is low.

[0077] In operation S302, when the GNSS processor 130 determines that the difference between the velocity vector and the displacement vector satisfies the standard condition (i.e., the similarity between the velocity vector and the displacement vector is high) (operation S301, Yes), the GNSS processor 130 can reflect the compensated position generated by the target satellite as the position of the object. That is, the GNSS processor 130 can use the compensated position associated with the target satellite as the position of the object. For example, the GNSS processor 130 can set the weight "1" to the compensated position associated with the target satellite.

[0078] In operation S303, when it is determined that the difference between the velocity vector and the displacement vector does not meet the standard condition (i.e., the similarity between the velocity vector and the displacement vector is low) (operation S301, No), the GNSS processor 130 may not reflect the compensated position associated with the target satellite as the position of the object. In other words, the GNSS processor 130 may not use the compensated position associated with the target satellite as the position of the object. For example, the GNSS processor 130 may set the weight "0" to the compensated position associated with the target satellite.

[0079] Figure 13This is a flowchart illustrating an example of estimating the location of an object by determining the weights of satellites.

[0080] according to Figure 1 The GNSS processor 130 of one embodiment can update the position of the object based on the compensated position estimate after generating a compensated position associated with the target satellite. However, one or more embodiments are not limited thereto, and references are made to... Figure 13 The GNSS processor 130 can predict the position of an object based on its velocity at a previous time and can estimate the position of the object by generating a compensated position associated with each satellite.

[0081] In operation S110, the GNSS processor 130 can predict the position of an object based on its velocity. In this case, the GNSS processor 130 can estimate the object's velocity based on the change in pseudorange at two different time points, and predict the object's position by applying the equations of motion to the estimated object velocity. (Refer to...) Figure 6 The location of the object is predicted, therefore its detailed description will be omitted.

[0082] In operation S210, GNSS processor 130 may generate a first updated position based on the nth satellite. For example, GNSS processor 130 may generate a compensated position associated with the nth satellite among a plurality of satellites. The compensated position may differ from the position of the object estimated in operation S110, and may be the position estimated based on the pseudorange between the nth satellite and the object.

[0083] In operation S310, the GNSS processor 130 can generate a displacement vector based on the compensated position and the previous position estimated at a previous time. The displacement vector can be a vector generated based on the difference between the compensated position and the previous position.

[0084] In operation S410, the GNSS processor 130 can compare the displacement vector with the velocity vector and determine the weight of the nth satellite. (See reference...) Figures 9 to 12 The description of how the GNSS processor 130 compares the displacement vector with the velocity vector and determines the weights based on the comparison results is provided; therefore, a detailed description will be omitted.

[0085] In operation S510, the GNSS processor 130 can update the position of an object based on the weight and compensation position associated with the nth satellite. In this case, reflectivity can be determined based on the weight of the nth satellite to estimate the position. For example, when the weight of the nth satellite is "0", the GNSS processor 130 can exclude the compensation position associated with the nth satellite when estimating the position of the object.

[0086] In operation S610, the GNSS processor 130 can determine the compensated position associated with the nth satellite as the position of the object, and can determine whether there are other available satellites that can be used to update the position of the object. When there are other satellites that can be used to compensate the position of the object, the GNSS processor 130 can generate a compensated position associated with the other satellite and determine the weight of the other satellite. That is, the process can return to operation S210, and the first updated position can be generated based on the other satellite.

[0087] When no additional satellites are available to compensate for the location of an object, the GNSS processor 130 can estimate the satellite-compensated location as the object's final location in operation S710. For example, the GNSS processor 130 can multiply the coordinates of each of multiple compensated locations by weights, and determine the object's final location by averaging the multiplied coordinates. In other words, the GNSS processor 130 can estimate the object's final location based on weighted compensated locations from multiple satellites.

[0088] While various embodiments have been specifically shown and described, it will be understood that various changes in form and detail may be made therein without departing from the spirit and scope of the appended claims.

Claims

1. A method for compensating for the position of an object using a Global Navigation Satellite System processor, the method comprising: Calculate the pseudorange between the object and each of the multiple satellites at the compensation target time; Based on the pseudorange between the object at the compensation target time and the target satellite among the plurality of satellites, a compensation position associated with the target satellite at the compensation target time is generated. The displacement vector of the object is generated based on the compensation position at the compensation target time and the previous position of the object at a previous time before the compensation target time. The weights for the compensation positions associated with the target satellite are determined based on the velocity and displacement vectors at the compensation target time. as well as The predicted position of the object is compensated based on the weights and compensation positions associated with the target satellite.

2. The method according to claim 1, wherein, The steps to determine the weights include: Compare the velocity vector with the displacement vector; and The weights of the compensation positions associated with the target satellite are determined based on the comparison results.

3. The method according to claim 2, wherein, The comparison steps include: generating the inner product of the velocity vector and the displacement vector as the comparison result, and The steps to determine the weights include comparing the inner product value with a reference inner product value.

4. The method according to claim 1, wherein, The steps for generating the compensation location include: Predict the object's position at the target compensation time based on the object's motion equations; and The steps for compensating for predicted locations include: The predicted position is output as the final position.

5. The method according to claim 4, further comprising: Based on the change in pseudorange between the object and the target satellite at the compensation target time and the previous time, the velocity vector at the compensation target time is estimated.

6. The method according to claim 2, wherein, When compensating for predicted positions, if the difference between the velocity vector and the displacement vector is less than a threshold, the compensated position associated with the target satellite is ignored.

7. The method according to any one of claims 1 to 6, further comprising: The velocity vector is predicted by using a Kalman filter to filter at least one of the following at the time of compensation target: velocity information, position information, pseudorange change, target satellite position change, and line-of-sight vector.

8. A method for estimating the position of an object using a Global Navigation Satellite System processor, the method comprising: Predict the object's position at the target compensation time based on the object's velocity; For each of the multiple satellites, a compensation position is generated based on the pseudorange between the satellite and the object at the compensation target time to compensate for the predicted position of the object. Based on the compensation location and the object's previous location at a previous time relative to the compensation target time, a displacement vector is generated for each of the plurality of satellites; The weight of the compensation position for each of the plurality of satellites is determined based on the displacement vector for each of the plurality of satellites and the velocity vector at the compensation target time. as well as The object's position is estimated based on the object's predicted position, the weight of the compensated position for each satellite, and the compensated position for each satellite.

9. The method according to claim 8, wherein, The steps to determine the weights include: The displacement vector and velocity vector for each of the plurality of satellites are compared; and The weight for each satellite is determined based on the comparison results.

10. The method according to claim 9, wherein, The comparison steps include: generating the inner product of the displacement vector and velocity vector for each of the plurality of satellites as the comparison result, and The steps for determining the weights include: determining the weight for each satellite by comparing the inner product value with a reference inner product value.

11. The method according to claim 9, wherein, The steps for estimating the location of an object include: estimating the object's location based on its predicted location and a weighted compensated location.

12. The method according to claim 9, wherein, The step of estimating the position of the object includes: ignoring the compensated positions of satellites whose velocity vector and displacement vector difference is less than a threshold among the plurality of satellites.

13. The method of claim 9, further comprising: The velocity vector is estimated by compensating for the velocity vector predicted at the compensation target time, based on the change in pseudorange between the object and each of the plurality of satellites at the previous time and the compensation target time.

14. The method according to any one of claims 8 to 13, further comprising: The velocity vector is predicted by filtering at least one of the following: the object's velocity information, position information, pseudorange variation, position variation of each satellite, and line-of-sight vector at the time of compensation target.

15. A method for estimating the position of an object using a Global Navigation Satellite System processor, the method comprising: Based on the position and velocity vectors of the object at a previous time prior to the estimated target time, predict the position and velocity vectors of the object at the estimated target time; The predicted velocity vector is compensated based on the change in pseudorange at the estimated target time and previous time. Based on the pseudorange between the object and each of the plurality of satellites at the estimated target time, a compensated position is generated for each of the plurality of satellites. The displacement vector of the object is generated based on the compensation location and the object's previous position at a previous time. The weights for each satellite are determined based on the compensated velocity and displacement vectors; as well as The location of an object is estimated based on its predicted location, weights for each satellite, and compensated locations for each satellite.

16. The method according to claim 15, wherein, The estimation steps include comparing the velocity vector with the displacement vector and determining the weights for each satellite based on the comparison results.

17. The method according to claim 16, wherein, The estimation steps include: The dot product of the velocity and displacement vectors is generated as the result of the comparison; and The weight for each satellite is determined by comparing the inner product value with a reference inner product value.

18. The method according to claim 16, wherein, The estimation steps include ignoring the compensated positions of satellites whose velocity vector and displacement vector difference is less than a threshold.

19. The method according to claim 15, wherein, The position of the object at the estimated target time is predicted based on the object's equation of motion.

20. The method of claim 15, wherein, The steps for predicting the velocity vector include: using a Kalman filter to filter at least one of the object's velocity information, position information, pseudorange variation, position variation of the plurality of satellites, and line-of-sight vector at the estimated target time to predict the velocity vector.