Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Running the TUM-VI dataset in stereo mode has large angular errors during evaluation #246

Closed
successkaisadadi opened this issue May 7, 2022 · 5 comments · Fixed by #259
Labels
bug Something isn't working

Comments

@successkaisadadi
Copy link

When I used run_ros_tumvi.sh to run the TUM-VI dataset, I found that the angle error reached 3-5deg. In other papers citing OpenVINS, the angle error is less than 2deg. Is there a similar solution?

@goldbattle goldbattle added the debugging Might be a bug, looking into the issue label May 8, 2022
@goldbattle
Copy link
Member

I have not done an evaluation in a while. Will try to take a look as soon as I get time, thanks for opening an issue.

@successkaisadadi
Copy link
Author

Thanks for your reply, do you have any suggestions for now or what I need to try to solve this problem?

@goldbattle
Copy link
Member

What OpenCV version are you using?

@goldbattle goldbattle added bug Something isn't working and removed debugging Might be a bug, looking into the issue labels Jul 11, 2022
@goldbattle
Copy link
Member

It looks like this is an issue with accidently deleting IMU readings. Not sure how why I used the original logic of the oldest feature take. If there is a drop in tracking (as in the beginning of the TUM datasets), all IMU readings will be deleted / dropped. I will push a fix ASAP but you can change these lines:

// Get the oldest camera timestamp that we can remove IMU measurements before
// Then push back to our propagator and pass the IMU time we can delete up to
double oldest_time = trackFEATS->get_feature_database()->get_oldest_timestamp();
if (oldest_time != -1) {
oldest_time += params.calib_camimu_dt;
}

To the following:

  // The oldest time we need IMU with is the last clone
  // We shouldn't really need the whole window, but if we go backwards in time we will
  double oldest_time = state->margtimestep();
  if (oldest_time > state->_timestamp) {
    oldest_time = -1;
  }

Let me know if this fixes the issue for you.

@goldbattle
Copy link
Member

goldbattle commented Oct 11, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants