smp::rrg< typeparams > Class Template Reference

RRG algorithm. More...

#include <rrg.h>

Inheritance diagram for smp::rrg< typeparams >:
smp::planner_incremental< typeparams > smp::planner< typeparams >

List of all members.

Public Member Functions

 rrg (sampler_t &sampler_in, distance_evaluator_t &distance_evaluator_in, extender_t &extender_in, collision_checker_t &collision_checker_in, model_checker_t &model_checker_in)
 A constructor that initializes all components.
int iteration ()
 A function call to initiate one iteration of the algorithm.

Public Attributes

parameters_t parameters
 Algorithm parameters.

Detailed Description

template<class typeparams>
class smp::rrg< typeparams >

RRG algorithm.

Provides an implementation of the RRG algorithm. Inherits from the generic incremental sampling-based motion planner, overriding the iteration function.

Examples:

libbot_rrg_double_integrator.cpp, libbot_rrg_dubins_car.cpp, libbot_rrg_dubins_double_integrator_airplane.cpp, libbot_rrg_single_integrator.cpp, libbot_rrg_single_integrator_mu_calculus.cpp, standalone_rrg_double_integrator.cpp, standalone_rrg_dubins_car.cpp, standalone_rrg_dubins_double_integrator_airplane.cpp, standalone_rrg_single_integrator.cpp, and standalone_rrg_single_integrator_mu_calculus.cpp.


Constructor & Destructor Documentation

template<class typeparams >
smp::rrg< typeparams >::rrg ( sampler_t sampler_in,
distance_evaluator_t distance_evaluator_in,
extender_t extender_in,
collision_checker_t collision_checker_in,
model_checker_t model_checker_in 
)

A constructor that initializes all components.

This is the recommended constructor that initializes all components all at once. It calls the corresponding constructor of the base class planner_incremental<typeparams> with the same arguments.

Parameters:
sampler_inNew sampler component.
distance_evaluator_inNew distance evaluator component.
extender_inNew extension function component.
collision_checker_inNew collision checker component.
model_checker_inNew model checker component.

Member Function Documentation

template<class typeparams >
int smp::rrg< typeparams >::iteration ( ) [virtual]

A function call to initiate one iteration of the algorithm.

Runs one iteration of the RRG algorithm which includes the following steps:

  • get one sample state (using the sampler component)
  • find the vertex in the graph that is nearest to the sample state (using the distance evaluator component)
  • generate a trajectory that starts from the state stored in the nearest vertex and reaches exactly or approximately to the sample state (using the extension function component)
  • check whether the new trajectory satsifies the conditions for being collision free (using the collision checker component).
  • if the new trajectory is collision free, then
    • add new trajectory to the graph as an edge and create a new vertex, called the extended vertex that connects to the end of the new trajectory.
    • incrementally check whether the graph includes a trajectory that satisfies the termination requirement (using the model checker component).
    • compute the set of near vertices (using the distance evaluator component).
    • for all vertecies in the near set
      • generate a new trajectory from the near vertex to the extended vertex (using the extension function component).
      • if the new trajectory is collision free (check using the collision checker component) and exactly connects the two vertices, then add the new trajectory to the graph as an edge from the near vertex to the extended vertex.
      • incrementally check whether the graph includes a trajectory that satisfies the termination requirement (using the model checker component).
    • for all vertecies in the near set
      • generate a new trajectory from the extended vertex to the near vertex (using the extension function component).
      • if the new trajectory is collision free (check using the collision checker component) and exactly connects the two vertices, then add the new trajectory to the graph as an edge from the extended vertex to the near vertex.
      • incrementally check whether the graph includes a trajectory that satisfies the termination requirement (using the model checker component).
Returns:
Returns 1 for success, and a non-positive number for failure.

Implements smp::planner_incremental< typeparams >.


Member Data Documentation

template<class typeparams >
parameters_t smp::rrg< typeparams >::parameters

Algorithm parameters.

This class stores the parameters used by the algorithm. These parameters can be modified by the user using the methods provided by the class planner_parameters.


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