Class SyclopRRT

Inheritance Relationships

Base Type

Class Documentation

class SyclopRRT : public ompl::control::Syclop

SyclopRRT is Syclop with RRT as its low-level tree planner. .

Public Functions

inline SyclopRRT(const SpaceInformationPtr &si, const DecompositionPtr &d)

Constructor. Requires a Decomposition, which Syclop uses to create high-level leads.

inline ~SyclopRRT() override
virtual void setup() override

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() override

Clear all internal datastructures. Planner settings are not affected. Subsequent calls to solve() will ignore all previous work.

virtual void getPlannerData(base::PlannerData &data) const override

Get information about the current run of the motion planner. Repeated calls to this function will update data (only additions are made). This is useful to see what changed in the exploration datastructure, between calls to solve(), for example (without calling clear() in between).

inline void setRegionalNearestNeighbors(bool enabled)

If regionalNearestNeighbors is enabled, then when computing the closest Motion to a generated state in a given Region, SyclopRRT will perform a linear search over the current Region and its neighbors instead of querying a NearestNeighbors datastructure over the whole tree. This approach is enabled by default, and should be disabled if there exist Regions of the Decomposition that will be extremely densely populated with states - in such cases, querying a global NearestNeighbors datastructure will probably be faster.

template<template<typename T> class NN>
inline void setNearestNeighbors()

Set a different nearest neighbors datastructure.

Protected Functions

virtual Syclop::Motion *addRoot(const base::State *s) override

Add State s as a new root in the low-level tree, and return the Motion corresponding to s.

virtual void selectAndExtend(Region &region, std::vector<Motion*> &newMotions) override

Select a Motion from the given Region, and extend the tree from the Motion. Add any new motions created to newMotions.

void freeMemory()

Free the memory allocated by this planner.

inline double distanceFunction(const Motion *a, const Motion *b) const

Compute distance between motions (actually distance between contained states)

Protected Attributes

base::StateSamplerPtr sampler_
DirectedControlSamplerPtr controlSampler_
std::shared_ptr<NearestNeighbors<Motion*>> nn_
bool regionalNN_
Motion *lastGoalMotion_

The most recent goal motion. Used for PlannerData computation.