
GNSS Solutions • September/October 2017
How do you use GNSS to compute the attitude of an object?"GNSS Solutions” is a regular column featuring questions and answers about technical aspects of GNSS. Readers are invited to send their questions to the columnist, Dr. Mark Petovello, Department of Geomatics Engineering, University of Calgary, who will find experts to answer them. mark.petovello@ucalgary.ca
Share via: Slashdot Technorati Twitter Facebook Q: How do you use GNSS to compute the attitude of an object? A: GNSS technology is used to support a wide range of position, velocity and time applications across numerous platforms. One of the lesserknown applications of GNSS is its ability to determine the attitude, or orientation, of an object. Such systems can be made to be quite small and can yield accurate solutions that operate in virtually any environment in which GNSS satellite visibility is reasonable. The only requirement from a GNSS receiver perspective is that the receiver be able to provide reliable carrier phase measurements. This article begins with a brief summary of how the attitude of a vehicle is determined and then explains how GNSS can be used. It wraps up with a brief discussion about attainable accuracies.
Attitude Determination With this in mind, we present the following key relationship r⃗^{l} = R^{l}_{b}r⃗^{b} (1) where r⃗ is a vector parameterized in the locallevel (superscript l) or body (superscript b) frame and R^{l}_{b} is the rotation matrix (or direction cosine matrix) from the body frame to the locallevel frame. The rotation matrix between any two frames can be defined using three consecutive rotations about the three coordinates axes — these are called Euler angles. For the case under consideration, since one of the frames is the locallevel frame, the Euler angles can be expressed as familiar roll, pitch and azimuth angles. To compute the rotation matrix, one needs to know or measure at least two vectors in each coordinate frame. These vectors could be anything including velocity, rotation rates, etc., as long as they are noncollinear (i.e., not parallel). It is possible to use a single vector, but then you cannot determine all three Euler angles; more on this later.
GNSS Attitude System Setup Before answering this question, let’s clarify what constitutes a GNSS attitude system. To determine the full attitude, at least three GNSS receivers are needed. The only other requirement is some software to process the data from these receivers. Returning to the question that opened this section, the body frame vectors are defined by the location of the receivers (actually the antennas; denoted A ‒ C) on the object whose attitude is desired. Assuming a threeantenna system, a common (if not easy to understand) configuration is to mount the antennas such that two antennas fall along the direction of travel, and the third one is 90 degrees offset. One possible setup is illustrated in Figure 1 (see inset photo, above right) for the case of a road vehicle. Once installed, the body frame coordinates are defined by measuring the position of the antennas relative to the coordinate frame of the vehicle. The coordinate frame of the vehicle can be arbitrarily defined but is usually selected such that one axis is along the direction of travel, one lateral to the direction of travel, and the third axis completes on orthogonal frame (e.g., forward, right, down). As might be expected, these same vectors in the locallevel frame are determined from GNSS measurements. Once computed, the rotation matrix between the body and locallevel frames can then be determined. Both of these steps are accomplished by the processing software and are discussed in the next section.
Data Processing Continuing with the threereceiver example in Figure 1, we select antenna A as the base and compute vectors ray AB and ray BC. Of course, if there are other antennas, the vector from Point A to each point would also be computed. To be more specific, the interreceiver vectors are computed using standard differential carrier phase processing. Because the interantenna spacing is typically limited to a few meters, the spatiallycorrelated orbit, ionosphere and troposphere errors are virtually zero. This dramatically simplifies the ambiguity resolution process, since the only errors that need to be handled are multipath, noise and antenna phase center variation, which are generally small, as discussed later. It is also possible to use the known baseline length between the receivers (as measured in the body frame), or any a priori attitude information to make the ambiguity resolution process even more robust. Some of you might be wondering why I have not mentioned the requirement for a base station. The reason is precisely because we are estimating relative, not absolute, position vectors. By definition, differential data processing yields a relative position vector. If the location of the base station is known in an absolute sense — this is the most common use of a base station — then the resulting solution of the rover is also absolute. For attitude determination, absolute location is not important. As such, the location of the base receiver (Point A in the above example) can be computed from a standalone (single point) solution. Even absolute positioning errors of 100 meters (which would be extremely large if the carrier phase data needed for attitude determination is still available) will be buried by the other errors in the system, and thus can be ignored. The only other effect that might be important here is the timing accuracy of each receiver. As discussed in the March/April 2011 GNSS Solutions column, “GNSS Receiver Clocks,” a relative timing error of Δt between the receivers will result in a relative position error of s · Δt, where s is the speed of the vehicle. Assuming a timing error of 2 milliseconds (most receivers limit timing errors to ±1 milliseconds) and a vehicle traveling at 100 kilometers per hour, the relative positioning error would be approximately 5.6 centimeters. As discussed below, this would dominate the error budget and would therefore have to be properly accounted for. The outputs of the GNSS processing are the vectors in the locallevel frame; these can be computed directly in that frame or can be computed from vectors in an EarthCentered EarthFixed (ECEF) frame. Mathematically, this is written as r⃗^{GNSS }=^{ }r⃗^{l} + n⃗^{GNSS }= R^{l}_{b}r⃗^{b} + n⃗^{GNSS} (2) where r⃗^{GNSS} is the GNSSderived vector in the locallevel frame, n⃗^{GNSS} is the measurement noise, and equation (1) was used to get from the first to second line. Equation (2) is written in parametric form and can thus be used as input to any standard leastsquares or Kalman filtering estimation algorithm to estimate the Euler angles embedded in R^{l}_{b}.
TwoAntenna Systems The most common tworeceiver system is one where the two receivers are set up parallel (or orthogonal) to the direction of travel. This allows for estimation of the azimuth and pitch (or roll) of the vehicle; the third angle is unobservable.
Expected Accuracy To illustrate, let’s consider a tworeceiver system with the understanding that there is an analogous relationship for threeplus receiver systems. Specifically, for the setup in Figure 2 (see inset photo, above right), for an interreceiver separation of d, the pitch (ϕ) and azimuth (α) can be computed as (see inset photo, above right for equations) where σ_{EIN} is the North/East relative positioning uncertainty, σ_{U} is the vertical relative positioning accuracy, and d_{h} is the horizontal distance between the receivers. In other words, the longer the interreceiver separation the better the attitude accuracy. To give some numbers, for the lower end measurement errors and DOP values listed at the start of this section, and nominal horizontal receiver separation of 1 meter, the pitch and azimuth accuracy would be 1.3 and 1.9 degrees, respectively. This is a oneoff accuracy estimate and further filtering/ averaging would yield even better performance.
Summary Copyright © 2018 Gibbons Media & Research LLC, all rights reserved. 
