26 template<
size_t D,
size_t ZDim>
43 Matrix zeroMatrix = Matrix::Zero(0,
D);
44 Vector zeroVector = Vector::Zero(0);
45 std::vector<KeyMatrix> QF;
46 QF.reserve(keys.size());
57 size_t j = 0,
m2 = E.rows(),
m =
m2 / ZDim;
59 Matrix Q = Matrix::Identity(
m2,
m2) - E * P * E.transpose();
62 std::vector<KeyMatrix> QF;
65 for (
size_t k = 0; k <
FBlocks.size(); ++k) {
78 JacobianFactorQ<D, ZDim> > {
Eigen::Matrix< double, ZDim, D > MatrixZD
void fillTerms(const TERMS &terms, const Vector &b, const SharedDiagonal &noiseModel)
Internal function to fill blocks and set dimensions.
noiseModel::Diagonal::shared_ptr model
const vector< Matrix26, Eigen::aligned_allocator< Matrix26 > > FBlocks
RegularJacobianFactor< D > Base
JacobianFactorQ()
Default constructor.
JacobianFactorQ(const KeyVector &keys, const std::vector< MatrixZD, Eigen::aligned_allocator< MatrixZD > > &FBlocks, const Matrix &E, const Matrix3 &P, const Vector &b, const SharedDiagonal &model=SharedDiagonal())
Constructor.
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
STL compatible allocator to use with types requiring a non standrad alignment.
JacobianFactor class with fixed sized blcoks.
noiseModel::Diagonal::shared_ptr SharedDiagonal
std::pair< Key, Matrix > KeyMatrix
const KeyVector & keys() const
Access the factor's involved variable keys.
The quaternion class used to represent 3D orientations and rotations.
JacobianFactorQ(const KeyVector &keys, const SharedDiagonal &model=SharedDiagonal())
Empty constructor with keys.
The matrix class, also used for vectors and row-vectors.
std::uint64_t Key
Integer nonlinear key type.