Dima Kogan: mrcal 2.5 released!
mrcal 2.5 is out: the release notes. Once again, this is mostly a bug-fix
release en route to the big new features coming in 3.0.
One cool thing is that these tools have now matured enough to no longer be
considered experimental. They have been used with great success in lots of
contexts across many different projects and organizations. Some highlights:
- I’ve calibrated extremely wide lenses
- and extremely narrow lenses
- and joint systems containing many different kinds of lenses
- with lots of cameras at the same time. The biggest single joint calibration
I’ve done today had 10 cameras, but I’ll almost certainly encounter bigger
systems in the future - mrcal has been used to process both visible and thermal cameras
- The new triangulated-feature capability has been used in a
structure-from-motion context to compute the world geometry on-line. - mrcal has been used with weird experimental setups employing custom
calibration objects and single-view solves - mrcal has calibrated joint camera-LIDAR systems
- and joint camera-IMU systems
- Lots of students use mrcal as part of PhotonVision, the toolkit used by teams
in the FIRST Robotics Competition
Some of the above is new, and not yet fully polished and documented and tested,
but it works.
In mrcal 2.5, most of the implementation of some new big features is written
and committed, but it’s still incomplete. The new stuff is there, but is lightly
tested and documented. This will be completed eventually in mrcal 3.0:
- Cross-reprojection uncertainty, to be able to perform full calibrations with a
splined model and without a chessboard.mrcal-show-projection-uncertaintyis available today, and works in the
--method cross-reprojection-rrp-Jfp
usual moving-chessboard-stationary camera case. Fully boardless coming later. - More general view of uncertainty and diffs. I want to support extrinsics-only
and/or intrinsics computations-only in lots of scenarios. Uncertainty in point
solves is already available in some conditions, for instance if the points are
fixed. Newmrcal-show-stereo-pair-difftool reports an extrinsics+intrinsics
diff between two calibrations of a stereo pair; experimental
analyses/extrinsics-stability.pytool reports an extrinsics-only diff. These
are in contrast to the intrinsics-only uncertainty and diffs in the existing
mrcal-show-projection-diffandmrcal-show-projection-uncertaintytools.
Some documentation in the uncertainty and differencing pages. - Implicit point solves, using the triangulation routines in the optimization
cost function. Should produce much more efficient structure-from-motion
solves. This is all the “triangulated-features” stuff. The cost function is
primarily built around_mrcal_triangulated_error(). This is demoed in
test/test-sfm-triangulated-points.py. And I’ve been using
_mrcal_triangulated_error()in structure-from-motion implementations within
other optimization routines.
mrcal is quite good already, and will be even better in the future. Try it
today!
