LEMUR Packages: ompl_lemur or_lemur pr_bgl prpy_lemur
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Groups Pages
Public Member Functions | Public Attributes | List of all members
ompl_lemur::Roadmap< RoadmapArgs > Class Template Referenceabstract

Interface for generating roadmaps over OMPL state spaces into Boost Graph objects. More...

#include <Roadmap.h>

Inheritance diagram for ompl_lemur::Roadmap< RoadmapArgs >:
ompl_lemur::RoadmapAAGrid< RoadmapArgs > ompl_lemur::RoadmapFromFile< RoadmapArgs > ompl_lemur::RoadmapHalton< RoadmapArgs > ompl_lemur::RoadmapHaltonDens< RoadmapArgs > ompl_lemur::RoadmapHaltonOffDens< RoadmapArgs > ompl_lemur::RoadmapRGG< RoadmapArgs > ompl_lemur::RoadmapRGGDens< RoadmapArgs > ompl_lemur::RoadmapRGGDensConst< RoadmapArgs >

Public Member Functions

 Roadmap (RoadmapArgs &args, std::string name, size_t max_batches)
template<class T >
T * as ()
template<class T >
const T * as () const
template<typename T , typename RoadmapType , typename SetterType , typename GetterType >
void declareParam (const std::string &name, const RoadmapType &roadmap, const SetterType &setter, const GetterType &getter, const std::string &rangeSuggestion="")
template<typename T , typename RoadmapType , typename SetterType >
void declareParam (const std::string &name, const RoadmapType &roadmap, const SetterType &setter, const std::string &rangeSuggestion="")
virtual void initialize ()=0
 Initialize roadmap; must be called once after setting parameters.
virtual double root_radius (std::size_t i_batch)=0
 Calcuate the root radius to be used for connecting to potential root vertices. More...
virtual void deserialize (const std::string &ser_data)=0
 Re-constitute the internal generator state from serialized data.
virtual void generate ()=0
 Generates one additional batch. More...
virtual void serialize (std::string &ser_data)=0
 Serialize the internal generator state into the passed string.

Public Attributes

const std::string name
const ompl::base::StateSpacePtr space
const size_t max_batches
bool initialized
size_t num_batches_generated
RoadmapArgs::Graph & g
RoadmapArgs::VState state_map
RoadmapArgs::EDistance distance_map
RoadmapArgs::VBatch vertex_batch_map
RoadmapArgs::EBatch edge_batch_map
RoadmapArgs::VShadow is_shadow_map
RoadmapArgs::EVector edge_vector_map
RoadmapArgs::NN * nn
ompl::base::ParamSet params

Detailed Description

template<class RoadmapArgs>
class ompl_lemur::Roadmap< RoadmapArgs >

Interface for generating roadmaps over OMPL state spaces into Boost Graph objects.

Derived classes should specify a unique name to the constructor. A Roadmap can generate a (possibly infinite) roadmap in batches; the maximum number of batches is given in the max_batches argument.

This class is templated on the RoadmapArgs type, which specifies the types of property maps used by Boost Graph to store the requisite vertex and edge properties (e.g. the state, vertex/edge batch indices, etc).

An instance of this class goes through the following lifecycle:

  1. The instance is constructed
  2. Parameters can be set via the OMPL params interface
  3. The initialize() method is called (exactly once, should set initialized=true)
  4. At most one call to deserialize()
  5. Successive calls to generate(), each one incrementing num_batches_generated

At any time after step 3, serialize() can be called to save the roadmap generator's state so it can be reconstituted into a different instance.

Member Function Documentation

template<class RoadmapArgs>
virtual void ompl_lemur::Roadmap< RoadmapArgs >::generate ( )
pure virtual
template<class RoadmapArgs>
virtual double ompl_lemur::Roadmap< RoadmapArgs >::root_radius ( std::size_t  i_batch)
pure virtual

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