Klamp't
0.9.0
|
The preferred dynamic sampling-based planner for realtime planning. Will alternate sampling-based planning and smoothing via shortcutting. More...
#include <RealTimeRRTPlanner.h>
Classes | |
struct | EdgeData |
struct | NodeData |
Public Types | |
typedef Graph::TreeNode< NodeData, EdgeData > | Node |
Public Types inherited from Klampt::DynamicMotionPlannerBase | |
enum | { Failure =0, Success =1, Timeout =2 } |
Public Member Functions | |
virtual void | SetGoal (shared_ptr< PlannerObjectiveBase > newgoal) |
Node * | AddChild (Node *node, const Config &q) |
Node * | AddChild (Node *node, const ParabolicRamp::ParabolicRampND &ramp) |
Node * | AddChild (Node *node, const ParabolicRamp::DynamicPath &path) |
Node * | AddChild (Node *node, shared_ptr< RampEdgeChecker > &e) |
Node * | TryIKExtend (Node *node, bool search=true) |
Node * | Closest (const Config &q, Real costBranch=Inf) |
Node * | ExtendToward (const Config &q, Real costBranch=Inf) |
Node * | SplitEdge (Node *p, Node *n, Real u) |
bool | CheckPath (Node *n, Timer &timer, Real cutoff, Node **split=NULL) |
virtual int | PlanFrom (ParabolicRamp::DynamicPath &path, Real cutoff) |
Public Member Functions inherited from Klampt::DynamicMotionPlannerBase | |
virtual void | Init (CSpace *space, RobotModel *robot, WorldPlannerSettings *settings) |
virtual void | SetTime (Real tstart) |
virtual void | SetDefaultLimits () |
virtual void | SetLimits (Real qScale=1.0, Real vScale=1.0, Real aScale=1.0) |
bool | LogBegin (const char *fn="realtimeplanner.log") |
bool | LogEnd () |
int | PlanFrom (const Config &qstart, Real cutoff, ParabolicRamp::DynamicPath &result) |
Plans from a start configuration. | |
bool | StopPlanning () |
int | Shortcut (ParabolicRamp::DynamicPath &path, Real timeLimit) |
Performs shortcutting up until the time limit. | |
int | SmartShortcut (Real tstart, ParabolicRamp::DynamicPath &path, Real timeLimit) |
bool | GetMilestoneRamp (const Config &q0, const Vector &dq0, const Config &q1, ParabolicRamp::DynamicPath &ramp) const |
Helper. | |
bool | GetMilestoneRamp (const ParabolicRamp::DynamicPath &curPath, const Config &q, ParabolicRamp::DynamicPath &ramp) const |
Helper. | |
bool | CheckMilestoneRamp (const ParabolicRamp::DynamicPath &curPath, const Config &q, ParabolicRamp::DynamicPath &ramp) const |
Real | EvaluateDirectPathCost (const ParabolicRamp::DynamicPath &curPath, const Config &q) |
returns the cost of going straight to q (assuming no collision detection) | |
Real | EvaluatePathCost (const ParabolicRamp::DynamicPath &path, Real tStart=-1.0) |
Real | EvaluateTerminalCost (const Config &q, Real tEnd) |
returns the terminal cost for a path ending at q at time tEnd | |
Public Attributes | |
unique_ptr< RampCSpaceAdaptor > | stateSpace |
Real | delta |
Real | smoothTime |
Real | ikSolveProbability |
int | iteration |
unique_ptr< Node > | root |
vector< Node * > | nodes |
Public Attributes inherited from Klampt::DynamicMotionPlannerBase | |
RobotModel * | robot |
WorldPlannerSettings * | settings |
CSpace * | cspace |
shared_ptr< PlannerObjectiveBase > | goal |
ParabolicRamp::Vector | qMin |
ParabolicRamp::Vector | qMax |
ParabolicRamp::Vector | velMax |
ParabolicRamp::Vector | accMax |
Real | tstart |
bool | stopPlanning |
FILE * | flog |
The preferred dynamic sampling-based planner for realtime planning. Will alternate sampling-based planning and smoothing via shortcutting.
|
virtual |
DynamicMotionPlanner subclasses should override this. Plans from the start of 'path', and returns the result in 'path'. The planning duration should not exceed 'cutoff', if possible.
Must return Success if successful, Failure if planning fails.
Subroutines may maintain a timer, and stop and return Timeout planning time exceeds the cutoff. This is not strictly necessary; the caller should check whether the planning time exceeds the cutoff.
Reimplemented from Klampt::DynamicMotionPlannerBase.