class mrpt::nav::CHolonomicFullEval

Full evaluation of all possible directions within the discrete set of input directions.

These are the optional parameters of the method which can be set by means of a configuration file passed to the constructor or to CHolonomicFullEval::initialize() or directly in CHolonomicFullEval::options

# Section name can be changed via setConfigFileSectionName()
[FULL_EVAL_CONFIG]
factorWeights        = 1.0 1.0 1.0 0.05 1.0
factorNormalizeOrNot =   0   0   0    0   1
// 0: Clearness in direction
// 1: Closest approach to target along straight line (Euclidean)
// 2: Distance of end collision-free point to target (Euclidean)
// 3: Hysteresis
// 4: Clearness to nearest obstacle along path
// 5: Like 2, but without being decimated if path to target is obstructed
TARGET_SLOW_APPROACHING_DISTANCE = 0.20   // Start to reduce speed when
closer than this to target [m]
TOO_CLOSE_OBSTACLE               = 0.02   // Directions with collision-free
distances below this threshold are not elegible.
HYSTERESIS_SECTOR_COUNT          = 5      // Range of "sectors" (directions)
for hysteresis over successive timesteps
PHASE1_FACTORS   = 0 1 2                  // Indices of the factors above to
be considered in phase 1
PHASE2_FACTORS   = 3 4                    // Indices of the factors above to
be considered in phase 2
PHASE1_THRESHOLD = 0.75                   // Phase1 scores must be above this
relative range threshold [0,1] to be considered in phase 2 (Default:`0.75`)

See also:

CAbstractHolonomicReactiveMethod, CReactiveNavigationSystem

#include <mrpt/nav/holonomic/CHolonomicFullEval.h>

class CHolonomicFullEval: public mrpt::nav::CAbstractHolonomicReactiveMethod
{
public:
    // structs

    struct EvalOutput;
    struct TOptions;

    //
fields

    TOptions options;

    // construction

    CHolonomicFullEval(const mrpt::config::CConfigFileBase* INI_FILE = nullptr);

    //
methods

    virtual void navigate(const NavInput& ni, NavOutput& no);
    virtual void initialize(const mrpt::config::CConfigFileBase& c);
    virtual void saveConfigFile(mrpt::config::CConfigFileBase& c) const;
    virtual double getTargetApproachSlowDownDistance() const;
    virtual void setTargetApproachSlowDownDistance(const double dist);
};

Inherited Members

public:
    // structs

    struct NavInput;
    struct NavOutput;

    //
methods

    mrpt::rtti::CObject::Ptr duplicateGetSmartPtr() const;
    static CAbstractHolonomicReactiveMethod* Create(const std::string& className);
    virtual void navigate(const NavInput& ni, NavOutput& no) = 0;
    virtual void initialize(const mrpt::config::CConfigFileBase& c) = 0;
    virtual void saveConfigFile(mrpt::config::CConfigFileBase& c) const = 0;
    void setConfigFileSectionName(const std::string& sectName);
    std::string getConfigFileSectionName() const;
    virtual double getTargetApproachSlowDownDistance() const = 0;
    virtual void setTargetApproachSlowDownDistance(const double dist) = 0;
    void setAssociatedPTG(mrpt::nav::CParameterizedTrajectoryGenerator* ptg);
    mrpt::nav::CParameterizedTrajectoryGenerator* getAssociatedPTG() const;
    virtual mxArray* writeToMatlab() const;
    virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;
    virtual CObject* clone() const = 0;

Fields

TOptions options

Parameters of the algorithm (can be set manually or loaded from CHolonomicFullEval::initialize or options.loadFromConfigFile(), etc.)

Construction

CHolonomicFullEval(const mrpt::config::CConfigFileBase* INI_FILE = nullptr)

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

Methods

virtual void navigate(const NavInput& ni, NavOutput& no)

Invokes the holonomic navigation algorithm itself.

See the description of the input/output structures for details on each parameter.

virtual void initialize(const mrpt::config::CConfigFileBase& c)

Initialize the parameters of the navigator, reading from the default section name (see derived classes) or the one set via setConfigFileSectionName()

virtual void saveConfigFile(mrpt::config::CConfigFileBase& c) const

saves all available parameters, in a forma loadable by initialize()

virtual double getTargetApproachSlowDownDistance() const

Returns the actual value of this parameter [m], as set via the children class options structure.

See also:

setTargetApproachSlowDownDistance()

virtual void setTargetApproachSlowDownDistance(const double dist)

Sets the actual value of this parameter [m].

See also:

getTargetApproachSlowDownDistance()