Skip to content
/ sonic Public

SONIC is an object-oriented optical navigation (OPNAV) toolkit written in MATLAB.

License

Notifications You must be signed in to change notification settings

opnavlab/sonic

Repository files navigation

SONIC

Software for Optical Navigation and Instrument Calibration

This open-sourced, object oriented MATLAB package is a toolkit built on years of research in optical navigation (OPNAV), with a foundation in principled projective geometry. Many capabilities needed for space-flight OPNAV are made transparent and configurable within the SONIC classes, with minimal assumption of the analyst's intentions. This allows each user to construct their own unique workflows for a specific research or analysis problems. SONIC was designed to help simplify navigation solutions such as (but not limited to):

  • Horizon-Based OPNAV
  • Triangulation
  • Star Identification
  • 3D-Reconstruction
  • And more

SONIC was created by the researchers and students of the Space Exploration Analysis Laboratory at the Georgia Institute of Technology for student, academic researchers, space science professionals, or anyone curious to learn more about OPNAV.

For API documentation, please visit https://opnavlab.github.io/sonic/.

If you would like to reference SONIC in your work, please cite our publication from the Journal of Open Source Software publication. The paper can be found here: DOI

Getting Started

Minimal preparation is needed to begin using SONIC. Simply clone the repository locally, and add the sonic directory to the search path that you're working in (i.e. using addpath).

A few MATLAB live tutorials are provided under +examples for demonstrative purposes:

  • ScanLinesTutorial: Demonstrates the generic ability to extract image values along a specified scanline, which is useful for horizon-based OPNAV.
  • SyntheticStarImgTutorial: Demonstrates creating a synthetic image of the star Arcturus, and its surrounding starfield in SONIC. Being able to construct an expected image is an essential operation for OPNAV.
  • TriangVestaReconTutorial: Illustrates the use of the triangulation in SONIC to perform 3D structure reconstruction on the asteroid Vesta from features extracted in images. A few different approaches to triangulation are provided in SONIC, which can be used both for estimating the spacecraft state or reconstruction.
  • Crater Rim Fitting: Perform crater ellipse fitting using an image of Ceres, as captured by the Dawn spacecraft.
  • Reflectance Modeling: Demonstrate how to use reflectance models available under the sonic.Reflectance class.
  • OrthoSphere Rendering with Reflectance Models: Demonstrate how to render orthographic projections of spheres with homogenous surfaces using reflectance models provided in SONIC.

To verify your installation of SONIC, please run these examples locally and compare the outputs to the pre-run demos in the SONIC API documentation, linked below.

Note: SONIC requires the following MATLAB toolboxes installed:

  • Image Processing Toolbox version 24.1
  • Computer Vision System Toolbox version 24.1

Contributing

If you are interesting in contributing, have a feature request, or have found a bug in SONIC, please checkout CONTRIBUTING.md for more information.

References

Please see REFERENCES.md for a list of references used in the development of SONIC.