class mrpt::poses::CPoses3DSequence

Overview

This class stores a sequence of relative, incremental 3D poses.

It is useful as the bases storing unit for more complex probability particles and for computing the absolute pose of any intermediate pose.

See also:

CPose3D, CMultiMetricMap

#include <mrpt/poses/CPoses3DSequence.h>

class CPoses3DSequence: public mrpt::serialization::CSerializable
{
public:
    // typedefs

    typedef std::shared_ptr<mrpt::poses ::CPoses3DSequence> Ptr;
    typedef std::shared_ptr<const mrpt::poses ::CPoses3DSequence> ConstPtr;
    typedef std::unique_ptr<mrpt::poses ::CPoses3DSequence> UniquePtr;
    typedef std::unique_ptr<const mrpt::poses ::CPoses3DSequence> ConstUniquePtr;

    // fields

    static constexpr const char* className = "mrpt::poses" "::" "CPoses3DSequence";

    // 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;
    size_t posesCount();
    void getPose(unsigned int ind, CPose3D& outPose);
    CPose3D getPose(unsigned int ind) const;
    void changePose(unsigned int ind, CPose3D& inPose);
    void appendPose(CPose3D& newPose);
    void clear();
    CPose3D absolutePoseOf(unsigned int n);
    CPose3D absolutePoseAfterAll();
    double computeTraveledDistanceAfter(size_t n);
    double computeTraveledDistanceAfterAll();
};

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;

    // 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();

Typedefs

typedef std::shared_ptr<mrpt::poses ::CPoses3DSequence> 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.

size_t posesCount()

Returns the poses count in the sequence:

void getPose(unsigned int ind, CPose3D& outPose)

Reads the stored pose at index “ind”, where the first one is 0, the last “posesCount() - 1”.

Deprecated Use getPose(unsigned int) returning by value instead.

Parameters:

std::exception

On invalid index value

CPose3D getPose(unsigned int ind) const

Returns the stored pose at index “ind”.

Parameters:

std::exception

On invalid index value

void changePose(unsigned int ind, CPose3D& inPose)

Changes the stored pose at index “ind”, where the first one is 0, the last “posesCount() - 1”.

Parameters:

std::exception

On invalid index value

void appendPose(CPose3D& newPose)

Appends a new pose at the end of sequence.

Remember that poses are relative, incremental to the last one.

void clear()

Clears the sequence.

CPose3D absolutePoseOf(unsigned int n)

Returns the absolute pose of a robot after moving “n” poses, so for “n=0” the origin pose (0,0,0deg) is returned, for “n=1” the first pose is returned, and for “n=posesCount()”, the pose of robot after moving ALL poses is returned, all of them relative to the starting pose.

Parameters:

std::exception

On invalid index value

See also:

absolutePoseAfterAll

CPose3D absolutePoseAfterAll()

A shortcut for “absolutePoseOf( posesCount() )”.

See also:

absolutePoseOf, posesCount

double computeTraveledDistanceAfter(size_t n)

Returns the traveled distance after moving “n” poses, so for “n=0” it returns 0, for “n=1” the first traveled distance, and for “n=posesCount()”, the total distance after ALL movements.

Parameters:

std::exception

On invalid index value

See also:

computeTraveledDistanceAfterAll

double computeTraveledDistanceAfterAll()

Returns the traveled distance after ALL movements.

A shortcut for “computeTraveledDistanceAfter( posesCount() )”.

See also:

computeTraveledDistanceAfter