Loading...
Searching...
No Matches
Inheritance diagram for PMXXLDecomposition:

Public Member Functions

 PMXXLDecomposition (ompl::base::SpaceInformationPtr si, const PlanarManipulator *manip, const ompl::base::RealVectorBounds &xyBounds, const std::vector< int > &xySlices, const int thetaSlices, std::vector< int > &projectedJoints, bool diagonalEdges)
 Constructor. The end of the links in projectedJoints constitute the different layers to this decomposition. More...
 
virtual int numLayers () const
 Return the number of layers possible in this decomposition. Must be at least 1. More...
 
virtual bool steerToRegion (int r, int layer, const ompl::base::State *start, std::vector< ompl::base::State * > &states) const
 
virtual bool sampleFromRegion (int r, ompl::base::State *s, const ompl::base::State *seed=nullptr) const
 Sample a valid state s from region r in layer 0. More...
 
void initializePartialManipulator (int layer, const double *seedAngles) const
 
void sampleEndEffectorPose (int region, Eigen::Affine2d &pose) const
 
void initializePartialSeed (int layer, const double *seedAngles, std::vector< double > &partialSeed) const
 
bool sampleRemainingJoints (int layer, ompl::base::State *s, const double *const seedVals, const std::vector< double > &partialSln) const
 
virtual bool sampleFromRegion (int r, ompl::base::State *s, const ompl::base::State *seed, int layer) const
 Sample a state s from region r in the given layer. More...
 
virtual void project (const ompl::base::State *s, std::vector< double > &coord, int layer=0) const
 Project the given State into the XXLDecomposition. More...
 
virtual void project (const ompl::base::State *s, std::vector< int > &layers) const
 Project the state into the decomposition and retrieve the region for all valid layers. More...
 
- Public Member Functions inherited from ompl::geometric::XXLPlanarDecomposition
 XXLPlanarDecomposition (const base::RealVectorBounds &xyBounds, const std::vector< int > &xySlices, const int thetaSlices, bool diagonalEdges=false)
 
 XXLPlanarDecomposition (const base::RealVectorBounds &xyBounds, const std::vector< int > &xySlices, const int thetaSlices, double thetaLowerBound, double thetaUpperBound, bool diagonalEdges=false)
 
virtual int getNumRegions () const
 Return the total number of regions in this decomposition. More...
 
virtual int getDimension () const
 Return the dimension of this HiLoDecomposition. More...
 
virtual int numLayers () const =0
 Return the number of layers possible in this decomposition. Must be at least 1. More...
 
virtual int locateRegion (const base::State *s) const
 Return the id of the region that this state falls in. More...
 
virtual int locateRegion (const std::vector< double > &coord) const
 Return the id of the region that this coordinate falls in. More...
 
virtual void getNeighbors (int rid, std::vector< int > &neighbors) const
 Stores the given region's neighbors into a given vector. More...
 
virtual void getNeighborhood (int rid, std::vector< int > &neighborhood) const
 Stores the given region's neighbors into the vector. This returns the 8-connected grid neighbors of the cell, regardless of whether diagonal edges exist. More...
 
virtual double distanceHeuristic (int r1, int r2) const
 An admissible and consistent distance heuristic between two regions. Manhattan distance on grid. More...
 
virtual bool sampleFromRegion (int r, base::State *s, const base::State *seed=nullptr) const =0
 Sample a state s from region r in layer 0. More...
 
virtual bool sampleFromRegion (int r, base::State *s, const base::State *seed, int layer) const =0
 Sample a state s from region r in the given layer. More...
 
virtual void project (const base::State *s, std::vector< double > &coord, int layer=0) const =0
 Project the given State into the XXLDecomposition. More...
 
virtual void project (const base::State *s, std::vector< int > &layers) const =0
 Project the state into the decomposition and retrieve the region for all valid layers. More...
 
void ridToGridCell (int rid, std::vector< int > &cell) const
 
int gridCellToRid (const std::vector< int > &cell) const
 Return the region id corresponding to the (discrete) grid cell coordinates. More...
 
int coordToRegion (const std::vector< double > &coord) const
 Return the region id of the given coordinate in the decomposition. More...
 
int coordToRegion (const double *coord) const
 
bool hasDiagonalEdges () const
 Return true if the decomposition has diagonal edges. More...
 
- Public Member Functions inherited from ompl::geometric::XXLDecomposition
 XXLDecomposition ()
 Constructor. More...
 
virtual int getNumRegions () const =0
 Returns the number of regions in this XXLDecomposition. More...
 
virtual int getDimension () const =0
 Return the dimension of this XXLDecomposition. More...
 
virtual int numLayers () const =0
 Return the number of layers possible in this decomposition. Must be at least 1. More...
 
virtual int locateRegion (const base::State *s) const =0
 Returns the index of the region containing a given State. Most often, this is obtained by first calling project(). Returns -1 if no region contains the State. More...
 
virtual int locateRegion (const std::vector< double > &coord) const =0
 Return the region that this coordinate lies in. Returns -1 if this coord is out of bounds. More...
 
virtual void getNeighbors (int rid, std::vector< int > &neighbors) const =0
 Stores the given region's neighbors into a given vector. These are adjacent neighbors. More...
 
virtual void getNeighborhood (int rid, std::vector< int > &neighborhood) const
 Return a list of regions in the neighborhood of rid. This method is intended to retrieve all regions with in a 'radius'. This method should return a superset of getNeighbors (or equal). The neighborhood may or not be adjacent regions. Think of this as the 8-connected neighborhood of a grid, and getNeighbors as the 4-connected neighborhood of a grid. More...
 
virtual double distanceHeuristic (int r1, int r2) const =0
 An admissible and consistent distance heuristic between two regions. More...
 
virtual bool sampleFromRegion (int r, base::State *s, const base::State *seed=nullptr) const =0
 Sample a state s from region r in layer 0. More...
 
virtual bool sampleFromRegion (int r, base::State *s, const base::State *seed, int layer) const =0
 Sample a state s from region r in the given layer. More...
 
virtual void project (const base::State *s, std::vector< double > &coord, int layer=0) const =0
 Project the given State into the XXLDecomposition. More...
 
virtual void project (const base::State *s, std::vector< int > &layers) const =0
 Project the state into the decomposition and retrieve the region for all valid layers. More...
 
virtual bool canSteer () const
 Returns true if the method steerToRegion is available. More...
 
virtual bool steerToRegion (int, int, const ompl::base::State *, std::vector< ompl::base::State * > &) const
 

Static Public Member Functions

static void frameToPose (const Eigen::Affine2d &frame, Eigen::VectorXd &pose)
 

Protected Attributes

ompl::base::SpaceInformationPtr si_
 
const PlanarManipulatormanip_
 
std::vector< PlanarManipulatorpartialManips_
 
std::vector< int > projectedJoints_
 
- Protected Attributes inherited from ompl::geometric::XXLPlanarDecomposition
bool diagonalEdges_
 
base::RealVectorBounds xyBounds_
 
double thetaLow_ {-boost::math::constants::pi<double>()}
 
double thetaHigh_ {boost::math::constants::pi<double>()}
 
std::vector< int > xySlices_
 
int thetaSlices_
 
int numRegions_
 
double dx_
 
double dy_
 
double xSize_
 
double ySize_
 
double dTheta_
 
double thetaSize_
 
int dimension_
 
ompl::RNG rng_
 

Additional Inherited Members

- Protected Member Functions inherited from ompl::geometric::XXLPlanarDecomposition
void constructGraph ()
 
void getNonDiagonalNeighbors (int rid, std::vector< int > &neighbors) const
 
void getDiagonalNeighbors (int rid, std::vector< int > &neighbors) const
 
void sampleCoordinateFromRegion (int r, std::vector< double > &coord) const
 
void sampleCoordinateFromRegion (int r, double *coord) const
 

Detailed Description

Definition at line 47 of file PlanarManipulatorXXLDecomposition.h.

Constructor & Destructor Documentation

◆ PMXXLDecomposition()

PMXXLDecomposition::PMXXLDecomposition ( ompl::base::SpaceInformationPtr  si,
const PlanarManipulator manip,
const ompl::base::RealVectorBounds xyBounds,
const std::vector< int > &  xySlices,
const int  thetaSlices,
std::vector< int > &  projectedJoints,
bool  diagonalEdges 
)
inline

Constructor. The end of the links in projectedJoints constitute the different layers to this decomposition.

Definition at line 52 of file PlanarManipulatorXXLDecomposition.h.

◆ ~PMXXLDecomposition()

virtual PMXXLDecomposition::~PMXXLDecomposition ( )
inlinevirtual

Definition at line 88 of file PlanarManipulatorXXLDecomposition.h.

Member Function Documentation

◆ frameToPose()

static void PMXXLDecomposition::frameToPose ( const Eigen::Affine2d &  frame,
Eigen::VectorXd &  pose 
)
inlinestatic

Definition at line 98 of file PlanarManipulatorXXLDecomposition.h.

◆ initializePartialManipulator()

void PMXXLDecomposition::initializePartialManipulator ( int  layer,
const double *  seedAngles 
) const
inline

Definition at line 287 of file PlanarManipulatorXXLDecomposition.h.

◆ initializePartialSeed()

void PMXXLDecomposition::initializePartialSeed ( int  layer,
const double *  seedAngles,
std::vector< double > &  partialSeed 
) const
inline

Definition at line 312 of file PlanarManipulatorXXLDecomposition.h.

◆ numLayers()

virtual int PMXXLDecomposition::numLayers ( ) const
inlinevirtual

Return the number of layers possible in this decomposition. Must be at least 1.

Implements ompl::geometric::XXLPlanarDecomposition.

Definition at line 93 of file PlanarManipulatorXXLDecomposition.h.

◆ project() [1/2]

virtual void PMXXLDecomposition::project ( const ompl::base::State s,
std::vector< double > &  coord,
int  layer = 0 
) const
inlinevirtual

Project the given State into the XXLDecomposition.

Implements ompl::geometric::XXLPlanarDecomposition.

Definition at line 423 of file PlanarManipulatorXXLDecomposition.h.

◆ project() [2/2]

virtual void PMXXLDecomposition::project ( const ompl::base::State s,
std::vector< int > &  layers 
) const
inlinevirtual

Project the state into the decomposition and retrieve the region for all valid layers.

Implements ompl::geometric::XXLPlanarDecomposition.

Definition at line 436 of file PlanarManipulatorXXLDecomposition.h.

◆ sampleEndEffectorPose()

void PMXXLDecomposition::sampleEndEffectorPose ( int  region,
Eigen::Affine2d &  pose 
) const
inline

Definition at line 299 of file PlanarManipulatorXXLDecomposition.h.

◆ sampleFromRegion() [1/2]

virtual bool PMXXLDecomposition::sampleFromRegion ( int  r,
ompl::base::State s,
const ompl::base::State seed,
int  layer 
) const
inlinevirtual

Sample a state s from region r in the given layer.

Implements ompl::geometric::XXLPlanarDecomposition.

Definition at line 376 of file PlanarManipulatorXXLDecomposition.h.

◆ sampleFromRegion() [2/2]

virtual bool PMXXLDecomposition::sampleFromRegion ( int  r,
ompl::base::State s,
const ompl::base::State seed = nullptr 
) const
inlinevirtual

Sample a valid state s from region r in layer 0.

Implements ompl::geometric::XXLPlanarDecomposition.

Definition at line 282 of file PlanarManipulatorXXLDecomposition.h.

◆ sampleRemainingJoints()

bool PMXXLDecomposition::sampleRemainingJoints ( int  layer,
ompl::base::State s,
const double *const  seedVals,
const std::vector< double > &  partialSln 
) const
inline

Definition at line 328 of file PlanarManipulatorXXLDecomposition.h.

◆ steerToRegion()

virtual bool PMXXLDecomposition::steerToRegion ( int  r,
int  layer,
const ompl::base::State start,
std::vector< ompl::base::State * > &  states 
) const
inlinevirtual

Reimplemented from ompl::geometric::XXLDecomposition.

Definition at line 106 of file PlanarManipulatorXXLDecomposition.h.

Member Data Documentation

◆ manip_

const PlanarManipulator* PMXXLDecomposition::manip_
protected

Definition at line 454 of file PlanarManipulatorXXLDecomposition.h.

◆ partialManips_

std::vector<PlanarManipulator> PMXXLDecomposition::partialManips_
mutableprotected

Definition at line 455 of file PlanarManipulatorXXLDecomposition.h.

◆ projectedJoints_

std::vector<int> PMXXLDecomposition::projectedJoints_
protected

Definition at line 456 of file PlanarManipulatorXXLDecomposition.h.

◆ si_

ompl::base::SpaceInformationPtr PMXXLDecomposition::si_
protected

Definition at line 453 of file PlanarManipulatorXXLDecomposition.h.


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