MRPT logo

mrpt::reactivenav::CHolonomicND Class Reference

An implementation of the holonomic reactive navigation method "Nearness-Diagram". More...

#include <mrpt/reactivenav/CHolonomicND.h>

Inheritance diagram for mrpt::reactivenav::CHolonomicND:

mrpt::reactivenav::CAbstractHolonomicReactiveMethod

List of all members.

Classes

struct  TGap
 The structure used to store a detected gap in obstacles. More...

Public Types

enum  TSituations { SITUATION_TARGET_DIRECTLY = 1, SITUATION_SMALL_GAP, SITUATION_WIDE_GAP, SITUATION_NO_WAY_FOUND }
 The set of posible situations for each trajectory. More...
typedef std::vector< TGapTGapArray

Public Member Functions

 CHolonomicND (const mrpt::utils::CConfigFileBase *INI_FILE=NULL)
 Initialize the parameters of the navigator, from some configuration file, or default values if set to NULL.
void navigate (poses::CPoint2D &target, vector_float &obstacles, float maxRobotSpeed, float &desiredDirection, float &desiredSpeed, CHolonomicLogFileRecordPtr &logRecord)
 This method performs the holonomic navigation itself.
void initialize (const mrpt::utils::CConfigFileBase &INI_FILE)
 Initialize the parameters of the navigator.

Private Member Functions

int direction2sector (float a, int N)
void gapsEstimator (vector_float &obstacles, poses::CPoint2D &in_target, TGapArray &gaps)
 Find gaps in the obtacles.
void searchBestGap (vector_float &in_obstacles, float in_maxObsRange, TGapArray &in_gaps, poses::CPoint2D &in_target, int &out_selDirection, float &out_selEvaluation, TSituations &out_situation, float &out_riskEvaluation, CLogFileRecord_NDPtr log)
 Search the best gap.
void calcRepresentativeSectorForGap (TGap *gap, poses::CPoint2D &target, vector_float &obstacles)
 Fills in the representative sector field in the gap structure:.
void evaluateGaps (vector_float &in_obstacles, float in_maxObsRange, TGapArray &in_gaps, int TargetSector, float TargetDist, vector_float &out_gaps_evaluation)
 Evaluate each gap:.

Private Attributes

int last_selected_sector
float TOO_CLOSE_OBSTACLE
 Configuration:.
float WIDE_GAP_SIZE_PERCENT
float RISK_EVALUATION_SECTORS_PERCENT
float RISK_EVALUATION_DISTANCE
float MAX_SECTOR_DIST_FOR_D2_PERCENT
float TARGET_SLOW_APPROACHING_DISTANCE
vector_float factorWeights


Detailed Description

An implementation of the holonomic reactive navigation method "Nearness-Diagram".

The algorithm "Nearness-Diagram" was proposed in:

Nearness diagram (ND) navigation: collision avoidance in troublesome scenarios, IEEE Transactions on Robotics and Automation, Minguez, J. and Montano, L., vol. 20, no. 1, pp. 45-59, 2004.

See also:
CAbstractHolonomicReactiveMethod,CReactiveNavigationSystem

Definition at line 47 of file CHolonomicND.h.


Member Typedef Documentation

Definition at line 83 of file CHolonomicND.h.


Member Enumeration Documentation

The set of posible situations for each trajectory.

Enumerator:
SITUATION_TARGET_DIRECTLY 
SITUATION_SMALL_GAP 
SITUATION_WIDE_GAP 
SITUATION_NO_WAY_FOUND 

Definition at line 87 of file CHolonomicND.h.


Constructor & Destructor Documentation

mrpt::reactivenav::CHolonomicND::CHolonomicND ( const mrpt::utils::CConfigFileBase INI_FILE = NULL  ) 

Initialize the parameters of the navigator, from some configuration file, or default values if set to NULL.


Member Function Documentation

void mrpt::reactivenav::CHolonomicND::calcRepresentativeSectorForGap ( TGap gap,
poses::CPoint2D target,
vector_float obstacles 
) [private]

Fills in the representative sector field in the gap structure:.

int mrpt::reactivenav::CHolonomicND::direction2sector ( float  a,
int  N 
) [private]

void mrpt::reactivenav::CHolonomicND::evaluateGaps ( vector_float in_obstacles,
float  in_maxObsRange,
TGapArray in_gaps,
int  TargetSector,
float  TargetDist,
vector_float out_gaps_evaluation 
) [private]

Evaluate each gap:.

void mrpt::reactivenav::CHolonomicND::gapsEstimator ( vector_float obstacles,
poses::CPoint2D in_target,
TGapArray gaps 
) [private]

Find gaps in the obtacles.

void mrpt::reactivenav::CHolonomicND::initialize ( const mrpt::utils::CConfigFileBase INI_FILE  )  [virtual]

Initialize the parameters of the navigator.

Implements mrpt::reactivenav::CAbstractHolonomicReactiveMethod.

void mrpt::reactivenav::CHolonomicND::navigate ( poses::CPoint2D target,
vector_float obstacles,
float  maxRobotSpeed,
float &  desiredDirection,
float &  desiredSpeed,
CHolonomicLogFileRecordPtr &  logRecord 
) [virtual]

This method performs the holonomic navigation itself.

Parameters:
target [IN] The relative location (x,y) of target point.
obstacles [IN] Distance to obstacles from robot location (0,0). First index refers to -PI direction, and last one to +PI direction. Distances can be dealed as "meters", although they are "pseudometers", see note below.
maxRobotSpeed [IN] Maximum robot speed, in "pseudometers/sec". See note below.
desiredDirection [OUT] The desired motion direction, in the range [-PI,PI]
desiredSpeed [OUT] The desired motion speed in that direction, in "pseudometers"/sec. (See note below)
logRecord [IN/OUT] A placeholder for a pointer to a log record with extra info about the execution. Set to NULL if not required. User must free memory using "delete logRecord" after using it.
NOTE: With "pseudometers" we refer to the distance unit in TP-Space, thus:
pseudometer2= meter2 + (rad ยท r)2

Implements mrpt::reactivenav::CAbstractHolonomicReactiveMethod.

void mrpt::reactivenav::CHolonomicND::searchBestGap ( vector_float in_obstacles,
float  in_maxObsRange,
TGapArray in_gaps,
poses::CPoint2D in_target,
int &  out_selDirection,
float &  out_selEvaluation,
TSituations out_situation,
float &  out_riskEvaluation,
CLogFileRecord_NDPtr  log 
) [private]

Search the best gap.


Member Data Documentation

Definition at line 112 of file CHolonomicND.h.

Definition at line 102 of file CHolonomicND.h.

Definition at line 109 of file CHolonomicND.h.

Definition at line 109 of file CHolonomicND.h.

Definition at line 108 of file CHolonomicND.h.

Definition at line 110 of file CHolonomicND.h.

Configuration:.

Definition at line 108 of file CHolonomicND.h.

Definition at line 108 of file CHolonomicND.h.




Page generated by Doxygen 1.5.8 for MRPT 0.6.5 SVN: at Thu Feb 26 02:19:01 EST 2009