Optical navigation, using the Earth’s chord width and angles between nadir and stars, is an alternative to GPS based navigation for autonomous spacecraft. The Optical Navigation System, developed under a NASA contract, is well suited for this application.
In the Spacecraft Control Toolbox, we provide an easy-to-use demo script in the 2014.1 release that shows you how to implement optical navigation. The system uses Unscented Kalman Filters (also known as sigma point filters) with non-linear dynamics and measurement models.
This demo uses our new UKF functions shown below:
ukf.t = t;
ukf = UKFPredict( ukf );
ukf = UKFUpdate( ukf );
ukf is a data structure that includes all filter information. Measurements are passed as data structures to UKFUpdate which have pointers to the measurement functions. In this way, any type of measurement can be used in the filter and introduced at any time.
The following plots show some results from the script. The first shows the orbit and the estimated orbit which are essentially the same.
The second shows the position errors. Of course, actual errors would depend on the accuracy of the sensors, particularly the Earth sensor. Great care needs to be taken when setting up the UKF parameters. As you can see, the largest errors are at perigee and if the UKF parameters are not set properly, the filter might think a hyperbolic orbit was a valid solution!