AUTONOMOUS ONLINE NAVIGATION AND PARAMETER ESTIMATION IN THE VICINITY OF SMALL CELESTIAL BODIES

Information

  • Patent Application
  • 20240158104
  • Publication Number
    20240158104
  • Date Filed
    November 01, 2023
    7 months ago
  • Date Published
    May 16, 2024
    29 days ago
Abstract
An exemplary system and method are disclosed for a standalone vision-based system for autonomous online navigation, e.g., around an unknown target small body. The exemplary system (also referred to as AstroSLAM) is predicated on the formulation of the SLAM problem as an incrementally growing factor graph. Using the GTSAM library and the iSAM2 engine, the exemplary system and method combine sensor fusion with the prior orbital motion to provide navigation and parameter estimation that improves the performance over a baseline SLAM implementation. The exemplary system and method can incorporate orbital motion constraints into the factor graph by devising a relative dynamics factor that can link the relative pose of the spacecraft to the problem of predicting trajectories stemming from the motion of the spacecraft in the vicinity of the small body.
Description
BACKGROUND

Precise relative navigation techniques, incorporating increased levels of autonomy, will be a key enabling element of future small celestial body orbiter missions. Firstly, good navigation can inform safe and efficient path planning, control execution, and maneuvering. In near small celestial body missions, achieving fuel-efficiency during non-critical maneuvers and guaranteeing execution of safety-critical maneuvers requires precise knowledge of the relative position and orientation of the spacecraft with respect to the small celestial body. Secondly, precise navigation situates the acquired science data. Indeed, scientists and mission planners design science acquisition phases based on the expected scientific value of instrument data acquired at predetermined times, on specific orbits and with specific spacecraft orientations. Thirdly, precise navigation facilitates the detailed mapping and shape reconstruction of the target small celestial body, since good knowledge of the spacecraft relative position and orientation with respect to the target, as well as a good knowledge of the Sun light direction, are crucial in commonly used shape reconstruction solutions. Finally, good estimates of the spacecraft state enable precise characterization of the target small celestial body's spin state, mass moment values and gravitational model.


In recent years, with ever improving navigation solutions, space missions have successfully performed daring firsts in navigation around small celestial bodies. Orbiter Near-Earth Asteroid Rendezvous (NEAR) Shoemaker's controlled asteroid touchdown, Hayabusa I & II's touchdown and successful sample return, Dawn's orbiting of two celestial bodies in a single mission and the recent Origins, Spectral Interpretation, Resource Identification, Security Regolith Explorer's (OSIRIS-REx's) Touch-and-Go (TAG) operation leveraging Natural Feature Tracking (NFT) relying on high navigation solution accuracy during descent, are only few of the most notable feats accomplished thanks to autonomous navigation.


OSIRIS-REx proximity operations at the near-Earth asteroid Bennu, in particular, pushed the boundaries of what can be accomplished using primarily ground-in-the-loop navigation techniques. Like similar small celestial body missions, OSIRIS-REx's proximity to Bennu, as well as the asteroid's small size and low gravitational attraction relative to perturbing forces, drove the need for frequent and timely navigation updates in order to achieve mission objectives. These updates drove operations complexity and cadence, challenging the flight team, and heavily utilizing Deep Space Network (DSN) assets. OSIRIS-REx proximity operations navigation and TAG also relied on detailed local and global topographic maps constructed from image and LiDAR data, with ground sample distances ranging from 75 cm down to 8 mm. Building these maps required dedicated, months-long observation and data collection campaigns and a substantial amount of effort by the Altimetry Working Group on the ground, as well as multiple iterations with the navigation team. It also required downlinking tens of thousands of images and hundreds of gigabytes of LiDAR data from the spacecraft through the DSN.


It is recognized that the high-risk nature of missions in proximity of small bodies, along with a lack of autonomy in current mission procedures, severely limits the possibilities in mission design. Indeed, ground-segment operators are intimately involved in all in-situ tasks, which ultimately rely on extensive human-in-the-loop verification, as well as ground-based computations for estimation, guidance, and control. In addition, long round-trip light times and severely limited bitrate in communications render ground-in-the-loop processes extremely tedious. In tandem, the incorporation of autonomous capabilities has the potential to improve navigation performance and reduce operational complexity for future missions.


SUMMARY

An exemplary system and method are disclosed for a standalone vision-based system for autonomous online navigation, e.g., around an unknown target small body. The exemplary system (also referred to as AstroSLAM) is predicated on the formulation of the SLAM problem as an incrementally growing factor graph. Using the GTSAM library and the iSAM2 engine, the exemplary system and method combine sensor fusion with the prior orbital motion to provide navigation and parameter estimation that improves the performance over a baseline SLAM implementation. The exemplary system and method can incorporate orbital motion constraints into the factor graph by devising a relative dynamics factor that can link the relative pose of the spacecraft to the problem of predicting trajectories stemming from the motion of the spacecraft in the vicinity of the small body.


In an aspect, a non-transitory computer-readable medium is disclosed having instructions stored thereon, wherein execution of the instructions by a processor causes the processor to determine the navigation trajectory for a vehicle around a small celestial body (e.g., asteroid) by using an on-board camera of the vehicle, wherein the determination employs an inertial equations of motion of the vehicle and of the small celestial body in conjunction with solar gravitational force and the solar radiation pressure forces in a unified factor-graph data model.


In some embodiments, the instructions are configured to implement a front-end image processing system that provides the motion of the vehicle in part using tracked surface features of the image processing system.


In some embodiments, the factor-graph data model includes, at least: a center of mass and principal axis frame of the small body, wherein the principal axis frame of the small body is based on an a-priori unknown mass moment; a center of mass and body-fixed frame of the vehicle; and an inertial frame and point of the solar gravitational force and the solar radiation pressure forces associated with a barycenter of a solar system.


In some embodiments, the factor-graph data model is solved using a Bayesian estimator.


In some embodiments, the unified factor-graph data includes an encoding (e.g., RelDyn) for constraints derived from relative and dynamic kinematics per:


In another aspect, a method is disclosed of operating a spacecraft using the above-discussed computer-readable medium.


In another aspect, a system comprising a controller is disclosed configured to direct navigation of a spacecraft, the controller using the above-discussed computer-readable medium.


In some aspects, the techniques described herein relate to a computer-implemented including: receiving a plurality of images of a small celestial body by a spacecraft, wherein each image of the plurality of images is associated with a time; initializing a plurality of spacecraft states and small celestial body states by the spacecraft; based on the received plurality of images, generating a 3D map of the small celestial body including a plurality of landmarks by the spacecraft, wherein each landmark is associated with a location in the 3D map; generating a factor graph corresponding to the plurality of landmarks and the plurality of spacecraft states and small celestial body states by the spacecraft; receiving a new image by the spacecraft; based on the new image and some or all of the plurality of images, identifying one or more new landmarks in the 3D map and a changed location for at least one of the plurality of landmarks by the spacecraft; updating the factor graph based on the one or more new landmarks and the changed location by the spacecraft; and solving a navigation problem based on the factor graph by the spacecraft to generate relative orientations of the spacecraft and the small celestial body, relative positions of the spacecraft and the small celestial body, and relative velocities of the relative positions of the spacecraft and the small celestial body; performing path planning for the spacecraft by the spacecraft using some or all of the relative orientations of the spacecraft and the small celestial body, the relative positions of the spacecraft and the small celestial body, the relative velocities of the relative positions of the spacecraft and the small celestial bod, and the 3D map; and causing the spacecraft to travel based on the path planning by the spacecraft.


In some aspects, the techniques described herein relate to a computer-implemented method, further including: receiving visual odometry constraints and relative kinematic and dynamical constraints; and solving the navigation problem based on the factor graph and the received visual odometric constraints and the relative kinematic and dynamical constraints.


In some aspects, the techniques described herein relate to a computer-implemented method, wherein the dynamical constraints include the RelDyn factors.


In some aspects, the techniques described herein relate to a computer-implemented, further including receiving prior information about the small celestial object and initializing the plurality of small celestial body states based on the prior information.


In some aspects, the techniques described herein relate to a computer-implemented method, wherein the prior information includes a spin state estimate.


In some aspects, the techniques described herein relate to a computer-implemented method, further including solving the navigation problem based on the factor graph by the spacecraft to generate an estimate of a center-of-mass position of the small celestial body.


In some aspects, the techniques described herein relate to a computer-implemented method, wherein the small celestial body includes an asteroid or a comet.


In some aspects, the techniques described herein relate to a spacecraft including: at least one computing device; and a computer-readable medium with computer-executable instructions stored thereon that when executed by the at least one computing device cause the at least one computing device to: receive a plurality of images of a small celestial body, wherein each image of the plurality of images is associated with a time; initialize a plurality of spacecraft states and small celestial body states; based on the received plurality of images, generate a 3D map of the small celestial body including a plurality of landmarks, wherein each landmark is associated with a location in the 3D map; generate a factor graph corresponding to the plurality of landmarks and the plurality of spacecraft states and small celestial body states; receive a new image; based on the new image and some or all of the plurality of images, identify one or more new landmarks in the 3D map and a changed location for at least one of the plurality of landmarks; update the factor graph based on the one or more new landmarks and the changed location; and solve a navigation problem based on the factor graph to generate relative orientations of the spacecraft and the small celestial body, relative positions of the spacecraft and the small celestial body, and relative velocities of the relative positions of the spacecraft and the small celestial body; perform path planning for the spacecraft using some or all of the relative orientations of the spacecraft and the small celestial body, the relative positions of the spacecraft and the small celestial body, the relative velocities of the relative positions of the spacecraft and the small celestial bod, and the 3D map; and cause the spacecraft to travel based on the path planning.


In some aspects, the techniques described herein relate to a spacecraft, further including computer-executable instructions that when executed by the at least one computing device cause the at least one computing device to: receive visual odometry constraints and relative kinematic and dynamical constraints; and solve the navigation problem based on the factor graph and the received visual odometric constraints and the relative kinematic and dynamical constraints.


In some aspects, the techniques described herein relate to a spacecraft, wherein the dynamical constraints include the RelDyn factors.


In some aspects, the techniques described herein relate to a spacecraft, further including receiving prior information about the small celestial object and initializing the plurality of small celestial body states based on the prior information.


In some aspects, the techniques described herein relate to a spacecraft, wherein the prior information includes a spin state estimate.


In some aspects, the techniques described herein relate to a spacecraft, further including solving the navigation problem based on the factor graph by the spacecraft to generate an estimate of a center-of-mass position of the small celestial body.


In some aspects, the techniques described herein relate to a spacecraft, wherein the small celestial body includes an asteroid or a comet.


In some aspects, the techniques described herein relate to a non-transitory computer-readable medium with computer-executable instructions stored thereon that when executed by the at least one computing device cause the at least one computing device to: receive a plurality of images of a small celestial body, wherein each image of the plurality of images is associated with a time; initialize a plurality of spacecraft states of a spacecraft and small celestial body states; based on the received plurality of images, generate a 3D map of the small celestial body including a plurality of landmarks, wherein each landmark is associated with a location in the 3D map; generate a factor graph corresponding to the plurality of landmarks and the plurality of spacecraft states and small celestial body states; receive a new image; based on the new image and some or all of the plurality of images, identify one or more new landmarks in the 3D map and a changed location for at least one of the plurality of landmarks; update the factor graph based on the one or more new landmarks and the changed location; and solve a navigation problem based on the factor graph to generate relative orientations of the spacecraft and the small celestial body, relative positions of the spacecraft and the small celestial body, and relative velocities of the relative positions of the spacecraft and the small celestial body; perform path planning for the spacecraft using some or all of the relative orientations of the spacecraft and the small celestial body, the relative positions of the spacecraft and the small celestial body, the relative velocities of the relative positions of the spacecraft and the small celestial bod, and the 3D map; and cause the spacecraft to travel based on the path planning.


In some aspects, the techniques described herein relate to a computer-readable medium, further including computer-executable instructions that when executed by the at least one computing device cause the at least one computing device to: receive visual odometry constraints and relative kinematic and dynamical constraints; and solve the navigation problem based on the factor graph and the received visual odometric constraints and the relative kinematic and dynamical constraints.


In some aspects, the techniques described herein relate to a computer-readable medium, wherein the dynamical constraints include the RelDyn factors.


In some aspects, the techniques described herein relate to a computer-readable medium, further including receiving prior information about the small celestial object and initializing the plurality of small celestial body states based on the prior information.


In some aspects, the techniques described herein relate to a computer-readable medium, wherein the prior information includes a spin state estimate.


In some aspects, the techniques described herein relate to a computer-readable medium, further including solving the navigation problem based on the factor graph by the spacecraft to generate an estimate of a center-of-mass position of the small celestial body.





BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the embodiments, there are shown in the drawings example constructions of the embodiments; however, the embodiments are not limited to the specific methods and instrumentalities disclosed. In the drawings:



FIG. 1 is an illustration of an exemplary environment for navigating a spacecraft in the presence of a small celestial body;



FIG. 2 is an illustration of relative navigation problems frame definitions and vector quantities;



FIG. 3 is an illustration of a factor graph encoding the SLAM problems and the RelDyn factors;



FIG. 4 is an illustration of a full AtsroSLAM factor graph;



FIG. 5 is an illustration of step of the SLAM problem;



FIG. 6 is an illustration of a front-end pipeline factor graph following the initialization of the SLAM problem;



FIG. 7 is an illustration of an operational flow of an implementation of a method for performing path planning for a spacecraft in the presence of a small celestial body; and



FIG. 8 shows an exemplary computing environment in which example embodiments and aspects may be implemented.





DETAILED DESCRIPTION

Some references, which may include various patents, patent applications, and publications, are cited in a reference list and discussed in the disclosure provided herein. The citation and/or discussion of such references is provided merely to clarify the description of the present disclosure and is not an admission that any such reference is “prior art” to any aspects of the present disclosure described herein. In terms of notation, “[n]” corresponds to the nth reference in the list. All references cited and discussed in this specification are incorporated herein by reference in their entireties and to the same extent as if each reference was individually incorporated by reference.



FIG. 1 is an illustration of an exemplary environment 100 for navigating a spacecraft 102 in the presence of a small celestial body 101. As described above, good navigation or path planning is extremely important for a spacecraft 102 especially when the spacecraft is near a small celestial body 102. Example small celestial bodies 102 (as referred to herein as objects or asteroids) may include asteroids and comets, for example.


To facilitate the path planning, the spacecraft may include a navigation engine 120 and one or more sensors 110. The navigation engine 120 may be implemented using one or more general purpose computing devices such as the computing device 800 illustrated with respect to FIG. 8. Example sensors 110 may include one or more cameras or image generating sensors. These sensors 110 may generate images of the small celestial object 101 and may include monocular visible spectrum images. Other types of images may be supported. Each image may be associated with time or timestamp that reflects when the image was captured by the sensor 110.


To facility path planning, a front-end component of the navigation engine 120 may process images of the small celestial body 101 that are received from the sensors 110. The front-end component may process images to detect features in the images. These features are referred to herein as landmarks. These landmarks on the small celestial body 101 may then be matched between subsequent images as new images are received.


The front-end component of the navigation engine 120 may further initialize one or more states for the small celestial object 101 and the spacecraft 102. These states may include spin-state estimates, velocity estimates, and location estimates. Initially, the front-end component of the navigation engine 120 may initialize the states using prior information known about the small celestial body 101. This prior information may be measurements received from one or more ground-based systems, for example.


The front-end component of the navigation engine 120 may generate a 3D map of the landmarks detected in the images. The 3D map may be of the small celestial object 101 and may be a point cloud generated by triangulating the landmarks.


A back-end component of the navigation engine 120 may generate and maintain a factor graph. The factor graph may be initially generated by the back-end component based on the landmarks in the 3D map, the initialized states of the spacecraft 102, and orbital motion constraints. As will described further below, these orbital motion constraints can be incorporated into the factor graph by devising a relative dynamics factor (“RelDyn”) that can link the relative pose of the spacecraft 102 to the problem of predicting trajectories stemming from the motion of the spacecraft 102 in the vicinity of the small celestial body 101.


The back-end component of the navigation engine 120 receives a new image of the small celestial body 101 and based on the locations of the landmarks in the received image and the factor graph, performs an optimization to generate a solution that includes estimates of past relative positions of the positions of the small celestial body 101 and the spacecraft 102, past relative orientations of the small celestial body 101 and the spacecraft 102, and past relative velocities of the small celestial body 101 and the spacecraft 102. This data, and the updated 3D map, may be used to provide path planning for the spacecraft 101 with respect to the small celestial body 101. The details of the proposed system and methods are described further below.


1. Problem Statement

In this section, are discussed the relevant theory and the problem statement pertaining to the asteroid relative navigation problem incorporating monocular SLAM, an appropriate motion prior and sensor fusion.


Firstly, the notations and conventions used throughout the disclosure are summarized in Section 1.1. Secondly, the defined notation is contextualized within the problem of a spacecraft navigating around an asteroid in Section 1.2.


1.1. Notation

Given the affine space (custom-character3, custom-character3), the translation vector between any two points X, Y∈custom-character3 is denoted rYXcustom-character(Y−X)∈custom-character3, read “from X to Y”. Any frame custom-character is a tuple (X, {{right arrow over (x)}i}i=13) where the point X∈custom-character3 denotes the origin of the frame and the set of unit directions {{right arrow over (x)}i}i=13, where {right arrow over (x)}icustom-character2, i=1, . . . , 3, constitutes the right-handed orthonormal basis of the frame. The expression of any vector v∈custom-character3 in a given frame custom-character=(*, {{right arrow over (x)}i}i=13) is denoted by vcustom-charactercustom-character[v·{right arrow over (x)}1 v·{right arrow over (x)}2 v·{right arrow over (x)}3]Tcustom-character3. For any two frames custom-character and custom-character, we denote the rotation custom-character[{right arrow over (y)}1x {right arrow over (y)}2x {right arrow over (y)}3x]T∈SO(3) such that vcustom-character=custom-character for any v∈custom-character3. This notation is consistent with the composition rule custom-character=custom-character for any three frames custom-character. Given a coordinate vector vcustom-charactercustom-character3 expressed in frame custom-character, we denote the corresponding homogeneous coordinates vcustom-charactercustom-character[(vcustom-character)T 1]Tcustom-character3. For any two frames custom-character=(X, {{right arrow over (x)}i}i=13) and y=(Y, {{right arrow over (y)}i}i=13), we denote the homogeneous transformation custom-character∈SE(3) by:











=
Δ


[





r
YX
ϰ






0

1
×
3




1



]


,




(
1
)







such that rPXcustom-character=custom-character for any point P∈custom-character. This notation is consistent with the composition rule Tcustom-charactercustom-character=custom-character for any three frames custom-character


Given a Lie algebra custom-character of dimension n associated (at the identity) to a matrix Lie group custom-character, and given a set of basis vectors {Ei}i=1n of the matrix Lie algebra custom-character(n), we denote the hat operator [⋅]{circumflex over ( )}:custom-characterncustom-character which maps any n-vector x=[x1 . . . xn]Tcustom-charactern to an element [x]{circumflex over ( )}∈custom-character, by [x]{circumflex over ( )}=Σi=1n xiEi. We denote its inverse vee operator [⋅]:custom-charactercustom-charactern, which extracts the coordinates x=[x1 . . . xn]T from [x]{circumflex over ( )}∈custom-character(n) in terms of Ei. We denote the exponential map exp: custom-charactercustom-character, mapping an element [x]{circumflex over ( )}∈custom-character g to the element exp([x]{circumflex over ( )})∈custom-character in the neighborhood of the identity element. Specifically, for the SO(3) group of rotations, the exponential map at the identity exp: so(3)→SO(3) which associates any tangent vector (skew-symmetric matrix) [x]{circumflex over ( )}∈so(3) to a 3D rotation as the matrix exponential, is given by










exp

(


[
x
]

^

)

=



I
3

+



[
x
]

^

+

1
2






(


[
x
]

^

)

2


+


1
6




(


[
x
]

^

)

3


+



=


I
3

+





sin



x





x



[
x
]

^

+


1
-

cos



x







x


2








(


[
x
]

^

)

2

.








(
2
)







Finally, we denote the logarithm map (at the identity) by log: custom-charactercustom-character, which maps an element in the neighborhood of the identity element of group custom-character to an element in the associated Lie algebra custom-character. In the case when custom-character=SO(3) and custom-character=so(3), the logarithm map log: SO(3)→so(3) is the inverse of the operation given in (2), and is a bijective mapping as long as ∥x∥<π[Chirikjian (2011)].


The following facts are useful in deriving first-order approximations for the effect of noise on stochastic differential equations, as well as for deriving partial derivatives of functions of elements of SO(3).


Fact 1 Given the hat operator [⋅]{circumflex over ( )}:custom-character3→so(3), for any R∈SO(3), and coordinate vector x∈custom-character3,






R[x]{circumflex over ( )}R
T
=[Rx]{circumflex over ( )},  1.






R[x]{circumflex over ( )}=[Rx]{circumflex over ( )}R,  2.





[x]{circumflex over ( )}R=R[RTx]{circumflex over ( )}.  3.


Note that Fact 1 is a consequence of the rotational invariance of the cross product in custom-character3:


Fact 2 Given the exponential map exp: so(3)→SO(3), for any R∈SO(3) and any coordinate vector x∈custom-character3,






R exp([x]{circumflex over ( )})RT=exp([Rx]{circumflex over ( )}),  1.






R exp([x]{circumflex over ( )})=exp([Rx]{circumflex over ( )})R,  2.





exp([x]{circumflex over ( )})R=R exp([RTx]{circumflex over ( )}).  3.


Note that Fact 2 is a direct consequence of Fact 1 applied to the matrix exponential expansion in (2).


Fact 3 Given the exponential map exp: so(3)→SO(3), for any vector x∈custom-character3 having sufficiently small length, it follows that:





exp([x]{circumflex over ( )})≃I3+[x]{circumflex over ( )}.  (3)


Note that Fact 3 is a consequence of dropping higher order terms in the matrix exponential expansion of equation (2).


Fact 4 Let T: SO(3)×custom-character3→SE(3) be function that produces the pose corresponding to a rotation matrix and a translation vector pair, such that:








T

(

R
,
r

)


=
Δ


[



R


r




0


1



]


,

R


SO

(
3
)


,

r




3

.






Define the perturbation vectors δϕ, δr∈custom-character3. We may write the perturbed pose







T

(


R



exp
[

δ

ϕ

]

^


,

r
+

δ

r



)

=


[




R

(


exp
[

δ

ϕ

]

^

)




r
+

δ

r






0


1



]

.





Multiplying the inverse of the pose T(R, r) on the left, we obtain the perturbation pose:











δ

T

=




(

T

(

R
,
r

)

)


-
1




T

(


R



exp
[

δ

ϕ

]

^


,

r
+

δ

r



)








=



[




R






-

R




r





0


1



]

[




R


exp

(


[

δ

ϕ

]

^

)





r
+

δ

r






0


1



]







=


[




exp

(


[

δ

ϕ

]

^

)





R



δ

r





0


1



]





.




Taking the logarithm map of the SE(3) followed by the vee operator, we obtain the corresponding pose perturbation vector:








δ

P

=



log

(

δ

T

)



=

[




δ

ϕ







R



δ

r




]



,




thus yielding the Jacobian:








J
R

=

[




I
3






0

3
×
3





]


,


and



J
r


=


[




0

3
×
3







R





]

.






It then follows that:







[




δ

ϕ






δ

r




]

=


[




I
3



0




0


R



]


δ


p
.






1.2 Problem Definitions

Let A, S, O, W∈custom-character3 and assume that the point A corresponds to the center of mass of the small celestial body, S corresponds to the center of mass of the spacecraft, O corresponds to the center-of-mass of the Sun, and W corresponds to an inertial point in space, e.g., non-accelerating, constant velocity. Initially, we distinguish three frames of interest: the inertial frame custom-character(W, {{right arrow over (n)}i}i=13), and the spacecraft body-fixed frame custom-character(S, {{right arrow over (s)}i}i=13), and an arbitrarily chosen small body-fixed frame custom-character(G, {{right arrow over (g)}i}i=13). Note that since frame custom-character is fixed with respect to small celestial body, and assuming that the small body is a rigid body, the position of the small celestial body's center of mass point A with respect to the point G in frame custom-character coordinates, denoted custom-character, is fixed.


Given an inertial point W, the inertial absolute position vector of the observing spacecraft is denoted rSW and that of the small celestial body rAW. The relative position vector of the observing spacecraft is then given as rSA=rSW−rAW. The inertial relative velocity vector of the observing spacecraft is denoted by







v
SA


=








d
dt





(

r
SA

)

.






In the same fashion, the inertial relative acceleration is denoted







a
SA


=








d
dt





(

v
SA

)

.






To later exploit knowledge of the relative orbital pose, we decompose the relative position vector rSA using the intermediary point G fixed in the g-frame coordinates, such that rSA=rSG+rGA=rSG−rAG. Expressing in the body-fixed g-frame coordinates and writing as a function of the relative position vector, we get the relative pose translation vector:






custom-character+custom-character+custom-character  (4)


Any reference hereafter to the relative pose of the spacecraft 102, for a given spacecraft frame custom-character=(S, {{right arrow over (s)}}i=13), designates the transformation:










=

[








0

1
×
3




1



]


,




(
5
)







which encodes the relative rotation custom-character[custom-character]T∈SO(3) of the spacecraft 102 with respect to the custom-character frame and the coordinates custom-character=custom-character[rsg·{right arrow over (g)}i rsg·{right arrow over (g)}2 rsg·{right arrow over (g)}3]∈custom-character3 of the spacecraft position vector relative to the point G as expressed in the custom-character frame. FIG. 2 provides an illustration 200 of the problem's relevant points, vectors, and frames, as defined above.


1.3. Scene Mapping Considerations

Let t0 be the initial time, let t≥t0, let (tk)k=0n⊂[t0, t] be the sequence of sensor acquisition times, and let custom-character(tk) describe the pose of the spacecraft 102 as expressed in the custom-character frame at each time index 0≤k≤n. Then, the sequence (custom-character)k=0n∈Πk=1nSE(3) describes the discrete trajectory of the relative pose of the spacecraft 102. We define the camera sensor frame custom-character=(S, {{right arrow over (c)}i}i=13), with fixed pose custom-character with respect to the spacecraft frame custom-character, and obtain the sequence (custom-character)k=1n of all camera poses, also known as frames, where the relative camera pose is custom-character=custom-character=custom-character, (k=0, . . . , n).


A landmark L∈custom-character3 is defined as a notable 3D point in the scene, which is potentially triangulated during SLAM using camera observations. We denote by Ψk={Licustom-character3, i=1, . . . , mk} the set of all landmarks accumulated up until time index k=0, . . . , n, also called the map at time index k. To each landmark L∈Ψk corresponds a position vector rLGcustom-character3, whose coordinates in the custom-character frame, denoted custom-character, are fixed since the small body is presumed to be a rigid body. Let rk be the total number of image feature points detected in the camera image captured at time tk, k=0, . . . , n. We collect all detected feature points in the set γk={Picustom-character2, i=1, . . . , rk} where, to each Pi∈γk are associated the ideal 2D image coordinates yikcustom-character2.


Assume a point Pi∈γk corresponds to the image projection of a scene landmark Lj∈Ψk, as captured at time index k. The 2D image coordinates yik relate to the 3D position coordinates custom-character through the pinhole camera model relationship, given by:











[




λ


y
ik






λ



]

=

K


,




(
6
)







where λ>0 is a scaling factor, and where:






K

=



[




f
x



0



c
x



0




0



f
y




c
y



0




0


0


1


0



]





is the camera intrinsic matrix, with fx, fy, cx, cy scalars corresponding to the known camera focal lengths and optical center offsets along the two image dimensions. The real measured feature point coordinates yikm are then defined such that:






y
ik
m
=y
iky,  (7)


where νy˜custom-character(0, Σym) corresponds to the feature point measurement noise, with associated 2×2 covariance matrix Σym. We collect all real camera frame-landmark observations up until time index k=0, . . . , n in the set custom-character{yijmcustom-character2: i=1, . . . , rj=0, . . . , k}. We also define custom-character}custom-character∈SE(3): i=0, . . . , k} as the set of all possible spacecraft relative poses discretized at times (tk)k=0n, and define custom-characterkcustom-character{custom-charactercustom-character3: L∈Ψk} as the set of all landmark coordinates mapped up until time index k=0, . . . , n.


By exploiting the multi-view geometry constraints derived by capturing observations custom-characterk of the landmarks Ψk at poses custom-characterk, as well as the constraints derived from the intrinsic motion of the spacecraft 102 around the small body 101 and other sensor measurements, further detailed in Section 3, we wish to find a solution to the trajectory custom-characterk along with the set of mapped landmark coordinates custom-characterk, on-the-fly, for k=0, . . . , n in a sequential and incremental manner. The method employed to solve this problem is described in Section 4. First, we provide a brief primer on the Bayesian estimation, the SLAM problem formulated in the Bayesian framework, and the relevance of representing the structure of the problem using a factor graph.


2. Estimating Relative Motion Using IMU Measurements

We now further explain the improvements of our work compared to prior art methods, specifically: (a) why the IMU preintegration scheme used in prior works is inadequate and why relative dynamics need to be considered; and (b) why the kinematic rotation factor used in prior art methods may be modified to account for non-inertial and large motion of the target center-of-mass point.


2.1. Using IMU Accelerometer Measurements to Perform Dead-Reckoning in the Presence of Unknown Gravity Vector

In the scenario described herein: (1) in terms of gravitational forces, the observing spacecraft 102 is affected by the combined pull of the target small celestial body 101 and of the Sun, while the small celestial body 101 is only affected by the gravitational acceleration of the Sun. This results in a net non-negligible relative gravitational interaction between the “chief” (the small celestial body 101) and the “deputy” (the observer S/C), which, in turn, affects the relative motion of the observer spacecraft. However, an IMU accelerometer is insensitive to gravitational forces. The double integrator dynamics do not hold over extended arcs of time, and a full non-linear treatment provides higher precision; (2) there are persistent external non-gravitational forces acting on the observer spacecraft 102 which are small in magnitude, and consequently may not be detectable given the signal-to-noise ratio (SNR) of an IMU measurement signal, but which may still affect the long-term trajectory of the observing spacecraft over an inspection arc. The IMU measurements required for the IMU factors incorporated in prior art methods may not capture the accumulated effect of such small-scale non-gravitational forces; (3) unlike spacecraft inspection arcs, the duration of small celestial body inspection arcs is typically extended—that is, their length is a non-negligible portion of the period of revolution of the spacecraft around the small celestial body. Assuming that the center-of-mass of the target body only moves negligibly between time instances, or that its motion is inertial throughout the inspection arc, may induce considerable relative navigation errors during estimation.


When we analyze the SPHERES-VERTIGO platform-inspired problem formulation, we note that the inspector spacecraft (deputy) and the ISS habitat module in which the experiment is run (chief) are both subjected to the same Earth gravitational acceleration which maintains them in orbit, without any other gravitational interaction between the two. The ISS frame, being nadir-pointing, may be assimilated to the Hill frame, and consequently the relative motion of the observer spacecraft with respect to the Hill frame is fundamentally described by the Clohessey-Wiltshire (CW) equations of motion. We note that the target spacecraft (another deputy) has a similar relationship to the ISS frame (chief), but its coordinate is coincident with that of the Hill frame and assumed to be inertial. In this specific context, given the very small difference in Earth-centered inertial position between the chief (ISS module) and the deputy (observer) spacecraft, and the short time-frame of the considered experiment, the Hill frame may be considered as quasi-inertial and the motion of the observer may indeed be approximated by the solution to double-integrator dynamics. Only in this limited scenario, the simple accelerometer model where gravity is set to zero and acceleration measurements are simulated as thruster-specific forces, seems valid.


In the latter case, the accelerometer measurements may be used to perform “dead-reckoning,” that is, to compute the change in the inertial velocity and the inertial position of the observer spacecraft with respect to the quasi-inertial world frame due to the influence of external accelerations, such as the action of thruster firing. Such dead-reckoning may be performed using a pre-integration factor, which attempts to encode the residual between the current state estimate and the state obtained by preintegration of these accelerometer measurements starting from the previous navigational state.


However, as is generally known that an IMU's accelerometer does not measure pure accelerations, but rather externally applied non-gravitational specific forces, that is, inertial accelerations sans gravity-induced accelerations.


The IMU measurements do not provide any information about the direction or the magnitude of the gravity vector in freefall (unforced orbital) motion. We can intuit this fact by considering a simple model for the measurement custom-character of an accelerometer centered at point M and with frame custom-character, given as:






custom-character=custom-charactercustom-charactercustom-character)+ν,  (8)


where O is an inertial point, custom-character is an inertial frame, c is a measurement sensitivity constant, custom-character is the rotation between frames custom-character and custom-character, and ν is a Gaussian noise term. It follows that, in an unforced (freefall) motion, while assuming the IMU frame custom-character is coincident with the spacecraft body frame custom-character, only gravity affects the IMU, i.e. custom-character=custom-character, and thus the accelerometer measurement over time is null on average. In other words, the IMU accelerometer is unusable for the purpose of generating estimates of inertial velocity and change in inertial position by dead-reckoning in the presence of unknown gravitational accelerations. To obtain an accurate estimate of inertial motion, custom-character needs to be known.


2.2. Using IMU Accelerometer Measurements to Perform Dead-Reckoning of Motion Owing to Small-Scale Persistent Perturbing Forces

Admittedly, accelerometer measurements may be used in our work to obtain estimates of motion owing only to non-gravitational external forces being applied on the S/C, such as actuated thruster profiles. However, such forces need to be strong enough to generate a large enough signal-to-noise ratio to be useful. One common external force which does not meet the latter requirement, but whose effect on the trajectory is non-negligible over the length of an inspection arc, is solar radiation pressure (SRP). Its magnitude is typically orders of magnitude smaller than the gravitational effect, and it does not meet the criterion of having enough SNR to be detectable by the accelerometer.


In light of these caveats, incorporating IMU factors to process such IMU measurements, given that we need to augment the state with the additional IMU bias states and incur additional computation time, may not be justifiable. Therefore, an admissible “odometric” factor for our scenario would then have to rely on explicitly modeling and tracking the gravity vector, to ascertain the true relative motion between the observer spacecraft and the target small celestial body. Moreover, since the center-of-mass of the small celestial body may not be considered as inertial owing to the gravitational pull by the Sun over the inspection arc, and its inertial velocity may not be known with good precision during proximity operations, it is preferable to model the relative dynamics of the spacecraft-small celestial body pair, by avoiding the modeling of the inertial dynamics of both spacecraft and target small celestial body separately.


3. Relative Kinematic and Orbital Odometric Factors

In this section, we detail the theoretical approach for devising an adaptation of Setterfield's kinematic rotation factor as well as our new RelDyn factor, which enforces a strong odometric constraint, namely, the equations governing the motion of the spacecraft relative to the small celestial body, and which incorporates fusion of other sensor measurements. We also discuss the relevant sources of noise, and the propagated system of equations.


3.1. Factor Graph Encoding and ISAM2 Algorithm

In modern renditions of SLAM, the problem stated in Section 1.2 is formulated using a probabilistic inference framework, predicated on Bayesian estimation, which we evoke for our solution in this section. The use of the factor graph formulation for modeling the small body navigation problem is motivated by the fact that the typical Bayesian estimation method used to solve the SLAM estimation problem is amenable to a graph representation due to the sparsity in the structure of the cost. Factor graphs are un-directed bi-partite probabilistic graphical models constituted of factor nodes and variable nodes, with edges connecting variable-factor pairs. The structure captured by the edges and nodes of the factor graph encodes the structure of the estimation problem's posterior probability density function, by exploiting the fact that the latter can be factorized as a product of many functions, each depending on a subset of the variables of the problem. By exploiting sparsity in the structure of the joint density function, the factor graph formulation can render very large estimation problems tractable in terms of computation. Factor functions can be derived and emplaced in the factor graph based on the problem-specific constraints which we wish to include.


Given a constructed factor graph and a specific variable ordering, variable elimination is performed, transforming the factor graph into a chordal Bayes net. We note that, in theory, the chordal Bayes net may then be written as an equivalent square root information matrix, which may then be solved using algebra (back-substitution) when the factors are linear, and by Gauss-Newton iteration when the factors are non-linear. The procedure creates the resulting Gauss-Newton iteration directly from the factor graph and then attempts to solve for updated values of the variable set.


However, in more recent and efficient renditions of factor graph solvers, Bayes trees are used to store internally the structure of the problem, while the factor graph is used principally as an intermediary for modeling. A Bayes tree is a type of directed junction tree in which the nodes store the cliques of the chordal Bayes net it represents and the edges are the separator set of variables which separate the cliques.


In iSAM2, specifically, after a first step variable elimination step is performed on the initial factor graph, a Bayes tree is constructed from the chordal Bayes net and stored for the next time step, contrary to the classical approach of storing the factor graph itself for the next stage. When a new subgraph relating to a set of new variables and measurements is available for insertion, iSAM2 updates the Bayes tree by (1) converting the part of the Bayes tree relating to this new subgraph into a factor graph, (2) appending the new factor subgraph—usually at the top of the tree, i.e. affecting the most recent cliques—then (3) eliminating the factor subgraph to produce a new Bayes net, and (4) reassesses the affected cliques, (5) updates the appropriate variables. iSAM2 updates variables involved in non-linear factors by performing a non-linear optimization step at a current linearization point. To select which variables undergo optimization update, iSAM2 first marks all variables in a subset of the graph variables—that is, the ones being added to the graph—which clear the “wildfire” threshold to update, after which a new linearization point is computed and subsequent all cliques which involve the updated variable get marked for update as well.


These points of the procedure are important in that they dictate the effect on the iSAM2 runtime and complexity when we insert variables which may render the graph fully connected, greatly affecting the size of the cliques marked for update and optimization. We further discuss these in Section 4.1. Next, we devise the factor which serves as a motion constraint in the small body circumnavigation problem.


3.2. The Relative Kinematic Factor Formulation

A kinematic rotation factor is incorporated it in the problem factor graph. Unlike the kinematic rotation factors, however, we do not assume that the target's (i.e., the body 101) center-of-mass point A is inertial or that the motion of the target's center-of-mass between two successive time indices is negligible. Therefore, for any two time indices i, j, i≠j, rAjAi≠0, and we can write:






r
S

j

S

i

=r
S

j

G

j

+r
G

j

A

j

+r
A

j

A

i

+r
A

i

G

i

+r
G

i

S

i
,  (9)


We re-write the left hand side of equation (9) by transiting through points Aj and Ai in the vector chain, such that:






r
S

j

S

i

=r
S

j

A

j

+r
A

j

A

i

+r
A

i

S

i
,  (10)


We replace equation (10) into the equation (9), cancel out terms, and manipulate to obtain the kinematic relationship, stated as:






r
S

i

A

j

−r
S

i

A

i

=r
S

j

G

j

+r
G

j

A

j

+r
A

i

G

i

+r
G

i

S

i
.  (11)


We note that in lieu of a inertial position vectors rSiW with respect to an inertial world frame origin W used is other works, we have the relative vector rSiAi. While acknowledging that the center-of-mass vector rAG is fixed when expressed in the custom-character-frame coordinates, such that








r


A
i



G
i



𝒢
i


=


r


A
j



G
j



𝒢
j


=

r
AG
𝒢



,




and expressing all vectors in the inertial frame, we get the kinematic relationship:










-

r


S
i



A
i


𝒥


=




(

-


)


+



R


𝒥𝒮
i



R


𝒮
i



𝒢
i





(


r
AG
𝒢

-


)

.






(
12
)







Further assuming that we have access to a filtered estimate custom-character of the inertial attitude custom-character=custom-characterexp([νR]{circumflex over ( )}), νR,i˜custom-character(0, τR) from the spacecraft's inertial star tracker at any desired time, we may re-write equation (12) as:










-

r


S
i



A
i


𝒥


=



exp



(


[

-

v

R
,
j



]

^

)




(

-


)


+


exp



(


[

-

v

R
,
i



]

^

)





(


r
AG
𝒢

-

r


S
i



G
i



𝒢
i



)

.







(
13
)







Using Facts 1 and 3, and manipulating equation (13), we obtain the translation residual:










ε
ij

RelKin
,
r



=
Δ




-
-


(


-


)


-



(


-


)



=




[



R
^


𝒥𝒮
j





R


𝒮
j



𝒢
j



(


r


S
j



G
j



𝒢
j


-

r
AG
𝒢


)


]


^



R
^


𝒥𝒮
j





v

R
,
j



+



[



R
^


𝒥𝒮
i





R


𝒮
i



𝒢
i



(


r
AG
𝒢

-

r


S
i



G
i



𝒢
i



)


]


^



R
^


𝒥𝒮
i






v

R
,
i


.








(
14
)







While assuming that custom-characterR,iνR,jT]=03×3, i≠j, and using the shorthand








B
i


=
Δ



[



(

-

)


]

^


,




an expression for the covariance of ϵijRelKin,r may be found by computing:






custom-characterijRelKin,rijRelKin,r)T]=BiΣRBiT+BjΣRBjT.  (15)


In parallel, we can write the rotation kinematic relationship using the rotation composition rule, given as:






custom-character=custom-character.  (16)


We rewrite the left-hand side of the equation using the intermediary custom-character frame, such that:






custom-character=custom-character.  (17)


Using an Euler on-manifold integration scheme with the simplifying assumption of piecewise constant custom-character(t)=custom-character, t∈[ti, tj), a kinematic relationship between custom-character and custom-character holds, such that:






custom-character=custom-characterexp([custom-character(tj−ti)]{circumflex over ( )}).  (18)


Substituting equation (18) into equation (17), and then substituting that result into equation (16), we obtain the kinematic relationship:





exp([custom-character(tj−ti)]{circumflex over ( )})=custom-character.  (19)


Further assuming that we have access to a filtered estimate custom-character of the inertial attitude custom-character=custom-characterexp([νR,i]{circumflex over ( )}), νR,i˜custom-character(0, ΣR) from the spacecraft's inertial star tracker, we may re-write equation (19) as:





exp([custom-character(tj−ti)]{circumflex over ( )})=custom-characterexp([νR,i]{circumflex over ( )})custom-characterexp([−νR,j]{circumflex over ( )})custom-character.


Using Fact 2, and manipulating the right-hand side of the latter equation, we obtain:






custom-characterexp([custom-character(tj−ti)]{circumflex over ( )})=exp([custom-characterνR,i]{circumflex over ( )})exp([−custom-characterνR,j]{circumflex over ( )}).


Taking the logarithm map followed by the vee operator on both sides of the equation, and then applying the Baker-Campbell-Hausdorff formula while omitting any second-order noise term, we obtain the residual:





ϵijRelKin,Rcustom-characterlog(custom-characterexp([custom-character(tj−ti)]{circumflex over ( )}))=custom-characterνR,icustom-characterνR,j.  (20)


Since (a) rotation matrices are full rank and norm preserving, (b) the star tracker measurement noise is typically isotropic, e.g. ΣRR2I3, and (c) that the star tracker measurement noises νR,jR,i are independent for i≠j, that is custom-characterR,jνR,iT]=03×3, it follows that ϵijRelKin,R˜(0,2τR).


We combine the two residuals to obtain the full relative kinematic factor:










ϵ
ij
RelKin

=


[




ϵ
ij

RelKin
,
R







ϵ
ij

RelKin
,
r





]

~


(

0
,

[




2






R




0




0





B
i







R



B
i



+


B
j







R



B
j







]


)

.






(
21
)







We incorporated this adapted factor into our factor graph formulation.


3.3. The RelDyn Factor Formulation

We derive a relative dynamics factor based on the moments of the distribution describing the dispersion of the solution realizations of a system of nonlinear stochastic differential equations, evaluated at discrete times, for the purpose of improving the performance of baseline SLAM for small celestial body imagery.


Given a sequence of spacecraft states Ξn=(xk)k=0n at discrete times (tk)k=0n, for k=1, . . . , n, we want to devise factors which relate to the odometric probability distribution p(xk,xk+1). Note that, using Bayes' rule, the joint distribution p(xk,xk+1) can be rewritten as either p(xk,xk+1)=p(xk+1|xk)p(xk) or p(xk,xk+1)=p(xk|xk+1)p(xk+1), depending on which prior, p(xk) or p(xk+1), is readily available at the time of computation. In our case, we typically know the state of the spacecraft and the distribution of the uncertainty of that state at the beginning of a segment, and therefore we pick p(x0custom-character({circumflex over (x)}00) as a known prior, where {circumflex over (x)}0 is the known state mean and Σ0 is the known state covariance. We associate the factor ϕ0prior(x0) to the prior p(x0) accordingly. Now, the RelDyn factor ϕkRelDyn can be formulated as:





ϕkRelDyn(xk,xk+1)∝p(xk+1|xk)=custom-character(0,Pk),  (22)


where Pk is a covariance matrix derived from the propagation of the moments of the distribution describing the realizations of the stochastic differential equations.


Along with projection factors, denoted ϕiproj, i=1, . . . , rk, a factor graph of the SLAM problem with motion priors can be constructed, as conceptually illustrated in the graph 300 of FIG. 3.


In light of this goal, a brief discussion of the RelDyn factor is provided throughout this section. To compute the value of the RelDyn, we need to model the equations of the relative motion induced by the relative navigation problem in the presence of gravitational attraction between the observer and target bodies.


3.4. Equations of Relative Motion

Recalling the vectors and frames od FIG. 2, we assume that the frame custom-character is inertially fixed, the frames custom-character and custom-character are rotating with associated inertial angular velocity vectors custom-character, and custom-character, and that frame custom-character is a target small celestial body-fixed frame. The relative angular velocity between the spacecraft frame custom-character and frame custom-character is custom-character=custom-charactercustom-character. The orientation of the frame custom-character relative to the frame custom-character is encoded in the rotation matrix custom-character∈SO(3), which satisfies the kinematic relationship:






custom-character=[custom-character]{circumflex over ( )}custom-character,  (23)


where custom-charactercustom-character3 is the relative angular velocity, expressed in the g frame. Rewriting (23) in terms of the frame custom-character and frame custom-character angular velocities, and using Fact 1, we obtain:






custom-character=[custom-charactercustom-character]{circumflex over ( )}custom-character=custom-character[custom-character]{circumflex over ( )}−[custom-character]{circumflex over ( )}custom-character.  (24)


We can derive the position vector of the spacecraft at point S relative to the arbitrary point G by writing:






r
SG
=r
SA
+r
AG.


Taking the time derivative in the g frame gives












d
dt




(

r
SG

)


=








d
dt




(

r
SA

)


+






d
dt




(

r
AG

)



=







d
dt




(

r
SA

)


-


ω


×


r
SA

.








Expressing in the custom-character coordinates, we get:






custom-character=custom-character−[custom-character]{circumflex over ( )}custom-character.  (25)


Finally, we derive the translational dynamics of the spacecraft relative to the small body center of mass. Our equations of motion for the relative position and relative velocity are then given as:






custom-character=custom-character  (26)






custom-character=custom-character.  (27)


It thus suffices to find an expression for custom-character.


We assume herein that the spacecraft 102 is subjected to the gravitation force of the small body 101, denoted by Fsa, the gravitation of the Sun, denoted by Fs⊙, the solar radiation pressure (SRP), denoted by FSRP, as well as the spacecraft actuation thrust force, denoted by Fs. Assuming that the spacecraft's known mass, denoted by ms, is fixed, the linear acceleration of the spacecraft with respect to the Sun's origin O, is given by aSO=1/ms(Fsa+Fs⊙+FSRP+Fs). The small body's gravitation force is obtained by computing:












F
sa

=




U

(
r
)




r





"\[RightBracketingBar]"



r
=

r
SA






(
28
)







For an appropriate gravity field potential function U(r). Assume that U(r) is parameterized using spherical harmonics. Then, when the probe 102 is relatively distant from the small body 101, the spherical term of the potential dominates, in which case the attractive force is given by Fsa=−μams/∥rSA3rSA. Consider the Sun as a point-mass central body. Then, Fs⊙=−μms/∥rSO3rSO, where rSO is the position vector of the spacecraft 102 center of mass S with respect to the Sun origin O. Assume that the solar radiation pressure is a function of its position vector with respect to the Sun, FSRP=FSRP(rSO).


In turn, we assume that the mass of the small body 101, denoted ma is fixed, and that the only force acting on the small body 101 is the Sun's gravitational force. Then, the linear acceleration of the small body center of mass with respect to the Sun's origin O, is given by aAO=1/maFa⊙, where Fa⊙=−μma/∥rAO3rAO. The relative dynamics of the spacecraft-small celestial body system are obtained computing aSA=aSO−aAO, leading to the relationship:










a
SA

=



-


μ
a





r
SA



3





r
SA


-



μ






r
SO



3




r
SO


+


1

m
s





F
SRP

(

r
SO

)


+


1

m
s




F
s


+



μ






r
AO



3





r
AO

.







(
29
)







Assume that rSO≅rAO, given the very large distance between the spacecraft-small celestial body system and the Sun, and rewrite equation (29) by making explicit in terms of the state variables and input variables of interest, yielding:










a
SA
𝒥

=



-

(



μ
a





r
SA



3


+


μ






r
AO



3



)




r
SA
𝒥


+


1

m
s





F
SRP
𝒥

(

r
AO
𝒥

)


+


1

m
s




R
𝒥𝒮




F
S
𝒮

.







(
30
)







Additionally, for the sake of readability, we hereafter define the shorthand notation Qcustom-charactercustom-character q=custom-character, wcustom-charactercustom-character rcustom-charactercustom-character, vcustom-charactercustom-character, Rcustom-charactercustom-character, scustom-charactercustom-character, dcustom-charactercustom-character, ccustom-charactercustom-character, g(d)custom-character1/mscustom-character(d), fcustom-character1/msFscustom-character, which allow us to restate the equations of motion as:











Q
.

=


Q
[
s
]

^

-


[
w
]

^
Q




,




(
31
)













q
.

=



QR



v

-



[
w
]

^

QR




r






(
32
)













v
.

=



-

(



μ
a




r


3


+


μ





d


3



)



r

+

g

(
d
)

+
Rf





(
33
)













r
.

=

v
.





(
34
)







3.5. Modeling Assumptions

We note that we may view R and s, along with f, as inputs to the dynamical system described in (31)-(34). Here we consider R={circumflex over (R)}exp([νR]{circumflex over ( )}) as the already-filtered estimate value {circumflex over (R)} of the spacecraft's orientation provided by the inertial star tracker instrument, perturbed on the right by its associated uncertainty νR, and s=ŝ+νs is the filtered and unbiased estimate value blacks of its angular velocity, provided by the rate gyro instrument, perturbed by the associated uncertainty νs. This inclusion allows us to fuse the known filtered measurements of a star tracker system and a rate gyro into the overall navigation solution. Moreover, attitude and angular rate filtered measurements may be obtained at high rate and may therefore be associated in time so to closely coincide with the moment an image is taken and processed.


By modeling the sensor dynamics we avoid having to represent the Newton-Euler dynamics of the spacecraft 102. Indeed, attitude control inputs, such as the actual actuated torques applied on the spacecraft, are often not known with precision at the instant when they are applied on the spacecraft 102, but may be estimated a-posteriori. Yet, these would be required at the moment of integrating the vehicle's Newton-Euler equations of motion if implemented on-the-fly.


Furthermore, following our assumption that the small celestial body 101 is in single-axis rotation, we set the spin state vector w0custom-characterw(t). Along with the unknown gravity parameter μa, we may view w0 as a parameter of the dynamical system.


For the purposes of the RelDyn factor modeling, we may now define the state tuple xcustom-character(Q, q, v, r)∈SO(3)×custom-character3×custom-character3×custom-character3custom-characterX, the input tuple ucustom-character(R, s, f)∈SO(3)×custom-character3×custom-character3×custom-character3custom-characterU, and the parameter tuple pcustom-character(w0a)∈custom-character3×custom-character>0custom-characterP. To be consistent with earlier representations, we note that by virtue of Fact 4, given any Q, q, we may construct the corresponding pose T=T(Q, q).


Recall that the RelDyn factor function encodes the odometric constraint by means of a likelihood or prior distribution function predicated on the state and the known accumulated observations at discrete times. Therefore, we proceed as follows: (1) first, we identify and quantify the probability distribution which relates the dispersion of the state evolving over time. We wish to be able to evaluate this distribution at a sequence of a-priori unknown discrete times along the trajectory. We conserve two moments of this distribution, as is classically done in Gaussian process procedures; (2) we propagate the first moment (the mean state) by using the non-linear equations of motion, through an on-manifold integration technique; This provides us a means to evaluate the residual of the factor by comparing the propagated state against the next state; (3) we propagate the process covariance by linearizing the model dynamics around specific points, using a piece-wise constant assumption, and then integrate the linear model in the Lie algebra of the manifold. This provides us with a discrete process covariance matrix, which we use as a weighting in the factor formulation.


3.6. Stochastic Differential Equations of Motion

We assume that the dispersion of the state at any given time is due to the accumulated effect of exogenous perturbations on the trajectory across time. Specifically, we wish to exploit the stochastic form of the equations of motion to derive the distribution of trajectories as a function of time. Furthermore, to be able to evaluate the distribution at any desired time, we require the stochastic differential equations to be in continuous form. Finally, we desire to obtain the relevant stochastic differential equations directly from the equations of motion, as further detailed below, by admitting realistic and physical perturbations through the input channels.


To this end, let the 3-dimensional white noise Gaussian process ν*(t) (where *=R, s, f), such that custom-character*(t)]=0 and custom-character*(t)ν*T(τ)]=W*δ(t−τ), where W* is the spectral density matrix of the continuous-time noise ν*. Additionally, we assume that ν* for all *=R, s, f are mutually uncorrelated.


Consider the equations of motion given in (31)-(34) and substitute in u, where for ûcustom-character({circumflex over (R)},ŝ,{circumflex over (f)})∈U, we have






u=({circumflex over (R)} exp([νR]{circumflex over ( )}),ŝ+νs,{circumflex over (f)}+νf).


To establish the governing stochastic differential equations of the system, we first define the 3-dimensional Wiener process ε*(t), (*=R, s, f), such that





ε*(t)=∫0tν*(τ)dτ,ε*(0)=0,  (35)


with the increment dε*(t)=ε*(t+dt)−ε*(t)=ν*(t) dt, satisfying custom-character*(t)]=0, custom-character[(ε*(t)−ε*(τ))(ε*(t)−ε*(τ))T]=W*|t−τ|, which when τ→t yields the relationship custom-character[dε**T]=W*dt. Note also that dε*dt=0.


Given any two states x2=(Q2, q2, v2, r2)∈X and x1=(Q1, q1, v1, r1)∈X, we define the error ΔX(x1,x2)∈Tx1X between x1 and x2 centered at x1 such that:











Δ
X

(


x
1

,

x
2


)


=




[





log

(


Q
1




Q
2


)









q
2

-

q
1








v
2

-

v
1








r
2

-

r
1





]

.





(
36
)







To obtain the stochastic differential equations resulting from this noise injection in the input, we evaluate the stochastic increment dx(t)=ΔX(x(t), x(t+dt)), we use Facts 2, 3 and 4 and we separate the equations, while dropping the time dependence for readability, yielding











d

κ

=



(


Q



dQ

)



=



(


s
^

-


Q




w
0



)


dt

+

d


ε
s





,




(
37
)












dr
=



(


Q



R
^




v

-



[

w
0

]

^
Q




R
^




r


)


dt

+


(


Q
[



R
^




v

]

^

-


[

w
0

]

^


Q
[



R
^




r

]

^




)


d


ε
R







(
38
)













dv
=



(



-

(



μ
a




r


3


+


μ





d


3



)



r

+

g

(
d
)

+

R


f
^



)


dt

-




R
^

[

f
^

]

^
d



ε
R


+

Rd


ε
f




,




(
39
)












dr
=

vdt
.





(
40
)







By decomposition of the covariances W*=L*L*−1, (*=R, s, f), and by defining the standard Wiener process ε, where custom-character[dε(t)]=0 and custom-character[dε(t)dε(t)T]=I9dt, obtain the system of stochastic differential equations (41):






dκ=f
Q(x,û,p)dt+[03×3LQs03×3]dε,






dq=f
q(x,û,p)dt+[LqR03×303×3]dε,






dv=f
v(x,û,p)dt+[LvR03×3Lvf]dε,






dr=f
r(x)dt,  (41)

    • where x=(Q, q, r, v)∈X, û=(R,ŝ,{circumflex over (f)})∈U, and p=(w0a)∈P, and
    • where:
    • LQs=I3, LvR=−{circumflex over (R)}[{circumflex over (f)}]{circumflex over ( )},Lvf={circumflex over (R)},
    • LqR=Q[{circumflex over (R)}Tv]{circumflex over ( )}−[w0]{circumflex over ( )}Q[{circumflex over (R)}Tr]{circumflex over ( )}.


      Collecting into dx=[dκT dqT dvT drT]T, and into f(x, û, p)=[fQT(x,û,p) fqT(x,û,p) fvT(x,û,p) frT(x)]T, we can rewrite (41) in succinct form as:









dx
=



f

(

x
,

u
^

,
p

)


dt

+


L

(

x
,

u
^

,
p

)


d


ε
.







(
42
)








where








L
=


[




0

3
×
3





L
Qs




0

3
×
3







L
qR




0
33




0

3
×
3







L
vR




0

3
×
3





L
vf






0

3
×
3





0

3
×
3





0

3
×
3





]

.





(
43
)







Due to the non-linearity of the considered dynamical system in equation (42), the distribution of the Itô process x(t) may require more than two moments to fully describe at any time. However, as a stepping stone to obtain a practical representation of the distribution p(x(t)|x(t0)), we are interested in computing the first two moments {circumflex over (x)}(t)=({circumflex over (Q)}(t),{circumflex over (q)}(t),{circumflex over (v)}(t),{circumflex over (r)}(t))custom-character[x(t)] and Σ(t)custom-characterX({circumflex over (x)}(t),x)ΔXT({circumflex over (x)}(t),x)] at each time t.


Naturally, we want the relative dynamics factor to be proportional to the distribution p(xk+1|xk), as shown in the beginning of the Section 3.3. Noting that the time step between t k and tk+1 is not known a-priori during the navigation segment, it is crucial to compute a process noise covariance Pk=P(tk), which appropriately scales with the time step length, using a discretization scheme. Such a treatment is similar to the prediction step of an Extended Kalman Filter with first-order approximation assumptions.


First, for the continuous case, we define the RelDyn factor residual ϵRelDyn such that:





ϵRelDyn(x(t),x(t+dt))custom-characterdx(t)−f(x(t),û(t),p)dt.


Then, the factor ϕRelDyn, as a function proportional to custom-character(0, dP(t)), where:






dP(t)=custom-character[(dx(t)−f(x(t),ū(t),p))(⋅)T],





may be simply defined as:





ϕRelDyn(x(t),x(t+dt))custom-characterexp((ϵRelDyn(x(t),x(t+dt)))TdP−1(tRelDyn(*)).


Let the partition {tk}k=0N of the time interval [t0, tf] be such that t0<t1< . . . <tk< . . . <tN=tf. Given some û(t), t∈[t0, tf], we generate the sequence of predictions {{circumflex over (x)}k}k=0N such that:












Δ
X

(



x
^


k
+
1


,


x
^

k


)

=







t
k


t

k
+
1






f
^

(



x
^

(
τ
)

,


u
^

(
τ
)

,
p

)


d

τ


,



x
^

(

t
k

)

=


x
^

k


,




(
44
)







is a valid discretization of the first-order approximation {circumflex over ({dot over (x)})}(t)≈{circumflex over (f)}({circumflex over (x)}(t),û(t),p) for all k=1, . . . , N−1, and such that:











P
k

=







t
k


t

k
+
1





L

(



x
^

(
τ
)

,


u
^

(
τ
)

,
p

)




L


(



x
^

(
τ
)

,


u
^

(
τ
)

,
p

)


dt


,


x

(

t
k

)

=

x
k


,




(
45
)







characterizes the discrete process noise over the time-span [tk, tk+1]. Then, using the definition in equation (36) and the equation (44), we define the RelDyn residual ϵkRelDyn for the discrete case, as:












ϵ
k
RelDyn

(


x
k

,

x

k
+
1



)


=



[





log

(



(


Q
k




Q

k
+
1



)





Ω
k
prop


)









q

k
+
1


-

q
k

-







t
k


t

k
+
1






f
q

(


x

(
τ
)

,


u
^

(
τ
)

,
p

)


d

τ








v

k
+
1


-

v
k

-







t
k


t

k
+
1






f
v

(


x

(
τ
)

,


u
^

(
τ
)

,
p

)


d

τ








r

k
+
1


-

r
k

-







t
k


t

k
+
1






f
r

(


x

(
τ
)

,
p

)


d

τ





]


,




(
46
)







where x(tk)=(Qk, qk, vk, rk) and where Ωkprop is defined such that, for a partition








t
k

=



s
0

<

s
1

<

<

s
n


=

t

k
+
1




,



Ω
k
prop


=




lim

n











i
=
0


n
-
1




exp

(









s
i


s

i
+
1



[


f
Q

(


x

(
τ
)

,


u
^

(
τ
)

,
p

)

]

^
d


τ

)




,




x(tk)=xk, and is dubbed the McKean-Gangolli injection method, allowing for the stochastic process on the Lie group SO(3) to be written as a product integral. With appropriate correction factors, the limit can be truncated to numerically perform on-manifold integration with minimal error accumulation stemming from the approximation, as discussed in Section 4.6 below.


The factor ϕkRelDyn for the discrete case may now be written as:





ϕkRelDyn(xk,xk+1)custom-character((ϵkRelDyn(xk,xk+1))TPk−1ϵkRelDyn(xk,xk+1)).


3.7. Smoothability of Chosen State Variables

It has been shown in that batch-style maximum a-posteriori solution to the factorization of a joint distribution over the variables to be estimated, which was discussed in Section 3, is equivalent to the solution obtained from optimal fixed-interval smoothing. Typically, the optimal smoothed state is defined as a linear combination of the state of the forward filter and the state of the backward filter at each time, with optimally chosen weights. A state is said to be smoothable if an optimal smoother provides a state estimate superior to that obtained when the final optimal filter estimate is extrapolated backwards in time. Furthermore, it has been shown that, given linear forward and backward filters, only those states which are controllable by the noise driving the system state vector are smoothable.


In this context, we evaluate the relevance of our choice of state variables and the noise input and derived stochastic equations of motion in Section 3.6 in terms of smoothability. However, since the concept of smoothability pertains to linear smoothing, direct application of the criterion to our problem is not possible. Instead, by demonstrating small-time local controllability through the noise by analysing a local linearization of the equations (31) to (33) at some ({circumflex over (x)}kk), we can assess the smoothability of our chosen state variables at that point.


Specifically, we can compute the local linearization matrices:















F
k


=





f



x





"\[RightBracketingBar]"






x
=


x
^

k







u
=


u
^

k







p
=

p
^






=


[







f
Q




κ




0


0


0








f
q




κ




0






f
q




v








f
q




r






0


0


0






f
v




r






0


0






f
r




v




0



]





x
=


x
^

k







u
=


u
^

k







p
=

p
^







,

where









f
Q




κ


=


[


Q




w
0


]

^


,



[
κ
]

^




T
Q



SO

(
3
)



,






f
q




κ


=


-


Q
[


R



v

]

^

+


[

w
0

]

^


Q
[


R



r

]

^





f
q




v







=

QR




,





f
q




r


=

-


[

w
0

]

^

QR





,






f
r




v


=

I
3


,





f
v




r


=




μ
a




r


5




(


3


rr



-




r


2



I
3



)


-



μ





d


3




I
3









(
47
)







and Lk=L({circumflex over (x)}kk,p), where L is as defined in (43).


We now apply the PBH controllability test to show that our system does have small-time local smoothability at all points of interest in the state space X.


For simplifying purposes, since both {circumflex over (Q)} and {circumflex over (R)} are full rank, we assume {circumflex over (Q)}={circumflex over (R)}=I3 without loss of generality. Specifically, we see that the matrix










f
Q




κ


=


[

w
0

]

^





is skew-symmetric and is therefore of rank 2. It follows that λ=0 is an eigenvalue of Fk. We compute the matrix [Fk−λI3,Lk], which for λ=0 takes the form







[


F
k

,

L
k


]

=


[





[


w
^

0

]

^



0


0


0


0



I
3



0






[

v
^

]

^

+


[

w
^

]

^


[

r
^

]

^






0



I
3





[

w
^

]

^





[

v
^

]

^

-


[

w
^

]

^


[

r
^

]

^






0


0




0


0


0



I
3




-


[

f
^

]

^




0



I
3





0


0



I
3



0


0


0


0



]

.





We observe by inspection that, as long as {circumflex over (v)} and ŵ0 are not null at the same time, i.e., that the spacecraft 102 has some non-null relative velocity in the small celestial body fixed frame, then the PBH controllability matrix has rank 12, and thus the system is small-time locally controllable through the noise.


Therefore, it is crucial to include appropriate and physically justified noise terms in the considered dynamics to support smoothability. Furthermore, the inclusion of such noise avoids the degeneracy of the discrete process noise Gaussian distribution, with covariance Pk, as computed in Section 3.3. This argument supports the injection of noise through the input channel in the derivation of the stochastic equations of motion in Section 3.3.


4. Algorithm and Implementation Details

We are now ready to finally state the full solution to the problem and provide the key implementation details. Equations (44) and (45) constitute constraints on the evolution of the mean system state and its associated system noise covariance between time instances tk and tk+1. We wish to enforce these constraints. Practically, at each time instance tk, k=1 . . . N, we let {tilde over (x)}k be the current best guess of {circumflex over (x)}k and {tilde over (P)}k be the current best guess of Pk. Given {tilde over (x)}k, {tilde over (x)}k+1 and û(t), t∈[tk, tk+1], we compute the residual due to equation (44), then the guess matrix {tilde over (P)}k, and finally the value of the factor ϕkRelDyn({tilde over (x)}k,{tilde over (x)}k+1). Note that the integrals in equations (46) and (45) are computed numerically using an on-manifold integration scheme, detailed later in this section. We note that the inclusion of the RelDyn factor introduces the spin state w0 and the gravity parameter μa as variables into the factor graph.


As both the prior and projection factors are developed in detail in other works (see, for example), we simply restate them here using our notation, such that:





ϕprior(x0)custom-characterexp(ΔX({circumflex over (x)}0,x0)TΣ0−1ΔX({circumflex over (x)}0,x0)),





ϕ*proj(xk,custom-characteri)custom-characterexp((yikm−yik)Tym)−1(yikm−yik)),


where each yikmcustom-characterk is obtained as per the relationship in equation (6). We incorporate these prior factors on the initial state tuple. We finally incorporate the relative kinematics factors introducing the center-of-mass position parameter vector c.


The structure of the problem may now be organically schematized and analyzed as a factor graph. We have illustrated two initial steps of the AstroSLAM factor graph 400 in FIG. 4, where the RelKin factors and their related dependencies are illustrated by the nodes 401 and 403 and their edges, and the RelDyn factors and their related dependencies are illustrated by the nodes 405 and 407.


Next, we provide the implementation details of the algorithm, while underlining the specificities of the asteroid navigation problem. We first discuss the issue of complexity growth in the graph induced by the inclusion of global parameters. Then we discuss the state and map initialization steps of the algorithm, in which we insert prior factors for initial poses and kinematic variables of both the spacecraft and small celestial body, as well as generate an initial estimate for the map Ψ1.


Finally, we discuss the overall architecture of AstroSLAM. Our processing pipeline consists of a front-end system and a back-end system predicated on the iSAM2 engine and GTSAM library, along with an initialization step and a loop closure detection step.


5.1. Considerations Regarding Complexity Growth

Since we want to estimate the navigational states and simultaneously update the center of mass position c, the spin vector w0, and the gravity parameter μa estimates on the fly, we have introduced these as variables in the factor graph, by means of the relative kinematic factor and RelDyn factor formulations. It is clear, however, that the inserted edges render the graph fully connected, since each state tuple xi, i=1, . . . , n is linked to the single parameter μa by means of the RelDyn factor ϕi−1RelDyn and the factor ϕi+1RelDyn. Due to this, the clique sizes in the Bayes tree determined at each solution step of iSAM2 would get larger as the graph grows incrementally, and the updates in the Bayes tree would involve cliques that are ever more deep in the tree. If not addressed, this issue essentially forces iSAM2 to perform expensive batch optimization at every time-step, with the size of the batch update growing at every time-step. One intuitive workaround, is to solve for the variables related to the inertial factors in an incremental fashion at every step, but only sporadically optimize the kinematic rotation factors using a batch solve step, so to avoid the repeated and expensive batch optimization. However, we cannot implement such a method for our procedure, as our relative odometry RelDyn factor also depends on the global parameter μa.


In our approach, we somewhat emulate the procedure of a fixed-lag smoother, by defining epochs i=1, . . . , m to which we associate specific global variables c(i), w0(i) and μa(i). Over the epoch, the iSAM2 optimizer performs a batch update of the variable only related to that epoch at each timestep, by virtue of the fully connected property of the graph induced by the relative kinematic factor and the RelDyn factors. At every new epoch i, we marginalize the global parameter variables c(i-1), w0(i-1), and μa(i-1) from the previous epoch, and insert a new prior factor for each of the current global parameter variables c(i), w0(i), and μa(i). When inserting relative kinematic factors or RelDyn factors during epoch i, we associate these factors to their corresponding epoch's global parameter variables ci and μa(i). A new epoch is induced at a fixed timestep interval (e.g., every 10 steps).


4.2. State Initialization

We leverage estimates from pre-encounter Earth-based measurements and approach phase sensor measurements to perform the initialization of both the spacecraft and small celestial body states. Inertial position measurements custom-character of the spacecraft 102, modelled as custom-characterr, where νr˜custom-character(03×1rm), are based on Earth-relative radiometric ranging and bearing measurements, a method of localization widely practiced in deep space mission spacecraft tracking using communication station networks, such as the DSN. Accurate ground-based navigation estimates using Earth-relative range and bearing measurements, such as uplink-downlink pulse ranging and Delta-Differenced One-Way Ranging (DDOR) are available to be used for initialization. It is important to note that our algorithm requires DSN-type measurements only during the initialization phase, to anchor the initial pose as described below.


Inertial position estimates of the small celestial body, denoted by custom-character, are predicated on orbit determination (OD) performed using Earth-based telescopic measurements. An initial relative position vector {circumflex over (r)}S0G estimate may be obtained by differencing spacecraft and small celestial body inertial position estimates. Alternatively, relative optical navigation (OpNAV) performed using pre-encounter sensor measurements, accurate in the order of several hundreds of meters for large small-bodies and tens of meters for small small-bodies, may be used to provide such an initial prior on the relative position.


To further simplify the initialization step, we assume that the small celestial body 101 is a stable single axis rotator. Thus, we align the arbitrary frame custom-character such that custom-character=w0{right arrow over (g)}3, where w0 is the magnitude of the angular velocity vector of the small celestial body 101. The unit vector custom-character is classically parameterized by the spin pole tilt angles relative to the J2000 ecliptic plane. If sufficient pre-encounter observations are available, a prior for these angles can be estimated and their associated uncertainty computed.


Typically, a prominent and salient feature on the surface is hand-picked as the prime meridian direction, thus fixing the {right arrow over (g)}1 axis. In our case, given the initial prior custom-character discussed earlier, the prime meridian {right arrow over (g)}1 may be initialized by first computing {right arrow over (g)}2 following custom-character=[custom-character]{circumflex over ( )}custom-character/∥custom-character∥, and then computing custom-character=[custom-character]{circumflex over ( )}custom-character. Consequently, Rcustom-charactercustom-character0=[custom-character] is determined. Note that, for this method to work, the spacecraft relative position at initialization time cannot be coincident with the small celestial body spin axis. In practice, an on-board star tracker system is leveraged to obtain an orientation measurement custom-character, modelled as custom-charactercustom-characterexp([νR]{circumflex over ( )}),νR˜custom-character(03×1Rm). Orientation measurements are usually known with very good accuracy and little uncertainty.


We may now establish the prior factor for relative pose custom-character by combining the information we have available at initialization. We first define the relative measurement at time k=0, using (4), Oven by










=



[








0

1
×
3




1



]

=

[





exp

(


[

v
R

]

^

)





+


v
r








0

1
×
3




1



]








=



[





r


S
0



G
0



𝒢
0







0

1
×
3




1



]

[




exp

(


[

v
R

]

^

)





v
r







0

1
×
3




1



]





,




where custom-character is the relative position vector at time k=0 obtained by differencing inertial position estimates of the spacecraft 102 and the small celestial body 101, or by means of an OpNav solution. It then follows that:










=

[




exp

(


[

ε
1

]

^

)




ε
2






0

1
×
3




1



]


,




(
48
)







where ε1R and ε2=custom-characterνr. Using the logarithm map of the SE(3) group of homogeneous transformations at the identity and the vee operator, as detailed in Section 1.1, we can write:












[

log

(
)

]



=


[




ε
1






ε
2




]

~

(


0

6
×
1


,






T
,
0

m


)



,




(
49
)







where, by first-order linear approximation, we have ΣT,0m=JRΣRmJRT+Jr(custom-characterrmJrT(custom-character), computed using Fact 4 where R∈SO(3). A prior factor ϕ0prior(custom-character) is emplaced in the graph. This factor encodes the residual between the pose custom-character∈SE(3) and the measurement custom-character, with covariance ΣT,0m.


4.3. Map Initialization

Initialization of the map is delayed until time index k=1, at which point at least two images of the target with sufficient parallax are captured. Local image features γ0 and γ1 are extracted and undergo data association, with outlier rejection, producing a set of 2D-2D correspondences. A strict outlier rejection criterion is used to obtain a subset of reliable correspondences. It is now possible to apply a typical 8-point algorithm using the inlier 2D-2D correspondences to find a guess pose transformation {circumflex over (T)}°∈SE(3) such that:









T
^


°


=



[





R
^


°





t
^


°





0


1



]


,




where {circumflex over (R)}°∈SO(3) and {circumflex over (t)}°∈custom-character3, describe the estimated change in relative orientation and relative position between the poses of the camera frame at time indices k=0 and k=1. From the frame kinematics and composition rules, and knowing that {circumflex over (R)}°=custom-character, it follows that custom-character=custom-character. We note that custom-character≈exp([−custom-characterΔt0]{circumflex over ( )}) It follows that












exp



(


Δ


t
0





]

^

)




R
^


°



.





Additionally, we know that:











t

°

=

=


λ



(


+
-

(

+


)


)


=

λ



(


exp



(


[


Δ


t
0


]

^

)



-

)





,




(
50
)







with λ>0, an unknown scaling factor.


Thus, in order to establish reliable relative pose estimates {circumflex over (T)}0 and {circumflex over (T)}1, a good prior knowledge of the small celestial body 101 inertial angular velocity is required. Additionally, the ambiguity in the scale parameter λ still remains. Typically, scale can be established using off-nadir altimeter measurements over a range of orbital configurations in a multi-arc solution, as perform by the OSIRIS-REx mission around asteroid Bennu. However, the latter solution, in its current format, is not amenable to on-the-fly autonomy, as the batch estimation process requires a compilation of data from multiple mission arcs. Furthermore, altimeter measurements have to be used at close range to the target small celestial body 101, again restricting autonomy since judiciously pre-designed maneuvers have to be executed to first obtain the necessary altimeter measurements at close range. If a good initial estimate of the angular velocity w0 of the small celestial body is available, the map scale can be determined by combining DSN-like inertial position measurements with the orientation matrix and position vectors extracted from the relative poses T0 and T1, as shown in Equation (50). The availability of such prior knowledge currently depends heavily on Earth-based and pre-encounter measurements of the target small celestial body 101. Regarding this matter, the ambiguity in scale due to the parameter λ is determining in the estimation of an appropriate spherical gravity parameter term μa. An error in μa will then affect the propagation step of the smoothing process. For the purpose of this work, we have assumed that the scale parameter λ is well known.


Having an estimate of poses {circumflex over (T)}0 and {circumflex over (T)}1, we compute the triangulation of the landmarks Ψ1 using measurements γ0 and γ1. We then generate guess values for the estimated landmark positions {custom-character}L∈Ψ1. At this step, all appropriate factors are inserted based on the 2D-to-3D correspondences, resulting in the factor graphs 500 and 501 illustrated in FIG. 5, where the shorthands custom-charactericustom-character, Li∈Ψk and Tkcustom-character, k=0, . . . , n are used for brevity.


4.4. Front-End

The front-end system includes feature detection and matching, and encodes the structure of a typical monocular bundle adjustment pipeline in a factor graph based on index mappings defined in Section 1.3.


At every new image acquisition, first, we store the corresponding wall clock time, as the difference between two consecutive image acquisition times is necessary for propagating the RelDyn factors inserted later in the factor graph. We then detect ORB features in the new image. ORB features perform well in practice and they are fast to compute. These are also good placeholders for more robust automatic features to be implemented in the future. We use brute force nearest neighbor search based on the Hamming distance for binary feature descriptors to perform feature matching against previous image frames (e.g., n−1, n−2) and populate an initial 2D-to-2D correspondence map. We also enforce an essential matrix constraint as a geometric check for matched features per a RANSAC procedure, thus eliminating outlier associations in the 2D-to-2D correspondence map. We append the corresponding matches to a list of feature tracks maintained since the beginning of the algorithm procedure.


All tracked feature points in the current frame n may be separated into three subsets: a set of sightings for new landmark points to be triangulated, a set of sightings of known landmark points to be tracked, and a set of outlier points to be rejected. The outlier set of feature points is discarded.


The first subset of the tracked features corresponds to measurements of surface point landmarks that have not been previously sighted and which need to be triangulated using all accumulated sightings in the feature track. Leveraging the latest guess pose custom-character, a guess value for the 3D position of the landmarks is generated using triangulation. We delay triangulation and insertion of new landmarks into the graph based on the number of sightings of the associated landmark. If that number is above a predetermined threshold, say 3, then we attempt triangulation of the point using all of the measurements in the sighting of that surface point. If the landmark point has been successfully triangulated using the feature point sightings that were used for the triangulation, appropriate 2D-to-3D correspondences capturing the new data association are accumulated. Projection factors between the new landmark variable and all camera poses where the landmark was sighted are added to the factor graph.


The second subset of tracked features corresponds to new sightings of surface point landmarks previously triangulated. This subset is populated by verifying if the currently tracked feature has an associated landmark already in the 2D-to-3D correspondences maps. The feature-landmark matched pairs undergo a reprojection error test, after which the surviving pairs establish new GTSAM projection factors inserted into the graph between known landmarks and relating to the most recent frame n. If there are enough tracked features from time index k=n−1, then visual tracking is successful and the PnP algorithm is used to guess the camera pose custom-character value from matched correspondences. Alternatively, when RelDyn factors are included and if the PnP solution is of poor quality, we use the prediction from the motion model at time tn to guess a new camera pose custom-character.


For every new frame inserted, the graph is incrementally augmented with the new variables and factors by the front-end, as is illustrated in the graphs 600 and 601 of FIG. 6.


4.5. Back-End

The underlying structure of the navigation problem is thus captured by encoding visual SLAM measurement constraints, relative kinematic constraints, Earth-relative inertial position measurement constraints as factors, and RelDyn factors in a single factor graph, as we explained in Section 3.1.


In practice, the optimization associated with the small celestial body relative navigation problem is performed incrementally in the factor graph framework using the iSAM2 algorithm. The back-end implements iSAM2 algorithm's procedure, which was discussed earlier in Section 3.1. iSAM2 evaluates the losses at each factor marked for update, computes the associated Jacobians at the guess values, and performs the minimization for inference, yielding a new estimate solution. Note that since the process noise covariance related to the RelDyn factor, as detailed in Section 3.6, is not fixed, but is rather the solution to a dynamical equation, the out-of-the-box GTSAM factor template had to be modified to allow for a variable process noise covariance to be incorporated accordingly. This procedure deviates from the pre-integrated IMU accelerometer factor, since our case, the integrated quantities are non-linear in terms of the state. Indeed, at each evaluation of the factor error, the discrete process noise covariance, also a non-linear function of the state, is propagated accordingly. This covariance is associated with a Gaussian process distribution, and once computed, we replace GTSAM's internal representation of the covariance of the factor error with new process noise covariance.


4.6. Computation of the RelDyn Factor Residual

We wish to compute numerically integrated quantities between successive states, so to evaluate the RelDyn factor error established in Section 3.3. To this end, we perform on-manifold discrete Crouch-Grossman geometric integration to obtain accurate predictions which also respect the constraints of the relative rotation matrix Q(t)∈SO(3). Given {tk}k=0N, for every k=0, . . . , N−1, let Δtkcustom-charactertk+1−tk, we use an Ns-stage Crouch-Grossman geometric integration scheme and compute the propagated quantities:












Ω
¯

k
prop


=
Δ








i
=
1


N
s




exp



(


[


b
i


Δ


t
k




f
˜


Q


(
i
)



]



)



,




(
51
)














[




Δ



q
˜

k

p

r

o

p








Δ



v
˜

k

p

r

o

p








Δ



r
˜

k

p

r

o

p






]


=
Δ








i
=
1


N
s




b
i


Δ



t
k

[





f
~


q
,
k


(
i
)








f
~


v
,
k


(
i
)








f
~


r
,
k


(
i
)





]



,





(
52
)








whereby the shorthands:












f

*

,
k



(
i
)



˜



=
Δ


f
*

(



x
˜

k

(
i
)


,

u
k

(
i
)


,
p

)



,

*=
Q

,
q
,
v
,
r




(
53
)















x
˜

k

(
i
)



=
Δ


(



Q
˜

k

(
i
)


,


q
˜

k

(
i
)


,


v
˜

k

(
i
)


,


r
˜

k

(
i
)



)


,





(
54
)















û
k

(
i
)



=
Δ



u
^




(


t
k

+


c
i


Δ


t
k



)



,




(
55
)















Q
˜

k

(
i
)



=
Δ




Q
˜

k








j
=
1


i
-
1



exp



(


[


a

i

j



Δ


t
k




f
˜


Q
,
k


(
j
)



]



)



,




(
56
)













[





q
˜

k

(
i
)








v
˜

k

(
i
)








r
˜

k

(
i
)





]


=
Δ



[





q
~

k







v
˜

k







r
˜

k




]

+







j
=
1


i
-
1




a

i

j



Δ



t
k

[





f
~


q
,
k


(
j
)








f
~


v
,
k


(
j
)








f
~


r
,
k


(
j
)





]







(
57
)







are defined and computed for every i=1, . . . , Ns. The coefficients aij, bi, ci, j<i=1, . . . , Ns are obtained from an appropriate Butcher table. The number of rows in the table represents the number of time stages, with the {ci} column representing the coefficients of steps in time ti=tk+ciΔtk where are functions are to be evaluated, the number of columns is representing the number of half-steps, with {ci} representing the weight of each half-step, and the coefficients {aij} representing the weight of the intermediary stage i when computing the half-step j.


The RelDyn residual ϵkRelDyn({circumflex over (x)}k,{circumflex over (x)}k+1) is now computed such that:











ϵ
k
RelDyn

(



x
˜

k

,


x
˜


k
+
1



)


=
Δ



[




log




(



(



Q
˜

k
T




Q
˜


k
+
1



)






Ω
¯

k

p

r

o

p



)











q
˜


k
+
1


-


q
˜

k

-

Δ



q
˜

k

p

r

o

p











v
˜


k
+
1


-


v
˜

k

-

Δ



v
˜

k

p

r

o

p











r
˜


k
+
1


-


r
˜

k

-

Δ



r
˜

k

p

r

o

p







]

.





(
58
)







4.7 Process Noise Propagation

To compute Pk we introduce the matrix κk such that, given any pair ({circumflex over (x)}kk).









Δ
X

(


x

(

t

k
+
1


)

,


x
ˆ

k


)

=



Φ



(


t

k
+
1


,

t
k


)




Δ
X

(


x

(

t
k

)

,


x
ˆ

k


)


+




t
k




t

k
+
1





Φ



(


t

k
+
1


,
τ

)



L

(



x
ˆ

(
τ
)

,
p

)



d

ε



(
τ
)




=


Φ



(


t

k
+
1


,

t
k


)





Δ
X

(


x

(

t
k

)

,


x
ˆ

k


)


+


Λ
k



ε
k





,




with initial conditions {circumflex over (x)}(tk)={circumflex over (x)}k, and û(tk)=ûk, and where εk˜custom-character(0, I9) and {dot over (Φ)}(t, tk)=F({circumflex over (x)}(t),û(t), p)Φ(t, tk), Φ(tk, tk)=I9. We see that PkkΛkT. It follows that:








P
k

=




t
k




t

k
+
1





Φ



(


t

k
+
1


,
τ

)



L

(



x
ˆ

(
τ
)

,
p

)




L


(



x
ˆ

(
τ
)

,
p

)





Φ


(


t

k
+
1


,
τ

)



d

τ



,




x
ˆ

(

t
k

)

=


x
^

k


,



u
^

(

t
k

)

=



u
^

k

.






We further approximate the linearized system by assuming that the matrices F, L shown in Section 4.7 are piecewise constant over the interval [tk, tk+1], i.e., Fkcustom-characterF({circumflex over (x)}(tk),û(tk), p), Lkcustom-characterL({circumflex over (x)}(tk),û(tk), p). Then, we construct the following matrix:







=

[




F
k





L
k



L
k








0

1

2
×
1

2





F
k





]


,




take the matrix exponential, yielding:









=


[




Φ
k




Γ
k






0

12
×
12





Φ
k





]

,




and we extract from the right-hand side the desired submatrices, i.e., the discrete state transition matrix Φk=(tk+1, tk) of the piecewise-constant linearization, as well as the covariance of the discretized process noise Λkεk, given as PkkΦkT.


5.8 Loop Closure

To perform loop closure, we leverage a bag-of-words (BoW) representation. We convert each image i=1, . . . , N to a bag-of-words vector vi and compute the similarity metric










s

(


v
i

,

v
j


)


=
Δ


1
-


1
2







"\[LeftBracketingBar]"




v
i




"\[LeftBracketingBar]"


v
i



"\[RightBracketingBar]"



-


v
j




"\[LeftBracketingBar]"


v
j



"\[RightBracketingBar]"






"\[RightBracketingBar]"


.







(
59
)







We compare all prior images that are at least 10 frames away from the current frame. When the similarity score for two images is greater than a threshold we perform an additional geometric check and then add a factor between the poses corresponding to the detected loop.



FIG. 7 is an illustration of an operational flow of an implementation of a method 700 for performing path planning for a spacecraft in the presence of a small celestial body. The method 700 may be implemented by the navigation engine 120 of the spacecraft 102.


At 710, a plurality of images are received. The plurality of images may be received by the navigation engine 120 of the spacecraft 102 from a sensor 110 such as a camera. Each image of the plurality of images may be associated with a time. Each image may be of a small celestial body 101 near the spacecraft 102. The small celestial body 101 may a comet or an asteroid.


At 720, a plurality of spacecraft and small celestial body states are initialized. The states may be initialized by a front-end component of the navigation engine 120. The states may be initialized using prior information known about the small celestial body 101 and/or the spacecraft 102.


At 730, a 3D map is generated from the plurality of images. The 3D map be generated by the front-end component of the navigation engine 120 from the plurality of images. The 3D map may be a 3D map of the small celestial body 101 and may be include a plurality of landmarks determined from the images of the plurality of images.


At 740, a factor graph is generated. The factor graph may be generated by a back-end component of the navigation engine 120. The may be generated based on the landmarks in the 3D map, the initialized states of the spacecraft 102, and one or more RelDyn factors that link the relative pose of the spacecraft 102 to the problem of predicting trajectories stemming from the motion of the spacecraft 102 in the vicinity of the small celestial body 101. Example factor graphs are shown in the graphs 500 and 501 of FIG. 5.


At 750, a new image is received. A new image may be received by the back-end component of the navigation engine 120. The new image may be received from the sensor 110 and may be an image that was not part of the plurality of images.


At 760, new landmarks or changed location are determined based on the new image. The new landmarks or changed location may be determined by the back-end component of the navigation engine 120.


At 770, the factor graph is updated. The factor graph may be updated by the back-end of the navigation engine 120 to reflect the new landmarks or changed locations in the new image.


At 780, the navigation problem is solved. The navigation problem may be solved by the back-end of the navigation engine 120 performing an optimization on the factor graph. The results of the optimization may include estimates of past relative positions of the positions of the small celestial body 101 and the spacecraft 102, past relative orientations of the small celestial body 101 and the spacecraft 102, and past relative velocities of the small celestial body 101 and the spacecraft 102.


At 790, path planning is performed based on the output of the navigation problem. The path planning may be performed by the navigation engine 120 for the spacecraft 102. The path planning may include control of the spacecraft 102 in the vicinity of the small celestial body 101.



FIG. 8 shows an exemplary computing environment in which example embodiments and aspects may be implemented. The computing device environment is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality.


Numerous other general purpose or special purpose computing devices environments or configurations may be used. Examples of well-known computing devices, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, network personal computers (PCs), minicomputers, mainframe computers, embedded systems, distributed computing environments that include any of the above systems or devices, and the like.


Computer-executable instructions, such as program modules, being executed by a computer may be used. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Distributed computing environments may be used where tasks are performed by remote processing devices that are linked through a communications network or other data transmission medium. In a distributed computing environment, program modules and other data may be located in both local and remote computer storage media including memory storage devices.


With reference to FIG. 8, an exemplary system for implementing aspects described herein includes a computing device, such as computing device 800. In its most basic configuration, computing device 800 typically includes at least one processing unit 802 and memory 804. Depending on the exact configuration and type of computing device, memory 804 may be volatile (such as random access memory (RAM)), non-volatile (such as read-only memory (ROM), flash memory, etc.), or some combination of the two. This most basic configuration is illustrated in FIG. 8 by dashed line 806.


Computing device 800 may have additional features/functionality. For example, computing device 800 may include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in FIG. 8 by removable storage 808 and non-removable storage 810.


Computing device 800 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by the device 400 and includes both volatile and non-volatile media, removable and non-removable media.


Computer storage media include volatile and non-volatile, and removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Memory 804, removable storage 808, and non-removable storage 810 are all examples of computer storage media. Computer storage media include, but are not limited to, RAM, ROM, electrically erasable program read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 800. Any such computer storage media may be part of computing device 800.


Computing device 800 may contain communication connection(s) 812 that allow the device to communicate with other devices. Computing device 800 may also have input device(s) 814 such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 816 such as a display, speakers, printer, etc. may also be included. All these devices are well known in the art and need not be discussed at length here.


The term “about,” as used herein, means approximately, in the region of, roughly, or around. When the term “about” is used in conjunction with a numerical range, it modifies that range by extending the boundaries above and below the numerical values set forth. In general, the term “about” is used herein to modify a numerical value above and below the stated value by a variance of 10%. In one aspect, the term “about” means plus or minus 10% of the numerical value of the number with which it is being used.


Similarly, numerical ranges recited herein by endpoints include subranges subsumed within that range (e.g., 1 to 5 includes 1-1.5, 1.5-2, 2-2.75, 2.75-3, 3-3.90, 3.90-4, 4-4.24, 4.24-5, 2-5, 3-5, 1-4, and 2-4). It is also to be understood that all numbers and fractions thereof are presumed to be modified by the term “about.”


The following patents, applications, and publications, as listed below and throughout this document, describes various application and systems that could be used in combination the exemplary system and are hereby incorporated by reference in their entirety herein.

Claims
  • 1. A computer-implemented comprising: receiving a plurality of images of a small celestial body by a spacecraft, wherein each image of the plurality of images is associated with a time;initializing a plurality of spacecraft states and small celestial body states by the spacecraft;based on the received plurality of images, generating a 3D map of the small celestial body including a plurality of landmarks by the spacecraft, wherein each landmark is associated with a location in the 3D map;generating a factor graph corresponding to the plurality of landmarks and the plurality of spacecraft states and small celestial body states by the spacecraft;receiving a new image by the spacecraft;based on the new image and some or all of the plurality of images, identifying one or more new landmarks in the 3D map and a changed location for at least one of the plurality of landmarks by the spacecraft;updating the factor graph based on the one or more new landmarks and the changed location by the spacecraft; andsolving a navigation problem based on the factor graph by the spacecraft to generate relative orientations of the spacecraft and the small celestial body, relative positions of the spacecraft and the small celestial body, and relative velocities of the relative positions of the spacecraft and the small celestial body;performing path planning for the spacecraft by the spacecraft using some or all of the relative orientations of the spacecraft and the small celestial body, the relative positions of the spacecraft and the small celestial body, the relative velocities of the relative positions of the spacecraft and the small celestial bod, and the 3D map; andcausing the spacecraft to travel based on the path planning by the spacecraft.
  • 2. The computer-implemented method of claim 1, further comprising: receiving visual odometry constraints and relative kinematic and dynamical constraints; andsolving the navigation problem based on the factor graph and the received visual odometric constraints and the relative kinematic and dynamical constraints.
  • 3. The computer-implemented method of claim 2, wherein the dynamical constraints comprise the RelDyn factors.
  • 4. The computer-implemented of claim 1, further comprising receiving prior information about the small celestial object and initializing the plurality of small celestial body states based on the prior information.
  • 5. The computer-implemented method of claim 4, wherein the prior information comprises a spin state estimate.
  • 6. The computer-implemented method of claim 1, further comprising solving the navigation problem based on the factor graph by the spacecraft to generate an estimate of a center-of-mass position of the small celestial body.
  • 7. The computer-implemented method of claim 1, wherein the small celestial body comprises an asteroid or a comet.
  • 8. A spacecraft comprising: at least one computing device; anda computer-readable medium with computer-executable instructions stored thereon that when executed by the at least one computing device cause the at least one computing device to:receive a plurality of images of a small celestial body, wherein each image of the plurality of images is associated with a time;initialize a plurality of spacecraft states and small celestial body states;based on the received plurality of images, generate a 3D map of the small celestial body including a plurality of landmarks, wherein each landmark is associated with a location in the 3D map;generate a factor graph corresponding to the plurality of landmarks and the plurality of spacecraft states and small celestial body states;receive a new image;based on the new image and some or all of the plurality of images, identify one or more new landmarks in the 3D map and a changed location for at least one of the plurality of landmarks;update the factor graph based on the one or more new landmarks and the changed location; andsolve a navigation problem based on the factor graph to generate relative orientations of the spacecraft and the small celestial body, relative positions of the spacecraft and the small celestial body, and relative velocities of the relative positions of the spacecraft and the small celestial body;perform path planning for the spacecraft using some or all of the relative orientations of the spacecraft and the small celestial body, the relative positions of the spacecraft and the small celestial body, the relative velocities of the relative positions of the spacecraft and the small celestial bod, and the 3D map; andcause the spacecraft to travel based on the path planning.
  • 9. The spacecraft of claim 8, further comprising computer-executable instructions that when executed by the at least one computing device cause the at least one computing device to: receive visual odometry constraints and relative kinematic and dynamical constraints; andsolve the navigation problem based on the factor graph and the received visual odometric constraints and the relative kinematic and dynamical constraints.
  • 10. The spacecraft of claim 9, wherein the dynamical constraints comprise the RelDyn factors.
  • 11. The spacecraft of claim 8, further comprising receiving prior information about the small celestial object and initializing the plurality of small celestial body states based on the prior information.
  • 12. The spacecraft of claim 11, wherein the prior information comprises a spin state estimate.
  • 13. The spacecraft of claim 8, further comprising solving the navigation problem based on the factor graph by the spacecraft to generate an estimate of a center-of-mass position of the small celestial body.
  • 14. The spacecraft of claim 8, wherein the small celestial body comprises an asteroid or a comet.
  • 15. A non-transitory computer-readable medium with computer-executable instructions stored thereon that when executed by the at least one computing device cause the at least one computing device to: receive a plurality of images of a small celestial body, wherein each image of the plurality of images is associated with a time;initialize a plurality of spacecraft states of a spacecraft and small celestial body states;based on the received plurality of images, generate a 3D map of the small celestial body including a plurality of landmarks, wherein each landmark is associated with a location in the 3D map;generate a factor graph corresponding to the plurality of landmarks and the plurality of spacecraft states and small celestial body states;receive a new image;based on the new image and some or all of the plurality of images, identify one or more new landmarks in the 3D map and a changed location for at least one of the plurality of landmarks;update the factor graph based on the one or more new landmarks and the changed location; andsolve a navigation problem based on the factor graph to generate relative orientations of the spacecraft and the small celestial body, relative positions of the spacecraft and the small celestial body, and relative velocities of the relative positions of the spacecraft and the small celestial body;perform path planning for the spacecraft using some or all of the relative orientations of the spacecraft and the small celestial body, the relative positions of the spacecraft and the small celestial body, the relative velocities of the relative positions of the spacecraft and the small celestial bod, and the 3D map; andcause the spacecraft to travel based on the path planning.
  • 16. The computer-readable medium of claim 15, further comprising computer-executable instructions that when executed by the at least one computing device cause the at least one computing device to: receive visual odometry constraints and relative kinematic and dynamical constraints; andsolve the navigation problem based on the factor graph and the received visual odometric constraints and the relative kinematic and dynamical constraints.
  • 17. The computer-readable medium of claim 16, wherein the dynamical constraints comprise the RelDyn factors.
  • 18. The computer-readable medium of claim 15, further comprising receiving prior information about the small celestial object and initializing the plurality of small celestial body states based on the prior information.
  • 19. The computer-readable medium of claim 18, wherein the prior information comprises a spin state estimate.
  • 20. The computer-readable medium of claim 15, further comprising solving the navigation problem based on the factor graph by the spacecraft to generate an estimate of a center-of-mass position of the small celestial body.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Application Ser. No. 63/381,821, filed on Nov. 1, 2022, and entitled “ASTROSLAM: AUTONOMOUS ONLINE NAVIGATION AND PARAMETER ESTIMATION IN THE VICINITY OF SMALL CELESTIAL BODIES.” The contents of which are hereby incorporated by reference in their entirety.

STATEMENT OF GOVERNMENT SUPPORT

This invention was made with government support under Grant No. 80NSSC18K0251 awarded by the National Aeronautics and Space Administration. The government has certain rights in the invention.

Provisional Applications (1)
Number Date Country
63381821 Nov 2022 US