41 Eigen::Transform<double, 3, 1> poseinv = pose->
estimate().inverse();
48 unsigned int index = 3 * i;
63 unsigned int index = 3 * i;
75 unsigned int rows = 3 * (
_vertices.size() - 1);
81 for (
unsigned int i = 1; i <
_vertices.size(); i++) {
85 unsigned int index = 3 * (i - 1);
88 Ji.block<3, 3>(index, 0) = -Matrix3::Identity();
91 Ji(index, 4) = -2 * Zcam(2);
92 Ji(index, 5) = 2 * Zcam(1);
94 Ji(index + 1, 3) = 2 * Zcam(2);
95 Ji(index + 1, 4) = -0.0;
96 Ji(index + 1, 5) = -2 * Zcam(0);
98 Ji(index + 2, 3) = -2 * Zcam(1);
99 Ji(index + 2, 4) = 2 * Zcam(0);
100 Ji(index + 2, 5) = -0.0;
105 Jj.block<3, 3>(index, 0) = poseRot;
120 unsigned int index = 3 * i;
133 for (
unsigned int j = 0; j < i; j++) {
146 unsigned int index = 3 * i;
165 "Bad vertices specified");
174 estimate_this[i] =
true;
178 for (std::set<HyperGraph::Vertex*>::iterator it = fixed.begin();
179 it != fixed.end(); ++it) {
180 for (
unsigned int i = 1; i <
_vertices.size(); i++) {
182 if (vert->
id() == (*it)->id()) estimate_this[i - 1] =
false;
186 for (
unsigned int i = 1; i <
_vertices.size(); i++) {
187 if (estimate_this[i - 1]) {
188 unsigned int index = 3 * (i - 1);
202 for (std::set<HyperGraph::Vertex*>::iterator it = fixed.begin();
203 it != fixed.end(); ++it) {
EIGEN_STRONG_INLINE const InformationType & information() const
information matrix of the constraint
Measurement _measurement
the measurement of the edge
base class to represent an edge connecting an arbitrary number of nodes
virtual void resize(size_t size)
std::vector< JacobianType > _jacobianOplus
jacobians of the edge (w.r.t. oplus)
const EstimateType & estimate() const
return the current estimate of the vertex
void setEstimate(const EstimateType &et)
set the estimate for the vertex also calls updateCache()
virtual void initialEstimate(const OptimizableGraph::VertexSet &, OptimizableGraph::Vertex *)
virtual bool write(std::ostream &os) const
write the vertex to a stream
virtual double initialEstimatePossible(const OptimizableGraph::VertexSet &, OptimizableGraph::Vertex *)
virtual void computeError()
void setSize(int vertices)
virtual bool read(std::istream &is)
read the vertex from a stream, i.e., the internal state of the vertex
virtual void linearizeOplus()
virtual bool setMeasurementFromState()
unsigned int _observedPoints
VertexContainer _vertices
int id() const
returns the id
std::set< Vertex * > VertexSet
A general case Vertex for optimization.
Vertex for a tracked point in space.
3D pose Vertex, represented as an Isometry3
MatrixN< Eigen::Dynamic > MatrixX
VectorN< Eigen::Dynamic > VectorX