43 e->setMeasurement(e->measurement() + n);
50 assert(to && to->vertex());
55 p1 = iRobot * v->estimateP1();
56 p2 = iRobot * v->estimateP2();
58 Vector3d vp1(p1.x(), p1.y(), 0.);
59 Vector3d vp2(p2.x(), p2.y(), 0.);
60 Vector3d cp = vp1.cross(vp2);
61 if (cp[2] < 0)
return false;
64 bool clip1 =
false, clip2 =
false;
106 std::list<PoseObject*>::reverse_iterator it = r->trajectory().rbegin();
108 while (it != r->trajectory().rend() && count < 1) {
113 for (std::set<BaseWorldObject*>::iterator it =
world()->
objects().begin();
119 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
EdgeSE2Segment2DLine EdgeType
SampleType generateSample()
return a sample of the Gaussian distribution
SE2 inverse() const
invert :-)
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SensorSegment2DLine(const std::string &name_)
bool isVisible(WorldObjectType *to)
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)