Synergistic Combination of Layers of Planning. More...
#include <Syclop.h>
Classes | |
class | Adjacency |
Representation of an adjacency (a directed edge) between two regions in the Decomposition assigned to Syclop. More... | |
class | CoverageGrid |
Syclop uses a CoverageGrid to estimate coverage in its assigned Decomposition. The CoverageGrid should have finer resolution than the Decomposition. | |
struct | Defaults |
Contains default values for Syclop parameters. More... | |
class | Motion |
Representation of a motion. More... | |
class | Region |
Representation of a region in the Decomposition assigned to Syclop. More... | |
Public Types | |
typedef boost::function2 < double, int, int > | EdgeCostFactorFn |
Each edge weight between two adjacent regions in the Decomposition is defined as a product of edge cost factors. By default, given adjacent regions ![]() ![]()
where for any region
| |
Public Member Functions | |
Syclop (const SpaceInformationPtr &si, const DecompositionPtr &d, const std::string &plannerName) | |
Constructor. Requires a Decomposition, which Syclop uses to create high-level leads. | |
ompl::base::Planner Interface | |
virtual void | setup (void) |
Perform extra configuration steps, if needed. This call will also issue a call to ompl::base::SpaceInformation::setup() if needed. This must be called before solving. | |
virtual void | clear (void) |
Clear all internal datastructures. Planner settings are not affected. Subsequent calls to solve() will ignore all previous work. | |
virtual bool | solve (const base::PlannerTerminationCondition &ptc) |
Continues solving until a solution is found or a given planner termination condition is met. Returns true if solution was found. | |
Tunable parameters | |
void | addEdgeCostFactor (const EdgeCostFactorFn &factor) |
Adds an edge cost factor to be used for edge weights between adjacent regions. | |
void | clearEdgeCostFactors (void) |
Clears all edge cost factors, making all edge weights equivalent to 1. | |
int | getNumFreeVolumeSamples (void) const |
Get the number of states to sample when estimating free volume in the Decomposition. | |
void | setNumFreeVolumeSamples (int numSamples) |
Set the number of states to sample when estimating free volume in the Decomposition. | |
double | getProbShortestPathLead (void) const |
Get the probability [0,1] that a lead will be computed as a shortest-path instead of a random-DFS. | |
void | setProbShortestPathLead (double probability) |
Set the probability [0,1] that a lead will be computed as a shortest-path instead of a random-DFS. | |
double | getProbAddingToAvailableRegions (void) const |
Get the probability [0,1] that the set of available regions will be augmented. | |
void | setProbAddingToAvailableRegions (double probability) |
Set the probability [0,1] that the set of available regions will be augmented. | |
int | getNumRegionExpansions (void) const |
Get the number of times a new region will be chosen and promoted for expansion from a given lead. | |
void | setNumRegionExpansions (int regionExpansions) |
Set the number of times a new region will be chosen and promoted for expansion from a given lead. | |
int | getNumTreeExpansions (void) const |
Get the number of calls to selectAndExtend() in the low-level tree planner for a given lead and region. | |
void | setNumTreeExpansions (int treeExpansions) |
Set the number of calls to selectAndExtend() in the low-level tree planner for a given lead and region. | |
double | getProbAbandonLeadEarly (void) const |
Get the probability [0,1] that a lead will be abandoned early, before a new region is chosen for expansion. | |
void | setProbAbandonLeadEarly (double probability) |
The probability that a lead will be abandoned early, before a new region is chosen for expansion. | |
Protected Member Functions | |
virtual Motion * | addRoot (const base::State *s)=0 |
Add State s as a new root in the low-level tree, and return the Motion corresponding to s. | |
virtual void | selectAndExtend (Region ®ion, std::vector< Motion * > &newMotions)=0 |
Select a Motion from the given Region, and extend the tree from the Motion. Add any new motions created to newMotions. | |
const Region & | getRegionFromIndex (const int rid) const |
Returns a reference to the Region object with the given index. Assumes the index is valid. | |
Protected Attributes | |
int | numFreeVolSamples_ |
The number of states to sample to estimate free volume in the Decomposition. | |
double | probShortestPath_ |
The probability that a lead will be computed as a shortest-path instead of a random-DFS. | |
double | probKeepAddingToAvail_ |
The probability that the set of available regions will be augmented. | |
int | numRegionExpansions_ |
The number of times a new region will be chosen and promoted for expansion from a given lead. | |
int | numTreeSelections_ |
The number of calls to selectAndExtend() in the low-level tree planner for a given lead and region. | |
double | probAbandonLeadEarly_ |
The probability that a lead will be abandoned early, before a new region is chosen for expansion. | |
const SpaceInformation * | siC_ |
Handle to the control::SpaceInformation object. | |
DecompositionPtr | decomp_ |
The high level decomposition used to focus tree expansion. | |
RNG | rng_ |
Random number generator. |
Synergistic Combination of Layers of Planning.
@par Short description Syclop is a multi-layered planner that guides a low-level sampling-based tree planner through a sequence of sequence of discrete workspace regions from start to goal. Syclop is defined as an abstract base class whose pure virtual methods are defined by the chosen low-level sampling-based tree planner. @par External documentation E. Plaku, L.E. Kavraki, and M.Y. Vardi, Motion Planning with Dynamics by a Synergistic Combination of Layers of Planning, in <em>IEEE Transactions on Robotics</em>, 2010. DOI: <a href="http://dx.doi.org/10.1109/TRO.2010.2047820">10.1109/TRO.2010.2047820</a><br>