Klamp't  0.8.1
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
DynamicHybridTreePlanner Class Reference

The preferred dynamic sampling-based planner for realtime planning. Will alternate sampling-based planning and smoothing via shortcutting. More...

#include <RealTimeRRTPlanner.h>

Inheritance diagram for DynamicHybridTreePlanner:
DynamicMotionPlannerBase

Classes

struct  EdgeData
 
struct  NodeData
 

Public Types

typedef Graph::TreeNode< NodeData, EdgeDataNode
 
- Public Types inherited from 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 DynamicMotionPlannerBase
virtual void Init (CSpace *space, Robot *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< RampCSpaceAdaptorstateSpace
 
Real delta
 
Real smoothTime
 
Real ikSolveProbability
 
int iteration
 
unique_ptr< Node > root
 
vector< Node * > nodes
 
- Public Attributes inherited from DynamicMotionPlannerBase
Robotrobot
 
WorldPlannerSettingssettings
 
CSpace * cspace
 
shared_ptr< PlannerObjectiveBasegoal
 
ParabolicRamp::Vector qMin
 
ParabolicRamp::Vector qMax
 
ParabolicRamp::Vector velMax
 
ParabolicRamp::Vector accMax
 
Real tstart
 
bool stopPlanning
 
FILE * flog
 

Detailed Description

The preferred dynamic sampling-based planner for realtime planning. Will alternate sampling-based planning and smoothing via shortcutting.

Member Function Documentation

virtual int DynamicHybridTreePlanner::PlanFrom ( ParabolicRamp::DynamicPath path,
Real  cutoff 
)
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 DynamicMotionPlannerBase.


The documentation for this class was generated from the following file: