Hi gtsam friends:
I tried to look for a complete example on how to use
SmartProjectionFactor to estimate camera poses *and* calibration
(multiple views from one single camera, so, just one calibration
unknown) but couldn't find it... pointers will be appreciated :-)
In particular, this is what I understand so far and what doesn't make
sense to me:
- SmartProjectionFactor<> instances should be added to the FG, one per
tracked landmark.
- Its constructor takes just the noise model and some params.
- For each Smart Factor instance, one must call add() once per LM observation.
- Arguments of add() are the Z (camera observation, u,v), and the
**camera key**.
- This camera key is expected to be indexing a "Value" of something
like "gtsam::PinholeCamera<gtsam::Cal3DS2>".
Here's the problem:
- Each such "PinholeCamera" variable accepts in its ctor a pose and a
calibration (by value, *not* keys).
So, how can it be enforced that all "cameras" have one single
calibration, if there's no key for a "Calibration" value? What am I
missing?
Best,
JL
PS: Yes, I shamelessly admit I have already checked with all modern
AIs and none produced examples that actually even build :-)
PS2: I already had a functional version with regular (no "smart")
factors, but I wanted to check if the latter is more robust in some
way.
--
/**
* Jose Luis Blanco-Claraco
* Universidad de Almería - Departamento de Ingeniería
* [Homepage](
https://w3.ual.es/~jlblanco/ )
* [GH profile](
https://github.com/jlblancoc )
*/