Loading...
Searching...
No Matches
LBTRRT.cpp
44ompl::geometric::LBTRRT::LBTRRT(const base::SpaceInformationPtr &si) : base::Planner(si, "LBTRRT")
49 Planner::declareParam<double>("range", this, &LBTRRT::setRange, &LBTRRT::getRange, "0.:1.:10000.");
50 Planner::declareParam<double>("goal_bias", this, &LBTRRT::setGoalBias, &LBTRRT::getGoalBias, "0.:.05:1.");
51 Planner::declareParam<double>("epsilon", this, &LBTRRT::setApproximationFactor, &LBTRRT::getApproximationFactor,
85 nn_->setDistanceFunction([this](const Motion *a, const Motion *b) { return distanceFunction(a, b); });
102ompl::base::PlannerStatus ompl::geometric::LBTRRT::solve(const base::PlannerTerminationCondition &ptc)
134 OMPL_ERROR("%s: There are multiple start states - currently not supported!", getName().c_str());
141 OMPL_INFORM("%s: Starting planning with %u states already in datastructure", getName().c_str(), nn_->size());
148 boost::math::constants::e<double>() + boost::math::constants::e<double>() / (double)si_->getStateDimension();
155 bestCost_ = lastGoalMotion_ != nullptr ? lastGoalMotion_->costApx_ : std::numeric_limits<double>::infinity();
390 data.addEdge(base::PlannerDataVertex(motion->parentApx_->state_), base::PlannerDataVertex(motion->state_));
Abstract definition of a goal region that can be sampled.
Definition GoalSampleableRegion.h:48
virtual bool isSatisfied(const State *st) const =0
Return true if the state satisfies the goal constraints.
Base class for a vertex in the PlannerData structure. All derived classes must implement the clone an...
Definition PlannerData.h:59
Object containing planner generated vertex and edge data. It is assumed that all vertices are unique,...
Definition PlannerData.h:175
unsigned int addStartVertex(const PlannerDataVertex &v)
Adds the given vertex to the graph data, and marks it as a start vertex. The vertex index is returned...
Definition PlannerData.cpp:405
unsigned int addGoalVertex(const PlannerDataVertex &v)
Adds the given vertex to the graph data, and marks it as a start vertex. The vertex index is returned...
Definition PlannerData.cpp:414
virtual bool addEdge(unsigned int v1, unsigned int v2, const PlannerDataEdge &edge=PlannerDataEdge(), Cost weight=Cost(1.0))
Adds a directed edge between the given vertex indexes. An optional edge structure and weight can be s...
Definition PlannerData.cpp:424
Encapsulate a termination condition for a motion planner. Planners will call operator() to decide whe...
Definition PlannerTerminationCondition.h:64
void addPlannerProgressProperty(const std::string &progressPropertyName, const PlannerProgressProperty &prop)
Add a planner progress property called progressPropertyName with a property querying function prop to...
Definition Planner.h:394
virtual void checkValidity()
Check to see if the planner is in a working state (setup has been called, a goal was set,...
Definition Planner.cpp:106
double costLb_
The lower bound cost of the motion while it is stored in the lowerBoundGraph_ and this may seem redun...
Definition LBTRRT.h:180
void setup() override
Perform extra configuration steps, if needed. This call will also issue a call to ompl::base::SpaceIn...
Definition LBTRRT.cpp:77
void removeFromParentApx(Motion *m)
remove motion from its parent in the approximation tree
Definition LBTRRT.cpp:415
double distanceFunction(const Motion *a, const Motion *b) const
Compute distance between motions (actually distance between contained states).
Definition LBTRRT.h:240
std::shared_ptr< NearestNeighbors< Motion * > > nn_
A nearest-neighbors datastructure containing the tree of motions.
Definition LBTRRT.h:266
double lazilyUpdateApxParent(Motion *child, Motion *parent)
lazily update the parent in the approximation tree without updating costs to cildren
Definition LBTRRT.cpp:403
void getPlannerData(base::PlannerData &data) const override
Get information about the current run of the motion planner. Repeated calls to this function will upd...
Definition LBTRRT.cpp:374
Motion * lastGoalMotion_
The most recent goal motion. Used for PlannerData computation.
Definition LBTRRT.h:288
double goalBias_
The fraction of time the goal is picked as the state to expand towards (if such a state is available)...
Definition LBTRRT.h:276
base::PlannerStatus solve(const base::PlannerTerminationCondition &ptc) override
Function that can solve the motion planning problem. This function can be called multiple times on th...
Definition LBTRRT.cpp:102
void clear() override
Clear all internal datastructures. Planner settings are not affected. Subsequent calls to solve() wil...
Definition LBTRRT.cpp:63
void considerEdge(Motion *parent, Motion *child, double c)
consider an edge for addition to the roadmap
Definition LBTRRT.cpp:297
void updateChildCostsApx(Motion *m, double delta)
update the child cost of the approximation tree
Definition LBTRRT.cpp:394
std::vector< Motion * > idToMotionMap_
mapping between a motion id and the motion
Definition LBTRRT.h:272
This class contains methods that automatically configure various parameters for motion planning....
Definition SelfConfig.h:59
static NearestNeighbors< _T > * getDefaultNearestNeighbors(const base::Planner *planner)
Select a default nearest neighbor datastructure for the given space.
Definition SelfConfig.h:105
void configurePlannerRange(double &range)
Compute what a good length for motion segments is.
Definition SelfConfig.cpp:225
This namespace contains sampling based planning routines shared by both planning under geometric cons...
Definition ConstrainedSpaceInformation.h:55
Representation of a solution to a planning problem.
Definition ProblemDefinition.h:70
void setApproximate(double difference)
Specify that the solution is approximate and set the difference to the goal.
Definition ProblemDefinition.h:88
void setPlannerName(const std::string &name)
Set the name of the planner used to compute this solution.
Definition ProblemDefinition.h:104
A class to store the exit status of Planner::solve().
Definition PlannerStatus.h:49
comparator - metric is the lower bound cost
Definition LBTRRT.h:212
comparator - metric is the cost to reach state via a specific state
Definition LBTRRT.h:191