Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

ShapeSpacePlannerXYTheta Class Reference

Plans a path in a 2D linear space with smooth angle changes (if turnLimit is small), using multiple bounding boxes for collision checking. More...

#include <ShapeSpacePlannerXYTheta.h>

Inheritance diagram for ShapeSpacePlannerXYTheta:

Detailed Description

Plans a path in a 2D linear space with smooth angle changes (if turnLimit is small), using multiple bounding boxes for collision checking.

Definition at line 79 of file ShapeSpacePlannerXYTheta.h.

List of all members.

Public Types

typedef RRTNodeXYTheta NodeType_t
typedef NodeType_t::NodeValue_t NodeValue_t

Public Member Functions

 ShapeSpacePlannerXYTheta (DualCoding::ShapeSpace &shs, const DualCoding::Shape< DualCoding::PolygonData > &worldBounds=Shape< PolygonData >(), float inflation=0)
virtual ~ShapeSpacePlannerXYTheta ()
virtual void initialize (const NodeValue_t &start, std::vector< NodeType_t > &treeStartResult, const NodeValue_t &end, std::vector< NodeType_t > &treeEndResult)
 Set up initial search trees.
AngTwoPi tangentHeading (const NodeValue_t &start, const NodeValue_t &end) const
 Calculate the heading necessary to point the baseOffset at the target.
virtual void buildPath (const std::vector< NodeType_t > *treeStart, const std::vector< NodeType_t > *treeEnd, std::vector< NodeValue_t > &path)
GenericRRTBase::PlannerResult2D planPath (const Point &startPoint, const fmat::Column< 3 > &_baseOffset, float gateLength, const Point &endPoint, const AngTwoPi initialHeading, const AngTwoPi _targetHeading, unsigned int _maxIterations=4000, std::vector< NodeValue_t > *pathResult=NULL, std::vector< NodeType_t > *treeStartResult=NULL, std::vector< NodeType_t > *treeEndResult=NULL)
 Plan a robot path from startPoint to endPoint with optional targetHeading at the end.

Static Public Member Functions

static void plotPath (const std::vector< NodeValue_t > &path, Shape< GraphicsData > &graphics, rgb color=rgb(0, 0, 255))
static void plotTree (const std::vector< NodeType_t > &tree, Shape< GraphicsData > &graphics, rgb color=rgb(0, 0, 255))

Static Public Attributes

static unsigned int const numDivisions = 18
 Number of divisions of the circle to try when targetHeading unspecified.

Private Attributes

float targetHeading
 Set by planPath() and used by initialize().
fmat::Column< 3 > baseOffset
 Set by planPath() and used by initialize().
float gateLength
 Set by planPath() and used by initialize().

Member Typedef Documentation


Constructor & Destructor Documentation

ShapeSpacePlannerXYTheta::ShapeSpacePlannerXYTheta ( DualCoding::ShapeSpace &  shs,
const DualCoding::Shape< DualCoding::PolygonData > &  worldBounds = Shape< PolygonData >(),
float  inflation = 0 
)
virtual ShapeSpacePlannerXYTheta::~ShapeSpacePlannerXYTheta (  )  [virtual]

Definition at line 88 of file ShapeSpacePlannerXYTheta.h.


Member Function Documentation

void ShapeSpacePlannerXYTheta::buildPath ( const std::vector< NodeType_t > *  treeStart,
const std::vector< NodeType_t > *  treeEnd,
std::vector< NodeValue_t > &  path 
) [virtual]

Reimplemented from GenericRRT< RRTNodeXYTheta, 2 >.

Definition at line 270 of file ShapeSpacePlannerXYTheta.cc.

void ShapeSpacePlannerXYTheta::initialize ( const NodeValue_t start,
std::vector< NodeType_t > &  treeStartResult,
const NodeValue_t end,
std::vector< NodeType_t > &  treeEndResult 
) [virtual]

Set up initial search trees.

Reimplemented from GenericRRT< RRTNodeXYTheta, 2 >.

Definition at line 214 of file ShapeSpacePlannerXYTheta.cc.

GenericRRTBase::PlannerResult2D ShapeSpacePlannerXYTheta::planPath ( const Point &  startPoint,
const fmat::Column< 3 > &  _baseOffset,
float  gateLength,
const Point &  endPoint,
const AngTwoPi  initialHeading,
const AngTwoPi  _targetHeading,
unsigned int  _maxIterations = 4000,
std::vector< NodeValue_t > *  pathResult = NULL,
std::vector< NodeType_t > *  treeStartResult = NULL,
std::vector< NodeType_t > *  treeEndResult = NULL 
)

Plan a robot path from startPoint to endPoint with optional targetHeading at the end.

Parameters:
startPoint Starting location of the robot
baseOffset Offset from the base frame, e.g., if we want a path that brings the gripper (rather than the base) to a particular location
endPoint Desired ending point
initialHeading The robot's heading at the start of the path
targetHeading Desired final heading; if unspecified, the planner generates a collection of possible target headings to try for
maxIterations Maximum number of iterations for the RRT to search before giving up
pathResult Stores the final, smoothed path computed by the planner
treeStartResult Stores the start search tree; only used for debugging or teaching
treeEndResult Stores the end search tree; only used for debugging or teaching

Definition at line 384 of file ShapeSpacePlannerXYTheta.cc.

Referenced by Grasper::planBodyPath().

void ShapeSpacePlannerXYTheta::plotPath ( const std::vector< NodeValue_t > &  path,
Shape< GraphicsData > &  graphics,
rgb  color = rgb(0,0,255) 
) [static]

Definition at line 429 of file ShapeSpacePlannerXYTheta.cc.

void ShapeSpacePlannerXYTheta::plotTree ( const std::vector< NodeType_t > &  tree,
Shape< GraphicsData > &  graphics,
rgb  color = rgb(0,0,255) 
) [static]

Definition at line 439 of file ShapeSpacePlannerXYTheta.cc.

Referenced by Grasper::planBodyPath().

AngTwoPi ShapeSpacePlannerXYTheta::tangentHeading ( const NodeValue_t start,
const NodeValue_t end 
) const

Calculate the heading necessary to point the baseOffset at the target.

This is the slope of the tangent line from the target to a circle centered on the baseFrame with radius equal to the y component of the baseOffset.

Definition at line 253 of file ShapeSpacePlannerXYTheta.cc.

Referenced by initialize().


Member Data Documentation

Set by planPath() and used by initialize().

Definition at line 142 of file ShapeSpacePlannerXYTheta.h.

Referenced by initialize(), planPath(), and tangentHeading().

Set by planPath() and used by initialize().

Definition at line 143 of file ShapeSpacePlannerXYTheta.h.

Referenced by initialize(), and planPath().

unsigned int const ShapeSpacePlannerXYTheta::numDivisions = 18 [static]

Number of divisions of the circle to try when targetHeading unspecified.

Definition at line 104 of file ShapeSpacePlannerXYTheta.h.

Referenced by initialize().

Set by planPath() and used by initialize().

Definition at line 141 of file ShapeSpacePlannerXYTheta.h.

Referenced by buildPath(), initialize(), and planPath().


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

Tekkotsu v5.1CVS
Generated Mon May 9 04:59:16 2016 by Doxygen 1.6.3