#include <mrpt/reactivenav/CHolonomicND.h>
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< TGap > | TGapArray |
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 |
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.
Definition at line 47 of file CHolonomicND.h.
typedef std::vector<TGap> mrpt::reactivenav::CHolonomicND::TGapArray |
Definition at line 83 of file CHolonomicND.h.
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.
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.
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. |
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.
Definition at line 112 of file CHolonomicND.h.
int mrpt::reactivenav::CHolonomicND::last_selected_sector [private] |
Definition at line 102 of file CHolonomicND.h.
float mrpt::reactivenav::CHolonomicND::MAX_SECTOR_DIST_FOR_D2_PERCENT [private] |
Definition at line 109 of file CHolonomicND.h.
float mrpt::reactivenav::CHolonomicND::RISK_EVALUATION_DISTANCE [private] |
Definition at line 109 of file CHolonomicND.h.
float mrpt::reactivenav::CHolonomicND::RISK_EVALUATION_SECTORS_PERCENT [private] |
Definition at line 108 of file CHolonomicND.h.
Definition at line 110 of file CHolonomicND.h.
float mrpt::reactivenav::CHolonomicND::TOO_CLOSE_OBSTACLE [private] |
float mrpt::reactivenav::CHolonomicND::WIDE_GAP_SIZE_PERCENT [private] |
Definition at line 108 of file CHolonomicND.h.
Page generated by Doxygen 1.5.9 for MRPT 0.7.1 SVN: at Mon Aug 17 22:27:43 EDT 2009 |