An Improved Single-Epoch Attitude Determination Method for Low-Cost Single-Frequency GNSS Receivers

: GNSS attitude determination has been widely used in various navigation and positioning applications, due to its advantages of low cost and high efﬁciency. The navigation positioning and attitude determination modules in the consumer market mostly use low-cost receivers and face many problems such as large multipath effects, frequent cycle slips and even loss of locks. Ambiguity ﬁxing is the key to GNSS attitude determination and will face more challenges in the complex urban environment. Based on the CLAMBDA algorithm, this paper proposes a CLAMBDA-search algorithm based on the multi-baseline GNSS model. This algorithm improves the existing CLAMBDA method through a ﬁxed geometry constraint among baselines in the vehicle coordinate system. A ﬁxed single-baseline solution reduces two degrees of freedom of vehicle rigid body, and a global minimization search for the ambiguity objective function in the other degree of freedom is conducted to calculate the baseline vector and its Euler angles. In addition, in order to make up for the shortcomings of short baseline ambiguity in complex environments, this paper proposes different validation strategies. Using three low-cost receivers (ublox M8T) and patch antennas, static and dynamic on-board experiments with different baseline length set-ups were carried out in different environments. Both the experiments prove that the method proposed in this paper has greatly improved the ambiguity ﬁxing performance and also the Euler angle calculation accuracy, with an acceptable calculation burden. It is a practical vehicle-mounted attitude determination algorithm.


Introduction
With the continuous development of sensor technology, multi-source sensor fusion technology is increasingly used for navigation and positioning services in land vehicles and other applications with low-cost sensors. This requires not only accurate position and velocity information, but also the vehicle attitude, to ensure every single sensor's normal operation [1][2][3][4]. As an independent satellite-based positioning technology, GNSS is often used as an external reference for other technologies. In the field of position and velocity estimation, some scholars have studied the problem of random models of observations and used low-cost receivers to obtain more reliable results, such as Android smartphones [5,6]. As long as the phase ambiguity is correctly fixed, high-precision attitude information can be obtained [7]. In recent years, GNSS attitude determination has developed rapidly [8][9][10]. However, due to the accuracy limitations of low-cost sensors, most previous researches mainly focused on the use of other sensors, with low-precision GNSS receivers, to design an attitude output module [11][12][13]. Even when considering multi-sensor fusion, the loosely coupled technology is more widely adopted and used in practical applications. GNSS often prefers independent resolution, so it is particularly necessary to explore the independent attitude determination using low-cost GNSS receivers.
The most critical problem of GNSS attitude determination is how to fix the ambiguity quickly and accurately. For land vehicles, complex environments will cause frequent carrier phases to lose lock and multipath errors. In order to avoid the phase observation cycle slip issue, the land vehicle's attitude determination is often carried out as a single epoch method. However, the application of low-cost antennas and receivers will make the pseudorange observations easily affected by the multipath, and the correspondent ambiguity fixing success rate becomes quite low [14]. Therefore, more robust methods are demanded to resolve the ambiguity fixing problem under this condition.
The most commonly used GNSS ambiguity fixing method is the integer least-squares method, namely, the LAMBDA method. In order to improve the ambiguity success rate, the constrained LAMBDA (C-LAMBDA) method has been proposed. This method extends the ambiguity objective function by incorporating the baseline length and its variance into the ambiguity search process [15,16]. CLAMBDA has been widely used for applications with low-cost receivers. For example, Hide et al. conducted both simulated and real baseline experiments [17]. In addition to the baseline length constraint, Roth et al. also incorporated the attitude information provided by inertial and magnetic field sensors into the ambiguity search range, in a special extended LAMBDA manner [18]. Given the unreliability of float ambiguity solutions, some scholars tried to obtain a more reliable fixed ambiguity solution, by using the interval search method [19][20][21]. Wang et al. selected the CLAMBDA method and MC-LAMBDA method for analysis in basic principle, equivalency, and advantages and disadvantages; it shows that all prior information is fully utilized, but the computational burden is increased [22]. To sum up, many previous studies have shown the effectiveness of CLAMBDA and MCLAMBDA [23]. However, there are few studies on multi-baseline attitude determination with CLAMBDA or MC-LAMBDA, in the context of low-cost receivers and complex environments. Many in-field problems related to actual observing environments still remain unresolved, such as urban or woody environments.
For land vehicles, a single baseline can only determine two attitude angles in two degrees of freedom. An additional baseline vector is required to derive attitude information in the direction of the other degree of freedom. Similar to CLAMBDA, the multivariate constrained LAMBDA, MC-LAMBDA, is developed for multi-baseline ambiguity fixing. The MC-LAMBDA method takes both the baseline geometric condition and attitude constraint into consideration; it is still complicated, and a large amount of calculation effort is required. Meanwhile, this method can only use the same common-view satellite pair between the baselines. The adoption of the MC-LAMBDA model will lose some observation information because of the complicated urban environments. Besides, the only means of avoiding a loss of information is to apply the 'ambiguity-graph' strategy, to form the maximum number of double-differenced ambiguities [24][25][26]. However, this method is too complicated and has a computational burden. GNSS attitude determination methods include the direct method, the least-square method, Kalman filter-based quaternion method [27], and so on. This paper, directly using the baseline vector to solve the attitude angle, has advantages of a relatively small calculation effort and the need for no prior information.
The above discusses some GNSS attitude determination methods, with a special focus on reviewing the ambiguity fixing with a single epoch. However, most GNSS attitude determination experiments are performed with GPS-only observations, and with geodetic quality antennas, or even geodetic receivers. In other words, performance analysis in complex environments, for low-cost vehicle applications, is rare and not convincing [17][18][19]21,28]. Fortunately, some scholars have proposed that the performance of multi-system single-frequency GNSS receivers is equivalent to that of single-system multi-frequency receivers [29], and also proves that the performance of the GPS/BDS dual system is superior to the GPS-only within the Asia-Pacific region [30]. In terms of attitude determination quality control, Li et al. proposed an attitude integrity monitoring algorithm [31]. Experiments have shown that the maximum error can be reduced by 2.3 • . Guo proposed a quality control method based on affine transformation, when the number of common-view satellites is Remote Sens. 2021, 13, 2746 3 of 21 insufficient [32]. However, investigations concerning attitude quality control for low-cost receivers are still limited.
Based on the above discussions, in order to avoid complicated calculations and the lack of common-view satellites for multi-baselines, this paper proposes a combination of multi-baseline, CLAMBDA, and direct method to resolve the attitude angle parameters. In order to further improve the ambiguity fixing success rate for the three-antenna baseline model, given a fixed ambiguity of a baseline in one direction, this paper proposes to obtain the fixed ambiguity solution by searching the attitude angle of the degree of freedom in the other directions, by minimizing the ambiguity objective function globally.
At the same time, several test conditions are constructed, based on the known multiplebaseline geometric information in this paper. The proposed method is verified by static experiments, with various baseline lengths and environments, and dynamic experiments in urban environments. The hardware is the consumer-grade Ublox GNSS receiver and patch antenna. The experimental results show that the method can still have good attitude determination performance in a single-frequency single-epoch way under the complex urban environment with low-cost receivers. Moreover, the results show a high success rate, high accuracy, and high reliability.

GNSS Attitude Determination
In this section, we will introduce a single-baseline model for GNSS attitude determination, a classic GNSS multi-baseline model for vector determination, and how to use the baseline vector to obtain attitude information by the direct method.

GNSS Single-Baseline Compass Model
For single-baseline double-difference carrier phase and code observations, whose ionosphere error, troposphere error and clock errors become negligible with short baselines, the linear form of GNSS observations is given by the following: where y is GNSS the double-differenced observation, A is the design matrix of the doubledifferenced ambiguities, z is the double-differenced ambiguity vector, G is the matrix of the differenced unit line-of-sight vectors. E(·) and D(·) represent the mean value and variance, respectively. Q y is the variance of the double-differenced observation y. In general, the least-squares estimation or Kalman filter is used to derive the float double-differenced ambiguity z and its variance Qẑ. A second least-squares estimation is further utilized to fix ambiguities by the following: where z is the fixed ambiguity vector, b =b( z ) and Qb ( z )b( z ) are the ambiguity-fixed baseline vector and its variance, respectively. Qẑ and Qbẑ are the variance of float ambiguity and its covariance between the baseline vector, respectively. The most classic ambiguity resolution method is the LAMBDA method. If the baseline vector is known, Equation (1) turns into the following: Different to the LAMBDA method, the integer least-squares principle, with quadratic equality constraints, is used to formulate the following cost function [33]: If we have the uncertainty of baseline length D(l), the GNSS compass model is read as the following: Then, the ambiguity objective function with another nonlinear least-squares problem is presented as the following: This minimization problem can be resolved with the weighted constrained C-LAMBDA method, which has been described in detail in Teunissen [34].

GNSS Multi-Baseline Model
The traditional GNSS multi-baseline model is used to ensure that the different observations between each baseline and its stochastic model can be fully applied. Assume that we have m + 1 observation stations and m baselines. The number of common-view satellites for each baseline is n 1 n 2 · · · n m , respectively. As for the short baseline, atmospheric-related errors are greatly eliminated. Thus, the GNSS multi-baseline model is expressed as follows: (8) where N = n 1 + n 2 + · · · + n m . Y (2N × 1) is the double-differenced observations of the m baselines, Z (N × 1) is the double-differenced ambiguity vector of the m baselines, B (3m × 1) is the baseline vector, A (2N × N) is the double-differenced ambiguity coefficient matrix, and G(2N × 3m) is the construction matrix. Q Y is the variance matrix of all the observations. Note that because of the different common-view satellites for all the baselines, the observation variance matrix cannot be directly obtained by the Kronecker product. Instead, it can be calculated according to the covariance propagation law, by the following: where L UD , L SD , and L DD are un-, single-, and double-differenced observations; Q UD , Q SD , and Q DD are the correspondent variance-covariance matrix; Q UD follows the elevation angle weighting approach; D SD and D DD are coefficient matrixes from the unto single-differencing, and single-to double-differencing observations, respectively; and D b 1 , D b 2 , D r 1 , D r 1 , D br 1 , D br 2 are the corresponding coefficients. where F is the matrix of the local baseline coordinates, R is the direction cosine matrix, which links the two frames by means of a rigid rotation, and the parameter p is used to indicate the number of columns in R.
vec( R(Z)) = arg min where C(Z) is the cost function,Ẑ is the float ambiguity matrix, with covariance QẐẐ, whereas the second weighs the distance from the conditional float solutionR(Z) to the nearest orthonormal matrix R(Z) in the metric of QR (Z)R(Z) . Due to the observation limitations of the MCLAMBDA method, which does not take into account the non-common satellites between the multiple baselines involved in the model, and the computational burden is heavy for the multi-baseline MCLAMBDA searching, the CLAMBDA method is selected in this study, to fix the ambiguity.

Direct Attitude Determination Method
The baseline vector is parametrized as b 1 = e 1 n 1 u 1 and b 2 = e 2 n 2 u 2 in the local East-North-Up and Right-Front-Up body frame, respectively. The multiple antenna is set up in Figure 1. The primary baseline b 1 is parallel to the vehicle moving direction, whereas the secondary baseline b 2 has a rotation angle α with respect to b 1 . Then, the yaw, pitch, and roll angle can be computed from the baseline coordinates, as follows: where ψ is heading, θ is pitch, and γ is roll.
where F is the matrix of the local baseline coordinates, R is the direction cosine matrix, which links the two frames by means of a rigid rotation, and the parameter p is used to indicate the number of columns in R.
where ( ) C Z is the cost function, Ẑ is the float ambiguity matrix, with covariance ˆẐ Z Q , whereas the second weighs the distance from the conditional float solution ˆ( Z) R to the nearest orthonormal matrix (Z) R  in the metric of Due to the observation limitations of the MCLAMBDA method, which does not take into account the non-common satellites between the multiple baselines involved in the model, and the computational burden is heavy for the multi-baseline MCLAMBDA searching, the CLAMBDA method is selected in this study, to fix the ambiguity.

Direct Attitude Determination Method
The baseline vector is parametrized as ( ) . Then, the yaw, pitch, and roll angle can be computed from the baseline coordinates, as follows: where ψ is heading, θ is pitch, and γ is roll.  In this paper, the three-antenna GNSS multi-baseline model is adopted. No redundant observation is considered. The direct method is particularly applicable in this study because of its simple form and small computing burden.

CLAMBDA-Search Model
Low-cost GNSS receivers have unstable and less-qualified pseudorange and carrier observations, in terms of less observation frequency, larger observation noise, and weak phase tracking capability. Therefore, the performance of low-cost receivers will face greater challenges when the signal is blocked. In urban environments, the signal block phenomenon occurs frequently, and the correspondent multipath errors are serious. Even if the signals are received by antennas that are very close to each other, and they may still have different observations, the ambiguity fixing success rate of multiple baselines is highly related to the environment. Therefore, this paper will combine the characteristics of vehicle attitude determination, taking into account geometric information, and improve the existing methods in the ambiguity domain and attitude domain, to obtain more reliable results.

An Improved Method for Single-Frequency Single-Epoch Attitude Determination
For vehicle three-antenna attitude determination applications, wrong ambiguity fixing is hard to avoid for one or two baselines with poor-quality data in the CLAMBDA method. In order to solve this problem and improve the applicability of low-cost receiver attitude determination, this paper proposes a Euler angle search and single degree of freedom in an unfixed direction method called CLAMBDA-search, which adopts the CLAMBDA method to fix the ambiguity and then the attitude parameters.
The three-antenna layout is shown in Figure 1, and wrong fixing of baseline two is taken as an example. When baseline one is correctly fixed, and baseline two cannot be fixed or incorrectly fixed, we can apply the method proposed in this study. However, when baseline one fails to fix, that is, when baseline two becomes the primary baseline, the angle determination method is slightly different. We will discuss this situation later. Here, baseline one is set as the primary baseline. Given the baseline vector, as follows: where b n 1 is the fixed vector of baseline one in the local frame,b n 2 is the float vector of baseline two; and b b 1 and b b 2 are the known coordinates in the carrier coordinate system, which can be obtained in advance by some other technologies such as total station, static GNSS continuous observation, etc.
According to the first two terms in (14), we can obtain the ambiguity-fixed yaw ( ψ) and pitch ( θ ), along with the ambiguity-float roll (γ 0 ). So far, we have obtained two ambiguity-fixed angles and one remaining unfixed angle. With these three angles, we construct an Euler angle E 0 = ( ψ θγ 0 ). We set a searching region for the roll (γ 0 ) angle and carry out the searching process as follows: where η is the searching step. Obviously, the step size is a trade-off between searching accuracy and searching efficiency. We will discuss this topic in the next sub-section. This searching strategy was proposed independently, by Schnorr and Euchner [34]. For any value in the searching region, the corresponding direction cosine matrix is represented as C n b (k). Then, it is expressed as follows: Substituting b n 2 (k) into the observation equation, the observation equation can be expressed as follows: where ϕ DD 2 is the double-differenced carrier phase observation;N DD 2 is the float ambigu- is the construction matrix based on b n 2 (k); and v ϕ DD 2 is the residual vector. All the superscripts of two represent the second baseline of the corresponding part of the matrix. We can derive the sole fixed ambiguityN DD 2 whose error δN DD 2 conforms to the same distribution of v ϕ DD 2 . Given the construction matrix G(b n 2 ) 2 and the true value of the baseline vector b n 2 , we have the following: (18) where γ k → γ . If γ k is very close to its true value γ, we can assume that v ϕ DD 2 is normally distributed, and so the ambiguity error δN DD 2 . Based on the covariance propagation law, we have the following: With the known conditions above, we can then conduct the standard CLAMBDA searching. The ambiguity-fixed baseline solution is that with the smallest ambiguity function.
where, the ambiguity function takes the unknown attitude angle (which is is roll here) into account.
The correct fixing result cannot always be available for most searched rolls in the region. Some approximate value of the roll angle, by just one or a few values, can yield normally distributed residuals, and then fix the correct ambiguity. In order to retrieve the closest solution to the roll angle, we can take the global minimum value of the ambiguity function, as follows: where N(z, γ) is the searching boundary, which affects the float roll angle and the searching efficiency. So far, we have got the new algorithm, and further discussion is needed. The flowchart of the proposed CLAMBDA-search method is shown in Figure 2, and the corresponding procedures are as follows: Step 1: use the code and phase observations to construct double-differenced measurements; Step 2: apply the Kalman filter to estimate the multi-baseline unknown parameters; Step 3: apply the CLAMBDA for the baseline without correctly fixed ambiguity, and record the current minimum of the fixed ambiguity objective function; Step 4: Apply attitude and geometry validation (see validation section). If the conditions are satisfied or the searching procedure is done, output the results. If any of the condition is not satisfied, start roll or pitch searching, re-construct double-differenced measurements, and jump to step 2.
Step 2: apply the Kalman filter to estimate the multi-baseline unknown parameters; Step 3: apply the CLAMBDA for the baseline without correctly fixed ambiguity, and record the current minimum of the fixed ambiguity objective function; Step 4: Apply attitude and geometry validation (see validation section). If the conditions are satisfied or the searching procedure is done, output the results. If any of the condition is not satisfied, start roll or pitch searching, re-construct double-differenced measurements, and jump to step 2.

Error Analysis
Once the ambiguity is fixed by (16), we can get all the ambiguity solutions and the ambiguity-fixed baseline vector. According to the relationship between the baseline and the attitude angle in (13), the differential equation of the attitude angles and the covariance propagation law, the error expression of the attitude angle can be derived. Define the posterior baseline error as follows: Conduct a differential process to ψ in (13), as follows:

Error Analysis
Once the ambiguity is fixed by (16), we can get all the ambiguity solutions and the ambiguity-fixed baseline vector. According to the relationship between the baseline and the attitude angle in (13), the differential equation of the attitude angles and the covariance propagation law, the error expression of the attitude angle can be derived. Define the posterior baseline error as follows: Conduct a differential process to ψ in (13), as follows: If one ignores the covariance between the baseline components, the heading angle error is expressed as follows: Similarly, the error expressions of the pitch and roll angle are described as follows: where the following is applied: It can be seen, from (25)- (27), that the accuracies of the heading angle and pitch angle are only related to the primary baseline (baseline one). The longer the baseline length is, the smaller the error is. On the other hand, the roll angle is dependent on the baseline length, as well as the baseline geometry. The long baseline length, and the closeness of the two-baseline angle to 90 • , yield the smaller error.
In the CLAMBDA-search method, one degree of freedom exists in the roll angle direction, when baseline one is fixed. Since the distance between the searched solution and its true value is very far from the distance between the receiver and the satellite, we can Then, for a certain value E(k) = ( ψ θγ k ) within the searching region, we have the following: The baseline coordinates can be expressed in the form of the baseline length and the attitude angle, as follows: Then, Equation (28) can be expressed as follows: It is clear, from (30), that the distribution of ambiguity error is dependent on the baseline length. The longer the baseline length is, the greater the difference between the roll angle and its true value is. Obviously, a small step size has a large possibility to reach the true value, and then easy ambiguity fixing. However, a small step size means a lot of computing time. Therefore, we will design several experiments with various baseline lengths and step sizes, to seek a more suitable searching method.

Validation
As the CLAMBDA method changes the ambiguity objective function, the ambiguity vector does not conform to the χ 2 distribution. That means the general ratio test cannot be used to verify the correctness of the ambiguity fixing solution. For a single baseline, the baseline length can be used as an ambiguity validation means. As for the multiple-baseline case, the redundant geometric condition and the DCM projection can be adopted for the ambiguity validation.

Baseline Length Check
For the minimum requirement of the ambiguity objective function, the baseline obtained by CLAMBDA should conform to the known baseline length condition. However, due to wrong data and excessive searching time, a satisfactory solution may not be obtained within a specified searching duration. The threshold is set as 0.03 m in this paper.

Geometric Condition Check
In the kinematic scenario, the antenna is fixed on the vehicle roof so it can be considered as a rigid body. Therefore, the angle between the two baselines in the local frame should meet the condition.
where τ geo is the empirical threshold, set as 0.2 in this paper.

Attitude Angle Check
If any given γ k is close to its true value γ, the calculated value γ k with the fixed ambiguity should also be close to γ k . Then, we can check by using the following:

Maximum Pitch and Roll Angle Check
The pitch and roll angle are often within a certain range in ground vehicle applications. So, the coordinate difference between the two fixed baseline vectors in the u direction should meet this condition. In this search, we set the maximum pitch and roll to 45 degrees.

Additional Discussion
We have discussed the necessary concepts of the proposed method in the previous subsection, with baseline one as the primary baseline (when baseline one is correctly fixed). However, the procedure is slightly different when baseline two becomes the primary baseline. Due to the definition of DCM, we have to adopt another Euler angle definition approach when baseline two is treated as the primary baseline. The rotation of the rigid body is related to the direction and the order, which will probably cause misunderstanding. Because the baseline installation angle in the body frame cannot be guaranteed to be completely orthogonal, switching the primary baseline also means a change in the vehicle coordinate system, which would further cause a difference in the attitude angle. This sub-section will discuss these problems. DCM, with the Euler angle derived by baseline one as the primary baseline, is defined as follows: where c is the cosine function and s is the sine function. However, in order to ensure that searching can be performed when baseline two is fixed, DCM, with the Euler angle derived by baseline two as the primary baseline, is as follows: Although these two forms are not identical, their algebraic values are exactly the same. Therefore, we directly give the formula for calculating the Euler angle by the direct method as follows: ψ = arctan n 2 e 2 γ = −arctan The CLAMBDA-search process afterwards is exactly the same. However, the attitude angle, with baseline two as the primary baseline, will face the problem of inconsistent coordinate systems. Fortunately, since the baseline is fixed, we only need to re-calculate the attitude angle, using baseline one as the primary baseline. For the antenna's non-orthogonal error, the vehicle coordinates in the body frame are as follows: where the digits in brackets represent the primary baseline. However, the b-system coordinates and the corresponding attitude angles will be inconsistent with different antenna layouts. The principle is to convert them to a unified right-handed coordinate system. Therefore, for the definition of body frame as RFU, the angle α between the baselines is defined as follows: • b 1 is the primary baseline. Starting from b 1 , turn to b 2 in the clockwise direction. If b 1 is negative, then α = α + π; • b 2 is the primary baseline. Starting from b 2 , turn to b 1 in the anti-clockwise direction. If b 2 is negative, then α = α + π.
In the meantime, the conversion of θ and γ is required when converting to the positive right-handed coordinate system if the negative axis is defined.
For different baseline configurations, we must use the vehicle coordinate system, the Euler angle definition and DCM in a consistent manner. Otherwise, it will cause unpredictable consequences because of the definition of the Euler angle and coordinate system. So far, the problems of different vehicle coordinate systems, different attitude angle definitions, and the antenna's non-orthogonal errors have been successfully resolved.

Experiments and Results
In this part, several independent experiments will be carried out to test the performance of the CLAMBDA-search method with real-world data. First, we introduce a static experiment and its results. Then, we will show a dynamic one. The antenna coordinates in the body frame are obtained from the GNSS static results in the paper.

Static Experiment
In order to assess the proposed CLAMBDA-search method with low-cost receivers in complex environments, this study utilizes three Ublox M8T receivers and a patch antenna to form a three-baseline layout. We conducted five tests with baseline lengths of 0.3, 0.   Figure 3 shows the antenna layout for the open-sky and degraded environment, respectively. In the open-sky environment, the antenna is placed at the corner of a flower bed, whereas it is placed under two tall trees in the degraded environment. The GNSS data collection frequency is 1 Hz. The elevation cutoff angle is set to 10°. Each test lasts for about 12 min in the morning of 8 March 2020.   We can find that the satellite number is higher with dual satellite systems, and the PDOP value is mostly below 2.5. The active satellite number changes occur in the beginning. This phenomenon is caused by the receiver cold startup on satellite tracking. All the experimental data are solved using LAMBDA (approach I), CLAMBDA (approach II), MCLAMBDA (approach III) and CLAMBDA-search (approach IV) in sequence. The ratio . α is the angle between the two baselines. Figure 4 also depicts the number of tracked GPS and BDS satellites and the correspondent PDOP value. The light-green and dark-green line represents the open-sky scenario, while the red and magenta line represents the degraded scenario. We can find that the satellite number is higher with dual satellite systems, and the PDOP value is mostly below 2.5. The active satellite number changes occur in the beginning. This phenomenon is caused by the receiver cold startup on satellite tracking. All the experimental data are solved using LAMBDA (approach I), CLAMBDA (approach II), MCLAMBDA (approach III) and CLAMBDA-search (approach IV) in sequence. The ratio of LAMBDA ambiguity validation is set as three. The baseline variance of CLAMBDA is set as 0.05 m. The step size of CLAMBDA-search is set as 2.5 • . We use the average as a reference value, and the ambiguity fixing success rate and correct fixed rate are expressed as follows:     Tables 1-4 show all the results calculated by the four methods represented in P s E (P s E |c ), with the best solution in bold. The meaning of the rows and columns in the tables is the same. It is worth noting that since the checks in chapter validation are common in attitude determination, this method is also used in the MCLAMBDA in this article.    As for the open-sky environment, i.e., Tables 1 and 2, the LAMBDA method has a poor fixing performance in the case of the low-cost receiver SFSE. It is difficult to fix the ambiguity with GPS-only observations, and this may be due to the SFSE solution strategy and fewer satellites. The GPS + BDS solution only obtains satisfactory results in group 1.0 m. This is due to the large pseudorange observation noise of the low-range receiver. The CLAMBDA method with the GPS-only observations does not perform as well as that with the dual-system observations. There is a lot of wrong fixing in the single-system solution. When dual systems are used, the wrong fixing rate is significantly reduced. However, the CLAMBDA method does not show obvious ambiguity fixing improvements with the different baseline lengths. This finding is consistent with that in Teunissen [28]. The MCLAMBDA method shows reliable results. At last, the CLAMBDA-search method proposed in this paper shows the best performance in both the single-system and dualsystem scenarios for all baseline lengths. More importantly, there is no wrong fixing for the dual-system test. This is a remarkable feature for navigation applications with low-cost receivers.
As for the degraded environment, i.e., Tables 3 and 4, the LAMBDA method still shows the worst performance. Similarly, the CLAMBDA method has a lot of wrong fixing results, especially in the single-system solution. The MCLAMBDA method still shows reliable results, but the number of solutions is insufficient. This may be caused by the limitation of requests for the same observations between baselines. The CLAMBDA-search method performs the best in both the single-system and multi-system solutions, in terms of the highest correct fixing rate. Even for the worst 1.5 m group, CLAMBDA-search can still maintain an 81.90% and 73.55% ambiguity fixing rate, and 100.00% and 96.60% correct fixed rate, which are higher than the CLAMBDA method by 11.76% and 23.61%, respectively. Obviously, the CLAMBDA-search method proposed in this paper is more resistant to the multipath effect than both CLAMBDA and MCLAMBDA in the degraded environment, and it has better robustness.
Based on Tables 2 and 3, Figure 5 summarizes the average error, maximum error and RMS of the attitude angles derived by the CLAMBDA-search method. It can be found that since this study uses the direct approach to calculate the attitude angle, the correspondent attitude error conforms to the inverse proportional relationship with the baseline length. The longer the baseline length is, the smaller the attitude error is. The best attitude accuracy σ ψ = 0.07 • , σ θ = 0.12 • , σ γ = 0.16 • occurs for the group 2.0 m. As for the degraded environment, i.e., Tables 3 and 4, the LAMBDA method still shows the worst performance. Similarly, the CLAMBDA method has a lot of wrong fixing results, especially in the single-system solution. The MCLAMBDA method still shows reliable results, but the number of solutions is insufficient. This may be caused by the limitation of requests for the same observations between baselines. The CLAMBDA-search method performs the best in both the single-system and multi-system solutions, in terms of the highest correct fixing rate. Even for the worst 1.5 m group, CLAMBDA-search can still maintain an 81.90% and 73.55% ambiguity fixing rate, and 100.00% and 96.60% correct fixed rate, which are higher than the CLAMBDA method by 11.76% and 23.61%, respectively. Obviously, the CLAMBDA-search method proposed in this paper is more resistant to the multipath effect than both CLAMBDA and MCLAMBDA in the degraded environment, and it has better robustness.
Based on Tables 2 and 3, Figure 5 summarizes the average error, maximum error and RMS of the attitude angles derived by the CLAMBDA-search method. It can be found that since this study uses the direct approach to calculate the attitude angle, the correspondent attitude error conforms to the inverse proportional relationship with the baseline length. The longer the baseline length is, the smaller the attitude error is. The best attitude accuracy 0.07 , 0.12 , 0.16 ψ θ γ σ σ σ =°=°=° occurs for the group 2.0 m.
It can be preliminarily concluded that the LAMBDA method has the worst performance for the low-cost receiver SFSE, which is not recommended. The CLAMBDA method cannot eliminate wrong fixing, due to the absence of verification conditions. The MCLAMBDA method could give reliable results, but the number of solutions is small when the observation quality is not so good. The CLAMBDA-search method proposed in this study has the advantages of a high fixing rate, fewer errors, and strong robustness, and thus is more suitable for land applications in complex environments. It can be preliminarily concluded that the LAMBDA method has the worst performance for the low-cost receiver SFSE, which is not recommended. The CLAMBDA method cannot eliminate wrong fixing, due to the absence of verification conditions. The MCLAMBDA method could give reliable results, but the number of solutions is small when the observation quality is not so good. The CLAMBDA-search method proposed in this study has the advantages of a high fixing rate, fewer errors, and strong robustness, and thus is more suitable for land applications in complex environments.
For the worst data set, group 1.5 m in the degraded environment, the time series of the satellite number, PDOP values, C/N0 values and residuals are shown in Figure 6. Figure 6 shows the number of satellites and PDOP values of both the GPS and GPS/BDS solutions. For baseline one, the blue line is the dual-system solution and the purple dotted line is the single-system solution. For baseline two, the red line is the dual-system solution and the yellow dotted line is the single-system solution. From Figure 6-bottom panel-it can be found that for the baseline one, GPS has a better carrier-to-noise ratio than BDS. For GPS, the C/N0 of the 50% observations are greater than 38 dBHz, whereas the 50% BDS observations are just greater than 36 dBHz. As for baseline two, the carrier-to-noise ratios between GPS and BDS are similar to each other, i.e., the 50% observations are greater than 37 dBHz. Figure 6-bottom panel-also shows the observation residuals that indicate a strong multipath effect. That can explain why the SFSE's LAMBDA cannot fix ambiguities. BDS observations are just greater than 36 dBHz. As for baseline two, the carrier-to-noise ratios between GPS and BDS are similar to each other, i.e., the 50% observations are greater than 37 dBHz. Figure 6-bottom panel-also shows the observation residuals that indicate a strong multipath effect. That can explain why the SFSE's LAMBDA cannot fix ambiguities.
(a) (b)  Table 5 show the Euler angle success rate, Euler angle accuracy, and their average error and accuracy calculated by three methods. The Euler angle success rate is defined as the epoch when baseline one and two can both be fixed. The Euler angle accuracy rate is defined as the epoch when baseline one and two are both correctly fixed. Table 5 also shows that the dual-system attitude error of the CLAMBDA method is also unacceptable. The MCLAMBDA method has a small attitude error, but lower Euler success rate. However, the dual-system attitude error of the proposed CLAMBDA-search method is only 0.15°, 0.57°, 0.68°, which proves its outperformance over the other three methods. Note that we cannot ignore the computational complexity for all the ambiguity searching algorithms. Table 6 shows the calculation time for each test. It should be noted that the maximum number of search times of method I/II/III is set to 10,000, and  Table 5 show the Euler angle success rate, Euler angle accuracy, and their average error and accuracy calculated by three methods. The Euler angle success rate is defined as the epoch when baseline one and two can both be fixed. The Euler angle accuracy rate is defined as the epoch when baseline one and two are both correctly fixed. Table 5 also shows that the dual-system attitude error of the CLAMBDA method is also unacceptable. The MCLAMBDA method has a small attitude error, but lower Euler success rate. However, the dual-system attitude error of the proposed CLAMBDA-search method is only 0.15 • , 0.57 • , 0.68 • , which proves its outperformance over the other three methods.
Note that we cannot ignore the computational complexity for all the ambiguity searching algorithms. Table 6 shows the calculation time for each test. It should be noted that the maximum number of search times of method I/II/III is set to 10,000, and MCLAMBDA is set to 200,000 in this article. The calculation time consumed by each method only counts the searched results. For epochs that cannot be searched, each epoch ends with maximum number of search times. The elapsed times are measured at every epoch using C functions "QueryPerformanceCounter()" at a PC with Intel ® Core(TM) i7-7500 CPU @ 2.70 GHz and 8192 MB RAM. As shown in Table 6, the searching time of the CLAMBDA method increases with the ascending baseline length, except for the 1.5 m baseline. The 1.5 m baseline requires a much longer searching time, due to poor observation conditions and the resultant unrealistic observation model. As for the MCLAMBDA method, it takes the longest time, except for CLAMBDA-search with η= 2.5 • . In fact, for all the unfixed epochs of the MCLAMBDA method, it ends up with 200,000 times searching for ambiguities, the total time of this method is very long. For the CLAMBDA-search method, the searching time of η= 5 • is about one-half of η= 2.5 • . With the ascending baseline length, the searching time also increases. In fact, the actual data are often disturbed by the changing multipath as the baseline length increases. Thus, the success rates may decrease [33]. Another possible reason is that the increasing baseline length enlarges the ambiguity candidate regions, which makes the searching more time consuming. As the step size decreases, the Euler angle success rate continues to increase, as shown in Table 7. Equation (25) shows that the correct attitude angle will bring a more accurate ambiguity model, which is consistent with the experimental results. However, because the direct method is used for the attitude calculation, various step sizes do not affect the error characteristics. This can be attributed to the fact that the method performance is related to the baseline length. The average computing time is just 330 ms when η= 1.25 • , the same order of magnitude as the MCLAMBDA method, with better results at the same time. That means our method takes moderate computing burden and yields high efficiency. Meanwhile, we can customize the step η to meet the need of the specific environment.

Dynamic Experiment
In this sub-section, we demonstrate the performance of the proposed CLAMBDAsearch method for a moving vehicle. The data are collected at the interval of 1 Hz and with a 10 does not change too much, the projection should be a perfect circle, which means correct fixing. We judge the correctness of the solution subjecting to that the horizontal projection is on the circle and the up direction is equal to the mean value. The success fixing rates of the three methods are shown in Table 8. The success rate of the LAMBDA method is still low. Although the CLAMBDA method has a higher success rate, wrong fixing still exists. The MCLAMBDA method shows relatively better results in both quantity and quality. In contrast, the CLAMBDA-search method is less sensitive to the satellite number, satellite geometry and environmental multipath. The CLMABDA-search method has obvious advantages, in terms of the Euler angle success rate and Euler angle correctness rate.   Figure 8 demonstrates the correlation between the two baselines in the horizontal directions, with the turntable on Taiyuan Street, the Peace Square and the Development Avenue turntable, from top to bottom. It is quite clear that within a 10-min data collection period, the vehicle movement trajectory is very regular, resulting in 18, 9, and 13 circles for the three data sets, respectively. More specifically, we can obtain solutions of 336 epochs in data set 1, and the other two groups of 662 and 651, respectively. The relationship between the horizontal coordinates E and N conforms to a circular pattern, whose radius is the baseline length and origin is the base. When the coordinate in the up direction does not change too much, the projection should be a perfect circle, which means correct fixing. We judge the correctness of the solution subjecting to that the horizontal projection is on the circle and the up direction is equal to the mean value. The success fixing rates of the three methods are shown in Table 8. The success rate of the LAMBDA method is still low. Although the CLAMBDA method has a higher success rate, wrong fixing still exists. The MCLAMBDA method shows relatively better results in both quantity and quality. In contrast, the CLAMBDA-search method is less sensitive to the satellite number, satellite geometry and environmental multipath. The CLMABDA-search method has obvious advantages, in terms of the Euler angle success rate and Euler angle correctness rate.

Discussion
This section is not mandatory, but can be added to the manuscript if the discussion is unusually long or complex.
An improved method for attitude determination, with low-cost receivers in singlefrequency single-epoch, was proposed in this paper. The method improves the existing CLAMBDA method with geometric constraints between the baselines. The degrees of freedom of the attitude angle are reduced by the fixed ambiguity, and thus the searching is performed in another degree of freedom. The final solution is obtained by globally minimizing the objective function. We propose a series of verification methods based on geometric constraints at the same time.
Compared with the CLAMBDA method, the approved method could obtain more robust and reliable solutions, which uses the information of the other baseline to obtain float solutions by searching in the attitude domain, and obtains fixed solutions by minimizing the ambiguity objective function. Compared with the MCLAMBDA method that uses the full geometric constraints, the approved method uses a Kalman filter model, which does not take into account the common satellites between the multiple baselines, and the computational burden is also acceptable.
Further work will mainly focus on the integrity monitoring. For low-cost ground navigation applications, GNSS as external input calibration information needs to ensure high reliability. In this article, we still have not achieved a completely reliable output, which will be a further explored direction. Besides, dynamic experiments should be fur-

Discussion
This section is not mandatory, but can be added to the manuscript if the discussion is unusually long or complex.
An improved method for attitude determination, with low-cost receivers in singlefrequency single-epoch, was proposed in this paper. The method improves the existing CLAMBDA method with geometric constraints between the baselines. The degrees of freedom of the attitude angle are reduced by the fixed ambiguity, and thus the searching is performed in another degree of freedom. The final solution is obtained by globally minimizing the objective function. We propose a series of verification methods based on geometric constraints at the same time.
Compared with the CLAMBDA method, the approved method could obtain more robust and reliable solutions, which uses the information of the other baseline to obtain float solutions by searching in the attitude domain, and obtains fixed solutions by minimizing the ambiguity objective function. Compared with the MCLAMBDA method that uses the full geometric constraints, the approved method uses a Kalman filter model, which does not take into account the common satellites between the multiple baselines, and the computational burden is also acceptable.
Further work will mainly focus on the integrity monitoring. For low-cost ground navigation applications, GNSS as external input calibration information needs to ensure high reliability. In this article, we still have not achieved a completely reliable output, which will be a further explored direction. Besides, dynamic experiments should be further tested with a more theoretical method, such as Monte Carlo simulations of the radiopropagation conditions, which could give us more comprehensive and reliable test results.

Conclusions
The new method has been tested in various GNSS observation environments, including the open sky, under trees, and urban canyons. All the results have shown a consistent performance and yielded the effectiveness of the proposed CLAMBDA-search method on single-frequency single-epoch ambiguity fixing using low-cost receivers. The searching in the single degree of freedom and the addition of geometric constraints did not significantly increase the algorithm complexity. Instead, the robustness and correctness of the attitude solution are greatly improved, with acceptable computing time consumption. At the same time, the proposed method is less sensitive to the satellite number, satellite geometry, and environmental multipath, and is more suitable for land applications in complex environments.