Address review comments, docs only.

release/4.3a0
Frank Dellaert 2021-08-29 19:38:20 -04:00
parent 372ae27a5e
commit c0262b074c
4 changed files with 11 additions and 3 deletions

View File

@ -35,7 +35,8 @@ namespace gtsam {
* The main building block for visual SLAM. * The main building block for visual SLAM.
* @addtogroup SLAM * @addtogroup SLAM
*/ */
template<class POSE=Pose3, class LANDMARK=Point3, class CALIBRATION = Cal3_S2> template <class POSE = Pose3, class LANDMARK = Point3,
class CALIBRATION = Cal3_S2>
class GenericProjectionFactor: public NoiseModelFactor2<POSE, LANDMARK> { class GenericProjectionFactor: public NoiseModelFactor2<POSE, LANDMARK> {
protected: protected:

View File

@ -2,7 +2,7 @@
## GenericProjectionFactor (defined in ProjectionFactor.h) ## GenericProjectionFactor (defined in ProjectionFactor.h)
Non-linear factor for a constraint derived from a 2D measurement. Non-linear factor that minimizes the re-projection error with respect to a 2D measurement.
The calibration is assumed known and passed in the constructor. The calibration is assumed known and passed in the constructor.
The main building block for visual SLAM. The main building block for visual SLAM.
@ -14,6 +14,7 @@ Templated on
## SmartFactors ## SmartFactors
These are "structure-less" factors, i.e., rather than introducing a new variable for an observed 3D point or landmark, a single factor is created that provides a multi-view constraint on several poses and/or cameras. These are "structure-less" factors, i.e., rather than introducing a new variable for an observed 3D point or landmark, a single factor is created that provides a multi-view constraint on several poses and/or cameras.
While one typically adds multiple GenericProjectionFactors (one for each observation of a landmark), a SmartFactor collects all measurements for a landmark, i.e., the factor graph contains 1 smart factor per landmark.
### SmartFactorBase ### SmartFactorBase
@ -46,6 +47,11 @@ Same as `SmartProjectionPoseFactor`, except:
TODO: DimPose and ZDim are hardcoded. Copy/paste from `SmartProjectionPoseFactor`. Unclear what the use case is. TODO: DimPose and ZDim are hardcoded. Copy/paste from `SmartProjectionPoseFactor`. Unclear what the use case is.
## Linearized Smart Factors
The factors below are less likely to be relevant to the user, but result from using the non-linear smart factors above.
### RegularImplicitSchurFactor ### RegularImplicitSchurFactor
A specialization of a GaussianFactor to structure-less SFM, which is very fast in a conjugate gradient (CG) solver. A specialization of a GaussianFactor to structure-less SFM, which is very fast in a conjugate gradient (CG) solver.

View File

@ -44,7 +44,7 @@ namespace gtsam {
* factors. The methods take a CameraSet<CAMERA> argument and the value of a * factors. The methods take a CameraSet<CAMERA> argument and the value of a
* point, which is kept in the derived class. * point, which is kept in the derived class.
* *
* @tparam CAMERA should behave like a set of PinholeCamera. * @tparam CAMERA should behave like a PinholeCamera.
*/ */
template<class CAMERA> template<class CAMERA>
class SmartFactorBase: public NonlinearFactor { class SmartFactorBase: public NonlinearFactor {

View File

@ -24,6 +24,7 @@ TODO: Again, as no template arguments, we could move a lot to .cpp file.
### SmartStereoProjectionFactorPP ### SmartStereoProjectionFactorPP
Similar `SmartStereoProjectionPoseFactor` but *additionally* adds an array of body_P_cam poses. The dimensions seem to be hardcoded and the types defined in the SmartFactorBase have been re-defined. Similar `SmartStereoProjectionPoseFactor` but *additionally* adds an array of body_P_cam poses. The dimensions seem to be hardcoded and the types defined in the SmartFactorBase have been re-defined.
The body_P_cam poses are optimized here!
TODO: See above, same issues as `SmartStereoProjectionPoseFactor`. TODO: See above, same issues as `SmartStereoProjectionPoseFactor`.