NaveGo
NaveGo: an open-source MATLAB/GNU Octave toolbox for processing integrated navigation systems and performing inertial sensors analysis.
Install / Use
/learn @rodralez/NaveGoREADME
NaveGo
NaveGo: an open-source MATLAB/GNU-Octave toolbox for processing integrated navigation systems and performing inertial sensors profiling analysis.
NaveGo (ˈnævəˈgəʊ) is an open-source MATLAB/GNU Octave toolbox for processing integrated navigation systems and simulating inertial sensors and a GNSS receiver. It also performs analysis of an inertial sensor using the Allan variance. It is freely available online. It is developed under MATLAB/GNU-Octave due to this programming language has become a de facto standard for engineering and modeling of physical systems.
NaveGo's motto is "to bring integrated navigation to the masses".
Important Update for the NaveGo Community
Dear NaveGo Community,
I am reaching out to share an important update regarding the NaveGo project. Due to a shift in both my professional career and personal interests away from navigation systems, I have made the difficult decision to step down from my role as the lead developer of NaveGo.
Effective immediately, NaveGo will transition to a community-driven project. This change opens up new opportunities for collaboration, innovation, and leadership within our vibrant community. I encourage each of you to actively participate, whether by answering questions in the discussion forum, contributing to the development of new features, or sharing your unique insights and expertise.
This project has always thrived on the enthusiasm, creativity, and dedication of its community members, and I have every confidence that NaveGo will continue to grow and evolve in exciting ways. If you or someone you know is passionate about taking on a leadership role within the NaveGo project, please do not hesitate to contact me. Your involvement could make a significant impact on the direction and success of NaveGo.
I want to express my deepest gratitude to all of you for your support and contributions to NaveGo. It has been an honor to work alongside such a talented and dedicated group of individuals. I look forward to witnessing the future achievements of this project and the community that has been its backbone.
Thank you for your understanding and continued support.
Warm regards,
Dr. Rodrigo Gonzalez
Attention!
Please, you should open a new issue only if:
- You found a bug or error in the source code of NaveGo,
- You want to ask for new features. Maybe some contributor will gently take this issue and code your suggested feature.
But, if you have any question of any kind or you want to share some feedback about NaveGo, please leave a comment at the discussion forum.
Features
Main features of NaveGo are:
-
Processing of an inertial navigation system (INS).
-
Processing of a loosely-coupled integrated navigation system (INS/GNSS).
-
Processing of a loosely-coupled integrated navigation system with magnetometers (INS/GNSS/MAG).
-
NEW Processing of a loosely-coupled integrated visual navigation system (VISUAL/INS/GNSS).
-
Compass heading using magnetometers.
-
Simulation of inertial sensors and GNSS.
-
Zero Velocity Update (ZUPT) detection algorithm.
-
Allan variance technique to characterize inertial sensors' both deterministic and stochastic errors.
-
Better visualization of GNSS outages.
NaveGo Mathematical Model
The underlying mathematical model of NaveGo has been evolving. It is based on several books, mostly on:
-
Paul D. Groves (2013). Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems (2nd Ed.). Artech House, USA.
-
D.H. Titterton and J.L. Weston (2004). Strapdown Inertial Navigation Technology (2nd Ed.). Institution of Engineering and Technology, USA.
Two previous articles used to expose NaveGo mathematical model, but currently these two documents are partially outdated:
-
R. Gonzalez, J.I. Giribet, and H.D. Patiño. NaveGo: a simulation framework for low-cost integrated navigation systems, Journal of Control Engineering and Applied Informatics, vol. 17, issue 2, pp. 110-120, 2015. Download.
-
R. Gonzalez, J.I. Giribet, and H.D. Patiño. An approach to benchmarking of loosely coupled low-cost navigation systems. Mathematical and Computer Modelling of Dynamical Systems, vol. 21, issue 3, pp. 272-287, 2015. Download.
For example, the original Kalman filter state vector has been reduced from 21 to 15 states. Therefore, please take these two articles just to have a glimpse of NaveGo structure.
NaveGo Model Validation
NaveGo has been validated by processing real-world data from a real trajectory and contrasting results against Inertial Explorer, a commercial, closed-source software package. Differences between both solutions have shown to be negligible. For more information read the following paper:
- R. Gonzalez, C.A. Catania, P. Dabove, J.C. Taffernaberry, and M. Piras. Model validation of an open-source framework for post-processing INS/GNSS systems. III International Conference on Geographical Information Systems Theory, Applications and Management (GISTAM 2017). Porto, Portugal. April 2017. Download.
Roadmap
Hopefully, these three future features will be added to NaveGo:
-
Barometer as aiding sensor for altitude.
-
G-sensitivity correction for gyroscopes.
-
Tightly-coupled INS/GNSS integration.
Contributions
We are looking for contributors to NaveGo! Since integrated navigation is a topic used in several fields such as Geomatics, Geology, Mobile Mapping, Autonomous Driving, and even Veterinary (yes, Veterinary!) for animal tracking, we hope other communities other than the navigation community compromise and contribute to this open-source project.
You can contribute in many ways:
- Writing code.
- Writing a manual.
- Reporting bugs.
If you want to contribute to the NaveGo project, you should follow the Github Workflow methodology summarized at ./doc/github-workflow.md.
If you are interested in joining NaveGo, please feel free to contact Dr. Rodrigo Gonzalez at rodralez [at] frm [dot] utn [dot] edu [dot] ar.
Branches
NaveGo has two main branches:
-
master: contains the stable releases of NaveGo. -
develop: every new feature of NaveGo will be implemented in this branch first.developwill be merged tomasterfrom time to time.
More branches would be created to develop particular features for NaveGo. These extra branches will be eventually merged to develop.
Please, cite our work!
If you are using NaveGo in your research, we kindly ask you to add the following two cites to your future papers:
-
R. Gonzalez, C.A. Catania, P. Dabove, J.C. Taffernaberry, and M. Piras. Model validation of an open-source framework for post-processing INS/GNSS systems. III International Conference on Geographical Information Systems Theory, Applications and Management (GISTAM 2017). Porto, Portugal. April 2017. Download.
-
R. Gonzalez, J.I. Giribet, and H.D. Patiño. NaveGo: a simulation framework for low-cost integrated navigation systems, Journal of Control Engineering and Applied Informatics, vol. 17, issue 2, pp. 110-120, 2015. Download.
An URL to NaveGo should be provided as the following cite:
Gonzalez, Rodrigo (2022). NaveGo: an open-source MATLAB/GNU-Octave toolbox for processing integrated navigation systems and performing inertial sensors profiling analysis. NaveGo Release v1.4 (v1.4). Zenodo. https://doi.org/10.5281/zenodo.6549626
Donations
Your donation helps us to improve NaveGo. You can make a donation to support our work using:
- BITCOIN public key: bc1q8uehhf0y36jtwyua29z0xhqxvd7q2thuuwys28 (BTC network).
- Ethereum public key: 0x97aae6533AaeD1ba38D1863B4a8C35e7Cc5261E8 (ERC20 network).
- USDT public key: 0x97aae6533AaeD1ba38D1863B4a8C35e7Cc5261E8 (ERC20 network).
- PAYPAL: paypal.me/supportnavego.
Examples
The example folder contains several types of examples which try to be a kind introducción to the use of NaveGo.
Allan variance example
This example can be analyzed by just executing the file navego_example_allan.m. Firstly, Allan variance is applied to 2-hours of real static measurements from a Sensonor STIM300 IMU. Then, almost 5 hours of synthetic inertial data are created and Allan variance is run on these simulated data.
INS/GNSS integration example using synthetic (simulated) data
The NaveGo example with synthetic data is based on the output of a trajectory generator. This program provided both truth accelerations and angular velocities for a previous defined trajectory. NaveGo does not provide a trajectory generator.
The file navego_example_synth.m tries to expose how NaveGo can be used step by step. Two IMU measurements are simulated according to the error profiles of the ADIS16405 IMU and the ADIS16488 IMU. Then, both IMU are fused using a simulated GNSS sensor. Finally, performances of the two simulated INS/GNSS systems are compared.
References
-
R. Gonzalez, J.I. Giribet, and H.D. Patiño. NaveGo: a simulation framework for low-cost integrated navigation systems, Journal of Control Engineering and Applied Informatics, vol. 17, issue 2, pp. 110-120, 2015. Download.
-
Analog Devices. ADIS16400/ADIS16405 datasheet. High Precision Tri-Axis Gyroscope
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
