template class mrpt::poses::FrameTransformer

Overview

See docs in FrameTransformerInterface.

This class is an implementation for standalone (non ROS) applications.

See also:

FrameTransformerInterface

#include <mrpt/poses/FrameTransformer.h>

template <int DIM>
class FrameTransformer: public mrpt::poses::FrameTransformerInterface
{
public:
    // typedefs

    typedef FrameTransformerInterface<DIM> base_t;
    typedef typename Lie::SE<DIM>::type pose_t;
    typedef typename Lie::SE<DIM>::light_type light_type;

    // structs

    struct TF_TreeEdge;

    // construction

    FrameTransformer();

    // methods

    void sendTransform(
        const std::string& parent_frame,
        const std::string& child_frame,
        const typename base_t::pose_t& child_wrt_parent,
        const mrpt::system::TTimeStamp& timestamp = mrpt::system::now()
        );

    virtual FrameLookUpStatus lookupTransform(
        const std::string& target_frame,
        const std::string& source_frame,
        typename base_t::light_type& child_wrt_parent,
        const mrpt::system::TTimeStamp query_time = INVALID_TIMESTAMP,
        const double timeout_secs = .0
        );

    FrameLookUpStatus lookupTransform(
        const std::string& target_frame,
        const std::string& source_frame,
        typename base_t::pose_t& child_wrt_parent,
        const mrpt::system::TTimeStamp query_time = INVALID_TIMESTAMP,
        const double timeout_secs = .0
        );

    virtual void sendTransform(
        const std::string& parent_frame,
        const std::string& child_frame,
        const pose_t& child_wrt_parent,
        const mrpt::system::TTimeStamp& timestamp = mrpt::system::now()
        ) = 0;
};

Inherited Members

public:
    // methods

    virtual FrameLookUpStatus lookupTransform(
        const std::string& target_frame,
        const std::string& source_frame,
        light_type& child_wrt_parent,
        const mrpt::system::TTimeStamp query_time = INVALID_TIMESTAMP,
        const double timeout_secs = .0
        ) = 0;

Typedefs

typedef typename Lie::SE<DIM>::type pose_t

This will be mapped to CPose2D (DIM=2) or CPose3D (DIM=3)

typedef typename Lie::SE<DIM>::light_type light_type

This will be mapped to mrpt::math::TPose2D (DIM=2) or mrpt::math::TPose3D (DIM=3)

Methods

virtual FrameLookUpStatus lookupTransform(
    const std::string& target_frame,
    const std::string& source_frame,
    typename base_t::light_type& child_wrt_parent,
    const mrpt::system::TTimeStamp query_time = INVALID_TIMESTAMP,
    const double timeout_secs = .0
    )

Queries the current pose of target_frame wrt (“as seen from”) source_frame.

It tries to return the pose at the given timepoint, unless it is INVALID_TIMESTAMP (default), which means returning the latest know transformation.

FrameLookUpStatus lookupTransform(
    const std::string& target_frame,
    const std::string& source_frame,
    typename base_t::pose_t& child_wrt_parent,
    const mrpt::system::TTimeStamp query_time = INVALID_TIMESTAMP,
    const double timeout_secs = .0
    )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

virtual void sendTransform(
    const std::string& parent_frame,
    const std::string& child_frame,
    const pose_t& child_wrt_parent,
    const mrpt::system::TTimeStamp& timestamp = mrpt::system::now()
    ) = 0

Publish a time-stampped transform between two frames.