-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Optimizer Eigen assertion when calibrating with "none" distortion models #236
Comments
Hi Tim, yes, I think this might be related to the Eigen and compiler version. Without knowing exactly, sounds to me like something goes wrong when there are 0 distortion coefficients. Maybe the code still creates a design variable with dimension 0 or something and in newer eigen versions there is an explicit check for something. Could also be a bug in older eigen version that just doesn't show. Its true that our PR introduced all the We tested only on Ubuntu 16.04, which has a much older eigen version. I think we also tried on macos though, which has much more recent eigen from Homebrew, but I'm not sure. But it also has a different compiler. Looks like this needs some deeper investigation. I'm not sure when I'll have the time though, unfortunately. Maybe you could try on 16.04 to confirm that it works there (virtual machine or docker?). Which version of Kalibr are you using? Current master? |
Hi Niko, thanks for your reply. What you say regarding the design variable sound reasonable to me. I now tried on a different machine, Ubuntu 16.04, with two Eigen versions. The newest commit from the repo (3.3.90) and libeigen3-dev from the Ubuntu packages (3.2.92). Compiler is gcc 5.4.0. The assertion occurs in both cases. [Edit: Also tried 3.2.10 now, error occurs as well.] Which "much older eigen version" did you try? Am I missing something or did you mean 3.2.92 which seems to be the current one of Ubuntu 16.04 and which I feel is not so much older? Yes, I always used current master of Kalibr. Maybe I can look into the issue next week again. However, any feedback - whenever you find the time - is highly appreciated. :) |
Also wanted to try Eigen 3.2.0 (as used in Ubuntu 14.04), but I already ran into issues during compilation (Boost related, kalibr issue here). |
Hi Tim, Could you provide the full list of commands that you try to run? This way it will be easier to solve the issue. The output you provided seems to come from the If you want to test the IMU calibration, you should try the TUM-VI or Euroc example from here: https://vision.in.tum.de/research/vslam/double-sphere P.S. I've tested current master with ubuntu 16.04 and eigen 3.3.4 and |
Sorry, looks like it is |
Hi Vladyslav, thanks for your answer! Sorry for my late response, didn't notice the reply (does GitHub stop to send eMail notifications after a certain number of replies?).
Correct, definitely no IMU stuff involved. ;)
Maybe you can save the effort as I also encounter the problem on 16.04 - so right now I feel it is not related to the OS version.
What I do is to clone the kalibr repo into my
I really wonder what's the difference in our setup... maybe I'm doing something stupid, hm.
I also feel it is not related to the dataset, because I tried with yours and my own one. I will try on 16.04 with Eigen 3.3.4 and CMake 3.5.1. Other than that I don't really know what to do. Would be nice if you could reproduce my issue. Can you think of anything else that might be crucial? Anyways, thanks for your help so far, |
Can you try to run |
Ok, I'll try that. CMake 3.5.1 did not help. Btw. I noticed a warning during compilation (even though I think it's unrelated): |
Yes, please try that. Default for catkin is the same as the cmake default, i.e. no flags (I think), but definitely not Just to confirm: Are you using Lastly, are there any other packages in your catkin workspace, or just the Kalibr repository? |
I could reproduce the issue. Looks like it hits this assert only when compiled with default flags. The pull request above should fix it even for default flags, but you should in general use |
Your right, I just always default to
I used Should have thought about this earlier. Just recently ran into another Eigen assertion that was only raised in ...anyways: thank you for your support! Nice that you could reproduce and sent a PR! |
Fix optimization for none distortion when compiled with default flags #236
Hi all,
I experienced the following issue when trying to
kalibr_calibrate_cameras
:So I guess the assertion is raised somewhere in this function.
I tried the available camera models (except pinhole) and all
*-none
models gave me the error. Interestingly,omni-radtan
did not!I tried with my own dataset but then switched to another one from this site (BF2M2020S23). Error also occurs here, so I guess the dataset is not the reason.
Do you think it might be related to the OS (Ubuntu 18.04) or Eigen version (3.3.4)?
@VladyslavUsenko and @NikolausDemmel - when you did the calibrations for your paper, e.g.
ds-none
, which versions did you use? Do you think the issue could be related tonone
distortion model, as - if I remember correctly - this was introduced with the PR for the new camera models (thanks for contributing this to kalibr!)?Thanks for your help!
Best, Tim
PS: I will investigate were the assertion is raised exactly and see if using an older Eigen version helps. Just wanted to open this issue in case someone with more insight can help already. :)
The text was updated successfully, but these errors were encountered: