Class BundleAdjustmentMetricSchurJacobian<M extends DMatrix>

All Implemented Interfaces:
BundleAdjustmentSchur.Jacobian<SceneStructureMetric,​M>, FunctionInOut, SchurJacobian<M>
Direct Known Subclasses:
BundleAdjustmentMetricSchurJacobian_DDRM, BundleAdjustmentMetricSchurJacobian_DSCC

public abstract class BundleAdjustmentMetricSchurJacobian<M extends DMatrix>
extends Object
implements BundleAdjustmentSchur.Jacobian<SceneStructureMetric,​M>
Computes the Jacobian for bundle adjustment with a Schur implementation. This is the base class for specific types of matrices
  • Field Details

    • jacSO3

      public JacobianSo3 jacSO3
      Specifies method to parameterize rotations, i.e. Rodrigues to SO3
  • Constructor Details

    • BundleAdjustmentMetricSchurJacobian

      public BundleAdjustmentMetricSchurJacobian()
  • Method Details

    • configure

      public void configure​(SceneStructureMetric structure, SceneObservations observations)
      Specified by:
      configure in interface BundleAdjustmentSchur.Jacobian<SceneStructureMetric,​M extends DMatrix>
    • getNumOfInputsN

      public int getNumOfInputsN()
      Specified by:
      getNumOfInputsN in interface FunctionInOut
    • getNumOfOutputsM

      public int getNumOfOutputsM()
      Specified by:
      getNumOfOutputsM in interface FunctionInOut
    • internalProcess

      public void internalProcess​(double[] input, DMatrix leftPoint, DMatrix rightView)
      Internal matrix type agnostic process function.
      input - Input parameters describing the current state of the optimization
      leftPoint - Storage for left Jacobian
      rightView - Storage for right Jacobian
    • set

      protected abstract void set​(DMatrix matrix, int row, int col, double value)
      Abstract interface for settings the value of a matrix without knowing the type of matrix
    • add

      protected abstract void add​(DMatrix matrix, int row, int col, double value)
      Abstract interface for adding the value of a matrix without knowing the type of matrix. The matrix is assumed to have been initialized to zero.
    • lookupWorldToView

      protected void lookupWorldToView​(SceneStructureMetric.View v, Se3_F64 world_to_view)
      Returns a transform from the world_to_view. If relative then the parent's world to view is look up and used to compute this view's transform and the results are saved.