33 using namespace Eigen;
58 assert(to && to->
vertex());
60 VertexType::EstimateType pose=v->estimate();
61 VertexType::EstimateType delta =
_robotPoseObject->vertex()->estimate().inverse()*pose;
62 Vector3d translation=delta.translation();
63 double range2=translation.squaredNorm();
68 translation.normalize();
69 double bearing=acos(translation.x());
70 if (fabs(bearing)>
_fov)
72 AngleAxisd a(delta.rotation());
82 std::list<PoseObject*>::reverse_iterator it=r->
trajectory().rbegin();
92 for (std::set<BaseWorldObject*>::iterator it=
world()->objects().begin();
WorldObjectType::VertexType VertexType
bool isVisible(WorldObjectType *to)
InformationType _information
GaussianSampler< typename EdgeType::ErrorVector, InformationType > _sampler
BaseEdge< D, Isometry3D >::ErrorVector ErrorVector
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SensorPose3D(const std::string &name_)
SampleType generateSample()
double _maxAngularDifference
BaseEdge< D, Isometry3D >::Measurement Measurement
Edge between two 3D pose vertices.
virtual bool setMeasurementFromState()
void addNoise(EdgeType *e)
virtual void setMeasurement(const Isometry3D &m)
const InformationType & information()
EIGEN_STRONG_INLINE void setInformation(const InformationType &information)
TrajectoryType & trajectory()
PoseObject * _robotPoseObject
OptimizableGraph * graph()
std::set< BaseWorldObject * > & objects()
std::set< PoseObject * > _posesToIgnore
virtual bool addEdge(HyperGraph::Edge *e)
Isometry3D fromVectorMQT(const Vector6d &v)
void setInformation(const InformationType &information_)
EdgeType * mkEdge(WorldObjectType *object)
EIGEN_STRONG_INLINE const Measurement & measurement() const
accessor functions for the measurement represented by the edge