12 using namespace Eigen;
20 for (
int i=0; i<7; i++)
23 Vector4D::MapType(meas.data()+3).
normalize();
29 for (
int i=0; i<
information().rows() && is.good(); i++)
30 for (
int j=i; j<
information().cols() && is.good(); j++){
44 for (
int i=0; i<7; i++) os << meas[i] <<
" ";
85 if (from_.count(from) > 0) {
109 for (
int i=0; i<6; i++){
110 *(params->
os) << fromV[i] <<
" ";
112 for (
int i=0; i<6; i++){
113 *(params->
os) << toV[i] <<
" ";
115 *(params->
os) << std::endl;
119 #ifdef G2O_HAVE_OPENGL 126 refreshPropertyPtrs(params_);
127 if (! _previousParams)
130 if (_show && !_show->value())
136 if (! fromEdge || ! toEdge)
139 glPushAttrib(GL_ENABLE_BIT);
140 glDisable(GL_LIGHTING);
142 glVertex3f((
float)fromEdge->
estimate().translation().x(),(float)fromEdge->
estimate().translation().y(),(float)fromEdge->
estimate().translation().z());
143 glVertex3f((
float)toEdge->
estimate().translation().x(),(float)toEdge->
estimate().translation().y(),(float)toEdge->
estimate().translation().z());
#define __PRETTY_FUNCTION__
virtual bool read(std::istream &is)
read the vertex from a stream, i.e., the internal state of the vertex
Isometry3D fromVectorQT(const Vector7d &v)
Abstract action that operates on a graph entity.
std::set< Vertex * > VertexSet
virtual HyperGraphElementAction * operator()(HyperGraph::HyperGraphElement *element, HyperGraphElementAction::Parameters *params_)
redefine this to do the action stuff. If successful, the action returns a pointer to itself ...
virtual bool write(std::ostream &os) const
write the vertex to a stream
Eigen::Matrix< double, 7, 1 > Vector7d
virtual void initialEstimate(const OptimizableGraph::VertexSet &from, OptimizableGraph::Vertex *to)
const std::string & name() const
returns the name of an action, e.g "draw"
Edge between two 3D pose vertices.
JacobianXiOplusType _jacobianOplusXi
virtual bool setMeasurementFromState()
const VertexContainer & vertices() const
virtual void setMeasurement(const Isometry3D &m)
Eigen::Transform< double, 3, Eigen::Isometry, Eigen::ColMajor > Isometry3D
Eigen::Quaterniond & normalize(Eigen::Quaterniond &q)
Vector6d toVectorMQT(const Isometry3D &t)
void setEstimate(const EstimateType &et)
set the estimate for the vertex also calls updateCache()
A general case Vertex for optimization.
EdgeSE3WriteGnuplotAction()
Isometry3D _inverseMeasurement
EIGEN_STRONG_INLINE const InformationType & information() const
information matrix of the constraint
const EstimateType & estimate() const
return the current estimate of the vertex
void computeEdgeSE3Gradient(Isometry3D &E, Eigen::MatrixBase< Derived > const &JiConstRef, Eigen::MatrixBase< Derived > const &JjConstRef, const Isometry3D &Z, const Isometry3D &Xi, const Isometry3D &Xj, const Isometry3D &Pi, const Isometry3D &Pj)
3D pose Vertex, represented as an Isometry3D
JacobianXjOplusType _jacobianOplusXj
Vector7d toVectorQT(const Isometry3D &t)
Matrix< double, 6, 1, Eigen::ColMajor > Vector6d
VertexContainer _vertices