![]() |
NDEVR
API Documentation
|
Base edge class for the optimizable graph, adding error computation and robust kernels. More...
Public Member Functions | |
| OGEdge () | |
| Default constructor. | |
| virtual bool | allVerticesFixed () const =0 |
| Returns true if all vertices connected to this edge are fixed. | |
| virtual g_type | chi2 () const =0 |
| computes the chi2 based on the cached error value, only valid after computeError has been called. | |
| void | clearRobustKernel () |
| Removes the robust kernel from this edge. | |
| virtual void | computeError ()=0 |
| Computes the error of the edge and stores it internally. | |
| virtual sint04 | dimension () const =0 |
| returns the dimensions of the error function | |
| virtual const g_type * | informationData () const =0 |
| returns the memory of the information matrix, usable for example with a Eigen::Map<MatrixXd> | |
| long long | internalId () const |
| the internal ID of the edge | |
| int | level () const |
| returns the level of the edge | |
| virtual void | linearizeOplusAndConstructQuadraticForm (JacobianWorkspace &jacobianWorkspace)=0 |
| Linearizes the constraint in the edge in the manifold space, and store the result in the given workspace and Linearizes the constraint in the edge. | |
| virtual void | mapHessianMemory (g_type *d, int i, int j, bool rowMajor)=0 |
| maps the internal matrix to some external memory location, you need to provide the memory before calling constructQuadraticForm | |
| RobustKernel * | robustKernel () const |
| if NOT NULL, error of this edge will be robustifed with the kernel | |
| void | setLevel (int l) |
| sets the level of the edge | |
| void | setRobustKernel (RobustKernel &ptr) |
| specify the robust kernel to be used in this edge | |
| Public Member Functions inherited from HyperGraph::HGEdge | |
| HGEdge (int id=-1) | |
| creates and empty edge with no vertices | |
| int | id () const |
| returns the id of this edge | |
| void | setId (int id) |
| sets the id of this edge | |
| virtual void | setVertex (uint04 i, HGVertex *v)=0 |
| Sets the i-th vertex of this edge. | |
| virtual const HGVertex * | vertex (uint04 i) const =0 |
| Returns a const pointer to the i-th vertex. | |
| virtual HGVertex * | vertex (uint04 i)=0 |
| Returns a mutable pointer to the i-th vertex. | |
| virtual uint04 | vertexCount () const =0 |
| Returns the number of vertices connected by this edge. | |
Protected Attributes | |
| int | _internalId = 0 |
| Internal sequential id assigned on insertion. | |
| int | _level = 0 |
| Optimization level for multi-level optimization. | |
| RobustKernel * | _robustKernel = nullptr |
| Optional robust kernel for this edge. | |
| Protected Attributes inherited from HyperGraph::HGEdge | |
| int | _id |
| unique id | |
Base edge class for the optimizable graph, adding error computation and robust kernels.
Definition at line 323 of file optimizable_graph.h.
|
pure virtual |
Linearizes the constraint in the edge in the manifold space, and store the result in the given workspace and Linearizes the constraint in the edge.
Makes side effect on the vertices of the graph by changing the parameter vector b and the hessian blocks ii and jj. The off diagoinal block is accesed via _hessian.
Implemented in BaseBinaryEdge< D, E, VertexXi, VertexXj >, BaseBinaryEdge< 3, Vector3< g_type >, VertexSBAPointXYZ, VertexSE3Expmap >, BaseBinaryEdge< 6, SE3Quat, VertexSE3Expmap, VertexSE3Expmap >, BaseBinaryEdge< 6, vector6d, VertexPose4DoF, VertexPose4DoF >, BaseBinaryEdge< 7, Sim3, VertexSim3Expmap, VertexSim3Expmap >, BaseMultiEdge< t_dims, E >, BaseMultiEdge< 15, vector15d >, BaseMultiEdge< 9, vector9d >, BaseUnaryEdge< t_dims, E, VertexXi >, and BaseUnaryEdge< 3, Vector3< g_type >, VertexSE3Expmap >.
References OptimizableGraph::jacobianWorkspace().
Referenced by BlockSolver< BlockSolverTraits< t_type, 6, 3 > >::buildSystem().
|
pure virtual |
maps the internal matrix to some external memory location, you need to provide the memory before calling constructQuadraticForm
| d | the memory location to which we map |
| i | index of the vertex i |
| j | index of the vertex j (j > i, upper triangular fashion) |
| rowMajor | if true, will write in rowMajor order to the block. Since EIGEN is columnMajor by default, this results in writing the transposed |
Implemented in BaseBinaryEdge< D, E, VertexXi, VertexXj >, BaseBinaryEdge< 3, Vector3< g_type >, VertexSBAPointXYZ, VertexSE3Expmap >, BaseBinaryEdge< 6, SE3Quat, VertexSE3Expmap, VertexSE3Expmap >, BaseBinaryEdge< 6, vector6d, VertexPose4DoF, VertexPose4DoF >, BaseBinaryEdge< 7, Sim3, VertexSim3Expmap, VertexSim3Expmap >, BaseMultiEdge< t_dims, E >, BaseMultiEdge< 15, vector15d >, BaseMultiEdge< 9, vector9d >, BaseUnaryEdge< t_dims, E, VertexXi >, and BaseUnaryEdge< 3, Vector3< g_type >, VertexSE3Expmap >.
Referenced by BlockSolver< Traits >::buildStructure(), and BlockSolver< Traits >::updateStructure().