Coder Social home page Coder Social logo

Comments (5)

cdebeunne avatar cdebeunne commented on June 2, 2024 1

Hello everybody, I had the same issue with my custom fisheye stereo bench, on ubuntu 20.04 and with the branch 'origin/feature/prerelease'. I finally managed to make it work doing the following steps:

  • I edited the BackendParams.yaml and set autoInitialize to 1
  • In stereoVIOEuroc.bash I set the parameter --log_euroc_gt_data=0
  • I edited EurocDataProvider::parseDataset() and changed the line is_gt_available_ = parseGtData(dataset_path_, ground_truth_name); to is_gt_available_ = false;

I hope this will help!

from kimera-vio.

HtutLynn avatar HtutLynn commented on June 2, 2024 1

@cdebeunne , Thanks, it fixed my problem.

from kimera-vio.

Mona-ShZeinoddin avatar Mona-ShZeinoddin commented on June 2, 2024

Hi

Were you able to solve this?

from kimera-vio.

marcusabate avatar marcusabate commented on June 2, 2024

This error is probably not related to your data-provider. GTSAM throws these errors when the system is ill-posed, so in this case the optimization is likely under-constrained. This means that many of the factors in the optimization are not agreeing with each other.

It could be caused by any of the factors. Some common problems:

  • Extrinsic calibration is wrong, so as the robot starts moving the vision and imu don't agree.
  • IMU gravity vector is not correct
  • Vision factors (feature tracks) don't agree with each other (lots of occlusions, triangulation isn't correct), which can happen if you're using mono and don't have good visual features, or if you are using stereo and have a bad stereo calibration
  • Prior factors are not accurate. This is relevant for the IMU especially, those biases are set in BackendParams.yaml.

Given your discussion in #217 it seems likely the two problems are related. I would check that IMU data is properly formed, that your gravity vector is correct, and that your extrinsic calibration between the IMU and the camera is correct.

As for why your code fails to run Euroc, I'm not sure. Have you set autoInitialize in BackendParams.yaml to 0? This will be required if you run Euroc without access to ground truth. One note: you've commented out every call to CHECK_GT, this is not a call to any ground truth function but rather sanity checks to make sure the incoming data is correct. You can keep most or all of those uncommented.

More generally, I'd recommend making a new iPhoneDataProvider instead of modifying the EurocDataProvider directly. You can copy most of the code and not include any GT parts, and you can retain full Euroc functionality. You'll just need to add your new DataProvider to the options in examples/KimeraVIO.cpp and use the dataset_type variable to instruct the executable to use your new DataProvider by assigning it to value 2 or similar.

from kimera-vio.

HtutLynn avatar HtutLynn commented on June 2, 2024

@marcusabate , Hi, as for the GTSAM error. I used the modified EurocDataProvider.cpp to test Mono VIO pipeline with EUROC dataset and I am not using custom dataset from iPhone sensors. To test whether Kimera works properly without ground truth data with modified script, I just deleted ground_truth_estimates from V1_01_easy folder and this GTSAM error comes up. So I think it doesn't have to do with the dataset but the script that I modified. autoInitialize param from BackendParams.yaml is also set to 0.

from kimera-vio.

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.