|
g2o
|
#include <base_fixed_sized_edge.h>


Classes | |
| struct | HessianTupleType |
| struct | HessianTupleType< std::index_sequence< Ints... > > |
Public Types | |
| template<int N, typename... Types> | |
| using | NthType = typename std::tuple_element< N, std::tuple< Types... > >::type |
| template<int VertexN> | |
| using | VertexXnType = NthType< VertexN, VertexTypes... > |
| The type of the N-th vertex. | |
| typedef BaseEdge< D, E >::Measurement | Measurement |
| typedef BaseEdge< D, E >::ErrorVector | ErrorVector |
| typedef BaseEdge< D, E >::InformationType | InformationType |
| template<int EdgeDimension, int VertexDimension> | |
| using | JacobianType = typename Eigen::Matrix< double, EdgeDimension, VertexDimension, EdgeDimension==1 ? Eigen::RowMajor :Eigen::ColMajor >::AlignedMapType |
| template<int DN, int DM> | |
| using | HessianBlockType = Eigen::Map< Eigen::Matrix< double, DN, DM, DN==1 ? Eigen::RowMajor :Eigen::ColMajor >, Eigen::Matrix< double, DN, DM, DN==1 ? Eigen::RowMajor :Eigen::ColMajor >::Flags &Eigen::PacketAccessBit ? Eigen::Aligned :Eigen::Unaligned > |
| it requires quite some ugly code to get the type of hessians... | |
| template<int K> | |
| using | HessianBlockTypeK = HessianBlockType< VertexXnType< internal::index_to_pair(K).first >::Dimension, VertexXnType< internal::index_to_pair(K).second >::Dimension > |
| template<int K> | |
| using | HessianBlockTypeKTransposed = HessianBlockType< VertexXnType< internal::index_to_pair(K).second >::Dimension, VertexXnType< internal::index_to_pair(K).first >::Dimension > |
| using | HessianTuple = typename HessianTupleType< std::make_index_sequence< _nr_of_vertex_pairs > >::type |
| using | HessianTupleTransposed = typename HessianTupleType< std::make_index_sequence< _nr_of_vertex_pairs > >::typeTransposed |
| using | HessianRowMajorStorage = std::array< bool, _nr_of_vertex_pairs > |
Public Types inherited from g2o::BaseEdge< D, E > | |
| typedef E | Measurement |
| typedef internal::BaseEdgeTraits< D >::ErrorVector | ErrorVector |
| typedef internal::BaseEdgeTraits< D >::InformationType | InformationType |
Public Member Functions | |
| template<int VertexN> | |
| constexpr std::enable_if< VertexXnType< VertexN >::Dimension!=-1, int >::type | vertexDimension () const |
| template<int VertexN> | |
| std::enable_if< VertexXnType< VertexN >::Dimension==-1, int >::type | vertexDimension () const |
| template<int VertexN> | |
| const VertexXnType< VertexN > * | vertexXn () const |
| template<int VertexN> | |
| VertexXnType< VertexN > * | vertexXn () |
| BaseFixedSizedEdge () | |
| template<typename... CtorArgs> | |
| OptimizableGraph::Vertex * | createVertex (int i, CtorArgs... args) |
| create an instance of the Nth VertexType | |
| virtual void | resize (size_t size) |
| template<std::size_t... Ints> | |
| bool | allVerticesFixedNs (std::index_sequence< Ints... >) const |
| virtual bool | allVerticesFixed () const |
| virtual void | linearizeOplus (JacobianWorkspace &jacobianWorkspace) |
| template<std::size_t... Ints> | |
| void | linearizeOplus_allocate (JacobianWorkspace &jacobianWorkspace, std::index_sequence< Ints... >) |
| virtual void | linearizeOplus () |
| template<std::size_t... Ints> | |
| void | linearizeOplusNs (std::index_sequence< Ints... >) |
| template<int N> | |
| void | linearizeOplusN () |
| template<int N> | |
| const std::tuple_element< N, std::tuple< JacobianType< D, VertexTypes::Dimension >... > >::type & | jacobianOplusXn () const |
| template<int N> | |
| std::tuple_element< N, std::tuple< JacobianType< D, VertexTypes::Dimension >... > >::type & | jacobianOplusXn () |
| virtual void | constructQuadraticForm () |
| template<std::size_t... Ints> | |
| void | constructQuadraticFormNs (const InformationType &omega, const ErrorVector &weightedError, std::index_sequence< Ints... >) |
| template<int N> | |
| void | constructQuadraticFormN (const InformationType &omega, const ErrorVector &weightedError) |
| template<int N, typename AtOType > | |
| void | constructOffDiagonalQuadraticFormMs (const AtOType &, std::index_sequence<>) |
| template<int N, std::size_t... Ints, typename AtOType > | |
| void | constructOffDiagonalQuadraticFormMs (const AtOType &AtO, std::index_sequence< Ints... >) |
| template<int N, int M, typename AtOType > | |
| void | constructOffDiagonalQuadraticFormM (const AtOType &AtO) |
| virtual void | mapHessianMemory (double *d, int i, int j, bool rowMajor) |
| template<std::size_t... Ints> | |
| bool | allVerticesFixedNs (std::index_sequence< Ints... >) const |
| template<std::size_t... Ints> | |
| void | constructQuadraticFormNs (const InformationType &omega, const ErrorVector &weightedError, std::index_sequence< Ints... >) |
| template<int N, typename AtOType > | |
| void | constructOffDiagonalQuadraticFormMs (const AtOType &, std::index_sequence<>) |
| template<int N, std::size_t... Ints, typename AtOType > | |
| void | constructOffDiagonalQuadraticFormMs (const AtOType &AtO, std::index_sequence< Ints... >) |
| template<int N, int M, typename AtOType > | |
| void | constructOffDiagonalQuadraticFormM (const AtOType &AtO) |
| template<int N> | |
| void | constructQuadraticFormN (const InformationType &omega, const ErrorVector &weightedError) |
| template<std::size_t... Ints> | |
| void | linearizeOplus_allocate (JacobianWorkspace &jacobianWorkspace, std::index_sequence< Ints... >) |
| template<int N> | |
| void | linearizeOplusN () |
| template<std::size_t... Ints> | |
| void | linearizeOplusNs (std::index_sequence< Ints... >) |
Public Member Functions inherited from g2o::BaseEdge< D, E > | |
| BaseEdge () | |
| BaseEdge & | operator= (const BaseEdge &)=delete |
| BaseEdge (const BaseEdge &)=delete | |
| virtual | ~BaseEdge () |
| virtual double | chi2 () const |
| virtual const double * | errorData () const |
| returns the error vector cached after calling the computeError; | |
| virtual double * | errorData () |
| const ErrorVector & | error () const |
| ErrorVector & | error () |
| EIGEN_STRONG_INLINE const InformationType & | information () const |
| information matrix of the constraint | |
| EIGEN_STRONG_INLINE InformationType & | information () |
| void | setInformation (const InformationType &information) |
| virtual const double * | informationData () const |
| virtual double * | informationData () |
| EIGEN_STRONG_INLINE const Measurement & | measurement () const |
| accessor functions for the measurement represented by the edge | |
| virtual void | setMeasurement (const Measurement &m) |
| virtual int | rank () const |
| virtual void | initialEstimate (const OptimizableGraph::VertexSet &, OptimizableGraph::Vertex *) |
| template<int Dim = D> | |
| std::enable_if< Dim==-1, void >::type | setDimension (int dim) |
Public Member Functions inherited from g2o::OptimizableGraph::Edge | |
| Edge () | |
| virtual | ~Edge () |
| virtual void | computeError ()=0 |
| virtual bool | setMeasurementData (const double *m) |
| virtual bool | getMeasurementData (double *m) const |
| virtual int | measurementDimension () const |
| virtual bool | setMeasurementFromState () |
| RobustKernel * | robustKernel () const |
| if NOT NULL, error of this edge will be robustifed with the kernel | |
| void | setRobustKernel (RobustKernel *ptr) |
| virtual double | initialEstimatePossible (const OptimizableGraph::VertexSet &from, OptimizableGraph::Vertex *to) |
| int | level () const |
| returns the level of the edge | |
| void | setLevel (int l) |
| sets the level of the edge | |
| int | dimension () const |
| returns the dimensions of the error function | |
| G2O_ATTRIBUTE_DEPRECATED (virtual Vertex *createFrom()) | |
| G2O_ATTRIBUTE_DEPRECATED (virtual Vertex *createTo()) | |
| virtual Vertex * | createVertex (int) |
| virtual bool | read (std::istream &is)=0 |
| read the vertex from a stream, i.e., the internal state of the vertex | |
| virtual bool | write (std::ostream &os) const =0 |
| write the vertex to a stream | |
| long long | internalId () const |
| the internal ID of the edge | |
| OptimizableGraph * | graph () |
| const OptimizableGraph * | graph () const |
| bool | setParameterId (int argNum, int paramId) |
| const Parameter * | parameter (int argNo) const |
| size_t | numParameters () const |
| void | resizeParameters (size_t newSize) |
Public Member Functions inherited from g2o::HyperGraph::Edge | |
| Edge (int id=InvalidId) | |
| creates and empty edge with no vertices | |
| const VertexContainer & | vertices () const |
| VertexContainer & | vertices () |
| const Vertex * | vertex (size_t i) const |
| Vertex * | vertex (size_t i) |
| void | setVertex (size_t i, Vertex *v) |
| int | id () const |
| void | setId (int id) |
| virtual HyperGraphElementType | elementType () const |
| int | numUndefinedVertices () const |
Public Member Functions inherited from g2o::HyperGraph::HyperGraphElement | |
| virtual | ~HyperGraphElement () |
Public Member Functions inherited from g2o::HyperGraph::DataContainer | |
| DataContainer () | |
| virtual | ~DataContainer () |
| const Data * | userData () const |
| the user data associated with this vertex | |
| Data * | userData () |
| void | setUserData (Data *obs) |
| void | addUserData (Data *obs) |
Static Public Member Functions | |
| template<int VertexN> | |
| static constexpr int | VertexDimension () |
| Size of the N-th vertex at compile time. | |
Static Public Attributes | |
| static const int | Dimension = BaseEdge<D, E>::Dimension |
| static const std::size_t | _nr_of_vertices = sizeof...(VertexTypes) |
| static const std::size_t | _nr_of_vertex_pairs |
Static Public Attributes inherited from g2o::BaseEdge< D, E > | |
| static constexpr int | Dimension = internal::BaseEdgeTraits<D>::Dimension |
Protected Attributes | |
| HessianRowMajorStorage | _hessianRowMajor |
| HessianTuple | _hessianTuple |
| HessianTupleTransposed | _hessianTupleTransposed |
| std::tuple< JacobianType< D, VertexTypes::Dimension >... > | _jacobianOplus |
Protected Attributes inherited from g2o::BaseEdge< D, E > | |
| Measurement | _measurement |
| the measurement of the edge | |
| InformationType | _information |
| ErrorVector | _error |
Protected Attributes inherited from g2o::OptimizableGraph::Edge | |
| int | _dimension |
| int | _level |
| RobustKernel * | _robustKernel |
| long long | _internalId |
| std::vector< int > | _cacheIds |
| std::vector< std::string > | _parameterTypes |
| std::vector< Parameter ** > | _parameters |
| std::vector< int > | _parameterIds |
Protected Attributes inherited from g2o::HyperGraph::Edge | |
| VertexContainer | _vertices |
| int | _id |
| unique id | |
Protected Attributes inherited from g2o::HyperGraph::DataContainer | |
| Data * | _userData |
Additional Inherited Members | |
Protected Member Functions inherited from g2o::BaseEdge< D, E > | |
| InformationType | robustInformation (const Vector3 &rho) const |
| bool | writeInformationMatrix (std::ostream &os) const |
| write the upper trinagular part of the information matrix into the stream | |
| bool | readInformationMatrix (std::istream &is) |
| bool | writeParamIds (std::ostream &os) const |
| write the param IDs that are potentially used by the edge | |
| bool | readParamIds (std::istream &is) |
| reads the param IDs from the stream | |
Protected Member Functions inherited from g2o::OptimizableGraph::Edge | |
| template<typename ParameterType > | |
| bool | installParameter (ParameterType *&p, size_t argNo, int paramId=-1) |
| template<typename CacheType > | |
| void | resolveCache (CacheType *&cache, OptimizableGraph::Vertex *, const std::string &_type, const ParameterVector ¶meters) |
| bool | resolveParameters () |
| virtual bool | resolveCaches () |
Definition at line 125 of file base_fixed_sized_edge.h.
| typedef BaseEdge<D,E>::ErrorVector g2o::BaseFixedSizedEdge< D, E, VertexTypes >::ErrorVector |
Definition at line 166 of file base_fixed_sized_edge.h.
| using g2o::BaseFixedSizedEdge< D, E, VertexTypes >::HessianBlockType = Eigen::Map< Eigen::Matrix<double, DN, DM, DN == 1 ? Eigen::RowMajor : Eigen::ColMajor>, Eigen::Matrix<double, DN, DM, DN == 1 ? Eigen::RowMajor : Eigen::ColMajor>::Flags & Eigen::PacketAccessBit ? Eigen::Aligned : Eigen::Unaligned> |
it requires quite some ugly code to get the type of hessians...
Definition at line 176 of file base_fixed_sized_edge.h.
| using g2o::BaseFixedSizedEdge< D, E, VertexTypes >::HessianBlockTypeK = HessianBlockType< VertexXnType<internal::index_to_pair(K).first>::Dimension, VertexXnType<internal::index_to_pair(K).second>::Dimension> |
Definition at line 185 of file base_fixed_sized_edge.h.
| using g2o::BaseFixedSizedEdge< D, E, VertexTypes >::HessianBlockTypeKTransposed = HessianBlockType< VertexXnType<internal::index_to_pair(K).second>::Dimension, VertexXnType<internal::index_to_pair(K).first>::Dimension> |
Definition at line 189 of file base_fixed_sized_edge.h.
| using g2o::BaseFixedSizedEdge< D, E, VertexTypes >::HessianRowMajorStorage = std::array<bool, _nr_of_vertex_pairs> |
Definition at line 206 of file base_fixed_sized_edge.h.
| using g2o::BaseFixedSizedEdge< D, E, VertexTypes >::HessianTuple = typename HessianTupleType< std::make_index_sequence<_nr_of_vertex_pairs> >::type |
Definition at line 202 of file base_fixed_sized_edge.h.
| using g2o::BaseFixedSizedEdge< D, E, VertexTypes >::HessianTupleTransposed = typename HessianTupleType< std::make_index_sequence<_nr_of_vertex_pairs> >::typeTransposed |
Definition at line 204 of file base_fixed_sized_edge.h.
| typedef BaseEdge<D,E>::InformationType g2o::BaseFixedSizedEdge< D, E, VertexTypes >::InformationType |
Definition at line 167 of file base_fixed_sized_edge.h.
| using g2o::BaseFixedSizedEdge< D, E, VertexTypes >::JacobianType = typename Eigen::Matrix< double, EdgeDimension, VertexDimension, EdgeDimension == 1 ? Eigen::RowMajor : Eigen::ColMajor>::AlignedMapType |
Definition at line 170 of file base_fixed_sized_edge.h.
| typedef BaseEdge<D,E>::Measurement g2o::BaseFixedSizedEdge< D, E, VertexTypes >::Measurement |
Definition at line 165 of file base_fixed_sized_edge.h.
| using g2o::BaseFixedSizedEdge< D, E, VertexTypes >::NthType = typename std::tuple_element<N, std::tuple<Types...> >::type |
Definition at line 128 of file base_fixed_sized_edge.h.
| using g2o::BaseFixedSizedEdge< D, E, VertexTypes >::VertexXnType = NthType<VertexN, VertexTypes...> |
The type of the N-th vertex.
Definition at line 131 of file base_fixed_sized_edge.h.
|
inline |
Definition at line 208 of file base_fixed_sized_edge.h.
|
virtual |
Implements g2o::OptimizableGraph::Edge.
Definition at line 44 of file base_fixed_sized_edge.hpp.
| bool g2o::BaseFixedSizedEdge< D, E, VertexTypes >::allVerticesFixedNs | ( | std::index_sequence< Ints... > | ) | const |
| bool g2o::BaseFixedSizedEdge< D, E, VertexTypes >::allVerticesFixedNs | ( | std::index_sequence< Ints... > | ) | const |
Definition at line 38 of file base_fixed_sized_edge.hpp.
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::constructOffDiagonalQuadraticFormM | ( | const AtOType & | AtO | ) |
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::constructOffDiagonalQuadraticFormM | ( | const AtOType & | AtO | ) |
Definition at line 91 of file base_fixed_sized_edge.hpp.
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::constructOffDiagonalQuadraticFormMs | ( | const AtOType & | , |
| std::index_sequence<> | |||
| ) |
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::constructOffDiagonalQuadraticFormMs | ( | const AtOType & | , |
| std::index_sequence<> | |||
| ) |
Definition at line 77 of file base_fixed_sized_edge.hpp.
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::constructOffDiagonalQuadraticFormMs | ( | const AtOType & | AtO, |
| std::index_sequence< Ints... > | |||
| ) |
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::constructOffDiagonalQuadraticFormMs | ( | const AtOType & | AtO, |
| std::index_sequence< Ints... > | |||
| ) |
Definition at line 83 of file base_fixed_sized_edge.hpp.
|
virtual |
computes the (block) elements of the Hessian matrix of the linearized least squares.
Implements g2o::OptimizableGraph::Edge.
Definition at line 49 of file base_fixed_sized_edge.hpp.
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::constructQuadraticFormN | ( | const InformationType & | omega, |
| const ErrorVector & | weightedError | ||
| ) |
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::constructQuadraticFormN | ( | const InformationType & | omega, |
| const ErrorVector & | weightedError | ||
| ) |
Definition at line 114 of file base_fixed_sized_edge.hpp.
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::constructQuadraticFormNs | ( | const InformationType & | omega, |
| const ErrorVector & | weightedError, | ||
| std::index_sequence< Ints... > | |||
| ) |
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::constructQuadraticFormNs | ( | const InformationType & | omega, |
| const ErrorVector & | weightedError, | ||
| std::index_sequence< Ints... > | |||
| ) |
Definition at line 67 of file base_fixed_sized_edge.hpp.
|
inline |
create an instance of the Nth VertexType
Definition at line 220 of file base_fixed_sized_edge.h.
References g2o::internal::createNthVertexType().
|
inline |
returns the result of the linearization in the manifold space for the nodes xn
Definition at line 262 of file base_fixed_sized_edge.h.
References g2o::BaseFixedSizedEdge< D, E, VertexTypes >::_jacobianOplus.
|
inline |
returns the result of the linearization in the manifold space for the nodes xn
Definition at line 254 of file base_fixed_sized_edge.h.
References g2o::BaseFixedSizedEdge< D, E, VertexTypes >::_jacobianOplus.
|
virtual |
Linearizes the oplus operator in the vertex, and stores the result in temporary variables _jacobianOplus
Reimplemented in g2o::Edge_V_V_GICP, g2o::EdgeProjectP2MC, g2o::EdgeProjectP2SC, g2o::EdgeProjectPSI2UV, g2o::EdgeStereoSE3ProjectXYZ, g2o::EdgeStereoSE3ProjectXYZOnlyPose, g2o::EdgeSE3ProjectXYZ, g2o::EdgeProjectXYZ2UV, g2o::EdgeSE3ProjectXYZOnlyPose, g2o::EdgeSE3Expmap, g2o::EdgePointXY, g2o::EdgeSE2, g2o::EdgeSE2PointXY, g2o::EdgeSE2PointXYOffset, g2o::EdgeSE2Prior, g2o::EdgeSE2XYPrior, g2o::EdgeXYPrior, g2o::EdgeLine2D, g2o::EdgePointXYZ, g2o::EdgeSE3, g2o::EdgeSE3Offset, g2o::EdgeSE3PointXYZ, g2o::EdgeSE3PointXYZDepth, g2o::EdgeSE3PointXYZDisparity, g2o::EdgeSE3Prior, g2o::EdgeSE3XYZPrior, and g2o::EdgeXYZPrior.
Definition at line 204 of file base_fixed_sized_edge.hpp.
|
virtual |
Linearizes the constraint in the edge in the manifold space, and store the result in the given workspace
Implements g2o::OptimizableGraph::Edge.
Definition at line 133 of file base_fixed_sized_edge.hpp.
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::linearizeOplus_allocate | ( | JacobianWorkspace & | jacobianWorkspace, |
| std::index_sequence< Ints... > | |||
| ) |
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::linearizeOplus_allocate | ( | JacobianWorkspace & | jacobianWorkspace, |
| std::index_sequence< Ints... > | |||
| ) |
Definition at line 142 of file base_fixed_sized_edge.hpp.
References g2o::JacobianWorkspace::workspaceForVertex().
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::linearizeOplusN | ( | ) |
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::linearizeOplusN | ( | ) |
Definition at line 154 of file base_fixed_sized_edge.hpp.
References g2o::cst(), g2o::ceres::internal::FixedArray< T, N, A >::data(), and g2o::ceres::internal::FixedArray< T, N, A >::fill().
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::linearizeOplusNs | ( | std::index_sequence< Ints... > | ) |
| void g2o::BaseFixedSizedEdge< D, E, VertexTypes >::linearizeOplusNs | ( | std::index_sequence< Ints... > | ) |
Definition at line 198 of file base_fixed_sized_edge.hpp.
|
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 |
Implements g2o::OptimizableGraph::Edge.
Definition at line 227 of file base_fixed_sized_edge.hpp.
|
virtual |
resizes the number of vertices connected by this edge
Reimplemented from g2o::HyperGraph::Edge.
Definition at line 30 of file base_fixed_sized_edge.hpp.
Referenced by main().
|
inlinestaticconstexpr |
Size of the N-th vertex at compile time.
Definition at line 134 of file base_fixed_sized_edge.h.
|
inlineconstexpr |
Get the size of a given Vertex. If the vertex dimension is static and by this known at compile time, we return this. Otherwise we get the size at runtime.
Definition at line 144 of file base_fixed_sized_edge.h.
|
inline |
Definition at line 148 of file base_fixed_sized_edge.h.
|
inline |
Definition at line 160 of file base_fixed_sized_edge.h.
References g2o::HyperGraph::Edge::_vertices.
|
inline |
Return a pointer to the N-th vertex, directly casted to the correct type
Definition at line 156 of file base_fixed_sized_edge.h.
References g2o::HyperGraph::Edge::_vertices.
|
protected |
Definition at line 301 of file base_fixed_sized_edge.h.
|
protected |
Definition at line 302 of file base_fixed_sized_edge.h.
|
protected |
Definition at line 303 of file base_fixed_sized_edge.h.
|
protected |
Definition at line 304 of file base_fixed_sized_edge.h.
Referenced by g2o::BaseFixedSizedEdge< D, E, VertexTypes >::jacobianOplusXn(), and g2o::BaseFixedSizedEdge< D, E, VertexTypes >::jacobianOplusXn().
|
static |
Definition at line 200 of file base_fixed_sized_edge.h.
|
static |
Definition at line 199 of file base_fixed_sized_edge.h.
|
static |
Definition at line 164 of file base_fixed_sized_edge.h.