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 softwarepython\: 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
Recommended reading:
- Geodetic model parameters: NGA-STND-00361
- Frame transformations: Misra & Per Enge, GPS Textbook2
- Navigation equations: Groves, Principles of GNSS Textbook3
-
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. ↩↩
-
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/. ↩
-
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). ↩