42 EdgeType::ErrorVector n =
_sampler.generateSample();
43 e->setMeasurement(e->measurement() + n);
50 assert(to && to->vertex());
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();
OptimizableGraph * graph() const
WorldObjectType::VertexType VertexType
WorldObjectSegment2D WorldObjectType
EdgeType * mkEdge(WorldObjectType *object)
PoseObject * _robotPoseObject
const InformationType & information()
GaussianSampler< typename EdgeType::ErrorVector, InformationType > _sampler
BinarySensor(const std::string &name)
EdgeSE2Segment2DLine EdgeType
TrajectoryType & trajectory()
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SensorSegment2DLine(const std::string &name_)
bool isVisible(WorldObjectType *to)
virtual void addNoise(EdgeType *e)
Vector2 estimateP1() const
Vector2 estimateP2() const
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)