Introduction

There is a recent growing interest in miniaturized interplanetary spacecraft [32]. The European Space Agency (ESA) has funded several interplanetary CubeSat mission studies like M-ARGO [46], LUMIO (Lunar Meteoroid Impacts Observer) [43], VMMO (Lunar Volatile and Mineralogy Mapping) [22], and CubeSats along the Hera mission [28]: Milani [12] and Juventas [15]. The National Aeronautics and Space Administration (NASA) funded 19 SmallSat deep-space mission studies after Mars Cube One (MarCO) [20, 36], the first interplanetary CubeSat launched along with InSight (Interior Exploration using Seismic Investigations, Geodesy, and Heat Transport) mission [2]. Many of them will fly along the Artemis-1 and Artemis-2 opportunities in the next years [23, 24, 26]. The Japan Aerospace Exploration Agency (JAXA) is planning deep-space CubeSat missions as well [10, 31].

Nanospacecraft following the CubeSat standard form factor (typically of 6 or 12U volume, where 1U is a cube with a 10 cm edge [39]), may lower the absolute entry-level cost of deep-space exploration by an order of magnitude, whilst still achieving useful science objectives. CubeSats can be built and assembled using COTS (commercial off-the-shelf) components, properly screened for survivability in the deep-space environment. Moreover, CubeSats can share the launch with either a main passenger as a piggyback or other CubeSats in a rideshare configuration [41]. While the costs to design and build a CubeSat scale with size, those related to operate it remain unaltered when ground-based radiometric navigation is used. This solution requires involving ground stations and flight dynamics teams. This is the major bottleneck in downscaling the deep-space CubeSat mission costs. Therefore, navigation methods independent from ground contacts would be desirable for deep-space CubeSats. In this context, the M-ARGO mission is planned to execute an autonomous navigation experiment while in deep-space cruise phase. Note that other missions have performed deep-space autonomous optical navigation exercises [33, 45]. In particular, Deep Space 1 carried out an experiment akin to the one in M-ARGO [34]. Yet, the latter will have to cope with much fewer beacons owing to the limited performances of miniaturized components.

Recent studies on autonomous navigation methods involve X-ray pulsar navigation [1, 38], horizon-based navigation close to nearly spherical objects [3, 6, 9, 13, 30], and deep-space line-of-sight navigation [4, 14, 18, 29].

The X-ray Pulsar navigation exploits the time-of-arrival difference between the observer location and the Solar System barycenter (SSB) of an X-ray pulsar signal to estimate the observer range to the SSB [38]. This is promising, yet feasibility for nanosats is limited by the physics and its operational constraints. The horizon-based navigation relates the apparent full-disk size of a known nearly-spherical object in the observer camera field-of-view to the real object dimension to estimate the relative range. The relative position vector can be estimated by detecting the object position in the camera field-of-view. The accuracy of the method depends on the pixel accuracy in determining the object visible shape [7]. Thus, this method can be employed when the observer is close to a known object such that the camera field-of-view is almost filled by the object. The line-of-sight navigation method exploits the line-of-sight (LOS) measurements of distant objects in the Solar System to triangulate the observer position. This method requires the objects ephemeris to be known and non-stars objects to be detected in the camera or in the star tracker field-of-view.

The X-ray pulsar navigation is still not applicable to CubeSats owing to operational constraints, while the horizon-based navigation requires proximity to celestial bodies. On the other hand, the line-of-sight navigation fits the M-ARGO deep-space scenario, and as such it has been baselined for the autonomous navigation experiment. Nevertheless, it deserves a detailed investigation in terms of quantification of the performances. M-ARGO will exploit ground-based radiometric tracking for orbit determination and will use this solution to validate the performances of the autonomous navigation exploiting the LOS directions to the planets. Thus, the experiment will run in background during the coast arcs of the M-ARGO low-thrust, deep-space cruise. This paper is a first elaboration of the problem of setting up the autonomous navigation experiment aboard M-ARGO. The goal is to investigate the navigation problem geometry, the navigation filter modeling, and to assess the expected performances. The focus is on tracking the LOS directions to the planets in the Solar System considering the limitations of a CubeSat platform, such as the limited performances and numbers of camera on-board. To this aim, one sample transfer trajectory to asteroid 2000 SG344 has been employed for validation.

The paper is structured as follows. M-ARGO mission is briefly described in “M-ARGO”. The line-of-sight navigation method and its covariance analysis are recalled in “Line-of-Sight Navigation”’. Then, an optimal beacon selection criteria is elaborated in “Optimal Beacons Selection”. The Kalman filter implementation is shown in “Filter Implementation”, while the settings for the navigation simulation are presented in “Simulation Settings”. Section “Performances” reports the navigation performances for the M-ARGO mission case. Concluding remarks are given in “Conclusions”.

M-ARGO

The Mission

M-ARGO is a 12U deep-space CubeSat that is planned to piggyback on the launch of another large spacecraft going towards the Sun–Earth Lagrange point L2. After insertion into a halo parking orbit at L2, M-ARGO will depart from there performing a deep-space cruise towards a NEA target using low-thrust electric propulsion [46]. The departure from the Sun–Earth L2 point is planned within 1 Jan 2023 and 31 Dec 2024. The maximum transfer time to the asteroid is set to 3 years, and the duration of close-proximity operations (CPO) are planned to last up to 6 months. The objective of M-ARGO is to characterise the physical properties of the target NEA for the presence of in-situ resources. The preliminary spacecraft mass budget amounts to 22.6 kg, where 2.8 kg are accounted for the propellant. Table 1 presents a summary of the M-ARGO characteristics.

Table 1 M-ARGO characteristics and mission time frame

M-ARGO will advance the state of the art in miniaturized technologies. Indeed, M-ARGO will carry a miniaturized X-band transponder and reflectarray high gain antenna for communication with Earth at distances up to 1.5 AU, a miniaturized solar drive array mechanism for maximising solar power generation from two deployable steerable wings, and miniaturized electric propulsion for high total impulse manoeuvres [46]. Further details on the M-ARGO mission are present in [44].

The Target Asteroids

Figure 1 shows the estimated size versus the rotational period of the currently known asteroids. The dashed line at 2.2 h rotational period is the so called spin barrier, which is thought to be the rotational period limit for the vast majority of the objects whose diameter is larger than 1 km. Small asteroids can rotate faster than the spin barrier, and for this reason they are interesting targets for science. The M-ARGO mission study team has selected different near-Earth asteroids as potential targets by pre-filtering their orbital elements [27], which are highlighted black in Fig. 1. The targets short-list has been achieved downstream of a more refined analysis [44]. All the targets for M-ARGO are smaller than 50 meters in diameter and are thought to be monolithic in nature [46].

Fig. 1
figure 1

Rotational period against diameter for minor planets. Pre-candidate targets in black

This work considers as study case one of the candidate targets in order to evaluate the performances of the deep-space autonomous navigation. The chosen asteroid among the final short-listed ones is 2000 SG344, whose characteristics are given in Table 2, where a is the semi-major axis, e the eccentricity, ω the pericenter anomaly, Ω the right ascension of the ascending node, and H the asteroid absolute magnitude.

Table 2 Characteristics of the NEA 2000 SG344

The relation between the absolute magnitude and the estimated diameter is [37]

$$ D = \frac{1329}{\sqrt{p_{v}}} 10^{-0.2 H} $$
(1)

where D is the diameter (in km) and pv the asteroid albedo. The albedo of asteroids ranges between 0.05 and 0.4, and it is assumed to be 0.15 for 2000 SG344 (common assumption for unknown asteroids). Thus, the estimated diameter of 2000 SG344 is 39 m.

Figure 2 shows M-ARGO and 2000 SG344 trajectories in the Ground Solar Ecliptic (GSE) frame, where the Earth is in the origin, the positive x-axis always points towards the Sun, the z-axis normal to the ecliptic, and the y-axis completes the right-handed frame. GSE is a non-inertial reference frame.

Fig. 2
figure 2

M-ARGO (in black) and 2000 SG344 (in grey) trajectories in the GSE frame

Line-of-Sight Navigation

The autonomous navigation experiment of M-ARGO consists of determining the spacecraft state in deep space by tracking the line-of-sight (LOS) directions to a number of known navigation beacons. The LOS directions are acquired for one beacon at a time using available miniaturized optical sensors and are given as input to a Kalman filter. First, the methodology of a two-beacons synchronous acquisition case and its covariance are reported. Then, a figure of merit, which describes the optimal beacons to be tracked, is introduced. Lastly, the navigation case is embedded into a Kalman filter, where asynchronous LOS acquisitions are implemented. Then, the performances of the deep-space navigation experiment are simulated and reported in terms of position and velocity errors and corresponding covariance bounds. More details on triangulation based methods can be found in [21].

Synchronous Measurements Case

The inertial geometry between a spacecraft and two objects in deep-space is shown in Fig. 3. The spacecraft position vector at a given epoch is denoted as r, which is unknown. The objects positions at the same epoch are denoted as r1 and r2. The relative position vectors of the objects with respect to the observer are denoted as ρ1 and ρ2, respectively. Assuming that r1 and r2 are known, the problem is to estimate r by acquiring the LOS directions to the bodies, that is, \(\boldsymbol {\hat \rho }_{1}\) and \(\boldsymbol {\hat \rho }_{2}\).

Fig. 3
figure 3

Line-of-sight navigation exploiting two beacons

This optical navigation problem can be solved algebraically. Let \(\boldsymbol {\rho } = \rho \boldsymbol {\hat \rho }\), ρ and \(\boldsymbol {\hat \rho }\) being the range and the unitary LOS vector, respectively, for each object. The ranges ρ1 and ρ2 to the observed objects can be determined as follows. From Fig. 3, the observer position can be written as:

$$ \boldsymbol{r} = \boldsymbol{r}_{1} - \rho_{1} \boldsymbol{\hat \rho}_{1} \qquad \text{or} \qquad \boldsymbol{r} = \boldsymbol{r}_{2} - \rho_{2} \boldsymbol{\hat \rho}_{2} $$
(2)

which leads to

$$ \boldsymbol{r}_{1} - \rho_{1} \boldsymbol{\hat \rho}_{1} = \boldsymbol{r}_{2} - \rho_{2} \boldsymbol{\hat \rho}_{2} $$
(3)

The scalar product of Eq. 3 by \(\boldsymbol {\hat \rho }_{1}\) and \(\boldsymbol {\hat \rho }_{2}\), respectively, yields

$$ \begin{aligned}[c] \boldsymbol{\hat \rho}_{1}^{\top} \boldsymbol{r}_{1} - \rho_{1} \boldsymbol{\hat \rho}_{1}^{\top} \boldsymbol{\hat \rho}_{1} = \boldsymbol{\hat \rho}_{1}^{\top} \boldsymbol{r}_{2} - \rho_{2} \boldsymbol{\hat \rho}_{1}^{\top} \boldsymbol{\hat \rho}_{2} \\ \boldsymbol{\hat \rho}_{2}^{\top} \boldsymbol{r}_{1} - \rho_{1} \boldsymbol{\hat \rho}_{2}^{\top} \boldsymbol{\hat \rho}_{1} = \boldsymbol{\hat \rho}_{2}^{\top} \boldsymbol{r}_{2} - \rho_{2} \boldsymbol{\hat \rho}_{2}^{\top} \boldsymbol{\hat \rho}_{2} \end{aligned} $$
(4)

Keeping in mind that \(\boldsymbol {\hat \rho }_{1}^{\top } \boldsymbol {\hat \rho }_{1} = \boldsymbol {\hat \rho }_{2}^{\top } \boldsymbol {\hat \rho }_{2} = 1\), and rearranging Eq. 4, the following matrix form can be obtained

$$ \begin{array}{@{}rcl@{}} \underbrace{\left[\begin{array}{cc} 1 & - \boldsymbol{\hat \rho}_{1}^{\top} \boldsymbol{\hat \rho}_{2} \\ - \boldsymbol{\hat \rho}_{2}^{\top} \boldsymbol{\hat \rho}_{1} & 1 \end{array}\right]}_{\boldsymbol{A}} \underbrace{\left[\begin{array}{cc}\rho_{1}\\ \rho_{2} \end{array}\right]}_{\boldsymbol{x}} = \underbrace{\left[\begin{array}{cc} \boldsymbol{\hat \rho}_{1}^{\top} (\boldsymbol{r}_{1} - \boldsymbol{r}_{2})\\ \boldsymbol{\hat \rho}_{2}^{\top} (\boldsymbol{r}_{2} - \boldsymbol{r}_{1}) \end{array}\right]}_{\boldsymbol{b}} \end{array} $$
(5)

Equation 5 is in the form Ax = b, where the geometry matrix A and the input vector b are both known: \(\boldsymbol {\hat \rho }_{1}\) and \(\boldsymbol {\hat \rho }_{2}\) are measured directly using star trackers and r1 and r2 are retrieved from ephemeris models. The system can be solved for the unknown x = [ρ1ρ2]; i.e., x = A− 1 b. With x known, the spacecraft position r is known through Eq. 2.

Impact of Observation Geometry

The accuracy in the LOS measurement as well as the geometry of the two beacons both impact on the quality of the solution. Denoting with γ the angle between the two observed beacons, then \(\boldsymbol {\hat \rho }^{\top }_{1} \boldsymbol {\hat \rho }_{2} = \cos \limits \gamma \), and the geometry matrix in Eq. 5 takes the form

$$ \boldsymbol{A} = \left[\begin{array}{cc} 1 & - \cos \gamma \\ - \cos \gamma & 1 \end{array}\right] $$
(6)

Note that the determinant of A is

$$ {\det} \boldsymbol{A} = 1 - \cos^{2} \gamma = \sin^{2} \gamma $$
(7)

Thus, A becomes singular for γ = {0,π}. This occurs when the two observed beacons and the spacecraft lie on the same line, and the navigation solution is singular. On the contrary, \({\det } \boldsymbol {A} = 1\) for γ = π/2, and A becomes the identity matrix, so that x = b.

Note that the best geometry is achieved when the two LOS directions are orthogonal, while the solution is undetermined when the two beacons and the observer are aligned. More details can be found in [14].

Covariance Analysis

Assuming small perturbations of the line-of-sight directions with an angular additive model, where the azimuth and elevation angles corresponding to a LOS direction are perturbed by the sum with a white noise of standard deviation σ [5, 25], the covariance of the solution error P to Eq. 5 can be derived as [14]

$$ \boldsymbol{P} = \sigma^{2} \boldsymbol{A}^{-1} \boldsymbol{B} \boldsymbol{A}^{-1} $$
(8)

where B is the following matrix

$$ \boldsymbol{B} = \left[\begin{array}{cc} \boldsymbol{z}^{\top} \boldsymbol{L}_{1} \boldsymbol{z} & 0 \\ 0 & \boldsymbol{z}^{\top} \boldsymbol{L}_{2} \boldsymbol{z} \end{array}\right] $$
(9)

and z = r2r1, \(\boldsymbol {L}_{1} = \boldsymbol {I} - \boldsymbol {\hat \rho }_{1} \boldsymbol {\hat \rho }_{1}^{\top }\), \(\boldsymbol {L}_{2} = \boldsymbol {I} - \boldsymbol {\hat \rho }_{2} \boldsymbol {\hat \rho }_{2}^{\top }\), and I denotes the identity matrix. The reader can refer to [14] for a complete derivation of Eq. 8.

Optimal Beacons Selection

The covariance of the solution error, P in Eq. 8, depends on the standard deviation of the LOS directions to the beacons (σ), the γ angle between the beacons as seen from the observer, the LOS directions to the beacons (\(\boldsymbol {\hat \rho }_{1}\) and \(\boldsymbol {\hat \rho }_{2}\) inside L), and the beacons positions (r1 and r2). Thus, assuming N available beacons, it is important to assess which couple of beacons yields the best accuracy of the navigation solution. To this aim, the trace of the covariance matrix can be used as a figure of merit for the solution accuracy as demonstrated in [14]:

$$ \text{Tr}[\boldsymbol{P}] = \sigma^{2} \frac{1 + \cos^{2} \gamma}{{\sin}^{4}\gamma} \boldsymbol{z}^{\top} \boldsymbol{L} \boldsymbol{z} $$
(10)

where L = L1 + L2. Equation 10 can be used as a measure of the quality of the navigation solution, it being a non-negative function of all the quantities and errors involved in the deep-space optical navigation problem.

Following the considerations in [14], the figure of merit exploiting two beacons can be defined as

$$ J_{kl} = \sigma^{2} \left( \frac{1 + {\cos}^{2} \gamma_{kl} }{{\sin}^{4}\gamma_{kl}}\right) (\boldsymbol{r}_{l} - \boldsymbol{r}_{k})^{\top} [\boldsymbol{L}_{k} + \boldsymbol{L}_{l}] (\boldsymbol{r}_{l} - \boldsymbol{r}_{k}) $$
(11)

where k and l denote the k-th and l-th beacon, respectively, γkl the angle between them as seen from the observer, rk and rl their position vectors with respect to the Sun, and \(\boldsymbol {L}_{k} = [\boldsymbol {I} - \boldsymbol {\hat \rho }_{k} \boldsymbol {\hat \rho }_{k}^{\top }]\), \(\boldsymbol {L}_{l} = [\boldsymbol {I} - \boldsymbol {\hat \rho }_{l} \boldsymbol {\hat \rho }_{l}^{\top }]\). Note that Jkl is also function of the epoch through the beacons position vectors.

Given a set of N visible beacons, the problem is to find i and j such that

$$ \{i, j\} = \underset{\underset{k \neq l}{{k = 1, {\cdots} , N}; {l = 1, \cdots, N};}}{\arg\ \min} J_{kl} $$
(12)

Note that an alternative figure of merit for the problem at hand can be found in [19]. Also, note that this formulation is valid when two synchronous beacons are acquired. In the Kalman filter implementation in “Filter Implementation”, the two beacons are acquired in an asynchronous fashion but close in time. This justifies the use of the same figure of merit of Eq. 11. In this way, the closest beacon of the couple from Eq. 12 is acquired, and then the second beacon is acquired after few minutes.

Filter Implementation

So far, we have considered the navigation case where two navigation beacons are acquired simultaneously. However, due to the limited number of sensors mounted on a CubeSat, it is realistic to consider that only one line of sight can be tracked at a time. Thus, in order to cope with asynchronous measurements to estimate the probe state, an extended Kalman filter formulation has been introduced [16, 17, 40]. The extended Kalman filter is summarized in Algorithm 1. All the components of the algorithm are presented in the following.

figure a

The system block comprehends the nonlinear system dynamics and the measurements equations (lines 1 and 2 of Algorithm 1), where f is the system dynamics, x is the state, u the system input, y the system output, h the measurement model, \(\tilde {\boldsymbol {w}}\) the process noise, v the measurement noise, and k the discrete time index. The initial state estimate and state covariance are denoted as \(\hat {\boldsymbol {x}}_{0}^{+}\) and \(\boldsymbol {P}_{0}^{+}\), respectively.

Then, the Kalman filter consists of a predictor and a corrector steps. The predicted quantities are denoted with the superscript and are obtained through the integration of the dynamic equation (line 7 and 8 in Algorithm 1) and its covariance [40], where F is the Jacobian of f evaluated at \({\boldsymbol {\hat x}_{k}^{-}}\). The corrected quantities are indicated with the superscript + and are the state and its covariance (line 10 and line 11 in Algorithm 1). The Kalman gain Kk (line 9) is used to correct the estimates. The H matrix is the Jacobian of the measurements evaluated at the current predicted state.

State Dynamics

The spacecraft state in the filter formulation is defined as

$$ \boldsymbol{x} = [\boldsymbol{r} {\kern6pt} \boldsymbol{v} {\kern6pt} m {\kern6pt} \alpha {\kern6pt} \beta {\kern6pt} \boldsymbol{\eta}]^{\top} $$
(13)

where r is the spacecraft position, v the spacecraft velocity, m the spacecraft mass, α and β are the azimuth and elevation angles of the thrust direction, and η is the vector of Gauss–Markov parameters introduced to model the uncertainty in the system. The dynamics comprehend the gravitational attractions of the Sun and the Earth–Moon barycenter, the solar radiation pressure owing to the large area-to-mass ratio M-ARGO, and the low-thrust exerted by the propulsion system [11]. Fourth-body perturbations, like the gravitational attraction of Jupiter, have been considered negligible. Thus, the acceleration of the system is

$$ \boldsymbol{a} = \boldsymbol{a}_{S} + \boldsymbol{a}_{E} + \boldsymbol{a}_{SRP} + \boldsymbol{a}_{LT} $$
(14)

where aS and aE are the accelerations due to the gravity of the Sun and the Earth, respectively, aSRP is the acceleration due to the solar radiation pressure, and aLT is the acceleration due to the low-thrust propulsion. The first two terms are

$$ \boldsymbol{a}_{S} = - \mu_{S} \frac{\boldsymbol{r}}{r^{3}} \qquad \qquad \boldsymbol{a}_{E} = \mu_{E} \left( \frac{\boldsymbol{r_{}E-SC}}{r_{E-SC}^{3}} - \frac{\boldsymbol{r}_{E}}{{r_{E}^{3}}}\right) $$
(15)

where μS and μE are the gravitational constants of the Sun and the Earth, respectively, rESC the Earth position with respect to the spacecraft, and rE the Earth position with respect the Sun. The acceleration due to the solar radiation pressure has been modelled using the cannon-ball assumption [11]

$$ \boldsymbol{a}_{SRP} = C_{R} \frac{S_{0} {R_{0}^{2}}}{c} \frac{A_{S}}{m} \frac{\boldsymbol{r}}{r^{3}} $$
(16)

where CR = 1.3 is the spacecraft reflective coefficient, \(A_{S} = 0.30 \text {m}^{2}\) is the spacecraft illuminated area, S0 the emitted power flux from the Sun, c is the speed of light, and R0 is the Sun radius. The low-thrust acceleration has been modeled as

$$ \boldsymbol{a}_{LT} = \frac{u T_{\max}}{m} \hat{\boldsymbol{\nu}} $$
(17)

where u ∈ [0,1] is the throttle factor, \(T_{\max \limits } = 1.89 \text {mN}\) is the maximum thrust available, and ν is the thrust pointing direction. The latter is function of two angles, α and β, whose definition can be seen in Fig. 4. In the Sun-centered J2000 reference frame, β is the elevation of the thrust direction, while α is the azimuth.

Fig. 4
figure 4

Definition of α and β angles with respect to the J2000 frame

Thus, the pointing direction in inertial coordinates is

$$ \hat{\boldsymbol{\nu}} = [\sin \alpha \cos \beta \quad \cos \alpha \cos \beta \quad \sin \beta]^{\top} $$
(18)

During the deep-space cruise, M-ARGO follows a repetitive duty cycle of 7 days made of 6 days of thrusting and 1 day of coasting. This profile has been implemented in the propagation within the filter. The evolution of the thrust angles in the thrust arcs has been assumed to follow a second-order polynomial in duty cycle time τ, i.e.,

$$ \begin{aligned} \alpha = a_{0} + a_{1} \tau + \frac{a_{2}}{2} \tau^{2} \\ \beta = b_{0} + b_{1} \tau + \frac{b_{2}}{2} \tau^{2} \end{aligned} $$
(19)

where a0, a1, a2, b0, b1, and b2 are coefficients determined as part of the trajectory optimization [44]. Note that this evolution is valid during the 6-day thrust arc, and different coefficients have been determined for different thrust arcs.

The evolution of the spacecraft mass is instead given by

$$ \dot m = - \frac{u T_{\max}}{I_{sp} g_{0}} $$
(20)

where Isp = 3022.59 s is the specific impulse of the thruster, and g0 the gravitational acceleration at Earth’s sea level. Note that the thruster specifics follow a model taken by the M-ARGO consortium to start with the mission analysis. More information on the thruster model are available in [44]. The vector of Gauss–Markov (GM) processes η is

$$ \boldsymbol{\eta} = [\boldsymbol{\eta}_{R} \quad \boldsymbol{\eta}_{SRP} \quad \eta_{T} \quad \eta_{\alpha} \quad \eta_{\beta}]^{\top} $$
(21)

that includes the Gauss–Markov processes of the residual acceleration (ηR), the solar radiation pressure (ηSRP), the low-thrust magnitude (ηT) and direction (ηα and ηβ).

The Gauss–Markov processes are described by

$$ \dot \eta = - \frac{1}{T} \eta + \omega = - \xi \eta + \omega $$
(22)

where η is the GM process, T the correlation time, and ω a white noise process as input (thus, E[ω] = 0 and \(\mathrm {E} [\omega ^{2}] = \sigma _{\omega }^{2}\), where σω is the standard deviation of the white noise process). It can be shown that the GM processes have zero mean and covariance given by [42]

$$ Q_{GM} = \frac{{\sigma_{w}^{2}}}{2 \xi} $$
(23)

Thus, the dynamics is

$$ \begin{array}{@{}rcl@{}} \dot{\boldsymbol{x}} \!&=&\! \boldsymbol{f} ( \boldsymbol{x}, \boldsymbol{u}, t) + \boldsymbol{\tilde w} \!\Rightarrow\! \left[\begin{array}{ccccccc}\dot{\boldsymbol{r}}\\ \dot{\boldsymbol{v}}\\ \dot m\\ \dot\alpha\\ \dot\beta\\ \dot{\boldsymbol{\eta}} \end{array}\right]= \left[\begin{array}{ccccccc}\boldsymbol{v},\\ \boldsymbol{a}_{S} + \boldsymbol{a}_{E} + \boldsymbol{a}_{SRP} + \boldsymbol{a}_{LT}\\ - u T_{\max}/(I_{sp} g_{0})\\ a_{1} + a_{2} \tau\\ b_{1} + b_{2} \tau\\ - \xi \boldsymbol{\eta} + \boldsymbol{\omega} \end{array}\right]\\ \end{array} $$
(24)

where ω is the vector of white noises corresponding to the GM processes η. The propagation of the covariance is described by

$$ \dot{\boldsymbol{P}} = \boldsymbol{F} \boldsymbol{P} + \boldsymbol{P} \boldsymbol{F}^{\top} + \boldsymbol{Q} $$
(25)

where F is the Jacobian of the state dynamics, thus

$$ \boldsymbol{F} = \left[\begin{array}{cccccccccccccccccccccccccccccccccc} \boldsymbol{0}_{3\times3} & \boldsymbol{I}_{3\times3} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} \\ \boldsymbol{F}_{r} & \boldsymbol{0}_{3\times3} & \boldsymbol{F}_{m} & \boldsymbol{F}_{\alpha} & \boldsymbol{F}_{\beta} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 \\ \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & - \xi \boldsymbol{I} & \boldsymbol{0}_{3\times3} & 0 & 0 & 0 \\ \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times3} & - \xi \boldsymbol{I} & 0 & 0 & 0 \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & - \xi & 0 & 0 \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & - \xi & 0 \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & - \xi \end{array}\right] $$
(26)

where

$$ \begin{array}{@{}rcl@{}} \boldsymbol{F}_{r} \!&=&\! \left( - \mu_{S} + C_{R} \frac{S_{0} {R_{0}^{2}}}{c} \frac{A_{S}}{m} \right) \frac{\boldsymbol{I} r^{2} - 3 \boldsymbol{r} \boldsymbol{r}^{\top}}{r^{5}} - \mu_{E} \frac{\boldsymbol{I} r_{E-SC}^{2} - 3 \boldsymbol{r}_{\boldsymbol{E-SC}} \boldsymbol{r}_{\boldsymbol{E-SC}}^{\top}}{r_{E-SC}^{5}} \qquad \end{array} $$
(27)
$$ \begin{array}{@{}rcl@{}} \boldsymbol{F}_{m} \!&=&\! - C_{R} \frac{S_{0} {R_{0}^{2}}}{c} \frac{A_{S}}{m^{2}} \frac{\boldsymbol{r}}{r^{3}} - \frac{u T_{\max}}{m^{2}} \hat{\boldsymbol{\nu}} \end{array} $$
(28)
$$ \begin{array}{@{}rcl@{}} \boldsymbol{F}_{\alpha} \!&=&\! \frac{u T_{\max}}{m} [\cos\alpha \cos\beta \quad-\!\sin\alpha \cos\beta \quad 0]^{\top} \end{array} $$
(29)
$$ \begin{array}{@{}rcl@{}} \boldsymbol{F}_{\beta} \!&=&\! \frac{u T_{\max}}{m} [-\sin\alpha \sin\beta \quad -\!\cos\alpha \sin\beta \quad \cos\beta]^{\top} \end{array} $$
(30)

and Q is the noise covariance matrix:

$$ \boldsymbol{Q} = \left[\begin{array}{ccccccccccccccccccccccccccccccccc} \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} \\ \boldsymbol{0}_{3\times3} & \frac{\boldsymbol{I} ({\sigma_{R}^{2}} + \sigma_{SRP}^{2} + {\sigma_{T}^{2}})}{2\xi} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & \frac{\sigma_{\alpha}^{2}}{2 \xi} & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & \frac{\sigma_{\beta}^{2}}{2 \xi} & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 \\ \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & {\sigma_{R}^{2}} \boldsymbol{I} & \boldsymbol{0}_{3\times3} & 0 & 0 & 0 \\ \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times3} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times1} & \boldsymbol{0}_{3\times3} & \sigma_{SRP}^{2} \boldsymbol{I} & 0 & 0 & 0 \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & {\sigma_{T}^{2}} & 0 & 0 \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & \sigma_{\alpha}^{2} & 0 \\ \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & 0 & \boldsymbol{0}_{1\times3} & \boldsymbol{0}_{1\times3} & 0 & 0 & \sigma_{\beta}^{2} \end{array}\right] $$
(31)

where σR, σSRP, σT, σα and σβ are the standard deviations of the corresponding processes as per Eqs. 22 and 23.

Measurements Model

The measurements are the azimuth and elevation of the beacons LOS directions, which are affected by additive angular noise. Thus, at a given epoch tk, the measurement model is

$$ \boldsymbol{y}_{k} = \boldsymbol{h}(\boldsymbol{x}_{k}) + \boldsymbol{v}_{k} = \left[\begin{array}{ccccccccc}\theta_{k,i}\\ \phi_{k,i} \end{array}\right] + \boldsymbol{v}_{k} $$
(32)

where i refers to the i-th navigation beacon. Considering the spacecraft position as r = [x,y,z]T and the object inertial position vector as ri = [xi,yi,zi]T, the object position vector with respect to the observer is

$$ \boldsymbol{\rho}_{i} = \boldsymbol{r}_{i} - \boldsymbol{r} = \left[\begin{array}{ccccccccc}x_{i} - x\\ y_{i} - y\\ z_{i} - z \end{array}\right] $$
(33)

The line-of-sight direction to the navigation beacon is then

$$ \hat {\boldsymbol{\rho}}_{i} = \frac{\boldsymbol{\rho}_{i}}{||\boldsymbol{\rho}_{i}||} = \frac{1}{|| \boldsymbol{\rho}_{i}||} \left[\begin{array}{ccccccccc} x_{i} - x\\ y_{i} - y\\ z_{i} - z \end{array}\right] $$
(34)

Thus, the azimuth and elevation angles in the measurements equation are then

$$ \theta = \text{atan}\left( \frac{y_{i} - y}{x_{i} - x}\right) \qquad \phi = \text{asin} \left( \frac{z_{i} - z}{||\boldsymbol{\rho}||_{i}}\right) $$
(35)

which are evaluated at a given epoch tk and with respect to a given object i.

The measurement noise v is a zero-mean, uncorrelated, with known covariance (R) random processes. Thus

$$ E[\boldsymbol{v}] = \boldsymbol{0} \qquad \qquad E[\boldsymbol{v}\boldsymbol{v}^{T}] = \boldsymbol{R} = \left[\begin{array}{ccccccccc} \sigma_{\theta}^{2} & 0 \\ 0 & \sigma_{\phi}^{2} \end{array}\right] $$
(36)

where σ𝜃 and σ𝜃 are the standard deviations in 𝜃 and ϕ. It is worth to remind that Q is a 18×18 matrix, while R is a 2×2 matrix. The noise covariance in Eq. 36 is a valid assumption when the measurements are close to the observer celestial equator as happens in the M–ARGO scenario, while note that correlated azimuth and elevation modeling is required for acquisitions of beacons with high inclination with respect to the observer. Also, note that the current formulation considers the angles generated by LOS measurements to the navigation beacons. These are acquired by image processing whose modeling is out of scope of this work. Techniques based on centroiding are usually employed to retrieve such LOS measurements [8, 35].

Simulation Settings

Table 3 reports the settings used for the simulation of the deep-space autonomous navigation experiment. The goal is to provide a general framework to assess preliminary results for the navigation experiment. For this reason, and since M-ARGO is still in the preliminary design phase, many educated assumptions have been made to perform the simulations. Note that the simulation of the autonomous navigation has been performed for all the short-listed candidates for M-ARGO, showing similar results owing to the Earth-like orbits of the targets. This paper presents one sample target for brevity sake. Remind that M-ARGO follows a precise duty cycle made up of 6 days of thrusting arc and 1 day of coasting arc, as shown in Fig. 5. The initial position and velocity for each Kalman filter run have a 3σ dispersion of 1000 km and 1 m/s, respectively, about the Sun–Earth L2 point. No error in the initial mass is assumed, while the initial thrust magnitude and thrust angles are assumed to be known up to 5% of the real thrust and 1 deg. During the propagation phases, the residual acceleration is assumed to be 10− 11 km/s2 and the SRP is assumed to be uncertain of 10% of the computed deterministic value. In the measurement phase, M-ARGO slews and points to a planet to acquire its LoS direction, then slews to another planet to acquire its LoS direction. The measurements are taken during the coast arcs only, thus no measurement campaigns are set during the thrust arcs. The measurement windows for each planet lasts 15 minutes and the measurement frequency is 0.0167 Hz (1 per minute). The LoS accuracy accounted for is 15 arcseconds. This comes as a contribution due to attitude determination, planet centroiding error, and a small margin. M–ARGO considers a two optical heads star sensor to achieve 9 arcseconds attitude determination. The LoS directions to the deep-space objects are usually acquired via centroiding techniques on the image plane that achieve subpixel accuracy in the order of 0.1 pixels [8, 35]. This translates to 3 arcseconds for the M–ARGO optical sensor. A margin of 3 arcseconds has been added for unmodeled effects (e.g., thermoelastic deformation of the spacecraft). The slewing time required for a 180 degree angle is assumed to be 20 minutes. A total of 2 acquisition windows are foreseen for each navigation campaign. During these windows, M-ARGO points to those planets which are visible (determined as those planets brighter than magnitude 6 and whose angle to the Sun is greater than 30 degrees). Note that only planets are considered owing to the low limit magnitude of commons camera sensors for CubeSats (due to the small aperture), and the planets’ ephemeris are assumed to be exact. In summary, out of the 1-day coast arc, 50 minutes are dedicated to the LOS acquisition of the two planets asynchronously. All settings are given in Table 3.

Table 3 Settings of the deep-space autonomous navigation simulations
Fig. 5
figure 5

M-ARGO follows a duty cycle made up of 6 days of thrusting arc and 1 day of coasting arc. The optical navigation measurements are acquired during the coasting arc

The visible objects have been determined according to their apparent magnitude. During the deep-space cruise, the asteroids never reach a sufficient brightness to be seen by the CubeSat optical sensor, which is assumed to have a limit magnitude of 6. On the other hand, the major bodies like planets in the Solar System can be seen by M-ARGO. The apparent magnitude model used for major bodies in the Solar System is [37]:

$$ V = V (1, 0) + 5 {\log}_{10} (\rho r_{p}) + m $$
(37)

where V is the apparent magnitude of a planet, V (1,0) is the apparent magnitude of the planet at 1 AU from the Sun and at 0 phase angle (also called planet absolute magnitude), ρ is the planet distance with respect to the observer, rp is the planet distance with respect to the Sun, and m the phase law, which is function of the phase angle α. The absolute magnitude and phase law of the planets are shown in Table 4 [37].

Table 4 Planets absolute magnitude and phase law (α in degrees)

Performances

The simulations are executed as per the following steps.

  1. (1)

    First, the algorithm determines which planets are visible as function of the M-ARGO trajectory. This is obtained by checking the apparent magnitude of the planets and their angle to the Sun as seen from the estimated position of the spacecraft. If the apparent magnitude is lower than 6 and the angle to the Sun is greater than 30 degrees, then the planet is classified as visible. The apparent magnitude of the planets (V in Eq. 37) during the M-ARGO trajectory to 2000 SG344 is shown in Fig. 6a. Note that when the planet violates the Sun angle constraint (30 deg) the curve of the apparent magnitude is not defined (see Fig. 6b). This is always the case for Mercury, whose angle to the Sun is always lower than 30 deg as seen by M-ARGO. The Earth is not visible in the first phase of the trajectory because M-ARGO departs from Sun–Earth L2. Saturn has been discarded from this analysis due to the large distance with respect to M-ARGO, which would determine a big lateral error considering the LOS accuracy. Thus, this simulation considers always four planets: Venus, Earth, Mars, and Jupiter, which are visible in determined windows.

    Fig. 6
    figure 6

    Planets apparent magnitude as seen by M-ARGO towards 2000 SG344: a without Sun angle constraint; b with Sun angle constraint. The horizontal dashed black line is the limit mag. of the sensor

  2. (2)

    The optimal beacons to be tracked are assessed exploiting the methodology in “Optimal Beacons Selection”. Considering the visible beacons in Fig. 6b, the geometry in terms of γ angles, inertial positions, and LOS directions are the input to the cost function J defined in “Optimal Beacons Selection”. The γ angles between the couples of beacons are shown in Fig. 7a, the figure of merit J for each couple of beacons is shown in Fig. 7b, and the resulting optimal couples of beacons to be tracked per each navigation campaign are shown in Fig. 7c. It is worth reminding that M-ARGO is tracking the optimal beacons in an asynchronous fashion. M-ARGO sticks with the same beacons for each tracking window as a design choice, in order to ease repetitiveness of operations. Moreover, it is remarkable to see that the couple Mars–Jupiter is never optimal for the problem at hand according to the figure of merit J, since Mars and Jupiter are far away with respect to M-ARGO.

    Fig. 7
    figure 7

    a Angles γ, b index J, and c optimal beacons for M-ARGO towards 2000 SG344

  3. (3)

    The line-of-sight directions to the visible planets can now be acquired. The accuracy and the settings for the acquisitions are reported in Table 3. Thus, the spacecraft points to a planet for 15 minutes and acquires the LOS with a frequency of 0.0167 Hz (1 per minute). Then, the spacecraft slews to another beacon (slewing time assumed to be 20 minutes) and acquires the LOS to that planet.

  4. (4)

    The LOS directions are given as input to the Kalman filter formulation to estimate the spacecraft state. The filter outputs in terms of position (δr) and velocity (δv) covariance bounds are shown in Fig. 8a and b.

Fig. 8
figure 8

Position and velocity estimations accuracy exploiting line-of-sight navigation during the M-ARGO cruise to 2000 SG344

Fig. 9
figure 9

Position (δx, δy, δz) and velocity (δvx, δvy, δvz) samples errors (in gray) and 3–σ covariance bounds (in black) for M-ARGO to 2000 SG344. Out of the 1000 filter runs, only 30 have been shown for simplicity

By inspection of Fig. 8a and b, it is remarkable to note that the accuracy in terms of position and velocity reaches values of 103 km and 0.1 m/s in good observation conditions (multiple visible planets approaching 90 deg of γ angles). This is also confirmed by running a Monte Carlo analysis sampling the initial dispersion of the covariance matrix and evaluating the samples covariance with respect to the filter covariance. As it can be seen from Fig. 9, the samples error of each run are always within the 3σ bounds of the filter for the position and velocity components.

The results in terms of beacons observability, relative geometry, and estimation performances for M-ARGO to the selected NEA are encouraging in view of an in-orbit autonomous navigation experiment. Multiple windows to track the optimal beacons along the whole trajectory have been identified to run the experiment and the related performances have been quantified, which are function of the considered performances of a deep-space CubeSat as M-ARGO. All in all, this confirms the availability of multiple windows to run the autonomous navigation experiment during the M-ARGO deep-space cruise and paves the way for further investigation as the M-ARGO project study progresses.

Conclusions

M-ARGO CubeSat mission plans to conduct a deep-space optical navigation experiment in order to reduce operations costs for future missions. The aim is to estimate the spacecraft state through the processing of the line-of-sight directions to a number of visible targets observed by miniaturized onboard optical sensors. The visibility of these navigation beacons is dictated by the relative geometry between the observer and the targets in terms of distances, phase angles, and Sun angles as well as the radiometric performance of the optical sensor used. In this context, an optimal beacons selection criteria has been exploited to assess the optimal couples of beacons to be tracked. Then, the M-ARGO state in terms of position and velocity covariance bounds has been estimated through an extended Kalman filter which is fed by the line-of-sight directions to the navigation beacons.

In good observation conditions, that is when the γ angles between the beacons approach 90 deg as seen from M-ARGO, the accuracy of the optical navigation method is in the order of 1000 km (3σ bounds) in deep-space considering the performance of miniaturized components onboard the 12U CubeSat M-ARGO. Our method appears promising when combined with onboard guidance calculations in view of an autonomous Guidance, Navigation, and Control system. Future steps in developing the navigation experiment during the M-ARGO project involve hardware-in-the-loop simulations with online generation and processing of images to feed the navigation algorithm.