g2o
|
edge representing the observation of a world feature by a camera More...
Public Member Functions | |
EdgeObservationBAL () | |
virtual bool | read (std::istream &) |
read the vertex from a stream, i.e., the internal state of the vertex More... | |
virtual bool | write (std::ostream &) const |
write the vertex to a stream More... | |
template<typename T > | |
void | cross (const T x[3], const T y[3], T result[3]) const |
template<typename T > | |
T | dot (const T x[3], const T y[3]) const |
template<typename T > | |
T | squaredNorm (const T x[3]) const |
template<typename T > | |
bool | operator() (const T *camera, const T *point, T *error) const |
void | computeError () |
void | linearizeOplus () |
Public Member Functions inherited from g2o::BaseBinaryEdge< 2, Vector2d, VertexCameraBAL, VertexPointBAL > | |
BaseBinaryEdge () | |
virtual OptimizableGraph::Vertex * | createFrom () |
virtual OptimizableGraph::Vertex * | createTo () |
virtual OptimizableGraph::Vertex * | createVertex (int i) |
virtual void | resize (size_t size) |
virtual bool | allVerticesFixed () const |
virtual void | linearizeOplus (JacobianWorkspace &jacobianWorkspace) |
const JacobianXiOplusType & | jacobianOplusXi () const |
returns the result of the linearization in the manifold space for the node xi More... | |
const JacobianXjOplusType & | jacobianOplusXj () const |
returns the result of the linearization in the manifold space for the node xj More... | |
virtual void | constructQuadraticForm () |
virtual void | mapHessianMemory (double *d, int i, int j, bool rowMajor) |
Public Member Functions inherited from g2o::BaseEdge< D, Vector2d > | |
BaseEdge () | |
virtual | ~BaseEdge () |
virtual double | chi2 () const |
computes the chi2 based on the cached error value, only valid after computeError has been called. More... | |
virtual const double * | errorData () const |
returns the error vector cached after calling the computeError; More... | |
virtual double * | errorData () |
const ErrorVector & | error () const |
ErrorVector & | error () |
EIGEN_STRONG_INLINE const InformationType & | information () const |
information matrix of the constraint More... | |
EIGEN_STRONG_INLINE InformationType & | information () |
EIGEN_STRONG_INLINE void | setInformation (const InformationType &information) |
virtual const double * | informationData () const |
returns the memory of the information matrix, usable for example with a Eigen::Map<MatrixXD> More... | |
virtual double * | informationData () |
EIGEN_STRONG_INLINE const Measurement & | measurement () const |
accessor functions for the measurement represented by the edge More... | |
virtual void | setMeasurement (const Measurement &m) |
virtual int | rank () const |
virtual void | initialEstimate (const OptimizableGraph::VertexSet &, OptimizableGraph::Vertex *) |
Public Member Functions inherited from g2o::OptimizableGraph::Edge | |
Edge () | |
virtual | ~Edge () |
virtual Edge * | clone () const |
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 More... | |
void | setRobustKernel (RobustKernel *ptr) |
virtual double | initialEstimatePossible (const OptimizableGraph::VertexSet &from, OptimizableGraph::Vertex *to) |
int | level () const |
returns the level of the edge More... | |
void | setLevel (int l) |
sets the level of the edge More... | |
int | dimension () const |
returns the dimensions of the error function More... | |
G2O_ATTRIBUTE_DEPRECATED (virtual Vertex *createFrom()) | |
G2O_ATTRIBUTE_DEPRECATED (virtual Vertex *createTo()) | |
long long | internalId () const |
the internal ID of the edge More... | |
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 More... | |
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 () |
HyperGraphElement * | clone () const |
Public Member Functions inherited from g2o::HyperGraph::DataContainer | |
DataContainer () | |
virtual | ~DataContainer () |
const Data * | userData () const |
the user data associated with this vertex More... | |
Data * | userData () |
void | setUserData (Data *obs) |
void | addUserData (Data *obs) |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | |
Additional Inherited Members | |
Public Types inherited from g2o::BaseBinaryEdge< 2, Vector2d, VertexCameraBAL, VertexPointBAL > | |
typedef VertexCameraBAL | VertexXiType |
typedef VertexPointBAL | VertexXjType |
typedef BaseEdge< D, Vector2d >::Measurement | Measurement |
typedef Eigen::Matrix< double, D, Di, D==1?Eigen::RowMajor:Eigen::ColMajor >::AlignedMapType | JacobianXiOplusType |
typedef Eigen::Matrix< double, D, Dj, D==1?Eigen::RowMajor:Eigen::ColMajor >::AlignedMapType | JacobianXjOplusType |
typedef BaseEdge< D, Vector2d >::ErrorVector | ErrorVector |
typedef BaseEdge< D, Vector2d >::InformationType | InformationType |
typedef Eigen::Map< Eigen::Matrix< double, Di, Dj, Di==1?Eigen::RowMajor:Eigen::ColMajor >, Eigen::Matrix< double, Di, Dj, Di==1?Eigen::RowMajor:Eigen::ColMajor >::Flags &Eigen::AlignedBit?Eigen::Aligned:Eigen::Unaligned > | HessianBlockType |
typedef Eigen::Map< Eigen::Matrix< double, Dj, Di, Dj==1?Eigen::RowMajor:Eigen::ColMajor >, Eigen::Matrix< double, Dj, Di, Dj==1?Eigen::RowMajor:Eigen::ColMajor >::Flags &Eigen::AlignedBit?Eigen::Aligned:Eigen::Unaligned > | HessianBlockTransposedType |
Public Types inherited from g2o::BaseEdge< D, Vector2d > | |
typedef Vector2d | Measurement |
typedef Eigen::Matrix< double, D, 1, Eigen::ColMajor > | ErrorVector |
typedef Eigen::Matrix< double, D, D, Eigen::ColMajor > | InformationType |
Static Public Attributes inherited from g2o::BaseBinaryEdge< 2, Vector2d, VertexCameraBAL, VertexPointBAL > | |
static const int | Di |
static const int | Dj |
static const int | Dimension |
Static Public Attributes inherited from g2o::BaseEdge< D, Vector2d > | |
static const int | Dimension |
Protected Member Functions inherited from g2o::BaseEdge< D, Vector2d > | |
InformationType | robustInformation (const Vector3D &rho) |
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 () |
Protected Attributes inherited from g2o::BaseBinaryEdge< 2, Vector2d, VertexCameraBAL, VertexPointBAL > | |
bool | _hessianRowMajor |
HessianBlockType | _hessian |
HessianBlockTransposedType | _hessianTransposed |
JacobianXiOplusType | _jacobianOplusXi |
JacobianXjOplusType | _jacobianOplusXj |
Protected Attributes inherited from g2o::BaseEdge< D, Vector2d > | |
Measurement | _measurement |
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 More... | |
Protected Attributes inherited from g2o::HyperGraph::DataContainer | |
Data * | _userData |
edge representing the observation of a world feature by a camera
see: http://grail.cs.washington.edu/projects/bal/ We use a pinhole camera model; the parameters we estimate for each camera area rotation R, a translation t, a focal length f and two radial distortion parameters k1 and k2. The formula for projecting a 3D point X into a camera R,t,f,k1,k2 is: P = R * X + t (conversion from world to camera coordinates) p = -P / P.z (perspective division) p' = f * r(p) * p (conversion to pixel coordinates) where P.z is the third (z) coordinate of P.
In the last equation, r(p) is a function that computes a scaling factor to undo the radial distortion: r(p) = 1.0 + k1 * ||p||^2 + k2 * ||p||^4.
This gives a projection in pixels, where the origin of the image is the center of the image, the positive x-axis points right, and the positive y-axis points up (in addition, in the camera coordinate system, the positive z-axis points backwards, so the camera is looking down the negative z-axis, as in OpenGL).
Definition at line 156 of file bal_example.cpp.
|
inline |
Definition at line 160 of file bal_example.cpp.
|
inlinevirtual |
Implements g2o::OptimizableGraph::Edge.
Definition at line 246 of file bal_example.cpp.
References g2o::BaseVertex< D, T >::estimate().
|
inline |
Definition at line 175 of file bal_example.cpp.
|
inline |
Definition at line 183 of file bal_example.cpp.
|
inlinevirtual |
Linearizes the oplus operator in the vertex, and stores the result in temporary variables _jacobianOplusXi and _jacobianOplusXj
Reimplemented from g2o::BaseBinaryEdge< 2, Vector2d, VertexCameraBAL, VertexPointBAL >.
Definition at line 254 of file bal_example.cpp.
References g2o::BaseVertex< D, T >::estimate().
|
inline |
templatized function to compute the error as described in the comment above
Definition at line 192 of file bal_example.cpp.
|
inlinevirtual |
read the vertex from a stream, i.e., the internal state of the vertex
Implements g2o::OptimizableGraph::Edge.
Definition at line 163 of file bal_example.cpp.
References __PRETTY_FUNCTION__.
|
inline |
Definition at line 186 of file bal_example.cpp.
|
inlinevirtual |
write the vertex to a stream
Implements g2o::OptimizableGraph::Edge.
Definition at line 168 of file bal_example.cpp.
References __PRETTY_FUNCTION__.
EdgeObservationBAL::EIGEN_MAKE_ALIGNED_OPERATOR_NEW |
Definition at line 159 of file bal_example.cpp.