Main MRPT website > C++ reference
MRPT logo
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes
mrpt::reactivenav::CParameterizedTrajectoryGenerator Class Referenceabstract

Detailed Description

This is the base class for any user defined PTG.

The class factory interface in CParameterizedTrajectoryGenerator::CreatePTG.

Changes history:

Definition at line 52 of file CParameterizedTrajectoryGenerator.h.

#include <mrpt/reactivenav/CParameterizedTrajectoryGenerator.h>

Inheritance diagram for mrpt::reactivenav::CParameterizedTrajectoryGenerator:
Inheritance graph
[legend]

Classes

class  CColisionGrid
 An internal class for storing the collision grid. More...
 
struct  TCellForLambdaFunction
 Specifies the min/max values for "k" and "n", respectively. More...
 
struct  TCPoint
 The trajectories in the C-Space: More...
 

Public Types

typedef std::map< uint16_t, float > TCollisionCell
 A list of all the pairs (alpha,distance) such as the robot collides at that cell.
 

Public Member Functions

virtual std::string getDescription () const =0
 Gets a short textual description of the PTG and its parameters.
 
virtual ~CParameterizedTrajectoryGenerator ()
 Destructor.
 
void simulateTrajectories (uint16_t alfaValuesCount, float max_time, float max_dist, unsigned int max_n, float diferencial_t, float min_dist, float *out_max_acc_v=NULL, float *out_max_acc_w=NULL)
 The main method: solves the diferential equation to generate a family of parametrical trajectories.
 
virtual void lambdaFunction (float x, float y, int &out_k, float &out_d)
 The "lambda" function, see paper for info.
 
void directionToMotionCommand (uint16_t k, float &out_v, float &out_w)
 Converts an "alfa" value (into the discrete set) into a feasible motion command.
 
size_t getAlfaValuesCount ()
 
size_t getPointsCountInCPath_k (uint16_t k)
 
void getCPointWhen_d_Is (float d, uint16_t k, float &x, float &y, float &phi, float &t, float *v=NULL, float *w=NULL)
 
float GetCPathPoint_x (uint16_t k, int n)
 
float GetCPathPoint_y (uint16_t k, int n)
 
float GetCPathPoint_phi (uint16_t k, int n)
 
float GetCPathPoint_t (uint16_t k, int n)
 
float GetCPathPoint_d (uint16_t k, int n)
 
float GetCPathPoint_v (uint16_t k, int n)
 
float GetCPathPoint_w (uint16_t k, int n)
 
void allocMemForVerticesData (int nVertices)
 
void setVertex_xy (uint16_t k, int n, int m, float x, float y)
 
float getVertex_x (uint16_t k, int n, int m)
 
float getVertex_y (uint16_t k, int n, int m)
 
float * getVertixesArray_x (uint16_t k, int n)
 
float * getVertixesArray_y (uint16_t k, int n)
 
unsigned int getVertixesCount ()
 
float getMax_V ()
 
float getMax_W ()
 
float getMax_V_inTPSpace ()
 
float index2alfa (uint16_t k)
 Alfa value for the discrete corresponding value.
 
uint16_t alfa2index (float alfa)
 Discrete index value for the corresponding alfa value.
 
void debugDumpInFiles (int nPT)
 Dump PTG trajectories in files in directory "./PTGs/".
 
bool SaveColGridsToFile (const std::string &filename)
 
bool LoadColGridsFromFile (const std::string &filename)
 
virtual void PTG_Generator (float alfa, float t, float x, float y, float phi, float &v, float &w)=0
 The main method to be implemented in derived classes.
 
virtual bool PTG_IsIntoDomain (float x, float y)=0
 To be implemented in derived classes:
 

Static Public Member Functions

static
CParameterizedTrajectoryGenerator
CreatePTG (const TParameters< double > &params)
 The class factory for creating a PTG from a list of parameters "params".
 

Public Attributes

CColisionGrid m_collisionGrid
 The collision grid.
 
float refDistance
 

Protected Types

typedef std::vector< TCPointTCPointVector
 

Protected Member Functions

 CParameterizedTrajectoryGenerator (const TParameters< double > &params)
 Constructor: possible values in "params":
 
void initializeCollisionsGrid (float refDistance, float resolution)
 Initialized the collision grid with the given size and resolution.
 
void FreeMemory ()
 Free all the memory buffers:
 

Protected Attributes

float V_MAX
 
float W_MAX
 
float TAU
 
float DELAY
 
float turningRadiusReference
 
CDynamicGrid
< TCellForLambdaFunction
m_lambdaFunctionOptimizer
 This grid will contain indexes data for speeding-up the default, brute-force lambda function.
 
float maxV_inTPSpace
 
bool flag1
 
bool flag2
 
unsigned int alfaValuesCount
 The number of discrete values for ALFA between -PI and +PI.
 
std::vector< TCPointVectorCPoints
 
std::vector< vector_floatvertexPoints_x
 The shape of the robot along the trajectories:
 
std::vector< vector_floatvertexPoints_y
 
int nVertices
 

Member Typedef Documentation

A list of all the pairs (alpha,distance) such as the robot collides at that cell.

  • map key (uint16_t) -> alpha value (k)
    • map value (float) -> the MINIMUM distance (d), in meters, associated with that "k".

Definition at line 185 of file CParameterizedTrajectoryGenerator.h.

Definition at line 290 of file CParameterizedTrajectoryGenerator.h.

Constructor & Destructor Documentation

mrpt::reactivenav::CParameterizedTrajectoryGenerator::CParameterizedTrajectoryGenerator ( const TParameters< double > &  params)
protected

Constructor: possible values in "params":

  • ref_distance: The maximum distance in PTGs
  • resolution: The cell size
  • v_max, w_max: Maximum robot speeds.
  • system_TAU, system_DELAY (Optional): Robot dynamics
virtual mrpt::reactivenav::CParameterizedTrajectoryGenerator::~CParameterizedTrajectoryGenerator ( )
inlinevirtual

Destructor.

Definition at line 84 of file CParameterizedTrajectoryGenerator.h.

Member Function Documentation

uint16_t mrpt::reactivenav::CParameterizedTrajectoryGenerator::alfa2index ( float  alfa)
inline

Discrete index value for the corresponding alfa value.

See Also
index2alfa

Definition at line 170 of file CParameterizedTrajectoryGenerator.h.

References M_2PI, and M_PI.

void mrpt::reactivenav::CParameterizedTrajectoryGenerator::allocMemForVerticesData ( int  nVertices)
static CParameterizedTrajectoryGenerator* mrpt::reactivenav::CParameterizedTrajectoryGenerator::CreatePTG ( const TParameters< double > &  params)
static

The class factory for creating a PTG from a list of parameters "params".

Possible values in "params" are:

Exceptions
std::logic_errorOn invalid or missing parameters.
void mrpt::reactivenav::CParameterizedTrajectoryGenerator::debugDumpInFiles ( int  nPT)

Dump PTG trajectories in files in directory "./PTGs/".

void mrpt::reactivenav::CParameterizedTrajectoryGenerator::directionToMotionCommand ( uint16_t  k,
float &  out_v,
float &  out_w 
)

Converts an "alfa" value (into the discrete set) into a feasible motion command.

void mrpt::reactivenav::CParameterizedTrajectoryGenerator::FreeMemory ( )
protected

Free all the memory buffers:

size_t mrpt::reactivenav::CParameterizedTrajectoryGenerator::getAlfaValuesCount ( )
inline

Definition at line 106 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::GetCPathPoint_d ( uint16_t  k,
int  n 
)
inline

Definition at line 115 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::GetCPathPoint_phi ( uint16_t  k,
int  n 
)
inline

Definition at line 113 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::GetCPathPoint_t ( uint16_t  k,
int  n 
)
inline

Definition at line 114 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::GetCPathPoint_v ( uint16_t  k,
int  n 
)
inline

Definition at line 116 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::GetCPathPoint_w ( uint16_t  k,
int  n 
)
inline

Definition at line 117 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::GetCPathPoint_x ( uint16_t  k,
int  n 
)
inline

Definition at line 111 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::GetCPathPoint_y ( uint16_t  k,
int  n 
)
inline

Definition at line 112 of file CParameterizedTrajectoryGenerator.h.

void mrpt::reactivenav::CParameterizedTrajectoryGenerator::getCPointWhen_d_Is ( float  d,
uint16_t  k,
float &  x,
float &  y,
float &  phi,
float &  t,
float *  v = NULL,
float *  w = NULL 
)
virtual std::string mrpt::reactivenav::CParameterizedTrajectoryGenerator::getDescription ( ) const
pure virtual
float mrpt::reactivenav::CParameterizedTrajectoryGenerator::getMax_V ( )
inline

Definition at line 155 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::getMax_V_inTPSpace ( )
inline

Definition at line 157 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::getMax_W ( )
inline

Definition at line 156 of file CParameterizedTrajectoryGenerator.h.

size_t mrpt::reactivenav::CParameterizedTrajectoryGenerator::getPointsCountInCPath_k ( uint16_t  k)
inline

Definition at line 107 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::getVertex_x ( uint16_t  k,
int  n,
int  m 
)
inline

Definition at line 127 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::getVertex_y ( uint16_t  k,
int  n,
int  m 
)
inline

Definition at line 134 of file CParameterizedTrajectoryGenerator.h.

float* mrpt::reactivenav::CParameterizedTrajectoryGenerator::getVertixesArray_x ( uint16_t  k,
int  n 
)
inline

Definition at line 141 of file CParameterizedTrajectoryGenerator.h.

float* mrpt::reactivenav::CParameterizedTrajectoryGenerator::getVertixesArray_y ( uint16_t  k,
int  n 
)
inline

Definition at line 147 of file CParameterizedTrajectoryGenerator.h.

unsigned int mrpt::reactivenav::CParameterizedTrajectoryGenerator::getVertixesCount ( )
inline

Definition at line 153 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::index2alfa ( uint16_t  k)
inline

Alfa value for the discrete corresponding value.

See Also
alfa2index

Definition at line 162 of file CParameterizedTrajectoryGenerator.h.

References M_PI.

void mrpt::reactivenav::CParameterizedTrajectoryGenerator::initializeCollisionsGrid ( float  refDistance,
float  resolution 
)
protected

Initialized the collision grid with the given size and resolution.

virtual void mrpt::reactivenav::CParameterizedTrajectoryGenerator::lambdaFunction ( float  x,
float  y,
int &  out_k,
float &  out_d 
)
virtual

The "lambda" function, see paper for info.

It takes the (a,d) pair that is closest to a given location.

Reimplemented in mrpt::reactivenav::CPTG1, mrpt::reactivenav::CPTG5, mrpt::reactivenav::CPTG3, mrpt::reactivenav::CPTG4, mrpt::reactivenav::CPTG2, mrpt::reactivenav::CPTG6, and mrpt::reactivenav::CPTG7.

bool mrpt::reactivenav::CParameterizedTrajectoryGenerator::LoadColGridsFromFile ( const std::string &  filename)
virtual void mrpt::reactivenav::CParameterizedTrajectoryGenerator::PTG_Generator ( float  alfa,
float  t,
float  x,
float  y,
float  phi,
float &  v,
float &  w 
)
pure virtual
virtual bool mrpt::reactivenav::CParameterizedTrajectoryGenerator::PTG_IsIntoDomain ( float  x,
float  y 
)
pure virtual
bool mrpt::reactivenav::CParameterizedTrajectoryGenerator::SaveColGridsToFile ( const std::string &  filename)
void mrpt::reactivenav::CParameterizedTrajectoryGenerator::setVertex_xy ( uint16_t  k,
int  n,
int  m,
float  x,
float  y 
)
inline

Definition at line 121 of file CParameterizedTrajectoryGenerator.h.

void mrpt::reactivenav::CParameterizedTrajectoryGenerator::simulateTrajectories ( uint16_t  alfaValuesCount,
float  max_time,
float  max_dist,
unsigned int  max_n,
float  diferencial_t,
float  min_dist,
float *  out_max_acc_v = NULL,
float *  out_max_acc_w = NULL 
)

The main method: solves the diferential equation to generate a family of parametrical trajectories.

Member Data Documentation

unsigned int mrpt::reactivenav::CParameterizedTrajectoryGenerator::alfaValuesCount
protected

The number of discrete values for ALFA between -PI and +PI.

Definition at line 265 of file CParameterizedTrajectoryGenerator.h.

std::vector<TCPointVector> mrpt::reactivenav::CParameterizedTrajectoryGenerator::CPoints
protected

Definition at line 291 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::DELAY
protected

Definition at line 237 of file CParameterizedTrajectoryGenerator.h.

bool mrpt::reactivenav::CParameterizedTrajectoryGenerator::flag1
protected

Definition at line 261 of file CParameterizedTrajectoryGenerator.h.

bool mrpt::reactivenav::CParameterizedTrajectoryGenerator::flag2
protected

Definition at line 261 of file CParameterizedTrajectoryGenerator.h.

CColisionGrid mrpt::reactivenav::CParameterizedTrajectoryGenerator::m_collisionGrid

The collision grid.

Definition at line 217 of file CParameterizedTrajectoryGenerator.h.

CDynamicGrid<TCellForLambdaFunction> mrpt::reactivenav::CParameterizedTrajectoryGenerator::m_lambdaFunctionOptimizer
protected

This grid will contain indexes data for speeding-up the default, brute-force lambda function.

Definition at line 256 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::maxV_inTPSpace
protected

Definition at line 259 of file CParameterizedTrajectoryGenerator.h.

int mrpt::reactivenav::CParameterizedTrajectoryGenerator::nVertices
protected

Definition at line 296 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::refDistance

Definition at line 224 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::TAU
protected

Definition at line 237 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::turningRadiusReference
protected

Definition at line 239 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::V_MAX
protected

Definition at line 236 of file CParameterizedTrajectoryGenerator.h.

std::vector<vector_float> mrpt::reactivenav::CParameterizedTrajectoryGenerator::vertexPoints_x
protected

The shape of the robot along the trajectories:

Definition at line 295 of file CParameterizedTrajectoryGenerator.h.

std::vector<vector_float> mrpt::reactivenav::CParameterizedTrajectoryGenerator::vertexPoints_y
protected

Definition at line 295 of file CParameterizedTrajectoryGenerator.h.

float mrpt::reactivenav::CParameterizedTrajectoryGenerator::W_MAX
protected

Definition at line 236 of file CParameterizedTrajectoryGenerator.h.




Page generated by Doxygen 1.8.3 for MRPT 0.9.6 SVN: at Fri Feb 15 22:05:02 EST 2013