Comments (4)
Hi @mikefarmer01 ,
The READMI is still quite empty because the library is not yet close to being finished.
The main idea of this repository is to have a practical evidence that algorithms that were implemented in some other repos I have in my account such as: https://github.com/albertoirurueta/irurueta-navigation-inertial can actually work in a real device. Especially those related to IMU calibration, inertial navigation with 6DOF and Kalman filtering.
For now I have implemented calibrators, which look promising expect for the magnetometer, and attitude estimators. Calibration is something that Android SDK does not provide and can be useful to further increase the accuracy of inertial navigation solutions.
The goal o the library is to provide ways of estimating attitude and poses with 6DOF (having both attitude and translation). The latter is also something that is not correctly implemented in Android SDK, since documentation states that there is a 6DOF sensor, but in practice it was never implemented in any device. Instead ARCore was built.
However, ARCore is a closed solution limited to certain devices (which are guaranteed to be correctly calibrated and have enough processing power), and this library is meant to be used in the future by any device (since devices can be calibrated).
Moreover, solutions such as ARCore require camera usage to obtain a stable solution for navigation, since inertial navigation accumulates error with time and requires an external positioning system to keep the solution stable.
This library, instead is meant to be integrated with any other solution that does not necessarily need a camera, to offer new posibilities such as:
- indoor navigation taking into account wifi + bluetooth
- improving ARCore accuracy by calibrating sensors.
- gestures detection
Hope this helps.
By the way, you're more than welcome to provide support if you wish and see something wrong or something that can be improved.
from irurueta-android-navigation-inertial.
Hi @albertoirurueta,
many thanks for your detailed response.
In the meantime, I've researched some stuff about ARCore and ARKit as well.
Are you saying that all devices that support ARCore are pre-calibrated?
I'm leaning towards making use of ARCore/ARKit for my usecase.
Having a library (and a suitable test device) available is just so convenient.
from irurueta-android-navigation-inertial.
Yes, ARCore and ARKit work on devices where calibration is known.
In iOS is simple because Apple has full control of their devices.
In Android, ARCore is distributed as a separate service similarly to Google Play Services that determines whether the device is compatible, and can update the list of compatible devices at any given time.
In both cases compatibility depends on having enough computational power and having a calibrated IMU (accelerometer + gyroscope sensors).
Typically IMU's come with certain calibration from factory, and if enough accuracy can be achieved, those sensors become suitable for AR purposes. However, calibration parameters might change over time depending on factors such as temperature.
This library includes certain calibration algorithms that can be used without special equipment to try to improve IMU calibration, if needed.
On the other hand, both ARCore and ARKit require camera usage to keep navigation into a stable solution, otherwise using inertial sensors only, errors accumulate over time (no matter how accurate the sensors are). So from time to time a known position is estimated using the camera by analyzing images and obtaining a sparse 3D reconstruction of the scene.
Other navigation systems incorporate a known position from GPS, so you can temporarily keep navigatiing when satellite signals are lost (i.e. inside a tunnel).
If your use case requires a camera, then you'll be fine with ARCore/ARKit as long as the required accuracy is about a couple centimeters.
However, if you're planning on doing navigation based on other signals or in the background when the user is not actively using her phone, or if you need better accuracy, then ARCore/ARKit is not what you're looking for.
from irurueta-android-navigation-inertial.
Hi, thanks again!
That clarifies the purpose of your library.
For now, it seems like I'm very well off with using ARCore.
I can make use of the camera and even if the calibration might deteriorate over time, accuracy should still be sufficient for my usecase (navigate through a machine's 3D-Model using a mobile phone).
I'll keep your lib in mind and whish you all the best for future developments.
I'll come back if I need better calibration ;)
from irurueta-android-navigation-inertial.
Related Issues (1)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from irurueta-android-navigation-inertial.