40 cerr <<
"I am the constructor" << endl;
45 e->setMeasurement(e->measurement() + n);
52 assert(to && to->vertex());
57 p1 = iRobot * v->estimateP1();
58 p2 = iRobot * v->estimateP2();
60 Vector3d vp1(p1.x(), p1.y(), 0.);
61 Vector3d vp2(p2.x(), p2.y(), 0.);
62 Vector3d cp = vp1.cross(vp2);
63 if (cp[2] < 0)
return false;
66 bool clip1 =
false, clip2 =
false;
110 std::list<PoseObject*>::reverse_iterator it = r->trajectory().rbegin();
112 while (it != r->trajectory().rend() && count < 1) {
117 for (std::set<BaseWorldObject*>::iterator it =
world()->
objects().begin();
123 e->setMeasurementFromState();
internal::BaseEdgeTraits< D >::ErrorVector ErrorVector
OptimizableGraph * graph() const
WorldObjectType::VertexType VertexType
WorldObjectSegment2D WorldObjectType
EdgeType * mkEdge(WorldObjectType *object)
PoseObject * _robotPoseObject
const InformationType & information()
GaussianSampler< typename EdgeType::ErrorVector, InformationType > _sampler
EdgeSE2Segment2D EdgeType
SampleType generateSample()
return a sample of the Gaussian distribution
SE2 inverse() const
invert :-)
bool isVisible(WorldObjectType *to)
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SensorSegment2D(const std::string &name_)
virtual void addNoise(EdgeType *e)
std::set< BaseWorldObject * > & objects()
int clipSegmentCircle(Eigen::Vector2d &p1, Eigen::Vector2d &p2, double r)
int clipSegmentFov(Eigen::Vector2d &p1, Eigen::Vector2d &p2, double min, double max)
WorldObject< VertexSegment2D > WorldObjectSegment2D
Robot< WorldObjectSE2 > Robot2D
virtual bool addEdge(HyperGraph::Edge *e)