Introduction

The CASSIOPE (CAScade SmallSat and IOnospheric Polar Explorer, Fig. 1) is a Canadian multi-purpose space mission combining a high-rate Ka-band communications payload (Cascade CX) with a set of eight science experiments for the investigation of atmospheric and plasma flow processes in the upper ionosphere, known as enhanced polar outflow probe (e-POP). CASSIOPE was launched on September 29, 2013, into a polar orbit of 81° inclination and a revolution time of 103 min. The orbit of CASSIOPE is slightly eccentric with a perigee height of about 325 km and an apogee height near 1500 km at the beginning of the mission. The spacecraft exhibits a hexagonal shape with 1.25 m height and 1.8 m diameter with a mass of roughly 500 kg. By agreement between the European space agency (ESA) and the Canadian space agency (CSA-ASC), CASSIOPE/e-POP was formally incorporated as “Swarm-E” into the Swarm magnetosphere constellation (Friis-Christensen et al. 2008; Olsen et al. 2016) in early 2018.

Fig. 1
figure 1

CASSIOPE spacecraft with 1.25 m height and 1.8 m diameter at the David Florida Laboratory. The hexagonal panel is nominally zenith pointing and holds the four patch antennas of the GPS Attitude, Positioning, and Profiling experiment (GAP), which are marked by red arrows. Image courtesy of MacDonald, Dettwiler and Associates Ltd

As part of e-POP, the GPS Attitude, Positioning, and Profiling experiment (GAP) provides GPS-based orbit and attitude information of CASSIOPE as well as total electron content and electron density measurements of the ionosphere (Kim and Langley 2010). GAP is made up of commercial off-the-shelf (COTS) components including five NovAtel OEM4-G2L miniature GPS receivers. Four of these (GPS-0 to GPS-3) are connected to patch antennas on the zenith facing (z) panel of the CASSIOPE spacecraft. The respective code and carrier phase measurements can be used for precise orbit determination, while differential measurements between pairs of antennas provide information on the spacecraft attitude (Kim and Langley 2007). In addition to this GAP-A (“attitude”) subsystem, a single GPS-O (“occultation”) receiver (GPS-4) is connected to a NovAtel pinwheel antenna with an anti-velocity pointing boresight direction to collect high-rate ionospheric radio occultation (RO) measurements. GAP was conceived and developed by the University of New Brunswick in partnership with the University of Calgary and Bristol (now Magellan) Aerospace. RO processing and data analysis have been undertaken by colleagues at various institutes (Shume et al. 2015, 2017; Watson et al. 2018; Perry et al. 2019).

We discuss the tracking performance of the GAP-A receivers as well as the achievable precise orbit determination (POD) and attitude determination accuracy. While not specifically designed for space applications, the NovAtel OEM4-G2L receivers are found to provide adequate tracking under the signal dynamics encountered in low Earth orbit (LEO). Based on the code and carrier phase measurements collected with the nominally upward-looking antennas, we present results of a reduced dynamic precise orbit determination as well as kinematic and Kalman-filtered attitude determination of the CASSIOPE spacecraft.

Following a presentation of the GAP hardware, we discuss the tracking and measurement performance of the GAP-A subsystem on board the CASSIOPE spacecraft. In the absence of external validation standards, overlap comparisons are used to assess POD performance. Subsequently, attitude determination results are presented. Based on comparison with star sensor-based yaw, pitch, and roll angles, a 0.1–0.3° precision for filtered and kinematic GPS-based attitude angles is demonstrated after calibration of differential phase patterns for individual antenna pairs. Following on from investigations with the Navigation and Occultation (NOX) Experiment (Hauschild et al. 2013) on the Technologie Erprobungs Träger (TET) microsatellite, the CASSIOPE/GAP results provide an independent confirmation that COTS-based dual-frequency GPS/GNSS equipment provides a viable alternative to fully space-qualified systems and can provide geodetic-grade measurements at affordable cost in low-budget space missions.

GAP overview

The NovAtel OEM4-G2L receiver (Fig. 2) is a miniature GPS receiver offering L1 C/A and L2 P(Y) tracking of up to 12 satellites. It exhibits a small form factor (60 mm × 100 mm) and power consumption (2.5 W) which are well below those of established space receivers and facilitates the concurrent operation of multiple receivers at the same time. Measurements are nominally provided at a 1-Hz data rate by receivers GPS-0 to GPS-3 for orbit and attitude determination, and at 20 Hz for RO measurements with GPS-4. A basic space qualification of the receivers was conducted by the German Aerospace Center (DLR) and Bristol Aerospace (BA). Initial tests in a signal simulator testbed demonstrated the capability to safely acquire and track GPS signals at high signal dynamics with peak Doppler shifts of up to 40 kHz and Doppler rates of up to about 750 Hz/s. In accord with terrestrial applications, the code and carrier phase measurements collected under these conditions were found to be free of systematic errors and exhibit representative code and carrier phase noise levels of 0.3 m/0.1 m and 1 mm/0.5 mm for L1 C/A-code tracking and semi-codeless L2 P(Y) tracking, respectively, at a carrier-to-noise-density ratio of 45 dB-Hz.

Fig. 2
figure 2

NovAtel OEM4-G2L GPS receiver. Image DLR

Total ionizing dose (TID) tests were conducted at Fraunhofer-Gesellschaft (FhG), Euskirchen, using a Co-60 source (Langley et al. 2004). At a dose rate of 1 rad/s, a gradual increase in the power consumption along with a TID-dependent shift of the reference oscillator frequency could be observed. The receiver finally stopped working at a TID of 10 krad but already experienced failures to reboot after power cycles at about 5–7 krad (Markgraf and Montenbruck 2004). The latter problem could be attributed to a radiation-sensitive reset circuit that was henceforth removed from the CASSIOPE receiver boards. Thermal-vacuum testing was conducted by BA and covered a temperature range of − 35 °C to + 50 °C. During the test, the receiver was connected to an outdoor antenna, and no performance degradation or failure could be noted during the testing.

Overall, the signal simulator and environmental tests provided adequate confidence for use of the OEM4-G2L receiver boards for the GAP experiment on board the CASSIOPE spacecraft. Furthermore, additional safety was provided by the accommodation of multiple receiver units that offer adequate redundancy in case of potential failures of individual receivers. After almost 5 years of operation, a first and only fatal failure was encountered on September 16, 2018, when the GPS-1 stopped issuing data and could no longer be commanded. While a radiation-induced single-component failure appears as the most probable explanation, it remains unclear from the available telemetry, whether the malfunction is related to the receiver board or the interface electronics in the GAP interface board. The receiver has since then been replaced by the GPS-3 spare unit in routine operations from mid-October 2019 onward.

For completeness, it should be mentioned that a first NovAtel OEM4-G2L receiver was actually flown onboard the CanX-2 cubesat satellite. This mission was launched in 2008, and the GPS receiver continues to be operated on an irregular basis up to the time of writing. While the CanX-2 mission first demonstrated the feasibility of using of a COTS-based geodetic GPS receiver in space, a problem with the CanX-2 GPS antenna system is essentially restricted its use to single-frequency tracking and orbit determination (Kahr et al. 2011). As such, CASSIOPE is, in fact, the first mission to fully exploit the capabilities of a COTS-based dual-frequency receiver for precise orbit and attitude determination.

GAP makes use of four Sensor Systems S67-1575-14 patch antennas for use in precise orbit and attitude determination and a NovAtel 702 pinwheel antenna for RO measurements (Fig. 3). The patch antennas were originally designed for aviation applications but have been flight-qualified for space use in various past missions such as CHAMP, GRACE, TerraSAR-X, and PROBA-2. For the RO antenna, a stand-alone pinwheel antenna element has been integrated into a newly designed housing and radome made of space-qualified materials. All five antennas are passive and used along with Spectrum Microwave low-noise amplifiers with 26 dB gain to provide adequate signal power for GPS signal processing by the receivers.

Fig. 3
figure 3

Three of the four GPS-A patch antennas (left) and the GPS-O pinwheel antenna (right) of CASSIOPE. Image courtesy of Magellan Aerospace

The arrangement of the four GAP-A antennas on the − z-side of the spacecraft is illustrated in Fig. 4. While two of the antennas (1 and 2) are located within the hexagonal panel, the two other antennas are mounted on brackets extending beyond its edges. This results in different levels of phase pattern distortions and a slightly better quality of GPS-1/2 measurements. Approximate coordinates of the GAP-A antenna phase centers and the center of mass (CoM) are summarized in Table 1. They are based on coarse a priori values of the geometric antenna center extracted from design drawings as well as the manufacturer’s information on the CoM location. These were subsequently improved through actual GPS observations. Relative coordinates of GPS-0, GPS-1, and GPS-3 antenna phase centers with respect to GPS2 were adjusted using differential carrier phase observations, which resulted in centimeter-level corrections. Furthermore, the a priori value of the GPS2 z-offset from the CoM was adjusted by approximately 2 cm based on observed differences in kinematic and reduced dynamic orbit determinations. Overall, Table 1 represents the current best knowledge of the GAP-A antenna positions for use in GPS POD and attitude determination. As discussed in the section on attitude determination, epoch-wise baseline coordinates can be determined with standard deviations of 5–10 mm, which yields a millimeter precision for the relative phase centers of any pair of antennas when averaging over a sufficient number of epochs. Concerning the phase center offsets of individual antennas from the CoM, the z-component can be estimated with subcentimeter-level precision, while the x- and y-components are poorly or even unobservable in the POD process due to coupling with other estimation parameters.

Fig. 4
figure 4

Arrangement of the GAP-A antennas on the top panel of the CASSIOPE spacecraft (Fig. 1). Blue and red arrows illustrate the orientation of the spacecraft and antenna coordinate systems

Table 1 Approximate L1/L2 phase center positions of the GAP-A antennas and the center of mass (CoM) in the spacecraft coordinate system

Tracking and orbit determination

In accord with limited system resources and the overall e-POP payload concept, for the most part, GAP is treated as an experiment and only operated intermittently except that just one receiver is turned on frequently for basic operational orbit determination. This implies multiple activation periods per day with representative duration of 0.5–2 h. The resulting data availability amounts to at most 60% (about 14 h per day) with a median value of 40% (about 10 h per day). Typical times to first fix experienced after a receiver reboot amount to 5–10 min, which is in good accord with signal simulator test results reported in Montenbruck et al. (2006). In view of the varying attitude profile of the CASSIOPE spacecraft, the receivers are configured to enable tracking of GPS satellites below the local horizon and frequently track satellites at elevation angles down to − 20°. Following a first navigation fix, 9–10 satellites are tracked for more than 50% of all epochs during the activation period, and the hardware-specific maximum of 12 simultaneously tracked satellites is achieved for roughly 10% of all measurement epochs.

The carrier-to-noise-density ratio (C/N0) for L1 C/A code tracking ranges from about 40 dB-Hz at low antenna elevation angles up to peak values of about 50 dB-Hz in the antenna boresight direction (Fig. 5). Roughly 10 dB smaller values are obtained for the L2 frequency over the full range of boresight angles. Compared with most other geodetic receivers, the OEM4-G2L C/N0 estimates for L2 P(Y) tracking appear to be compensated and do not reflect the usual losses associated with the semi-codeless P-code tracking (Woo 2000; Montenbruck et al. 2006).

Fig. 5
figure 5

Carrier-to-noise-density ratio (C/N0) versus elevation angle above the antenna plane for L1 (red) and L2 (blue) tracking of the GPS-2 antenna and receiver

Other than in common space missions aiming at highly accurate POD for geodetic or remote sensing applications, the GAP-A antennas are not equipped with choke rings. This results in frequent tracking of satellites down to elevation angles of − 30° with respect to the antenna plane (Fig. 5). The corresponding measurements are generally of limited quality and should be discarded in POD and attitude determination. Furthermore, the lack of a choke ring or large ground plane results in substantial phase pattern distortions, which increase the apparent noise level of the carrier phase measurements. To compensate for these errors, phase correction maps have been estimated for individual antennas in a residual stacking approach (Jäggi et al. 2009) based on the POD residuals of the ionosphere-free L1/L2 carrier phase combination. As shown in Fig. 6, the phase variations for individual antennas exhibit peak-to-peak amplitudes of up to 60 mm and regular patterns related to the accommodation near the edges of the hexagonal top panel of CASSIOPE (cf. Fig. 4). The most pronounced distortions can be observed for the GPS-0 antenna, which is mounted on a bracket extending beyond the circumference of the top panel.

Fig. 6
figure 6

L1/L2 phase patterns of three GAP-A antennas

Precise orbit solutions for CASSIOPE are obtained in a reduced-dynamic approach with float-ambiguity estimation using the ionosphere-free linear combination of dual-frequency code and carrier phase observations. Precise GPS orbit and clock products for the undifferenced processing are obtained from the Center for Orbit Determination in Europe (CODE; Dach et al. 2017). The POD makes use of the same tool chain (Montenbruck et al. 2005) and similar processing standards as the established Swarm science orbit generation (van den Ijssel et al. 2015).

An overview of applied models and conventions is provided in Table 2. The dynamic model takes into account a high-degree and order earth gravity model, luni-solar gravitational perturbations, and solid earth and ocean tides and relativistic corrections to the equation of motion. Non-gravitational surface forces are described through a cannon-ball model with adjustable scale factors. In its slightly eccentric orbit, CASSIOPE dips into fairly deep layers of the atmosphere near perigee, but experiences only minor drag forces in the remainder of its orbit. Associated imperfections in the density and drag model are compensated through piecewise constant empirical accelerations with zero a priori values. In accord with the orbit profile, the estimated accelerations exhibit pronounced orbital variations with root-mean-square values of several tens of ns/s2.

Table 2 Processing standards for CASSIOPE precise orbit determination

Key differences with respect to the Swarm POD are related to the use of different observation types as well as different data arcs. Since the OEM4-G2L receiver does not offer P(Y)-code observations on the L1 frequency, C/A code pseudoranges are used instead. As a consequence, differential code biases (DCBC1C-C1W) must be taken into account, to achieve compatibility with the L1/L2 P(Y)-based CODE orbit and clock product. The respective values are routinely provided by the International GNSS Service and its multi-GNSS project (Johnston et al. 2017). A longer data arc for the CASSIOPE orbit determination compared with the Swarm-A/B/C satellites is motivated by the sparse availability of GPS and frequent tracking gaps of 6–12 h duration. To avoid a potentially severe degradation of the orbit quality by data gaps near the start or end of a day, 36-h data arcs centered at noon are used in the generation of daily orbit solutions for CASSIOPE/Swarm-E. The central 24-h arc of these solutions provides the final orbit for the day of interest, while the ± 6-h interval around the day boundaries enables an overlap comparison for quality control purposes.

For completeness, we also note that no effort has been made to obtain ambiguity-fixed orbit solutions for the CASSIOPE satellite. Single-receiver ambiguity fixing within the reduced dynamic orbit determination requires high-quality (few centimeters) estimates of the pass-wise float ambiguities, which is only possible with mostly continuous data coverage. Other than for the Swarm-A/B/C satellites (Montenbruck et al. 2018), ambiguity fixing cannot be performed with adequate success rate for CASSIOPE in view of the pronounced data gaps.

With proper consideration of the DCBs, pseudorange residuals for the ionosphere-free combination of L1 C/A and L2 P(Y) observations amount to roughly 65 cm for the GAP-A receivers (Fig. 7), which compares favorably with a value of about 1 m for the SGPS receivers on Swarm-A/B/C. Carrier phase residuals for the ionosphere-free L1/L2 combination exhibit representative root-mean-square (RMS) values of about 12 mm on CASSIOPE, which reduces to roughly 8 mm after consideration of the aforementioned phase pattern corrections. This is moderately worse than the 5 mm RMS residuals reported by van den Ijssel et al. (2015) for the other Swarm satellites but can largely be understood by a roughly 5 dB lower C/N0 achieved with the GAP-A antennas and amplifiers.

Fig. 7
figure 7

Code and carrier phase residuals for the ionosphere-free dual-frequency combination obtained in a precise orbit determination with the GPS-2 antenna and receiver of CASSIOPE on December 6, 2018

Due to lack of a retroreflector for satellite laser ranging (SLR), the orbit quality for CASSIOPE can only be assessed through internal consistency tests. Based on the goodness-of-fit of the GPS measurements and experience with other missions in low-Earth orbit, a better than 10-cm 3D RMS orbit accuracy can generally be expected for continuous tracking arcs of at least on orbit. On the other hand, severe degradation is inevitable for extended data gaps that can only be covered through model-based propagation. Based on 12-h overlaps of sliding 36-h POD arcs, the repeatability of CASSIOPE orbit solutions has been assessed for a one year period from January 1, 2018, to December 31, 2018. The cumulative distribution function of peak 3D orbit differences in the overlap region is shown in Fig. 8. It exhibits a median value of 6.5 cm, which highlights the potential of precise orbit determination with the GAP-A system, but also evidences the occurrence of much larger errors in a substantial fraction of all cases. These can typically be attributed to data gaps of more than eight hours in the affected data intervals. Based on the magnetic field gradients encountered in low Earth orbit, a 1-m 3D orbit determination accuracy is specified within the Swarm mission for analysis of vector field magnetometer (VFM) data within the limits of the sensor noise (0.2 nT). For CASSIOPE, this specification can presently be met for roughly 84% of all days.

Fig. 8
figure 8

Cumulative distribution of peak overlap errors in the CASSIOPE orbit determination

Attitude determination

The GAP-A experiment on board CASSIOPE is specifically designed to study GPS-based attitude determination using observations from three concurrently operated receivers. GAP-A was configured to optionally perform coarse real-time attitude determination on board the spacecraft (Kim and Langley 2007), but while this feature operated flawlessly in ground testing, GAP failed to respond to data requests on orbit. Nevertheless, raw GAP-A data could still be downloaded.

GPS attitude determination in space was first demonstrated in the early 1990s as part of the RADCAL (Radar Calibration) mission and was later applied on a variety of other missions such as APEX, REX-II, UoSat-12, TopSat, and Flying Laptop (see, e.g., Georgi 2017; Hauschild et al. 2019, and references therein). On the International Space Station (ISS), a four-antenna GPS receiver system coupled with an inertial measurement unit is used to provide attitude information on a routine basis. Compared to the use of GPS receivers for position and timing, GPS attitude determination of satellites has, however, remained a niche application due to the higher system complexity and inherent limitations in the achievable performance, which cannot compete with well-established star sensors.

GPS attitude determination is performed with a minimum of three antennas arranged in an L-shaped configuration at known positions in the spacecraft body system. Conceptually, the attitude determination process builds on the relative positioning of two slave antennas with respect to a master antenna using differential carrier phase measurements. Given the estimated baselines in the earth-fixed frame and the calibrated baseline vectors in the body frame, GPS attitude determination translates into a special form of Wahba’s problem (Farrell et al. 1966), which seeks to find the transformation matrix between two coordinate systems from a set of two or more vector observations by minimizing a loss function for the weighted residuals between the transformed vectors and the reference values. Practical implementations include the approach of Markley (1988), which uses a singular value decomposition of dyadic products of the baseline vectors in both systems to construct the transformation.

The quality of GPS-based kinematic attitude solutions is mainly determined by the quality of the baseline determination. This, in turn, depends on the carrier phase measurement errors and the antenna separation, which are limited by the antenna environment and the physical dimensions of the spacecraft. Kinematic attitude angles can be determined with a representative precision of 0.5° using meter-level baselines. This can further be improved through filtering with a model of the satellite’s rotational dynamics.

Other than past experiments, which were confined to the use of single-frequency receivers, GAP-A offers dual-frequency observations for the baseline estimation and attitude determination. On the other hand, proper pre-flight calibration of the antenna phase centers is lacking, and only coarse design values of the antenna locations in the mechanical spacecraft system are available (Table 1). A flight calibration of the relative phase center locations has been conducted to cope with this limitation. While a full year of data could be used for the 0–2 antenna pair, the failure of receiver 1 in September 2018 and the subsequent activation of receiver 3 limited the data intervals for baselines 1–2 and 3–2 to 8.5 and 2.5 months, respectively. Epoch-wise baselines in the earth-fixed reference frame were independently estimated from differential carrier phase observations on the L1 and L2 frequencies but making joint use of both frequencies for a more robust ambiguity resolution. The results were then transformed into the spacecraft body frame using a star sensor-based attitude solution obtained from measurements of both star-sensor heads following the procedure of Siemes et al. (2019).

Daily mean values and uncertainties of the relative phase center locations for both frequencies are summarized in Table 3. Even though all antennas are nominally mounted in a plane perpendicular to the spacecraft z-axis, differences of 5–10 mm in the z-coordinates of individual antennas are evident from the calibrated baselines for the individual frequencies. These can largely be attributed to slightly different phase center shifts caused by the specific mounting accommodation and near-field distortions of each individual antenna. On the other hand, nominal star-sensor alignment angles may not reflect the actual sensor mounting and induce a difference between the assumed and true spacecraft orientation in the star sensor attitude product. Strictly speaking, antenna baseline vectors in Table 3 are thus referred to a star sensor defined body frame that is closely aligned with, but not identical to, the spacecraft body frame defined by the mechanical design. As a consequence, we will only be able to assess the precision (repeatability) of the GPS-based attitude determination on CASSIOPE, whereas the accuracy is limited by the unknown mounting and alignment quality of the star sensors.

Table 3 In-flight calibration of baseline vectors from the master antenna (2) to the three slave antennas (0, 1, 3) using measurements on the L1 and L2 frequency

Compared to single-frequency observations, the availability of dual-frequency measurements in GAP-A offers substantial improvements in the ambiguity-fixing process for the carrier phase differential positioning. In fact, they allow for an instantaneous ambiguity fixing for most of all epochs and would thus enable a rapid “lost-in-sky” attitude determination without prior information on the approximate spacecraft orientation. For comparison, the probabilities of instantaneous ambiguity fixing using L1, L2, and combined L1/L2 observations are summarized in Table 4 based on 1-month data sets for the three baselines. In addition, the rates of false-positive and false-negative decisions on the acceptance of estimated ambiguities are provided. The results are based on the epoch-wise estimation of relative antenna positions and double-difference phase ambiguities using only the pseudorange and carrier phase observations obtained at this epoch. The float-value ambiguities were subsequently used to estimate a set of integer values using the modified least-squares ambiguity decorrelation method (M-LAMBDA; Chang et al. 2005; Teunissen 1995). Based on the observed level of post-fit residuals, single-difference code and phase measurements for the various baselines were weighted with standard deviations of 0.5 m and 10.0 mm, respectively, and observations with inconsistencies of the more than 6 m in the L1 and L2 double-difference pseudoranges were rejected. A minimum ratio of 3 for the squared residuals norm of best and second-best estimates was adopted as an acceptance threshold for the estimated integer ambiguities in all cases to keep the number of false positive decisions at or below about 1%. For verification purposes, the actual ambiguities were independently derived from the double-difference carrier phase observations and the known baseline vectors and spacecraft attitude.

Table 4 Success and failure rates of single-epoch integer ambiguity resolution using single- and dual-frequency observations for the three baselines over a 1-month period

As shown in Table 4, a successful single-epoch ambiguity resolution using dual-frequency observations can be achieved for all baselines for roughly 95% of all epochs, which greatly exceeds the success rate for single-frequency processing. Here, instantaneous ambiguity resolution is only possible in about 40–60% of all cases depending on the baseline and wavelength.

The ambiguity estimation and test presented above are applicable for arbitrary relative positions of the individual antennas but do not exploit the static antenna arrangement relative to the satellite body. While optimum results are promised by a constrained integer least-squares estimation (see, e.g., Teunissen et al. 2011), a notable benefit can already be obtained when using a baseline length test for integer validation in the unconstrained problem. By way of example, Table 5 presents the test statistics obtained using an acceptance threshold of 2 cm for the difference between the estimated baseline length and the calibrated reference value from Table 3. Here, a notably reduced number of false positives are achieved, and the overall success rate increases to 80–85% for single-frequency processing and to 97% for the dual-frequency case.

Table 5 Success and failure rates for integer ambiguity validation using the baseline length test

Individual single-frequency baseline estimates exhibit representative RMS errors of 5–8 mm in the x- and y-components but 15–20 mm in the z-component. These performance differences can readily be understood by the mostly nadir-pointing z-axis orientation and vertical dilution of precision (VDOP) that is roughly a factor of two larger than the horizontal dilution of precision (HDOP). As already discussed in the section on tracking and orbit determination, the GAP carrier phase measurements suffer from systematic phase pattern distortions that are caused by near-field effects and multipath and partly contribute to the overall baseline uncertainty. Following Ulmer and Sutton (1998), differential phase patterns have therefore been estimated for the individual GAP antenna pairs by Hauschild et al. (2019) in a residual stacking approach over a total of 9 months of data. The resulting corrections exhibit a maximum value of about ± 25 mm for both L1 and L2 single-difference carrier phase observations and reduce the errors in all axes by a factor of two (Fig. 9) when applied in the baseline estimation.

Fig. 9
figure 9

RMS errors of epoch-wise GPS0-GPS2 baseline estimation using L1 observations with (red) and without (blue) phase pattern corrections on April 3, 2019. Numbers in the top right corner of each plot provide the RMS errors of the respective baseline component

In the nadir-pointing attitude mode that is attained by CASSIOPE for most of the time, the spacecraft x-axis is oriented in the flight direction while the z-axis points to the center of the earth. As a consequence, errors in the z-components of the near orthogonal baselines of antennas GPS0 and GPS1 with respect to GPS2 translate directly into pitch errors (0–2) and roll errors (1–2). The yaw angle error, in contrast, is mainly determined by the quality of the estimated y0-1 and x0-2 baseline components. At a 1-m baseline length, a precision of about 0.5° (pitch and roll) and 0.2° (yaw) can thus be expected for a purely kinematic, epoch-wise attitude determination of CASSIOPE from the GAP-A GPS observations.

For practical attitude determination of CASSIOPE using GAP data, a Kalman filter is employed, which propagates the spacecraft attitude between epochs based on the assumption of a constant rotation rate. The rotation vector itself is part of the filter state and estimated along with the attitude quaternions (Hauschild et al. 2019). White process noise is considered for the angular rates to support attitude determination across reorientations. In accord with the peak angular accelerations encountered at the start and stop of slew maneuvers, a process noise variance of (0.03°/s)2 is applied at 1-Hz filter updates. It results in an effective filter smoothing time scale of about 4 s and provides a factor-of-two reduction of the short-term attitude noise in the processing of 1 Hz carrier phase observations compared to a purely kinematic solution. By way of example, Fig. 10 illustrates the precision of a kinematic and a Kalman-filtered attitude solution relative to the star sensor truth for a sample data arc in earth-pointing orientation. In purely kinematic processing, RMS errors of 0.1° and 0.3° are obtained for the yaw and pitch/roll angles, respectively, which slightly outperforms the earlier rule-of-thumb assessment. Filtering clearly reduces the short-term noise but cannot counteract errors at timescales of several minutes that may relate to changes in the constellation of tracked satellites and occasionally increased carrier phase measurements errors. Overall, RMS errors in the estimated attitude angles are reduced by roughly a factor of 1.5 as a result of the filtering.

Fig. 10
figure 10

Attitude angle errors of the kinematic (blue) and Kalman-filtered GAP attitude solution over a 90-min arc in earth-pointing mode on April 3, 2019. Numbers in the top right corner of each part provide the RMS errors of the respective attitude angle

Summary and conclusions

Flight data from the GPS Attitude, Positioning, and Profiling (GAP) experiment of the Canadian CASSIOPE mission have been analyzed. CASSIOPE is the first space mission using a set of multiple dual-frequency GPS receivers based on commercial off-the-shelf (COTS) technology for precise orbit and attitude determination. While various types of COTS receivers have been flown in space before, past missions have largely relied on such receivers for platform support and applications requiring limited accuracy. The GAP results demonstrate that geodetic-grade observations can also be obtained with such receivers despite the high dynamics and the adverse environment of orbiting vehicles. Measurement errors at the few decimeter level and few millimeter level for individual pseudorange and carrier phase measurements are found to be competitive with other space missions operating high-end space receivers and mainly limited by the use of aeronautical patch antennas without ground planes or choke rings for multipath mitigation.

In terms of orbit determination accuracy, GAP is limited by various operational constraints related to sharing of onboard resources among individual CASSIOPE instruments and experiments. These limit the overall duty cycle of GAP and cause extended periods without GPS observations that can only be bridged through orbit propagation. Overlap comparisons nevertheless show that a better than 1 m (3D peak error) orbit determination performance can be achieved on more than 80% of all days. Subject to proper data coverage, a subdecimeter precision is achieved.

To the authors’ knowledge, GAP also represents the first practical demonstration of dual-frequency-based attitude determination in space. Following calibrations of differential phase patterns, baseline vectors of individual antenna pairs can be determined with a precision of 5–10 mm in a purely kinematic, epoch-wise processing. Using a Kalman filter estimating both attitude and rotational rates with suitable constraints on the permitted variations, attitude solutions with 0.1–0.3° precision can be achieved in the GAP data processing. Joint availability of L1 and L2 carrier phase observations in GAP enables a much more robust ambiguity resolution. In particular, it allows for single-epoch ambiguity fixing for about 97% of all epochs, as compared to 80–85% success rates for L1-only or L2-only processing when using a baseline length test for ambiguity validation. Subject to continuous operation, GAP could thus offer a suitable alternative for “lost-in-sky” attitude determination without prior information.

The successful use of COTS-based dual-frequency receivers on CASSIOPE leads the way for high-precision, carrier-phase-based navigation applications in future low-budget science missions. Examples include precise orbit determination and time/frequency transfer, relative navigation of formation flying satellites, and attitude determination. In particular, COTS equipment offers rapid access to the latest developments in the field of multi-GNSS receiver technology and allows us to benefit from advanced signals and a substantially increased number of GNSS satellites.