This paper presents the development of low-cost methodologies to determine the attitude of a small, CubeSat-class satellite and a microrover relative to the sun's direction. The use of commercial hardware and simple embedded designs has become an effective path for university programs to put experimental payloads in space for minimal cost, and the development of sensors for attitude and heading determination is often a critical part. The development of two compact and efficient but simple coarse sun sensor methodologies is presented in this research. A direct measurement of the solar angle uses a photodiode array sensor and slit mask. Another estimation of the solar angle uses current measurements from orthogonal arrays of solar cells. The two methodologies are tested and compared on ground hardware. Testing results show that coarse sun sensing is efficient even with minimal processing and complexity of design for satellite attitude determination systems and rover navigation systems.
One of the key problems in the development of attitude determination and control systems (ADCS) for small satellites is the use of attitude sensors small enough and efficient enough to fit within mass and power budgets. One of the simplest and most common sensors for attitude determination is the sun sensor [
A 1 U CubeSat with sun sensor.
Microrover with sun sensor.
In this paper, we outline the development of two coarse sun sensor methodologies that are compact and efficient enough for a CubeSat-class nanosatellites and microrovers and can provide reliable solar angle information for embedded attitude determination and localization. There are several basic methodologies that are in use for sun sensors, including the use of Position-Sensitive Photodiodes (PSD), linear and grid sensor arrays such as CCDs and photodiode arrays, and the measurement of sunlight on solar panels used for power. In this work, we make use of the latter two.
First, direct measurement of the solar angle is performed using a photodiode array sensor placed below a slit design in the top that allows light to fall on the sensor element. Second, the solar angle is inferred using separate current measurements from the array of solar cells used for power generation on the exterior of the vehicle. In both cases, the solar angle is calculated by a microcontroller from the geometry of the sun sensor with respect to the vehicle body. For this study, it is assumed that at least a 90° field of view is necessary for each sun sensor, so that complete coverage of the exterior is possible with a sun sensor on each face of a CubeSat. To test and validate the sensors, the sensor hardware is rotated on the spot by a rotary gimbal with angular measurement capability, and simulated sunlight from a Schott 1150 Illuminator light source is provided at a fixed position as shown in Figure
Testing diagram for sun sensor hardware.
Testing setup on optical bench with light source.
Photodiode sun sensors have been used often for spacecraft and satellite attitude determination systems [
Diagram of photodiode array sensor.
For single-axis sensing, a simple linear slit in a mask over the sensor is used, as shown in Figure
Sun angle sensing by photodiode array.
To ensure that
Linear arrays typically provide only one axis of attitude estimation, but, because a pattern on the array can be measured, it is also possible to measure elevation across most angles by using an N-slit [
Sun angle sensing by photodiode array and N-slit.
As the field of view of the sensor is limited, more than one sun sensor is needed to cover wide angles. Two single slit sensors or one Z-slit sensor can cover two solid angles of 90° with a pyramidal volume of view, and individual sides of a CubeSat can be covered this way depending on mission pointing requirements. For microrover use, a full 180° of view (horizon to horizon) can be covered by four photodiodes attached to the frustum of square pyramid [
To estimate the orientation of a microrover from solar angles, the angle of the body with respect to the ground and the angle of the sun with respect to the ground must be considered. The former can be obtained with inertial measurements from an accelerometer at rest measuring the gravity vector, and the latter can be obtained from solar ephemeris data and current time. To simplify the analysis, we assume that the accelerometer is aligned with the sun sensor so that the angle
To obtain the sensed horizontal azimuth
The solar ephemeris data must be computed separately from an estimate of the current position, which can be done with a variety of available software. The rover’s heading with respect to true north
Due to the constraints on space and power available in a nanosatellite, it is preferred to make use of sensing methodologies that focus on the processing of other available data, rather than discrete sensors. One method of doing this is to sample the currents generated by the nanosatellite’s solar arrays, information that is commonly available on small satellites for peak-power tracking or battery charge monitoring. This has the advantage that a range of angles spanning a set of independently measured noncoplanar solar panels can be measured without an external sensor but is in general less accurate than discrete sensors due to the nonlinearities involved. In this study, we consider a cubic body with a fixed solar panel on each orthogonal face, as shown in Figure
Sun angle sensing by solar cell output.
The linearity of this measurement varies depending on the solar cells used. Also, nonlinearities are introduced by variations in the load presented to the solar arrays. For a nanosatellite with a linear or pulse regulated battery charge system, this generally arises from changes in battery charge rate as the battery state changes and can be compensated for by including solar cell voltage or an estimation of the charge system state in the solar calculation to determine total power and current output.
The current sensing circuit is constructed from a bank of differential amplifiers that are read by using the Analog-to-Digital Converter (ADC) channels available on the ATMega168PA microcontroller that also reads the linear array. A current sense resistor of 0.1 Ω creates a voltage difference from current flowing from the solar panels, which is amplified by an OPA2340 rail-to-rail op-amp in differential configuration with a gain of 100. The output gain with respect to the solar panel current is then 10 V/A. It is assumed that no more than 500 mA will be sourced from the nanosatellite solar panel, so an ADC reference of 5 V can be used in measurement. As custom-constructed solar panels often vary slightly in output, it is still necessary to calibrate the ADC measurements performed by the microcontroller. The current sense amplifier circuit used for sensing is shown in Figure
Diagram of solar current sensors.
The amount of current a solar panel produces depends on the panel area
Current sensing results are much more noisy and less linear than the results from the photodiode array. In particular, the ADC offsets and gains must be calibrated for each panel separately to ensure that measurements can be compared. Figure
Typical illumination measurements from the photodiode array sun sensor are shown in Figure
Example of linear array output.
The estimated, centroided solar angle
Sun angle
If an N-slit is used to perform estimation of the transverse angle
Example of N-slit output at low
Example of N-slit output at high
The estimated transverse solar angle
Transverse sun angle
Using both the angles
Estimated microrover heading across 30° of rotation.
Solar panel current measurements for −180° to 180°.
Current measurement using high gains and ADC sensing generates much more noise than digital sensing using a linear array as described above. Although a constant current draw and capacitive decoupling of the amplifiers and microcontroller pins was used in this study, applying a windowed average to the data assuming slow changes in angle was necessary to achieve consistent results. Figure
After filtering the current
Using (
Angle from single solar panel current for 0° to 180°.
Angle from all solar panel currents for 0° to 180°.
It should be noted that this estimation is not as reliable if the distribution of solar panels over the body is not symmetrically illuminated, such as in the case of the microrover. Hence, (
To effectively compare the two methodologies described here, it is important to include the error of measurement with respect to the known angles used during testing. Figure
Error in linear array
Error in linear array with N-slit
Error in heading angle estimation.
Error in solar current angle estimation.
We have implemented and compared two useful methods for coarse solar angle sensing. Using only simple hardware and embedded software implementation, very coarse attitude estimation results can be achieved using either photodiode array or solar panel current measurement methodologies for nanosatellite attitude tracking or microrover navigation. The photodiode array provides good overall accuracy to errors within ±5° without additional filtering and thus requires minimal processing but can be improved beyond this measure if additional filtering is implemented. Dual-axis sensing is possible for a linear array using an N-slit configuration, but precise construction of the slit is essential and transverse angular measurements are more limited. Solar panel current measurements without the use of a discrete sensor can provide angular approximations over the entire exterior of the vehicle to ±7°, but require significant filtering and averaging of measurements, and thus tend to be less accurate and more processing-intensive.
Sun sensor designs such as these are useable in university and research hardware development programs due to their simplicity, robustness, and cost-effectiveness. As testing of both sun sensor configurations was done in parallel, both sensors could also be used in parallel on a CubeSat or microrover to achieve higher accuracy under uncertain conditions. Future work will include refinements to the design of both sun sensor methodologies and further improvements to localization and navigation.
The authors declare that there is no conflict of interests regarding the publication of this paper.