Skip to content

Organization

Algorithms are implemented in C++ as a header-only library with the only dependancy being Eigen. Functions are templated, as necessary, to emphasize dependency on specific models (e.g. geodetic). Bindings are provided both for python (nanobind) and MATLAB (clib).

Folder contents:

  • Ennui\ : main software, C/C++
  • tests\ : unit tests for the main software
  • python\ : python binding (using nanobind)
  • matlab\ : MATLAB binding (using clib).
  • scripts\ : utility scripts for building and testing. Run from root folder.
  • docs\ : content for generating the static website.

Namespaces

Namespace and template usage here is intended to generalize models across multiple use-cases and implementations. For example, gravitation models are required for state propagation using inertial sensors. Equations to compute gravitation are parameterized by a geodetic model (e.g. WGS841). For a particular use-case, the mechanization reference frame (e.g. ECEF) will also inform selection of a gravitation equation.

graph BT;

    subgraph ::mechanization
        subgraph ::ecef
            idPVA_SO3[pva in SO3]
            idPVA_q[pva in SU3]
        end
    end

    ::math --> ::geodetic
    ::math --> ::mechanization
    ::geodetic --> ::mechanization

    subgraph ::geodetic
    direction BT
        idMP[geodetic model parameters] --> gravitation
        idMP[geodetic model parameters] --> idFT[frame transformations]
    end

    subgraph ::math
        direction BT
        idLA[linear algebra] --> rotation
    end
  • Geodetic model parameters: NGA-STND-00361
  • Frame transformations: Misra & Per Enge, GPS Textbook2
  • Navigation equations: Groves, Principles of GNSS Textbook3

  1. National Geospatial-Intelligence Agency (NGA) National Center for Geospatial Intelligence Standards (NCGIS). Department of Defense World Geodetic System 1984: Its Definition and Relationships with Local Geodetic Systems. July 2014. NGA.STND.0036. URL: https://nsgreg.nga.mil/doc/view?i=4085&month=11&day=3&year=2021

  2. Pratap Misra and Per Enge. Global Positioning System: Signals, Measurements and Performance. Ganga-Jamuna Press, second edition, 2001. ISBN 978-0-9709544-2-8. URL: https://www.gpstextbook.com/

  3. Paul Groves. Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems. Artech House, 2 edition, 2013. ISBN 978-1-60807-005-3. URL: https://us.artechhouse.com/Principles-of-GNSS-Inertial-and-Multisensor-Integrated-Navigation-Systems-Second-Edition-P2046.aspx (visited on 2023-02-27).