GNSS-based attitude determination algorithm and triple-antenna GNSS receiver for its implementation
11609346 · 2023-03-21
Assignee
Inventors
- Nikolay Nikolaevich Vasilyuk (Moscow, RU)
- Mikhail Yurievich Vorobiev (Moscow, RU)
- Dmitry Konstantinovich Tokarev (Moscow, RU)
- Alexandr Vladimirovich Doronin (Moscow, RU)
- Sergey Ivanovich Tychinskiy (Moscow, RU)
Cpc classification
G01S19/47
PHYSICS
International classification
G01C21/16
PHYSICS
G01S19/54
PHYSICS
Abstract
Determining vehicle orientation based on GNSS signals received by three antennas that are logically combined into two pairs, with one antenna common for both pairs. GNSS receiver measures first carrier phase difference within each pair of antennas, represented as sum of an integer number of periods of the carrier frequency and a fractional part of the period. The fractional parts are used to compute orientation of the vector connecting the antennas phase centers within each pair, excluding integer ambiguity resolution. Vehicle attitude is calculated from the orientation of two non-collinear vectors with a common origin, measured by two pairs of antennas. Each antenna has an RF front end. All RF front ends, heterodynes, digital navigation processors of this receiver are clocked from one common clock oscillator. All carrier phase measurements of the three antennas are performed on a common time scale.
Claims
1. A method of determining orientation of an object having three GNSS (Global Navigation Satellite System) antennas, comprising: defining two non-collinear base vectors connecting two pairs of the three GNSS antennas; at each GNSS antenna, simultaneously receiving GNSS signals from GNSS satellites; measuring carrier full phases of all the GNSS signals received by the three GNSS antennas at a given moment of time; calculating carrier full phase differences between the measured GNSS carrier full phases; for each GNSS signal received by the three GNSS antennas, calculating fractional parts of the calculated carrier full phase differences; and using the fractional parts of the calculated carrier full phase differences and the base vectors, calculating angular coordinates of the base vectors, and, based on the angular coordinates, calculating the orientation of the object.
2. The method of claim 1, further comprising: initializing an attitude determination algorithm to determine the angular coordinates of the base vectors close to a true maximum of a likelihood function; calculating the angular coordinates of the base vectors with the fractional parts of carrier full phase differences.
3. The method of claim 2, further comprising using a moving-base RTK (Real Time Kinematics) method to initialize the attitude determination algorithm in a vicinity of a true maximum of the likelihood function.
4. The method of claim 2, wherein the angular coordinates of the base vector obtained at the previous measurement are used to initialize the attitude determination algorithm in a vicinity of a true maximum of the likelihood function.
5. The method of claim 2, wherein the angular coordinates of the base vectors calculated based on attitude measurements obtained from an inertial navigation system are used to initialize the attitude determination algorithm in a vicinity of a true maximum of the likelihood function.
6. The method of claim 5, wherein the inertial navigation system is a strapdown inertial measurement unit (IMU).
7. The method of claim 1, wherein the base vectors are defined based on phase centers of the three GNSS antennas.
8. The method of claim 1, wherein one of the three GNSS antennas is a master antenna, and the other two GNSS antennas are a first slave antenna and a second slave antenna.
9. A method of determining orientation of an object having three GNSS (Global Navigation Satellite System) antennas, comprising: defining two non-collinear base vectors connecting two pairs of the three GNSS antennas; at each GNSS antenna, simultaneously receiving GNSS signals from GNSS satellites; measuring carrier full phases of all the GNSS signals received by the three GNSS antennas at a given moment of time; calculating carrier full phase differences between the measured GNSS carrier full phases; for each GNSS signal received by the GNSS antennas, calculating fractional parts of the calculated carrier full phase differences; using the fractional parts of the calculated carrier full phase differences and the base vectors, calculating Cartesian coordinates of the base vectors, and, based on the Cartesian coordinates, calculating the orientation of the object.
10. The method of claim 9, wherein a comparison of Cartesian coordinates of the base vectors is calculated by measured angular coordinates and Cartesian base vectors are determined by a TRIAD algorithm.
11. The method of claim 9, wherein the GNSS antennas are arranged so that the base vectors have equal length; a vector of a geometric sum of the base vectors is aligned with a positive direction of a longitudinal axis of the object; a heading angle is calculated as an azimuth angle of a geometric sum of the base vectors; a pitch angle is calculated as an elevation angle of the geometric sum vector of the base vectors; a roll angle is calculated as an elevation angle of a geometric difference vector of the base vectors and based on the previously calculated pitch angle.
12. A GNSS (Global Navigation Satellite System) receiver for measuring orientation of an object, comprising: first, second and third antennas receiving GNSS signals from GNSS satellites; each GNSS antenna is connected to a separate RF (radio frequency) front end; a digital navigation processor for processing of the GNSS signals from the RF front ends; a common harmonic oscillator connected to the RF front ends and to the digital navigation processor; wherein two non-collinear base vectors are defined as connecting the first GNSS antenna and the second GNSS antenna, and the first GNSS antenna and the third GNSS antenna; wherein the processor measures carrier full phases of all the GNSS signals received by the three GNSS antennas at a given moment of time; wherein the processor calculates carrier full phase differences between the measured GNSS carrier full phases; wherein, for each GNSS signal received by the three GNSS antennas, the processor calculates fractional parts of the calculated carrier full phase differences; and the processor calculates angular coordinates of the base vectors using the fractional parts of the calculated carrier full phase differences, and, based on the angular coordinates, calculates the orientation of the object.
13. A GNSS (Global Navigation Satellite System)-based system to measure vehicle's attitude, the system comprising: a master antenna receiving GNSS signals from GNSS satellites; a first slave and a second slave antenna receiving GNSS signals from the GNSS satellites; wherein a first base vector connects the master antenna and the first slave antenna; wherein a second base vector connects the master antenna and the second slave antenna; a first RF (radio frequency) front end connected to the master antenna; second and third RF front ends connected to the first and second slave antennas, respectively; an RF splitter splitting an output of the first RF front end; a first dual-antenna GNSS receiver receiving an output of the RF splitter and the second RF front end; a second dual-antenna GNSS receiver receiving an output of the RF splitter and the third RF front end; two non-collinear base vectors are defined as connecting the master and first slave antennas, and the master and second slave antennas; wherein, for the GNSS signals received by the master antenna and the first slave antenna, a processor of the first dual-antenna GNSS receiver measures carrier full phases, then calculates carrier full phase differences between the measured GNSS carrier full phases and then calculates fractional parts of the calculated carrier full phase differences, and then calculates angular coordinates of the first base vector using the fractional parts; wherein, for the GNSS signals received by the master antenna and the second slave antenna, a processor of the second dual-antenna GNSS receiver measures carrier full phases, then calculates carrier full phase differences between the measured GNSS carrier full phases and then calculates fractional parts of the calculated carrier full phase differences, and then calculates angular coordinates of second first base vector using the fractional parts; and wherein one of the processors calculates the vehicle's attitude based on based on the angular coordinates of the first and second base vectors.
14. The system of claim 13, wherein the second dual-antenna GNSS receiver is connected to a first GNSS receiver via external interface; and the second dual-antenna GNSS receiver transmits its calculation of the angular coordinates of the second base vector to the first dual-antenna GNSS receiver.
15. The system of claim 13, further comprising an inertial measurement unit (IMU) connected to the first dual-antenna GNSS receiver via an external interface.
16. The system of claim 13, further comprising a multichannel inertial measurement unit (IMU), wherein a first interface of the multichannel IMU is connected to the first dual-antenna GNSS receiver via a first external interface; a second interface of the multichannel IMU is connected to the second dual-antenna GNSS receiver via a second external interface.
17. The system of claim 13, wherein: the first dual-antenna GNSS receiver and the second dual-antenna GNSS receiver are connected to a host processor via their external interfaces; the first GNSS receiver transmits angular coordinates of the first base vector to a host processor via its external interface; the second GNSS receiver transmits angular coordinates of the second base vector to the host processor via its external interface; the host processor determines the vehicle's attitude.
18. The system of claim 17, further comprising a multichannel inertial measurement unit (IMU) connected to the host processor.
19. The system of claim 13, wherein the first dual-antenna GNSS receiver and the second dual-antenna GNSS receiver are implemented as single integrated receiver.
20. The system of claim 13, wherein the processors of first dual-antenna GNSS receiver and the second dual-antenna GNSS receiver are mounted on the same motherboard.
21. A GNSS (Global Navigation Satellite System)-based system to measure attitude of an object, the system comprising: a master antenna receiving GNSS signals from GNSS satellites; a first slave antenna and a second slave antenna receiving GNSS signals from the GNSS satellites; wherein a first base vector connects the master antenna and the first slave antenna; wherein a second base vector connects the master antenna and the second slave antenna; a first RF (radio frequency) front end connected to the master antenna; a second RF front end and a third RF front end connected to the first slave antennas and the second slave antenna, respectively; an RF splitter splitting an output of the first RF front end; a first dual-antenna GNSS receiver receiving an output of the RF splitter and the second RF front end; a second dual-antenna GNSS receiver receiving an output of the RF splitter and the third RF front end; a host processor connected to the first dual-antenna GNSS receiver and the second dual-antenna GNSS receiver; two non-collinear base vectors are defined as connecting the master antenna and first slave antenna, and the master antenna and the second slave antenna; wherein, for the GNSS signals received by the master antenna and the first slave antenna, a processor of the first dual-antenna GNSS receiver measures carrier full phases and provides them to the host processor; wherein, for the GNSS signals received by the master antenna and the second slave antenna, a processor of the second dual-antenna GNSS receiver measures carrier full phases and provides them to the host processor; wherein the host processor calculates carrier full phase differences between the measured GNSS carrier full phases; wherein, for each GNSS signal received by the GNSS antennas, the host processor calculates fractional parts of the calculated carrier full phase differences; and the host processor calculates angular coordinates of the base vectors using the fractional parts of the calculated carrier full phase differences, and, based on the angular coordinates, calculates the orientation of the object.
Description
BRIEF DESCRIPTION OF THE ATTACHED FIGURES
(1) The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description serve to explain the principles of the invention.
(2) In the drawings comparison of optimal and non-optimal constellation choices is illustrated:
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
(18) Reference will now be made in detail to the embodiments of the present invention, examples of which are illustrated in the accompanying drawings.
(19)
(20) Because the navigation satellite 100 is placed very far from both receiving antennas, signal propagation paths may be considered as two parallel rays 103 (received by the master antenna 101) and 104 (received by the slave antenna 102). The origin of the base vector 105 is placed in the PC of the master antenna 101 and the end of this vector is placed in the PC of the slave antenna 102.
(21) The attitude of the base vector 105 is considered with respect to a local frame ENU. The ENU coordinate axes X.sub.ENU, Y.sub.ENU, Z.sub.ENU originate from the PC of the master antenna 101. The Z.sub.ENU axis 106 is directed towards vertically up along the perpendicular to the Earth ellipsoid. The Y.sub.ENU axis 107 is perpendicular to the Z.sub.ENU axis 106 and directed to the North pole along the meridian. The X.sub.ENU axis 108 is perpendicular to the Z.sub.ENU axis 106 and directed to the East. The X.sub.ENU axis 108 complements the ENU frame to the right orthogonal. The axes X.sub.ENU 108 and Y.sub.ENU 107 form the local plane 119 (or the plane of the local horizon 119).
(22) To describe the attitude of the base vector 105, angular coordinates with respect to ENU (the azimuth angle α 109 and the elevation angle β 110) are used. The azimuth angle α 109 is determined as the angle between Y.sub.ENU axis 107 and the orthogonal projection 111 of the base vector 105 onto the local plane. The elevation angle β 110 is determined as the angle between the base vector 105 and its orthogonal projection 111 onto the local plane.
(23) Direction towards the satellite 100, which is visible from the PC of the master antenna 101 is described by the direction vector 112. This direction vector 112 originates from the PC of master antenna 101 and directed to the PC of the transmitting antenna of the satellite 100. The angular coordinates of this vector are described by an azimuth angle η 113 and an elevation angle ξ 114. The rules of determination of these angles are the same as for angles α 109 and β 110 respectively.
(24) The master antenna 101 and the slave antenna 102 receive the true values of the full carrier phases φ.sub.M and φ.sub.S respectively. The φ.sub.M is the number of carrier frequency periods (number of cycles) between the PC of the transmitting antenna of the satellite 100 and the PC of the master antenna 101 along the ray 103. The φ.sub.S is the number of cycles between the PC of the transmitting antenna of the satellite 100 and the PC of the slave antenna 102 along the ray 104. The path difference Δφ=φ.sub.M− φ.sub.S 115 between master and slave antennas may be represented as a sum Δφ=ΔΦ+δφ. The integer value ΔΦ 116 is the number of full cycles of the carrier frequency. The fractional value δφ=Δφ−round {Δφ} 117 is the fractional part of one cycle of the carrier frequency.
(25) The relationship between the attitude parameters of the vectors 105 (angles α 109 and β 110) and 112 (angles η 113 and ξ 114) and the path difference Δφ 114 has the following form:
(26)
(27) where: D—the length of the base vector 105; λ—a wavelength of the carrier signal; s.sub.x≡sin (x); c.sub.x≡cos(x).
(28) If the master antenna 101 and the slave antenna 102 simultaneously receive navigation signals from N different satellites the equation (1) should be repeated for each visible satellite:
(29)
(30) where: Δφ.sub.i, η.sub.i, ξ.sub.i is the path difference, the azimuth angle and the elevation angle for the satellite with number i=1 . . . N.
(31) The set of nonlinear equations (2) is the base for determination of the azimuth angle α 109 and the elevation angle β 110 of the base vector 105 by the Nonlinear Least Squares Method.
(32) The system of equations (2) can be written in a vector-matrix form as Δφ=f (η, ξ, α, β), where Δφ=[Δφ.sub.1 . . . Δφ.sub.N].sup.T—a vector of path differences, η=[η.sub.1 . . . η.sub.N].sup.T—a vector of satellites' azimuths, ξ=[ξ.sub.1 . . . ξ.sub.N].sup.T—a vector of satellites' elevations, f (η, ξ, α, β)—a vector function representing the right-hand side of equations (2) with all available wavelength λ. Taking into consideration a measurement noise, a simple measurement model for phase differences results:
Δφ=f(η,ξ,α,β)+ε (3)
(33) where: Δφ—the vector of measured path differences; f (η, ξ, α, β) is the vector of calculated path differences for wavelength λ; ε=[ε.sub.1 . . . ε.sub.N].sup.T is a vector of normally distributed and independent noise samples with diagonal covariance matrix R=diag {σ.sub.1.sup.2, . . . , σ.sub.N.sup.2}; σ.sub.i.sup.2 is a variance of carrier phase difference measurement with number i=1 . . . N.
(34) The equation system (3) is overdetermined and contains some random components ε. This equation system has no exact solution and must be solved by some numerical method which minimizes the solution error. The NLSM is a possible approach to solve this system and find {circumflex over (α)}, {circumflex over (β)} values when quadratic error function (Δφ−f (η, ξ, α, β)).sup.T R.sup.−1 (Δφ−f f (η, ξ, α, β)) reaches a minimum:
(35)
(36) To find the NLSM-solution of (3) meets the criteria (4) this system must be linearized near some intermediate solution {circumflex over (α)}.sub.i-1, {circumflex over (β)}.sub.i-1 received at previous iteration with number i−1:
Δφ≈f(η,ξ,{circumflex over (α)}.sub.i-1,{circumflex over (β)}.sub.i-1)+H.sub.i-1δx.sub.i+ε (5)
(37) where: i=1 . . . N.sub.max—a number of current iteration; N.sub.max—a maximum number of iterations;
(38)
is the Jacobian matrix at point {circumflex over (α)}.sub.i-1, {circumflex over (β)}.sub.i-1; δx.sub.i—an unknown correction for intermediate solution {circumflex over (α)}.sub.i-1, {circumflex over (β)}.sub.i-1.
(39) The equation system (5) is overdetermined and linear and may be solved by Linear Least Squares Method:
δ{circumflex over (x)}.sub.i=(H.sub.i-1.sup.TR.sup.−1H.sub.i-1).sup.−1H.sub.i-1.sup.TR.sup.−1[Δφ−f(η,ξ,{circumflex over (α)}.sub.i-1,{circumflex over (β)}.sub.i-1)]. (6)
(40) Now the NLSM-solution of (3) for a current iteration with number i may be received:
(41)
(42) The iteration process (5)-(7) stops when some norm (parameter) ∥δ{circumflex over (x)}.sub.i∥ becomes less than a predefined threshold. Values {circumflex over (α)}.sub.i, {circumflex over (β)}.sub.i received after last iteration are interpreted as NLSM-solution of (3): {circumflex over (α)}≡{circumflex over (α)}.sub.i, {circumflex over (β)}≡{circumflex over (β)}.sub.i. If the iteration number i reaches the N.sub.max before ∥δ{circumflex over (x)}.sub.i∥ becomes less than the predefined threshold, this indicates a problem in the numerical convergence of the algorithm. But the function f (η, ξ, α, β) (or its explicit form (2)) is quite smooth, therefore all convergence problems of iteration process (5)-(7) are caused by incorrect initial values {circumflex over (α)}.sub.0, {circumflex over (β)}.sub.0 before iterations start.
(43) Since the problem of initial values {circumflex over (α)}.sub.0, {circumflex over (β)}.sub.0 plays an important role in this discussion, it needs to be described more carefully. In fact, NLSM finds such {circumflex over (α)}, {circumflex over (β)} values at which the logarithmic likelihood function for measurement model (3) reaches the local maximum:
(44)
(45) where:
(46)
is the logarithmic likelihood function (3) with parameters α, β.
(47) The discrepancy between initial values {circumflex over (α)}.sub.0, {circumflex over (β)}.sub.0 and true values α.sub.TRU, β.sub.TRU of the base vector 105 attitude angles is limited by a shape and a size of the local maximum of the likelihood function L.sub.C (Δφ|η, ξ, α, β). If this discrepancy is too big the iterations (5)-(7) can converge to wrong solution or even diverge.
(48)
(49) The likelihood function with single maximum is the typical case for well-known GNSS interferometry methods of base vector 105 attitude determination. In these methods, each measured path difference Δφ 114 is considered in its full form-as a sum of integer part ΔΦ 116 and fractional part δφ 117. These methods require a carrier phase integer ambiguity resolution to calculate Δφ correctly.
(50) Replacing the full differences vector Δφ−f (η, ξ, {circumflex over (α)}.sub.i-1, {circumflex over (β)}.sub.i-1) inside iteration procedure (5)-(7) with its fractional part allows to remove the carrier phase integer ambiguity resolution. With this operation, equation (6) will change and look as follows:
δ{circumflex over (x)}.sub.i=(H.sub.i-1.sup.TR.sup.−1H.sub.i-1).sup.−1H.sub.i-1.sup.TR.sup.−1q.sub.i-1 (8)
(51) where: q.sub.i-1=Δφ−f (η, ξ, {circumflex over (α)}.sub.i-1, {circumflex over (β)}.sub.i-1)−round {Δφ−f (η, ξ, {circumflex over (α)}.sub.i-1, {circumflex over (β)}.sub.i-1)}—the fractional of difference between calculated and measured path differences.
(52) The new NLSM iteration procedure consists of sequential computation of steps (5), (8), (7). The logarithmic likelihood function for new iteration procedure is
(53)
where q=Δφ−f (η, ξ, α, β)−round {Δφ−f (η, ξ, α, β)} is the fractional part of difference between calculated and measured path differences.
(54)
(55)
(56)
(57)
(58) Directions of base vectors d.sub.1 603 and d.sub.2 605 with respect to the BF are given in the form of their coordinates: d.sub.1BF=[X.sub.1 Y.sub.1 Z.sub.1].sup.T, d.sub.2BF=[X.sub.2 Y.sub.2 Z.sub.2].sup.T. These coordinates are determined when the tri-antenna system is installed. Directions of these base vectors with respect to the ENU are given in the form of their angular coordinates: azimuth angles 109 and elevation angles 110. Azimuth and elevation angles for the base vector d.sub.1 603 are α.sub.1, β.sub.1. Azimuth and elevation angles for the base vector d.sub.2 605 are α.sub.2, β.sub.2. Cartesian coordinates of these base vectors with respect to ENU are:
d.sub.1ENU=D.sub.1[−s.sub.α1c.sub.β1c.sub.a1c.sub.β1s.sub.β1].sup.TD.sub.1=√{square root over (X.sub.1.sup.2+Y.sub.1.sup.2+Z.sub.1.sup.2)}
d.sub.2ENU=D.sub.2[−s.sub.α2c.sub.β2c.sub.a2c.sub.β2s.sub.β2].sup.TD.sub.2=√{square root over (X.sub.2.sup.2+Y.sub.2.sup.2+Z.sub.2.sup.2)} (9)
(59) where: s.sub.x=sin (x), c.sub.x=cos (x), x=α.sub.1, β.sub.1, α.sub.2, β.sub.2; D.sub.1—the length of the base vector d.sub.1 603; D.sub.2—the length of the base vector d.sub.2 605.
(60) The attitude of the vehicle is measured as attitude of the BF with respect to the ENU. The ENU frame has three axes connected with the Earth ellipsoid: XENU 108, YENU 107, ZENU 106. The attitude of the BF with respect to the ENU may be described as three Euler angles: yaw angle ψ 609, pitch angle ϑ 610, roll angle γ 611. Yaw angle ψ 609 is the angle between YENU axis 107 and the orthogonal projection 612 of YBF axis 607 to the local plane 119. Pitch angle ϑ 610 is the angle between the orthogonal projection 612 and YBF axis 607. The same angle ϑ 610 arises between ZENU axis 106 and vector 613. This vector 613 is perpendicular to YBF axis 607 and lies into the plane formed by Y.sub.BF axis 607 and Z.sub.ENU axis 106. Roll angle γ 611 is the angle between vector 613 and Z.sub.BF axis 608. Also, the attitude of the BF with respect to the ENU may be described as a direction cosine matrix (or a coordinate transformation matrix) S.sub.BF.sup.ENU:
(61)
(62) where: s.sub.x=sin (x), c.sub.x=cos (x), x=ψ, ϑ, γ.
(63)
(64) Iteration counter i is checked in 708. If the value of this counter is greater than maximum iteration number I.sub.MAX but decision 706 not satisfied, it indicates a numerical problem of iteration algorithm 700. This algorithm must be abnormally terminated with exception 709. In other cases, if the iteration counter is less than I.sub.MAX, the iteration algorithm 700 returns to 702 with new estimates of α and β.
(65)
(66) Next step is calculation 803 of the vehicle's attitude. In one embodiment, the well-known algorithm TRIAD is used for this purpose. To describe one exemplary implementation of TRIAD algorithm, we should receive coordinates of d.sub.1 603 and d.sub.2 605 vectors with respect to the ENU and with respect to the BF. Constant coordinates d.sub.1BF and d.sub.2BF with respect to the BF are measured after installation of an attitude measurement system. Variable coordinates d.sub.1ENU, d.sub.2ENU with respect to the ENU are calculated from the appropriate direction angles in accordance with (9). Coordinate transformation matrix (10) connects two different coordinate sets of the base vectors: d.sub.1ENU=S.sub.BF.sup.ENU d.sub.1BF, d.sub.2ENU=S.sub.BF.sup.ENUd.sub.2BF
(67) Arranging these coordinate sets in two matrixes:
(68)
(69) These two matrices permit calculation of the the coordinate transformation matrix: S.sub.ENU.sup.BF=A.sub.ENUA.sub.BF.sup.−1. This matrix S.sub.ENU.sup.BF is the output vehicle's attitude matrix calculated in 803.
(70) In another embodiment S.sub.ENU.sup.BF may be calculated via the SVD (singular value decomposition) as described in [1]. Coefficients of S.sub.ENU.sup.BF matrix may be recalculated to other types of attitude parameters, if required: Euler angles or quaternions. Output data 804 of algorithm 800 contain vehicle's attitude and directional angles for the two base vectors d.sub.1 603 and d.sub.2 605.
(71) Special requirements to antennas arrangement can remove cumbersome vector-matrix calculations (11). The master antenna 601 can be placed in an apex of an isosceles triangle and slave antennas 602 and 604 in the opposite ends of a base of the isosceles triangle. In this arrangement base vectors d.sub.1 603 and d.sub.2 605 coincide with opposite legs of the isosceles triangle. The vertical symmetry axis of this isosceles triangle must be aligned with the positive direction of the vehicle's longitudinal axis. The base of this isosceles triangle must be aligned with the positive direction of the transverse axis of the vehicle. In this case the base vectors d.sub.1 603 and d.sub.2 605 have the following coordinates with respect to the BF: d.sub.1BF=[X Y 0].sup.T, d.sub.2BF=[−X Y 0].sup.T, Y>0. The direction of the vehicle's longitudinal axis is described as the geometrical sum vector:
d.sub.Σ=[X.sub.ΣY.sub.ΣZ.sub.Σ].sup.T=d.sub.1+d.sub.2.
(72) The direction of the vehicle's transverse axis is described as the geometrical difference vector
d.sub.Δ=[X.sub.ΔY.sub.ΔZ.sub.Δ].sup.T=d.sub.1−d.sub.2.
(73) Scalar components of vector d.sub.ΣENU and vector d.sub.ΔENU calculated according (9) contain all required information about vehicle's yaw angle ψ to 609, pitch angle ϑ 610:
(74)
(75) If a vehicle's flip does not matter, roll angle γ 611 may also be calculated from d.sub.ΣENU and d.sub.ΔENU:
(76)
(77)
(78) In another embodiment procedure 901 implements two simultaneous two-dimensional searches over the multimodal likelihood function 400. One two-dimensional search is running to find the acceptable neighborhood 501 of the true maximum 401 for the antennas pair 601 and 602. This neighborhood is used to select the coarse values of α.sub.1, β.sub.1. Another one two-dimensional search is running to find the acceptable neighborhood 501 of the true maximum 401 for antennas pair 601 and 605. This neighborhood is used to select the coarse values of α.sub.2, β.sub.2.
(79) Other algorithms also can be implemented inside procedure 901 to provide the coarse estimates of the direction angles of base vectors d.sub.1 603 and d.sub.2 605. These coarse estimates are used to initialize attitude determination algorithm 800. This algorithm 800 provides fine estimates of direction angles and vehicle's attitude parameters 902. This data 902 is used as output data of algorithm 900. Also, this data is used inside 903 to set the coarse estimates of direction angles for the next measurement of a vehicle's attitude.
(80) Algorithm 900 stops if no new attitude measurement after receiving of data 902 is required in 904. If the next attitude measurement is required, the availability of GNSS signals for this measurement must be checked 905. If the GNSS signals are available, the data 902 received at the previous attitude measurement is set as coarse estimates of the direction angles 903 for the new attitude measurement.
(81)
(82) If the GNSS measurements are not available for the current attitude measurement instant, the algorithm 1000 checks 1002 availability of a dead-reckoning attitude provided by an external IMU data processing algorithm. This dead-reckoning attitude is available for a limited period of time after beginning of a GNSS outage. If the duration of the GNSS outage is longer than this period of time, the dead-reckoning attitude become unavailable. The duration of the dead-reckoning period is determined by IMU quality, IMU data external processing algorithm structure and sizes of acceptable ranges 501.
(83) If check 1002 shows the availability of the dead-reckoning attitude, this attitude is used for direction angles calculation algorithm 1003. In one embodiment this dead-reckoning attitude is presented as transformation matrix S.sub.ENU.sup.BF. This matrix is used by the algorithm 1003 to calculate the coordinates of the base vectors 603 and 605 with respect to the ENU:
(84)
(85) The dead-reckoning direction angles are calculated by the algorithm 1003 as follows (i=1,2):
(86)
(87) Dead-reckoning angles (11) are used as output data 1004 of the algorithm 1000 during the GNSS outage, but with the dead reckoning attitude available. If the GNSS measurements become available after the outage during the dead-reckoning period dead-reckoning angles 1004 are used as coarse direction angles for algorithm 800.
(88)
(89) Both RF front ends 1103 and 1104 are fed by a common frequency signal 1105 generated by a local oscillator 1106. The local oscillator 1106 also feeds digital navigation processor 1107. The digital navigation processor 1107 receives I and Q components 1108 of the received GNSS signals and transmits control signals 1109 for the RF front ends 1103 and 1104.
(90) The navigation processor 1107 has two parts—a navigation part and a system part. The navigation part performs a demodulation of I and Q components 1108, the GNSS signal acquisition and tracking, code and phase measurements, and determination of position and velocity. The system part of navigation processor 1107 provides an overall control of the GNSS receiver, receiver's status indication, etc. Also, the system part of navigation processor 1107 provides operation of external interfaces 1110, 1112, 1113 for bidirectional navigation and other data transfers between the GNSS receivers and external devices. One exemplary embodiment of an external device is an external IMU 1114 connected to the receiver 1101 via an external interface 1113.
(91) In this embodiment the master antenna 601 is connected to the navigation RF frontends 1103 of both GNSS receivers 1101 and 1102 via an RF splitter 1111. Slave antennas are connected to appropriate interferometric RF frontends 1104. Slave antenna 602 is connected to the RF frontend 1104 of the receiver 1101. Slave antenna 604 is connected to the RF frontend 1104 of the receiver 1102. This way of antenna connection provides two non-colinear base vectors 603 and 605 with common origin. The origin of these two base vectors is located at the phase center of master antenna 601.
(92) GNSS receivers 1101 and 1102 simultaneously measure phase differences between appropriate master and slave antennas. Receiver 1101 measures phase difference between 601 and 602 antennas pair. Receiver 1102 measures phase difference between 601 and 605 antennas pair. Receiver 1102 transmits its measurements to receiver 1101 via the external interface 1112. Receiver 1101 uses its own measurements and the measurements received from receiver 1102 to calculate the vehicle's attitude. If the external IMU 1114 is not connected to receiver 1101 it uses the algorithm 900 calculate the vehicle's attitude. If the external IMU 1114 is connected to the receiver 1101 via the external interface 1113, it uses the algorithm 1000 to calculate the vehicle's attitude.
(93) In one embodiment of the IMU 1114, it has several data interfaces which can be connected to various devices independently from each other. If the IMU 1114 has this feature it connects to the receiver 1102 via an external interface 1115.
(94)
(95) Both GNSS receivers 1101 and 1102 send their phase measurements to host processor 1201 via external interfaces 1112. Also, the GNSS receivers 1101 and 1102 send the measurements or the direction angles of appropriate base vectors 603 and 605. The host processor 1201 calculates the vehicle's attitude based on these angular measurements according the algorithm 900. If the IMU 1114 is connected to the host processor 1201 via an external interface 1203 the vehicle's attitude is calculated by the host processor 1201 according the algorithm 1000.
(96)
(97) Both navigation processors 1107 and 1301 have bidirectional external interfaces 1110, 1113 and 1309 to connect external devices. One exemplary embodiment of an external device is the external IMU 1114 connected to the navigation processor 1107 via the external interface 1113. In another exemplary embodiment external IMU 1114 has the multichannel feature and is connected to the navigation processors 1107 and 1303 via separate external interfaces 1113 and 1310.
(98) The navigation processors 1107 and 1303 simultaneously measure phase differences between appropriate master and slave antennas. Navigation processor 1107 measures phase difference between the 601 and 604 antennas pair. Navigation processor 1303 measures phase difference between the 601 and 602 antennas pair. Navigation processor 1303 transmits its measurements to the navigation processor 1107 via an in-circuit interface 1308. Navigation processor 1107 uses its own measurements and the measurements received from the navigation processor 1303 to calculate the vehicle's attitude. If the external IMU 1114 is not connected to navigation processor 1107 it uses the algorithm 900 calculate a vehicle's attitude. If the external IMU 1114 is connected to navigation processor 1107 via external interface 1113 it uses the algorithm 1000 to calculate the vehicle's attitude.
(99)
(100) Navigation processors 1107 and 1303 simultaneously measure phase differences between appropriate master and slave antennas. Navigation processor 1107 measures phase difference between 601 and 604 antennas pair. The navigation processor 1303 measures phase difference between 601 and 602 antennas pair. Both navigation processors 1107 and 1303 transmit their measurements to host processor 1402 via in-circuit interfaces 1403 and 1404. The host processor 1402 uses these measurements to calculate the vehicle's attitude. If the external IMU 1114 is not connected to the host processor 1402 it uses the algorithm 900 calculate a vehicle's attitude. If the external IMU 1114 is connected to the host processor 1402 via an external interface 1405 it uses the algorithm 1000 to calculate a vehicle's attitude. In one embodiment the external IMU 1114 has the multichannel feature and is connected to the navigation processors 1107 and 1307 and to the host processor 1402 via appropriate separate interfaces 1113, 1310, 1405.
(101)
(102) Having thus described the different embodiments of a system and method, it should be apparent to those skilled in the art that certain advantages of the described method and apparatus have been achieved. It should also be appreciated that various modifications, adaptations, and alternative embodiments thereof may be made within the scope and spirit of the present invention. The invention is further defined by the following claims.
REFERENCES (ALL INCORPORATED HEREIN BY REFERENCE IN THEIR ENTIRETY)
(103) 1. F. Landis Markley, “Attitude Determination using Vector Observations and the Singular Value Decomposition”, The Journal of the Astronautical Sciences, Vol. 36, No. 3, July-September 1988, pp. 245-258. 2. U.S. Pat. No. 5,534,875, Attitude Determining System for use with Global Positioning System. 3. U.S. Pat. No. 5,548,293, System and Method for Generating Attitude Determination Using GPS. 4. U.S. Pat. No. 6,005,514, Method for Attitude Determination Using GPS Carrier Phase Measurements from Nonaligned Antennas. 5. U.S. Pat. No. 6,088,653, Attitude Determination Method and System. 6. U.S. Pat. No. 6,424,915 B1, System for Determining the Heading and/or Attitude of a Body. U.S. Pat. No. 6,754,584, Attitude Measurement Using a Single GPS Receiver with Two Closely-Spaced Antennas.