32 #ifdef G2O_HAVE_OPENGL 48 J.block<3,3>(0,0) = -Matrix3D::Identity();
67 for (
int i=0; i<3; i++) is >> meas[i];
71 for (
int i=0; i<
information().rows() && is.good(); i++)
72 for (
int j=i; j<
information().cols() && is.good(); j++){
88 for (
int i=0; i<3; i++) os <<
measurement()[i] <<
" ";
116 perr.head<2>() = p.head<2>()/p(2);
124 #ifdef EDGE_PROJECT_DISPARITY_ANALYTIC_JACOBIAN 157 J.block<3,3>(0,6) =
cache->
w2l().rotation();
161 Eigen::Matrix<double,3,9,Eigen::ColMajor> Jhom;
164 Jhom.block<2,9>(0,0) = 1/(Zprime(2)*Zprime(2)) * (Jprime.block<2,9>(0,0)*Zprime(2) - Zprime.head<2>() * Jprime.block<1,9>(2,0));
165 Jhom.block<1,9>(2,0) = - 1/(Zprime(2)*Zprime(2)) * Jprime.block<1,9>(2,0);
186 perr.head<2>() = p.head<2>()/p(2);
198 assert(from.size() == 1 && from.count(
_vertices[0]) == 1 &&
"Can not initialize VertexDepthCam position by VertexTrackXYZ");
207 const Eigen::Matrix<double, 3, 3, Eigen::ColMajor>& invKcam =
params->
invKcam();
218 #ifdef G2O_HAVE_OPENGL 223 if (
typeid(*element).name()!=_typeName)
225 refreshPropertyPtrs(params_);
226 if (! _previousParams)
229 if (_show && !_show->value())
234 if (! fromEdge || ! toEdge)
238 glPushAttrib(GL_ENABLE_BIT);
239 glDisable(GL_LIGHTING);
241 glVertex3f((
float)fromTransform.translation().x(),(float)fromTransform.translation().y(),(float)fromTransform.translation().z());
bool installParameter(ParameterType *&p, size_t argNo, int paramId=-1)
const Affine3D & w2i() const
return the world to image transform
const Isometry3D & w2l() const
const Matrix3D & invKcam() const
virtual void initialEstimate(const OptimizableGraph::VertexSet &from, OptimizableGraph::Vertex *to)
Eigen::Matrix< double, 3, 1, Eigen::ColMajor > Vector3D
Abstract action that operates on a graph entity.
std::set< Vertex * > VertexSet
const Isometry3D & offset() const
rotation of the offset as 3x3 rotation matrix
const ParameterCamera * cameraParameter() const
virtual bool read(std::istream &is)
read the vertex from a stream, i.e., the internal state of the vertex
virtual bool setMeasurementFromState()
JacobianXiOplusType _jacobianOplusXi
edge from a track to a depth camera node using a disparity measurement
bool setParameterId(int argNum, int paramId)
const VertexContainer & vertices() const
#define LANDMARK_EDGE_COLOR
Eigen::Matrix< double, 3, 9, Eigen::ColMajor > J
void resolveCache(CacheType *&cache, OptimizableGraph::Vertex *, const std::string &_type, const ParameterVector ¶meters)
std::vector< Parameter * > ParameterVector
Eigen::Transform< double, 3, Eigen::Isometry, Eigen::ColMajor > Isometry3D
Vertex for a tracked point in space.
virtual bool resolveCaches()
void setEstimate(const EstimateType &et)
set the estimate for the vertex also calls updateCache()
virtual bool write(std::ostream &os) const
write the vertex to a stream
A general case Vertex for optimization.
void resizeParameters(size_t newSize)
virtual void linearizeOplus()
EIGEN_STRONG_INLINE const InformationType & information() const
information matrix of the constraint
virtual void setMeasurement(const Vector3D &m)
const EstimateType & estimate() const
return the current estimate of the vertex
3D pose Vertex, represented as an Isometry3D
const Matrix3D & Kcam_inverseOffsetR() const
JacobianXjOplusType _jacobianOplusXj
EdgeSE3PointXYZDisparity()
EIGEN_STRONG_INLINE const Measurement & measurement() const
accessor functions for the measurement represented by the edge
VertexContainer _vertices