YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches

frameTransformClient: A client to manage FrameTransforms for a robot (For more information, go to FrameTransform: start all the required devices needed for transforming frames) More...

#include <frameTransformClient/FrameTransformClient.h>

+ Inheritance diagram for FrameTransformClient:

Classes

struct  broadcast_port_t
 

Public Member Functions

 FrameTransformClient ()
 
 ~FrameTransformClient ()
 
bool open (yarp::os::Searchable &config) override
 Open the DeviceDriver.
 
bool close () override
 Close the DeviceDriver.
 
bool read (yarp::os::ConnectionReader &connection) override
 Read this object from a network connection.
 
bool allFramesAsString (std::string &all_frames) override
 Creates a debug string containing the list of all registered frames.
 
bool canTransform (const std::string &target_frame, const std::string &source_frame) override
 Test if a transform exists.
 
bool clear () override
 Removes all the registered transforms.
 
bool frameExists (const std::string &frame_id) override
 Check if a frame exists.
 
bool getAllFrameIds (std::vector< std::string > &ids) override
 Gets a vector containing all the registered frames.
 
bool getParent (const std::string &frame_id, std::string &parent_frame_id) override
 Get the parent of a frame.
 
bool getTransform (const std::string &target_frame_id, const std::string &source_frame_id, yarp::sig::Matrix &transform) override
 Get the transform between two frames.
 
bool setTransform (const std::string &target_frame_id, const std::string &source_frame_id, const yarp::sig::Matrix &transform) override
 Register a transform between two frames.
 
bool setTransformStatic (const std::string &target_frame_id, const std::string &source_frame_id, const yarp::sig::Matrix &transform) override
 Register a static transform between two frames.
 
bool deleteTransform (const std::string &target_frame_id, const std::string &source_frame_id) override
 Deletes a transform between two frames.
 
bool transformPoint (const std::string &target_frame_id, const std::string &source_frame_id, const yarp::sig::Vector &input_point, yarp::sig::Vector &transformed_point) override
 Transform a point into the target frame.
 
bool transformPose (const std::string &target_frame_id, const std::string &source_frame_id, const yarp::sig::Vector &input_pose, yarp::sig::Vector &transformed_pose) override
 Transform a Stamped Pose into the target frame.
 
bool transformQuaternion (const std::string &target_frame_id, const std::string &source_frame_id, const yarp::math::Quaternion &input_quaternion, yarp::math::Quaternion &transformed_quaternion) override
 Transform a quaternion into the target frame.
 
bool waitForTransform (const std::string &target_frame_id, const std::string &source_frame_id, const double &timeout) override
 Block until a transform from source_frame_id to target_frame_id is possible or it times out.
 
bool threadInit () override
 Initialization method.
 
void threadRelease () override
 Release method.
 
void run () override
 Loop function.
 
bool priv_generate_view ()
 
std::string priv_get_matrix_as_text (yarp::math::FrameTransform *t)
 
- Public Member Functions inherited from yarp::dev::DeviceDriver
 DeviceDriver ()
 
 DeviceDriver (const DeviceDriver &other)=delete
 
 DeviceDriver (DeviceDriver &&other) noexcept=delete
 
DeviceDriveroperator= (const DeviceDriver &other)=delete
 
DeviceDriveroperator= (DeviceDriver &&other) noexcept=delete
 
virtual ~DeviceDriver ()
 
virtual std::string id () const
 Return the id assigned to the PolyDriver.
 
virtual void setId (const std::string &id)
 Set the id for this device.
 
template<class T >
bool view (T *&x)
 Get an interface to the device driver.
 
virtual DeviceDrivergetImplementation ()
 Some drivers are bureaucrats, pointing at others.
 
- Public Member Functions inherited from yarp::dev::IFrameTransform
virtual ~IFrameTransform ()
 Destructor.
 
- Public Member Functions inherited from yarp::os::PortReader
virtual ~PortReader ()
 Destructor.
 
virtual Type getReadType () const
 
- Public Member Functions inherited from yarp::os::PeriodicThread
 PeriodicThread (double period, ShouldUseSystemClock useSystemClock=ShouldUseSystemClock::No, PeriodicThreadClock clockAccuracy=PeriodicThreadClock::Relative)
 Constructor.
 
 PeriodicThread (double period, PeriodicThreadClock clockAccuracy)
 Constructor.
 
virtual ~PeriodicThread ()
 
bool start ()
 Call this to start the thread.
 
void step ()
 Call this to "step" the thread rather than starting it.
 
void stop ()
 Call this to stop the thread, this call blocks until the thread is terminated (and releaseThread() called).
 
void askToStop ()
 Stop the thread.
 
bool isRunning () const
 Returns true when the thread is started, false otherwise.
 
bool isSuspended () const
 Returns true when the thread is suspended, false otherwise.
 
bool setPeriod (double period)
 Set the (new) period of the thread.
 
double getPeriod () const
 Return the current period of the thread.
 
void suspend ()
 Suspend the thread, the thread keeps running by doLoop is never executed.
 
void resume ()
 Resume the thread if previously suspended.
 
void resetStat ()
 Reset thread statistics.
 
double getEstimatedPeriod () const
 Return estimated period since last reset.
 
void getEstimatedPeriod (double &av, double &std) const
 Return estimated period since last reset.
 
unsigned int getIterations () const
 Return the number of iterations performed since last reset.
 
double getEstimatedUsed () const
 Return the estimated duration of the run() function since last reset.
 
void getEstimatedUsed (double &av, double &std) const
 Return estimated duration of the run() function since last reset.
 
int setPriority (int priority, int policy=-1)
 Set the priority and scheduling policy of the thread, if the OS supports that.
 
int getPriority () const
 Query the current priority of the thread, if the OS supports that.
 
int getPolicy () const
 Query the current scheduling policy of the thread, if the OS supports that.
 
- Public Member Functions inherited from FrameTransformClient_ParamsParser
 FrameTransformClient_ParamsParser ()
 
 ~FrameTransformClient_ParamsParser () override=default
 
bool parseParams (const yarp::os::Searchable &config) override
 Parse the DeviceDriver parameters.
 
std::string getDeviceClassName () const override
 Get the name of the DeviceDriver class.
 
std::string getDeviceName () const override
 Get the name of the device (i.e.
 
std::string getDocumentationOfDeviceParams () const override
 Get the documentation of the DeviceDriver's parameters.
 
std::vector< std::string > getListOfParams () const override
 Return a list of all params used by the device.
 
- Public Member Functions inherited from yarp::dev::IDeviceDriverParams
virtual ~IDeviceDriverParams ()
 

Protected Types

enum  show_transforms_in_diagram_t {
  do_not_show = 0 ,
  show_quaternion = 1 ,
  show_matrix = 2 ,
  show_rpy = 3
}
 

Protected Attributes

yarp::os::Port m_rpc_InterfaceToUser
 
std::string m_local_name
 
std::mutex m_rpc_mutex
 
std::vector< broadcast_port_t * > m_array_of_ports
 
show_transforms_in_diagram_t m_show_transforms_in_diagram = do_not_show
 
yarp::robotinterface::Robot m_robot
 
yarp::dev::IFrameTransformStorageGetm_ift_get = nullptr
 
yarp::dev::IFrameTransformStorageSetm_ift_set = nullptr
 
yarp::dev::IFrameTransformStorageUtilsm_ift_util = nullptr
 

Additional Inherited Members

- Public Types inherited from yarp::dev::IFrameTransform
enum  {
  TRANSFORM_OK = 0 ,
  TRANSFORM_GENERAL_ERROR = 1 ,
  TRANSFORM_TIMEOUT = 2
}
 
- Public Attributes inherited from FrameTransformClient_ParamsParser
const std::string m_device_classname = {"FrameTransformClient"}
 
const std::string m_device_name = {"frameTransformClient"}
 
bool m_parser_is_strict = false
 
const parser_version_type m_parser_version = {}
 
const std::string m_testxml_from_defaultValue = {""}
 
const std::string m_testxml_context_defaultValue = {""}
 
const std::string m_filexml_option_defaultValue = {"ftc_local_only.xml"}
 
const std::string m_local_rpc_defaultValue = {"/ftClient/rpc"}
 
const std::string m_FrameTransform_verbose_debug_defaultValue = {"false"}
 
const std::string m_period_defaultValue = {"0.10"}
 
std::string m_testxml_from = {}
 
std::string m_testxml_context = {}
 
std::string m_filexml_option = {"ftc_local_only.xml"}
 
std::string m_local_rpc = {"/ftClient/rpc"}
 
bool m_FrameTransform_verbose_debug = {false}
 
double m_period = {0.10}
 
- Protected Member Functions inherited from yarp::os::PeriodicThread
virtual void beforeStart ()
 Called just before a new thread starts.
 
virtual void afterStart (bool success)
 Called just after a new thread starts (or fails to start), this is executed by the same thread that calls start().
 

Detailed Description

frameTransformClient: A client to manage FrameTransforms for a robot (For more information, go to FrameTransform: start all the required devices needed for transforming frames)

Description of input parameters

Parameters required by this device are shown in class: FrameTransformClient_ParamsParser

Definition at line 50 of file FrameTransformClient.h.

Member Enumeration Documentation

◆ show_transforms_in_diagram_t

Enumerator
do_not_show 
show_quaternion 
show_matrix 
show_rpy 

Definition at line 82 of file FrameTransformClient.h.

Constructor & Destructor Documentation

◆ FrameTransformClient()

FrameTransformClient::FrameTransformClient ( )

Definition at line 920 of file FrameTransformClient.cpp.

◆ ~FrameTransformClient()

FrameTransformClient::~FrameTransformClient ( )
default

Member Function Documentation

◆ allFramesAsString()

bool FrameTransformClient::allFramesAsString ( std::string &  all_frames)
overridevirtual

Creates a debug string containing the list of all registered frames.

Parameters
all_framesthe returned string containing the frames
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 430 of file FrameTransformClient.cpp.

◆ canTransform()

bool FrameTransformClient::canTransform ( const std::string &  target_frame,
const std::string &  source_frame 
)
overridevirtual

Test if a transform exists.

Parameters
target_frame_idthe name of target reference frame
source_frame_idthe name of source reference frame
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 512 of file FrameTransformClient.cpp.

◆ clear()

bool FrameTransformClient::clear ( )
overridevirtual

Removes all the registered transforms.

Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 522 of file FrameTransformClient.cpp.

◆ close()

bool FrameTransformClient::close ( )
overridevirtual

Close the DeviceDriver.

Returns
true/false on success/failure.

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 418 of file FrameTransformClient.cpp.

◆ deleteTransform()

bool FrameTransformClient::deleteTransform ( const std::string &  target_frame_id,
const std::string &  source_frame_id 
)
overridevirtual

Deletes a transform between two frames.

Parameters
target_frame_idthe name of target reference frame
source_frame_idthe name of source reference frame
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 806 of file FrameTransformClient.cpp.

◆ frameExists()

bool FrameTransformClient::frameExists ( const std::string &  frame_id)
overridevirtual

Check if a frame exists.

Parameters
frame_idthe frame to be searched
target_frame_idthe name of target reference frame
source_frame_idthe name of source reference frame
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 537 of file FrameTransformClient.cpp.

◆ getAllFrameIds()

bool FrameTransformClient::getAllFrameIds ( std::vector< std::string > &  ids)
overridevirtual

Gets a vector containing all the registered frames.

Parameters
idsthe returned vector containing all frame ids
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 562 of file FrameTransformClient.cpp.

◆ getParent()

bool FrameTransformClient::getParent ( const std::string &  frame_id,
std::string &  parent_frame_id 
)
overridevirtual

Get the parent of a frame.

Parameters
frame_idthe name of target reference frame
parent_frame_idthe name of parent reference frame
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 604 of file FrameTransformClient.cpp.

◆ getTransform()

bool FrameTransformClient::getTransform ( const std::string &  target_frame_id,
const std::string &  source_frame_id,
yarp::sig::Matrix transform 
)
overridevirtual

Get the transform between two frames.

Parameters
target_frame_idthe name of target reference frame
source_frame_idthe name of source reference frame
transformthe transformation matrix from source_frame_id to target_frame_id
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 684 of file FrameTransformClient.cpp.

◆ open()

bool FrameTransformClient::open ( yarp::os::Searchable config)
overridevirtual

Open the DeviceDriver.

Parameters
configis a list of parameters for the device. Which parameters are effective for your device can vary. See device invocation examples. If there is no example for your device, you can run the "yarpdev" program with the verbose flag set to probe what parameters the device is checking. If that fails too, you'll need to read the source code (please nag one of the yarp developers to add documentation for your device).
Returns
true/false upon success/failure

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 297 of file FrameTransformClient.cpp.

◆ priv_generate_view()

bool FrameTransformClient::priv_generate_view ( )

Definition at line 1000 of file FrameTransformClient.cpp.

◆ priv_get_matrix_as_text()

std::string FrameTransformClient::priv_get_matrix_as_text ( yarp::math::FrameTransform t)

Definition at line 965 of file FrameTransformClient.cpp.

◆ read()

bool FrameTransformClient::read ( yarp::os::ConnectionReader reader)
overridevirtual

Read this object from a network connection.

Override this for your particular class.

Parameters
readeran interface to the network connection for reading
Returns
true iff the object is successfully read

Implements yarp::os::PortReader.

Definition at line 34 of file FrameTransformClient.cpp.

◆ run()

void FrameTransformClient::run ( )
overridevirtual

Loop function.

This is the thread itself. The thread calls the run() function every <period> ms. At the end of each run, the thread will sleep the amounth of time required, taking into account the time spent inside the loop function. Example: requested period is 10ms, the run() function take 3ms to be executed, the thread will sleep for 7ms.

Note: after each run is completed, the thread will call a yield() in order to facilitate other threads to run.

Implements yarp::os::PeriodicThread.

Definition at line 937 of file FrameTransformClient.cpp.

◆ setTransform()

bool FrameTransformClient::setTransform ( const std::string &  target_frame_id,
const std::string &  source_frame_id,
const yarp::sig::Matrix transform 
)
overridevirtual

Register a transform between two frames.

Parameters
target_frame_idthe name of target reference frame
source_frame_idthe name of source reference frame
transformthe transformation matrix from source_frame_id to target_frame_id
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 724 of file FrameTransformClient.cpp.

◆ setTransformStatic()

bool FrameTransformClient::setTransformStatic ( const std::string &  target_frame_id,
const std::string &  source_frame_id,
const yarp::sig::Matrix transform 
)
overridevirtual

Register a static transform between two frames.

Parameters
target_frame_idthe name of target reference frame
source_frame_idthe name of source reference frame
transformthe transformation matrix from source_frame_id to target_frame_id
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 767 of file FrameTransformClient.cpp.

◆ threadInit()

bool FrameTransformClient::threadInit ( )
overridevirtual

Initialization method.

The thread executes this function when it starts and before "run". This is a good place to perform initialization tasks that need to be done by the thread itself (device drivers initialization, memory allocation etc). If the function returns false the thread quits and never calls "run". The return value of threadInit() is notified to the class and passed as a parameter to afterStart(). Note that afterStart() is called by the same thread that is executing the "start" method.

Reimplemented from yarp::os::PeriodicThread.

Definition at line 926 of file FrameTransformClient.cpp.

◆ threadRelease()

void FrameTransformClient::threadRelease ( )
overridevirtual

Release method.

The thread executes this function once when it exits, after the last "run". This is a good place to release resources that were initialized in threadInit() (release memory, and device driver resources).

Reimplemented from yarp::os::PeriodicThread.

Definition at line 932 of file FrameTransformClient.cpp.

◆ transformPoint()

bool FrameTransformClient::transformPoint ( const std::string &  target_frame_id,
const std::string &  source_frame_id,
const yarp::sig::Vector input_point,
yarp::sig::Vector transformed_point 
)
overridevirtual

Transform a point into the target frame.

Parameters
target_frame_idthe name of target reference frame
source_frame_idthe name of frame in which input_point is expressed
input_pointthe input point (x y z)
transformed_pointthe returned point (x y z)
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 816 of file FrameTransformClient.cpp.

◆ transformPose()

bool FrameTransformClient::transformPose ( const std::string &  target_frame_id,
const std::string &  source_frame_id,
const yarp::sig::Vector input_pose,
yarp::sig::Vector transformed_pose 
)
overridevirtual

Transform a Stamped Pose into the target frame.

Parameters
target_frame_idthe name of target reference frame
source_frame_idthe name of frame in which input_pose is expressed
input_posethe input quaternion (x y z r p y)
transformed_posethe returned (x y z r p y)
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 841 of file FrameTransformClient.cpp.

◆ transformQuaternion()

bool FrameTransformClient::transformQuaternion ( const std::string &  target_frame_id,
const std::string &  source_frame_id,
const yarp::math::Quaternion input_quaternion,
yarp::math::Quaternion transformed_quaternion 
)
overridevirtual

Transform a quaternion into the target frame.

Parameters
target_frame_idthe name of target reference frame
source_frame_idthe name of frame in which input_quaternion is expressed
input_quaternionthe input quaternion (x y z w)
transformed_quaternionthe returned quaternion (x y z w)
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 880 of file FrameTransformClient.cpp.

◆ waitForTransform()

bool FrameTransformClient::waitForTransform ( const std::string &  target_frame_id,
const std::string &  source_frame_id,
const double timeout 
)
overridevirtual

Block until a transform from source_frame_id to target_frame_id is possible or it times out.

Parameters
target_frame_idthe name of target reference frame
source_frame_idthe name of source reference frame
timeout(in seconds) to wait for
error_msgstring filled with error message (if error occurred)
Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 899 of file FrameTransformClient.cpp.

Member Data Documentation

◆ m_array_of_ports

std::vector<broadcast_port_t*> FrameTransformClient::m_array_of_ports
protected

Definition at line 79 of file FrameTransformClient.h.

◆ m_ift_get

yarp::dev::IFrameTransformStorageGet* FrameTransformClient::m_ift_get = nullptr
protected

Definition at line 93 of file FrameTransformClient.h.

◆ m_ift_set

yarp::dev::IFrameTransformStorageSet* FrameTransformClient::m_ift_set = nullptr
protected

Definition at line 94 of file FrameTransformClient.h.

◆ m_ift_util

yarp::dev::IFrameTransformStorageUtils* FrameTransformClient::m_ift_util = nullptr
protected

Definition at line 95 of file FrameTransformClient.h.

◆ m_local_name

std::string FrameTransformClient::m_local_name
protected

Definition at line 68 of file FrameTransformClient.h.

◆ m_robot

yarp::robotinterface::Robot FrameTransformClient::m_robot
protected

Definition at line 92 of file FrameTransformClient.h.

◆ m_rpc_InterfaceToUser

yarp::os::Port FrameTransformClient::m_rpc_InterfaceToUser
protected

Definition at line 67 of file FrameTransformClient.h.

◆ m_rpc_mutex

std::mutex FrameTransformClient::m_rpc_mutex
protected

Definition at line 69 of file FrameTransformClient.h.

◆ m_show_transforms_in_diagram

show_transforms_in_diagram_t FrameTransformClient::m_show_transforms_in_diagram = do_not_show
protected

Definition at line 89 of file FrameTransformClient.h.


The documentation for this class was generated from the following files: