RoME.jl icon indicating copy to clipboard operation
RoME.jl copied to clipboard

Looking for a simple, pure inertial motion estimation

Open pauljurczak opened this issue 3 years ago • 4 comments

Is there a way to get a simple, pure inertial motion estimation with RoME.jl o rrelated packages? Ultimate accuracy is not required as I want to use it for motion estimation between camera frames capture events, every 50ms with IMU data rate of 250Hz.

pauljurczak avatar Sep 17 '20 02:09 pauljurczak

Hi @pauljurczak , yes and no answer -- yes those factors exist but we are not able to share them publicly just yet owing to license restrictions. We are working on getting those available but will still take a bit of time to get that legally sound. Wish we could make them immediately available. In the mean time we are working on integrating ApproxManifoldProducts.jl/IncrementalInference.jl/RoME.jl with Manifolds.jl so that 3D / IMU-derived (non-Gaussian/multimodal) beliefs, and their underlying mechanics, are standardized and performant -- the combination should be pretty good.

xref:

  • #244
  • also see here: https://github.com/JuliaManifolds/Manopt.jl/issues/24#issuecomment-627760644

dehann avatar Sep 18 '20 18:09 dehann

Thank you for responding. In the meantime, do you know another Julia package or C++ library, which does pure inertial motion estimation? Everything I found so far fuses inertial with visual or other sensing modes.

pauljurczak avatar Sep 19 '20 00:09 pauljurczak

Apologies for the slow reply. Perhaps the fastest thing to do is just make a new factor and embed an ODE solution of the classic inertial navigation solution (akin to preintegrating). This will provide similar or better numerical answers with a little computation slowdown -- it will, however, avoid licensing delays. I will build that for common purpose in the next month or two if I can get to it -- should be pretty straight forward.

dehann avatar Oct 19 '20 18:10 dehann

Just an update on this, I'm busy adding ODERelative as a new factor that can stand up generic ODE solutions (discrete and consuming sensor data) as a stand-in solution for this and other similar requirements. See JuliaRobotics/IncrementalInference.jl#1020 for ongoing progress. I want to write in a classic INS solution (dynamic bias estimating version) as well, which will be able to solve the problem described in this issue. The native inertial pre-integral (ie more computationally efficient) version will be made public as soon as licensing is sorted out.

dehann avatar Nov 09 '20 05:11 dehann

see new on-manifold code for factors InertialDynamic and IMUDeltaFactor. These functions work in part either with parametric or nonparametric solving.

This new functionality supercedes previous questions such as:

  • #641

Note that InertialPose3 may well be used in the future, but currently a new variable RotVelPos is being used as a stand-in solution until all features are consolidated in common.

Next major milestone towards fully consolidated operations will be to complete

  • JuliaRobotics/ApproxManifoldProducts.jl#41

dehann avatar Nov 14 '23 21:11 dehann