class mrpt::obs::CObservationRFID

Overview

This represents one or more RFID tags observed by a receiver.

See also:

CObservation, mrpt::hwdrivers::CImpinjRFID for a software sensor capable of reading this kind of observations.

#include <mrpt/obs/CObservationRFID.h>

class CObservationRFID: public mrpt::obs::CObservation
{
public:
    // typedefs

    typedef std::shared_ptr<mrpt::obs ::CObservationRFID> Ptr;
    typedef std::shared_ptr<const mrpt::obs ::CObservationRFID> ConstPtr;
    typedef std::unique_ptr<mrpt::obs ::CObservationRFID> UniquePtr;
    typedef std::unique_ptr<const mrpt::obs ::CObservationRFID> ConstUniquePtr;

    // structs

    struct TTagReading;

    // fields

    static constexpr const char* className = "mrpt::obs" "::" "CObservationRFID";
    mrpt::poses::CPose3D sensorPoseOnRobot;
    std::vector<TTagReading> tag_readings;

    // construction

    CObservationRFID();

    // 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;
    std::size_t getNtags() const;
    virtual mrpt::poses::CPose3D getSensorPose() const;
    virtual void setSensorPose(const mrpt::poses::CPose3D& newSensorPose);
    virtual void getDescriptionAsText(std::ostream& o) const;
};

Inherited Members

public:
    // typedefs

    typedef std::shared_ptr<CObject> Ptr;
    typedef std::shared_ptr<const CObject> ConstPtr;
    typedef std::shared_ptr<CSerializable> Ptr;
    typedef std::shared_ptr<const CSerializable> ConstPtr;
    typedef std::shared_ptr<CObservation> Ptr;
    typedef std::shared_ptr<const CObservation> ConstPtr;

    // fields

    mrpt::system::TTimeStamp timestamp {mrpt::Clock::now()};
    std::string sensorLabel;

    // 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();
    virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;
    static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic();
    mrpt::system::TTimeStamp getTimeStamp() const;
    virtual mrpt::system::TTimeStamp getOriginalReceivedTimeStamp() const;
    void load() const;
    virtual void unload() const;
    virtual bool exportTxtSupported() const;
    virtual std::string exportTxtHeader() const;
    virtual std::string exportTxtDataRow() const;

    template <class METRICMAP>
    bool insertObservationInto(
        METRICMAP& theMap,
        const std::optional<const mrpt::poses::CPose3D>& robotPose = std::nullopt
        ) const;

    virtual mrpt::poses::CPose3D getSensorPose() const = 0;
    void getSensorPose(mrpt::poses::CPose3D& out_sensorPose) const;
    void getSensorPose(mrpt::math::TPose3D& out_sensorPose) const;
    mrpt::math::TPose3D sensorPose() const;
    virtual void setSensorPose(const mrpt::poses::CPose3D& newSensorPose) = 0;
    void setSensorPose(const mrpt::math::TPose3D& newSensorPose);
    virtual void getDescriptionAsText(std::ostream& o) const;
    virtual std::string asString() const;

Typedefs

typedef std::shared_ptr<mrpt::obs ::CObservationRFID> Ptr

A type for the associated smart pointer.

Fields

mrpt::poses::CPose3D sensorPoseOnRobot

The location of the sensing antenna on the robot coordinate framework.

std::vector<TTagReading> tag_readings

The vector of individual tag observations.

Construction

CObservationRFID()

Constructor.

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 mrpt::poses::CPose3D getSensorPose() const

A general method to retrieve the sensor pose on the robot.

Note that most sensors will return a full (6D) CPose3D, but see the derived classes for more details or special cases.

See also:

setSensorPose A general method to retrieve the sensor pose on the robot, returning it by value.

setSensorPose

virtual void setSensorPose(const mrpt::poses::CPose3D& newSensorPose)

A general method to change the sensor pose on the robot.

It has no effects in this class

See also:

getSensorPose

virtual void getDescriptionAsText(std::ostream& o) const

Build a detailed, multi-line textual description of the observation contents and dump it to the output stream.

If overried by derived classes, call base CObservation::getDescriptionAsText() first to show common information.

This is the text that appears in RawLogViewer when selecting an object in the dataset