GithubHelp home page GithubHelp logo

Running on EurocMav Datasets about xivo HOT 10 OPEN

ucla-vision avatar ucla-vision commented on June 17, 2024
Running on EurocMav Datasets

from xivo.

Comments (10)

stephanietsuei avatar stephanietsuei commented on June 17, 2024

We have not been testing on the EurocMav datasets. Can you please elaborate more on the problems that you're seeing?

Looking at your config file, this are the best guesses I can give you, short of trying to run and tune it myself.

  1. I notice that X.td is zero, and it is probably not zero. Since EuRoC and Kalibr are both published by ETH, you should be able to run the calibration dataset through Kalibr and get a better number.
  2. Double-check numbers for min_depth and max_depth and any other standard deviation numbers. They are very specific to the environment. TUM-VI room sequences are entirely contained in a small room, so 5m might be too small.
  3. If the datasets do not start from rest, set gravity_init_counter to 0 and make sure that X.Wg is correct.
  4. Make the noise parameters in Qimu bigger.; For TUM-VI dataset, we inflated the numbers by three times.
  5. If all that fails, edit src/CMakeLists.txt and turn on online calibration. (XIVO is under active development. I recently committed something that affects the radial-tangential distortion model, so please pull the latest copy of the devel branch.)

from xivo.

malteprinzler avatar malteprinzler commented on June 17, 2024

Have you been able to find a working solution?
When I looked into the IMU data of euroc and data9_workbench, I found that the directions of gravity are not equal (+9.7 for euroc / -9.7 for data9_workbench). I guess the orientation of the mounted IMU differs however I am not sure which parameter to adapt in order to correct for this.

from xivo.

stephanietsuei avatar stephanietsuei commented on June 17, 2024

I haven't had time to really look at this, but I can comment on how Xivo deals with gravity.

If you start from constant velocity (e.g. rest), and if the parameter gravity_init_counter is greater than 0, then Xivo will use the average of the first gravity_init_counter IMU measurements to solve for the transformation that aligns the parameter gravity to the spatial frame. This transformation is stored as the state variable Wg (gravity vector -> spatial frame, so really Wsg). During this period, Xivo will not attempt to estimate the state. Wg will be adjusted/updated during state estimation.

The code that initializes gravity is the function xivo::Estimator::InitializeGravity which is called from xivo::Estimator::InertialMeasInternal

If you already know the proper value of Wg, then you can put that value in X.Wg and then set gravity_init_counter to 0. If your dataset does not start from constant velocity, you absolutely must do this.

from xivo.

malteprinzler avatar malteprinzler commented on June 17, 2024

I have a question about your definition of W_{sg}. According to the xivo paper, the spatial frame is defined such that the gravity goes along the z-axis of the spatial frame:
"The spatial frame s is attached to Earth and oriented so gravity T = [0 0 1]T x k is known."
Shouldn't in this case W_{sg} always be Identity?
What xivo::Estimator::InitializeGravity() seams to calculate is W_{bs}. Are my thoughts correct?

from xivo.

malteprinzler avatar malteprinzler commented on June 17, 2024

Another possible explanation: the spatial frame coincides with the body frame during gravity initialization. Then everything is clear. Could someone please verify? Thanks

from xivo.

stephanietsuei avatar stephanietsuei commented on June 17, 2024

The body frame is always aligned with the spatial frame during initialization; the spatial frame is defined to be wherever the body frame is at the very beginning.

The body frame, however, is not necessarily aligned with gravity at initialization. Then, W_{sg] is nonzero. Does that make sense?

from xivo.

malteprinzler avatar malteprinzler commented on June 17, 2024

Yes that makes perfectly sense. Thank you very much for this clear explanation. I have one more question and even though it might not be directly connected to the EurocMav dataset it might help me to find a working configuration:

What exactly are the values in P used for?

I tried to do some digging in the source code but Im still not sure what P is used for.

from xivo.

stephanietsuei avatar stephanietsuei commented on June 17, 2024

P contains the initial value of the state covariance. See

from xivo.

goldbattle avatar goldbattle commented on June 17, 2024

Hi, was a config every uploaded that worked? I don't see one here.
https://github.com/ucla-vision/xivo/tree/devel/cfg

from xivo.

stephanietsuei avatar stephanietsuei commented on June 17, 2024

Oh whoops. It's been a while and I thought the problem had been solved.

from xivo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.