Space optical navigation employs a camera for attitude determination and a second high dynamic range camera on a pan/track mount for terrain and celestial body tracking. Navigation and attitude determination are performed in a Bayesian framework using anUnscented Kalman Filter with an IMU as the navigation and attitude base. The Optical Navigation Module provides MATLAB code for implementing optical navigation. Additional measurements can be added including a sun sensor for sun distance measurements in interplanetary space, Global Positioning System (GPS) measurements near the Earth, and range and range rate from ground stations or other spacecraft in deep space. The system is suitable for both lunar and Mars landing missions and icy moon and asteroid orbital missions such as Artemis, Lunar Orbital Platform Gateway, Orion Multi-Purpose Crew Vehicle, Europa Clipper, Lucy, Psyche. It is also applicable to any situation where GPS is not available.
The Optical Navigation Module allows you to implement an optical navigation system for any of these applications. It includes dynamical models for cis-lunar and deep space missions along with measurement models for all of these sensors. Several scripts provide examples to get you going quickly.
This picture shows the camera aimed at the horizon and the stars that it can see during Earth reentry. The step counter gives the integration step. The star numbers are sequential from the file of stars but the stars come from the Hipparcos catalog.

This pictures shows the laboratory hardware for an optical navigation camera on a pan/tilt mount. Flexible cables eliminate the need for slip rings simplifying the design. The platform is driven by orthogonal stepping motors with harmonic drives.
Note the size. As with all of our toolboxes, full source code is provided.