# An Effective Sensor Architecture for Full-Attitude Determination in the HERMES Nano-Satellites
## 4 Full-Attitude Determination Performance
In this condition, the attitude states, initialized with a random condition, were quickly aligned with the nominal operative nadir pointing. Then, along the orbit, the ideal controller made two yaw rotations in order to maintain the solar arrays' fronts face the Sun. In this way, it was possible to study the attitude determination functions independently of the controller, and the resulting performance was only representative of the determination block. The proposed results were anyway significant and in line with the realistic results available for the entire HERMES mission. The three-axis attitude determination error, \(\alpha_{err}\), satisfied the imposed requirements, as shown in Figure 14. This performance evaluation parameter is defined as the angle between the desired pointing direction, \(\hat{\psi}_{target}\), and the actual one, \(\hat{\psi}\), as  
\[\alpha_{err}=\cos^{-1}(\hat{\psi}\cdot\hat{\psi}_{target}). \tag{13}\] \begin{table}
\begin{tabular}{l c c c} \hline \hline
**Specification** & **Value** & **Units** & **Notes** \\ \hline Principal Inertia Moments & [0.0667 0.0669 0.0255] & kgm\({}^{2}\) & \\ Simulation Time & 6 & h & \(\sim\) 4 Orbital Periods \\ Spacecraft Orbit & Equatorial & N/A & \\ Orbit Altitude & 550 & km & \\ Initial Attitude State & Random & N/A & \\ Initial Angular Velocity & \(\mu=0\) deg/s, \(\sigma=0.1\) deg/s & N/A & Gaussian Distribution \\ Attitude Mode & Nadir Pointing & N/A & \\ Attitude Pointing Error & 0 & deg & Ideal Attitude Tracking \\ \hline \hline \end{tabular}
\end{table} 
Table 9: Model-in-the-loop simulation parameters. This figure of merit is used in HERMES since the scientific requirement is formulated on the three-axis overall error angle in estimating the attitude state. Thus, it is not relevant to understand how this error is split into the classical roll, pith, and yaw components. As soon as the system was initialized, the estimated attitude states converged to the real ones with a determination error that was below \(1\deg\) at \(1\sigma_{a}\) whenever the on-board determination functions were fully calibrated. Indeed, the attitude determination error stayed below \(3\deg\) for the entire time, as visible in Figure 13(b), except for an instantaneous peak at \(t\sim 1.7\times 10^{4}\,\mathrm{s}\) and for the increasing error between \(2000\,\mathrm{s}\) and \(4000\,\mathrm{s}\). The former was only a slightly larger jump in the determination functions, similar to the others that are commonly present during the attitude estimation process. These small peaks in the attitude determination error are typically due to a switch in the fine Sun sensor with the Sun currently in view. This sensor change happens during the yaw rotations and for attitude conditions in which the Sun is at the border of the field of view of one sensor. For instance, the same peaks would not be present in the case in which the attitude determination is executed in inertial attitude mode, whereas the initial attitude determination error rise was associated with the first dead-reckoning period during the first eclipse, when the gyroscope's biases were still not completely estimated. Thus, along the first orbit, the attitude determination system was not fully calibrated yet. This small issue can be partially solved by initializing the calibration functions with ground-estimated biases, even if the launch event will for sure wreck the calibration values. In this regard and to minimize the risk of possible counter calibrations, the HERMES calibration functions were initialized with zero biases. However, whenever the biases were correctly estimated on-board, the dead-reckoning attitude propagation did not go over the \(3\sigma_{a}\) error threshold. This is visible in Figure 13(b) for the following three eclipse periods at times \(t\sim 0.9\times 10^{4}\,\mathrm{s}\), \(t\sim 1.4\times 10^{4}\,\mathrm{s}\), and \(t\sim 2.0\times 10^{4}\,\mathrm{s}\). Figure 14: Full-attitude determination error, \(\alpha_{err}\), in radir-aligned attitude state.