class mrpt::nav::CMultiObjMotionOpt_Scalarization

Overview

Implementation of multi-objective motion chooser using scalarization: a user-given formula is used to collapse all the scores into a single scalar score.

The candidate with the highest positive score is selected. Note that assert expressions are honored via the base class CMultiObjectiveMotionOptimizerBase

See also:

CReactiveNavigationSystem, CReactiveNavigationSystem3D

#include <mrpt/nav/reactive/CMultiObjMotionOpt_Scalarization.h>

class CMultiObjMotionOpt_Scalarization: public mrpt::nav::CMultiObjectiveMotionOptimizerBase
{
public:
    // typedefs

    typedef std::shared_ptr<mrpt::nav ::CMultiObjMotionOpt_Scalarization> Ptr;
    typedef std::shared_ptr<const mrpt::nav ::CMultiObjMotionOpt_Scalarization> ConstPtr;
    typedef std::unique_ptr<mrpt::nav ::CMultiObjMotionOpt_Scalarization> UniquePtr;
    typedef std::unique_ptr<const mrpt::nav ::CMultiObjMotionOpt_Scalarization> ConstUniquePtr;

    // structs

    struct TParams;

    // fields

    static constexpr const char* className = "mrpt::nav" "::" "CMultiObjMotionOpt_Scalarization";
    TParams parameters;

    // construction

    CMultiObjMotionOpt_Scalarization();

    // methods

    static constexpr auto getClassName();
    static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic();
    static std::shared_ptr<CObject> CreateObject();

    template <typename... Args>
    static Ptr Create(Args&&... args);

    template <typename Alloc, typename... Args>
    static Ptr CreateAlloc(
        const Alloc& alloc,
        Args&&... args
        );

    template <typename... Args>
    static UniquePtr CreateUnique(Args&&... args);

    virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;
    virtual mrpt::rtti::CObject* clone() const;
    virtual void loadConfigFile(const mrpt::config::CConfigFileBase& c);
    virtual void saveConfigFile(mrpt::config::CConfigFileBase& c) const;
    virtual void clear();
};

Inherited Members

public:
    // typedefs

    typedef std::shared_ptr<CObject> Ptr;
    typedef std::shared_ptr<const CObject> ConstPtr;
    typedef std::shared_ptr<CMultiObjectiveMotionOptimizerBase> Ptr;
    typedef std::shared_ptr<const CMultiObjectiveMotionOptimizerBase> ConstPtr;

    // structs

    struct TParamsBase;
    struct TResultInfo;

    // methods

    static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic();
    virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;
    virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;
    static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic();
    std::optional<size_t> decide(const std::vector<mrpt::nav::TCandidateMovementPTG>& movs, TResultInfo& extra_info);
    virtual void loadConfigFile(const mrpt::config::CConfigFileBase& c) = 0;
    virtual void saveConfigFile(mrpt::config::CConfigFileBase& c) const = 0;
    virtual void clear();
    static CMultiObjectiveMotionOptimizerBase::Ptr Factory(const std::string& className);

Typedefs

typedef std::shared_ptr<mrpt::nav ::CMultiObjMotionOpt_Scalarization> Ptr

A type for the associated smart pointer.

Methods

virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const

Returns information about the class of an object in runtime.

virtual mrpt::rtti::CObject* clone() const

Returns a deep copy (clone) of the object, indepently of its class.

virtual void clear()

Resets the object state; use if the parameters change, so they are re-read and applied.