The EBEX Balloon-Borne Experiment - Gondola, Attitude Control, and Control Software
The EBEX Collaboration: Asad Aboobaker, Peter Ade, Derek Araujo,, Fran\c{c}ois Aubin, Carlo Baccigalupi, Chaoyun Bao, Daniel Chapman, Joy, Didier, Matt Dobbs, Will Grainger, Shaul Hanany, Kyle Helson, Seth Hillbrand,, Johannes Hubmayr, Andrew Jaffe, Bradley Johnson, Terry Jones

TL;DR
The EBEX balloon experiment successfully integrated advanced detector technology and innovative control software to measure CMB polarization, demonstrating reliable operation and precise attitude control during its long-duration flight.
Contribution
First balloon-borne CMB experiment to implement a kilo-pixel TES array with digital frequency domain multiplexing and specialized attitude software.
Findings
Faultless TES array management during flight
Effective power and cooling systems for detectors
Attitude reconstruction errors below 10% of B-mode signal
Abstract
The E and B Experiment (EBEX) was a long-duration balloon-borne instrument designed to measure the polarization of the cosmic microwave background (CMB) radiation. EBEX was the first balloon-borne instrument to implement a kilo-pixel array of transition edge sensor (TES) bolometric detectors and the first CMB experiment to use the digital version of the frequency domain multiplexing system for readout of the TES array. The scan strategy relied on 40 s peak-to-peak constant velocity azimuthal scans. We discuss the unique demands on the design and operation of the payload that resulted from these new technologies and the scan strategy. We describe the solutions implemented including the development of a power system designed to provide a total of at least 2.3 kW, a cooling system to dissipate 590 W consumed by the detectors' readout system, software to manage and handle the data of the…
| Attitude Sensor Specifications | |||||
|---|---|---|---|---|---|
| Sensor | Model | Quantity | Direction of | In-flight | Sample |
| name | flown | attitude provided | precision | rate | |
| Star Camera | Kodak KAF-1603E | 2 | az, el | 1.3\as | Up to 0.5 Hz |
| Canon EF 200 mm f/1.8 | & roll | 57\as | |||
| Magnetometers | Meda TFS 100 | 2 | az | 1∘ | 5 Hz |
| Sun Sensors | Hamamatsu S5991-01 | 2 | az | 0.8∘ | 5 Hz |
| Differential GPS | Thales ADU 5 | 1 | az | 0.5∘ | 5 Hz |
| Inclinometer | Geomechanics 904-T | 1 | el | 0.5∘ | 100 Hz |
| Encoder | Gurley A25S | 1 | el | 0.2∘ | 100 Hz |
| Gyroscopes | KVH DSP 3000 | 6 | 3-axis rates | 40\ass-1 | 1000 Hz |
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
1 Attitude Determination and Control
The \acACS consisted of sensors, actuators, and a set of control algorithms operating in a feedback loop. Its role was to determine the instantaneous attitude of the telescope and execute a pre-defined sky scan pattern. It also acquired and stored the data required for post-flight attitude reconstruction. A block diagram of the \acACS is shown in Figure 1. We present the main elements of the system, focusing on the sensors and the control algorithms. We summarize the performance of the \acACS during the 2013 flight and the post-flight attitude reconstruction. The actuators are described in Section LABEL:sec:gondolamotion. Elements of the \acEBEX \acACS are also described in several additional publications (joy_ieee_paper; chappy_ieee_paper; joy_thesis; chappy_thesis).
1.1 Attitude Sensors
The \acACS sensors consisted of two redundant star cameras, two redundant 3-axis rate gyroscopes, two Sun sensors, two redundant magnetometers, a \acdGPS, an elevation encoder, and an inclinometer. We also had access to information provided by the \acdGPS of the \acCSBF. Table 1 summarizes the specifications and model of each sensor.
The primary sensors used for both real time control and post-flight attitude reconstruction were the star cameras and gyroscopes. The star cameras were mounted on either side of the inner frame and were approximately aligned with the telescope beam. The two gyroscope boxes, each consisting of three nearly orthogonal fiber optic gyroscopes, were also mounted on the inner frame.
Each star camera consisted of a telephoto lens, a filter,111Red color 25A filter from Hoya Filters a \acCCD camera, and a computer mounted in a rigid assembly inside a cylindrical vessel filled with nitrogen gas at a pressure of 1 atmosphere. A stray light baffle was mounted to the exterior of the star camera pressure vessel; see Figure 2. All parts inside the baffle were painted with flat black spray paint.222Krylon Ultra-Flat Black The star camera found an attitude by taking a picture of a star field and comparing the image to a star catalog. The two star cameras were redundant to ensure that attitude solutions were available even if one failed. The star camera computer ran the \acSTARS, a platform-independent software custom-written for \acEBEX in C++ that captured the images, found the bright spots in the image, matched their pattern to a known catalog of stars, and communicated the resulting solution to the flight control program (FCP) operated by the main flight computer (chappy_spie). \acSTARS was optimized to find stars even when the camera was out of focus or when the stars were blurred due to gondola motion. Each camera had a point spread function with a full width half maximum of 9\asand a field of view of . Star camera exposure time was set to 300 ms in order to reliably detect stars with apparent magnitude 7.3 or brighter. With this exposure time, the motion blur solving feature of \acSTARS permitted the cameras to solve images taken with azimuthal velocities up to s*-1*.
The star cameras performed well during flight, consistently solving the images in real-time with minimal intervention. The \acSTARS software overcame several unanticipated challenges:
(a) The loss of azimuth control (see Section 1.3) prevented \acSTARS from performing the autofocus algorithm, which required stationary pointing, and both star cameras were slightly out of focus during the entire flight. \acSTARS continued to find stars in the images, however, because of its robust source detection algorithm.
(b) To solve images quickly, \acSTARS normally used a coarse attitude determination by the secondary sensors. The coarse approximation minimized the search radius when matching the stars in the image to the catalog of stars. The \acdGPS failed to provide information for multiple sections of the flight, which prevented the attitude guess from the secondary sensors to be transformed from the local az/el reference frame to the equatorial reference frame in which the cameras operated. Yet even in those sections \acSTARS continued finding solutions within several seconds, switching to its ‘lost-in-space’ mode. The \acSTARS catalog was optimized by pre-computing the distances between combinations of stars and by filtering the catalog down to fewer than 20 stars per field of view. Without the optimizations implemented in \acSTARS, finding solutions without directional guidance could take a few minutes per image (chappy_thesis).
(c) The \acSTARS software successfully identified stars and matched stellar patterns in the presence of image non-idealities, including passing polar mesospheric clouds, vignetting, and internal reflections (chappy_thesis).
The two star cameras acquired a total of 41,262 images, 80% of which provided attitude solutions post-flight. Most of the remaining images were saturated because the cameras were pointing at the balloon during housekeeping operations or the attitude was within 30∘ of the Sun. On average there were 8 stars per image. Figure 3 shows a histogram of the solution uncertainty from all solved flight images. The uncertainty was reported by the least square algorithm matching the pattern of stars in the image to the catalog.
Each gyroscope measured the rate of angular rotation around its axis, and outputted a digital signal at 1000 Hz which was read out by an on-board \acDSP unit.333Provided by the University of Toronto The data were despiked, passed through a box-car infinite impulse response filter with a cutoff frequency of 20 Hz, and written to disk at 100 Hz. The gyroscopes were chosen for their combination of cost, relatively low white noise (40\as s*-1*), and their bias timescale of 200 s. Three gyroscopes were mounted inside a precision machined aluminum box with connecting surfaces orthogonal to within 5\am. The gyroscopes were wrapped in overlapping strips of magnetic shielding444Metglas, Inc. to reduce their susceptibility to ambient magnetic fields. The shielding reduced the gyroscopes’ zero-motion bias from 17\as s*-1* G*-1* to 3\as s*-1* G*-1* (Britt_thesis). The gyroscopes performed well during flight, recording data continuously and exhibiting white noise and bias behavior in accordance with pre-flight measurements.
As listed in Table 1, \acEBEX also flew a complement of secondary sensors designed to provide coarse real-time attitude to be used as a pointing guess for the star cameras, and intended to provide back-up in case the star cameras failed to solve images real-time. The main source of error for real-time attitude determination using the coarse sensors was the calibration of each sensor’s overall directional offset. Before flight, we measured these offsets by referencing the sensors to star camera solutions obtained using the few stars bright enough to be visible by the star camera from the ground during the Antarctic summer. Directional offsets were re-calibrated periodically in-flight using the star camera solutions. Figure 4 gives the in-flight performance for each of the secondary sensors given the calibration performed pre-flight and ignoring all in-flight re-calibrations. This is a ‘worst-case-scenario’ indicating what the performance of the sensors would have been had the star cameras not provided any re-calibration during flight. The dispersion about the mean of each sensor is an indicator of each sensor precision over more than 10 days of flight, and the mean of each sensor is an indicator of the accuracy of the pre-flight calibration.
1.2 Control Algorithms
Three sub-programs operated in a feedback loop to control the instrument attitude (see Figure 1): the attitude determination sub-program used sensor information to estimate the telescope attitude; the scan pattern sub-program determined the instantaneous desired attitude and scan rate; and the low-level sub-program sent current to the azimuth and elevation actuators. The attitude determination and scan pattern sub-programs ran on the ‘in-charge’ flight computer – one of the two redundant flight computers (see Section LABEL:sec:computers) – at 100.16 Hz. The azimuth and elevation low-level sub-programs ran on two \acDSP cards555ADSP 21062 from SHARC by Analog Devices, Inc. at 10,400 Hz.
The attitude determination sub-program estimated the telescope attitude by performing a weighted average of the information obtained from all sensors deemed operational by ground operators. Horizontal roll was approximated as zero. Each sensor’s attitude information was estimated using a 1-D Kalman filter that evolved the sensor prior attitude using the gyroscopes’ data and included new available measurements.
The primary scan pattern was a raster scan. The algorithm to perform this scan was a state machine that alternated between scanning at constant azimuth velocity, pausing to capture star camera images, and stepping to the next elevation. Given the scan parameters and the current attitude, the algorithm output was a target azimuth velocity and target elevation position at every time step.
The requested velocities and attitudes were transmitted to the \acDSPs which had proportional-integral (PI) feedback loops operating on the difference between current and target quantities (joy_thesis). The outputs of the PI loops were ultimately converted to a \acPWM signal for the motor controllers. The PI values were tuned in-flight to ensure optimal motion of the telescope. The feedback loops had override modes that allowed the ground operators to command \acPWMs manually. In flight, we employed both manual \acPWMs and the automatic scan algorithms.
1.3 In-Flight Performance
The \acEBEX payload launched from McMurdo, Antarctica on December 29, 2012. It circumnavigated the continent, taking data for 11 days at an average altitude of 35 km. Shortly after reaching float altitude we discovered that the pivot motor controller was overheating and shutting down (see Section LABEL:sec:thermaloverview). Without active control, the azimuth of the gondola was determined by the rotation of the balloon and the rotational spring constant of the flight train. The resulting azimuth motion is shown in Figure 5. It was a superposition of full rotations with variable rotational speed and 80 s period oscillations that had variable amplitude. Throughout the flight, more than 97% of the azimuthal speeds were below 1∘ s*-1*. We oriented the gondola at constant elevation of 54∘ in order to maintain an angular separation of 15∘ between the telescope boresight and both the balloon and the Sun’s maximum elevation. The resulting sky coverage was a strip of sky delimited by declination and , covering an area of 5700 square degrees; see Figure 5. By a fortunate coincidence, the 80 s natural rotational oscillation period of the gondola and flight-line matched the designed scan strategy. Thus the gondola came to a stop every 40 s, enabling star camera images to be taken while the gondola was in the stationary position that is optimal for star camera imaging. In this manner, all the pre-flight work of assessing attitude determination accuracy was still relevant to the actual scan pattern of the EBEX2013 flight.
1.4 Post-Flight Attitude Determination
Errors in attitude determination convert E-mode to B-mode signal. To keep these spurious B-modes negligible, we placed a requirement that the spurious B-modes would be less than 10% of an inflationary B-mode with and nominal cosmology lensing signal within , which was the range the instrument was designed to probe. hu03 quantified the effects of several types of experimental errors, including attitude errors, on the determination of the B-mode power spectrum. In their formalism, attitude errors are characterized in terms of their spatial power spectral density, and the induced B-modes are given in terms of a convolution with the cosmological E-modes. In this Section we discuss the approach we used to reconstruct attitude post-flight and quantify the attitude errors. We refer to the entire pipeline as \acADS. joy_thesis used the \acADS to construct the spatial spectral density of the measured attitude errors, convolved it with the cosmological E-modes, and showed that the requirement on attitude reconstruction for the EBEX2013 flight has been met.
Attitude errors grow with time between star camera readings because of gyroscope rate noise and uncertainties in the \acTM between star cameras and gyroscopes. Although using the combination of star cameras and gyroscopes is common on pointed balloon-borne instruments, the employment of an extended 40 s scan between star camera images necessitated a detailed analysis of the system through simulations and the development of a judicious post-flight \acADS to ensure that attitude errors met the requirement.
Star camera images provided attitude solutions that far exceeded the requirement. Between times for which images were available we integrated data from the gyroscopes; we refer to this as the \acIA. Attitude errors for the \acIA originated from gyroscope slow-varying noise, which were a function of time, and from a time-independent inaccuracy in the \acTM between the gyroscopes and the star cameras’ frames of reference. There were two contributors to inaccuracy in the \acTM: an inaccuracy in the alignment matrix that orthogonalized the gyroscopes – their hardware mounting was not perfectly orthogonal – and inaccuracy in the rotation matrix that rotated this orthogonalized frame to align with the star camera frame. Priors on the \acTM were obtained using pre-flight measurements of the gyroscope box orthogonality.
The ADS found both time-dependent and time-independent parameters through an algorithm that combined an Unscented Kalman Filter (UKF) (ukf) and a least square optimizer, as shown in Figure 6. Using a given \acTM, the UKF determined the attitude and estimated the slowly time-varying gyroscope offsets. It ran forward and backward in time producing a forward and a backward \acIA, as well as a solution that was the weighted average of the \acIA in each temporal direction. When each star camera measurement was made, the UKF computed the differences between the image solution and the forward and backward \acIA. The least square optimizer iteratively minimized these differences over the entire 11 day flight to find the optimal parameters of the time-independent \acTM. Each of the (multi-processed) 90 iterations required to reach convergence took the equivalent of 80 min on a single 2.1 GHz processor. The error on the \acTM rotation and misalignment angles, evaluated by simulating sensors’ performance and reconstructing a known attitude and TM, were found to be within 3.4\am.
We evaluated the increase in attitude errors as a function of time separation since the last star camera solution in the following way. For the forward or backward \acIA, which we call unidirectional \acIA, the error grew until a new star camera image was included in the solution, and the error at that sample was estimated using the difference between the unidirectional \acIA and the star camera solution, before the latter was included in the \acIA. We measured the error as a function of by using pairs of star camera readings separated by that time. For each , in bins 2.5 s wide, we histogrammed the differences between the star camera solution and that given by the \acIA. We included both forward and backward \acIA data points. The distribution means were near zero, but the standard deviations of the distributions gave an estimate of the unidirectional attitude error at away from a star camera solution. Figure 7 shows the unidirectional error as a function of for the EBEX2013 flight.
For the average attitude solution – constructed from the forward and backward \acIA – the attitude error at any time since the last star camera solution was calculated using the unidirectional errors via:
[TABLE]
where T was the total time between star camera images. The error was largest mid-throw and decreased close to the times the images were taken. joy_thesis shows that, when the attitude errors of the average solution are translated into the domain using the EBEX2013 scan strategy, the spurious B-mode generated is less than 1/10 of the CMB lensing power spectrum for .
