-
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
Rolling Shutter Camera calibration #65
Conversation
removed extra comma preventing swe to load resulting calibration files
_ portable_binary_iarchive _ portable_binary_oarchive _ portable_binary_archive
properly keep track of previous successful solution to update _p_J and _J
_ The camera_dv exposes a scalar expression (ScalarExpressionNodeKeypointTime) that expresses the capture time of a keypoint taking the changing shutter_dv into account. _ Remove aslam_backend CameraDesignVariable and move to aslam_backend_cv together with the NodeKeypointTime scalar expression
Error term that applies a design-variable (shutter) depending, variable, covariance term for adaptive error term standardization.
ReprojectionErrors are in aslam_cv_error_terms
…gnVariable It is a pure duplicate of the already existing CameraDesignVariable. As it is used by the (also disabled) NCameraSystemDesignVariableContainer, I do not delete the files.
Taking a stab at merging this on my local. It's currently not in sync with master. +1 for having an admin look at it |
Observation: from what I can see, the Boost changes can be dropped from the PR making it much simpler, because Boost was already fixed in |
@v0n0 i merged upstream to fix the conflicts |
Thanks @othlu! |
I got a compilation error when trying to compile after merging this PR:
|
That was fixed when I declared:
at line 46 in the file Although now I cannot find the new command after sourcing the workspace again. |
We already fixed those issues when merging into another repo - they didn't make it into my branch. Sorry about that. |
Got it, recompiled successfully with your last commit (also fixed the ETH build I think). The command Also the example command when using |
Another update: I ran the RS calibration code with a dataset of mine and I got:
Unfortunately the verbose mode doesn't give me anything more specific than this. |
I tried with a smaller dataset and I got a different exception, where the Jacobian is set to
|
Oh OK... I think that might have been a wrong feature variance value passed at the command line. With a smaller feature variance I get:
|
And have you tried setting larger margins with the |
@rehderj
|
you could change it manually in the code then on any occurrence of |
Seems like a quite high time threshold is set: https://github.com/ethz-asl/kalibr/pull/65/files#diff-37939fff95d750be5e8d14441ff77d4eR168 |
That is true! I understood that you integrated the rs error terms into the The issue of runaway time delays is often symptomatic for other underlying problems. So rather than just tuning the padding, it might be worth investigating where things go wrong. |
@rehderj oh not yet, first I was making sure this code can run without problems. If I integrated and the original code doesn't work, I would wind up debugging for an issue I cannot find in my own change. |
I finally got around to test the functionality and it works perfectly fine for me on two different datasets with rather default settings (please note that I picked an arbitrary feature variance): |
@v0n0 the time offset padding you will want to change is this one https://github.com/othlu/kalibr/blob/feature/rs-calibration/aslam_offline_calibration/kalibr/python/kalibr_rs_camera_calibration/RsCalibrator.py#L44-L48, nit the one that you identified. Sorry for not checking this earlier! |
Ha that's interesting; are you also on Ubuntu 14.04 and ROS Indigo? It's great that it works for you. I contacted you via email for the dataset. I will also try to change the other padding. Thanks! |
lgtm. Please see https://github.com/ethz-asl/kalibr/tree/fix/rs-model-support-and-option-naming for small fixes. |
cool. yes, that looks awesome. lets merge it! |
A module to fully calibrate the intrinsics, distortion coefficients and line delay of rolling shutter cameras.
Besides the python implementation it includes the following changes and fixes/improvements:
_ disable obsolete CameraGeometryDesignVariableContainer in favor of CameraDesignVariable
_ remove duplicate definitions of ReprojectionError from aslam_cv_backend
_ CameraDesignVariable exposes a ScalarExpression representing the time at which a keypoint was observed
_ exports ScalarExpressionNodeKeypointTime to python
_ restore CovarainceReprojectionError which enables state-depending error term standardization
_ CovarianceReprojectionError::observationTime() returned frame_time + 2* time offset
_ Fix an issue in the DogLeg- and Base-TrustRegionPolicy that prevented the correct calculation of the trust region size and resulted in bad/no convergence
This PR repeats the one onto zurich-eye/Kalibr: zurich-eye#6