YARP
Yet Another Robot Platform
FrameTransformClient Class Reference

#include <transformClient/FrameTransformClient.h>

+ Inheritance diagram for FrameTransformClient:

Detailed Description

The client side of any IBattery capable device. Still single thread! concurrent access is unsafe.

Definition at line 88 of file FrameTransformClient.h.

Classes

struct  broadcast_port_t
 

Public Member Functions

bool open (yarp::os::Searchable &config) override
 Open the DeviceDriver. More...
 
bool close () override
 Close the DeviceDriver. More...
 
bool read (yarp::os::ConnectionReader &connection) override
 Read this object from a network connection. More...
 
yarp::os::Stamp getLastInputStamp ()
 Get the time stamp for the last read data. More...
 
bool allFramesAsString (std::string &all_frames) override
 Creates a debug string containing the list of all registered frames. More...
 
bool canTransform (const std::string &target_frame, const std::string &source_frame) override
 Test if a transform exists. More...
 
bool clear () override
 Removes all the registered transforms. More...
 
bool frameExists (const std::string &frame_id) override
 Check if a frame exists. More...
 
bool getAllFrameIds (std::vector< std::string > &ids) override
 Gets a vector containing all the registered frames. More...
 
bool getParent (const std::string &frame_id, std::string &parent_frame_id) override
 Get the parent of a frame. More...
 
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. More...
 
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. More...
 
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. More...
 
bool deleteTransform (const std::string &target_frame_id, const std::string &source_frame_id) override
 Deletes a transform between two frames. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
bool isConnectedWithServer () override
 Returns true if the client is connected with the server, false otherwise. More...
 
bool reconnectWithServer () override
 Attempts to reconnect the client with the server. More...
 
 FrameTransformClient ()
 
 ~FrameTransformClient ()
 
bool threadInit () override
 Initialization method. More...
 
void threadRelease () override
 Release method. More...
 
void run () override
 Loop function. More...
 
- Public Member Functions inherited from yarp::dev::DeviceDriver
virtual ~DeviceDriver ()
 Destructor. More...
 
template<class T >
bool view (T *&x)
 Get an interface to the device driver. More...
 
virtual DeviceDrivergetImplementation ()
 Some drivers are bureaucrats, pointing at others. More...
 
- Public Member Functions inherited from yarp::os::IConfig
virtual ~IConfig ()
 Destructor. More...
 
virtual bool configure (Searchable &config)
 Change online parameters. More...
 
- Public Member Functions inherited from yarp::dev::IFrameTransform
virtual ~IFrameTransform ()
 Destructor. More...
 
- Public Member Functions inherited from yarp::dev::IFrameTransformClientControl
virtual ~IFrameTransformClientControl ()
 Destructor. More...
 
- Public Member Functions inherited from yarp::os::PortReader
virtual ~PortReader ()
 Destructor. More...
 
virtual Type getReadType () const
 
- Public Member Functions inherited from yarp::os::PeriodicThread
 PeriodicThread (double period, ShouldUseSystemClock useSystemClock=ShouldUseSystemClock::No)
 Constructor. More...
 
virtual ~PeriodicThread ()
 
bool start ()
 Call this to start the thread. More...
 
void step ()
 Call this to "step" the thread rather than starting it. More...
 
void stop ()
 Call this to stop the thread, this call blocks until the thread is terminated (and releaseThread() called). More...
 
void askToStop ()
 Stop the thread. More...
 
bool isRunning () const
 Returns true when the thread is started, false otherwise. More...
 
bool isSuspended () const
 Returns true when the thread is suspended, false otherwise. More...
 
bool setPeriod (double period)
 Set the (new) period of the thread. More...
 
double getPeriod () const
 Return the current period of the thread. More...
 
void suspend ()
 Suspend the thread, the thread keeps running by doLoop is never executed. More...
 
void resume ()
 Resume the thread if previously suspended. More...
 
void resetStat ()
 Reset thread statistics. More...
 
double getEstimatedPeriod () const
 Return estimated period since last reset. More...
 
void getEstimatedPeriod (double &av, double &std) const
 Return estimated period since last reset. More...
 
unsigned int getIterations () const
 Return the number of iterations performed since last reset. More...
 
double getEstimatedUsed () const
 Return the estimated duration of the run() function since last reset. More...
 
void getEstimatedUsed (double &av, double &std) const
 Return estimated duration of the run() function since last reset. More...
 
int setPriority (int priority, int policy=-1)
 Set the priority and scheduling policy of the thread, if the OS supports that. More...
 
int getPriority () const
 Query the current priority of the thread, if the OS supports that. More...
 
int getPolicy () const
 Query the current scheduling policy of the thread, if the OS supports that. More...
 

Protected Attributes

yarp::os::Port m_rpc_InterfaceToServer
 
yarp::os::Port m_rpc_InterfaceToUser
 
std::string m_local_name
 
std::string m_remote_name
 
std::string m_local_rpcServer
 
std::string m_local_rpcUser
 
std::string m_remote_rpc
 
std::string m_remote_streaming_name
 
std::string m_local_streaming_name
 
std::string m_streaming_connection_type
 
Transforms_client_storagem_transform_storage
 
double m_period
 
std::mutex m_rpc_mutex
 
std::vector< broadcast_port_t * > m_array_of_ports
 

Additional Inherited Members

- Public Types inherited from yarp::dev::IFrameTransform
enum  {
  TRANSFORM_OK = 0,
  TRANSFORM_GENERAL_ERROR = 1,
  TRANSFORM_TIMEOUT = 2
}
 
- Protected Member Functions inherited from yarp::os::PeriodicThread
virtual void beforeStart ()
 Called just before a new thread starts. More...
 
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(). More...
 

Constructor & Destructor Documentation

◆ FrameTransformClient()

FrameTransformClient::FrameTransformClient ( )

Definition at line 904 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 471 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 531 of file FrameTransformClient.cpp.

◆ clear()

bool FrameTransformClient::clear ( )
overridevirtual

Removes all the registered transforms.

Returns
true/false

Implements yarp::dev::IFrameTransform.

Definition at line 536 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 459 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 795 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 561 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 571 of file FrameTransformClient.cpp.

◆ getLastInputStamp()

yarp::os::Stamp FrameTransformClient::getLastInputStamp ( )

Get the time stamp for the last read data.

Returns
last time stamp.

◆ 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 596 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 658 of file FrameTransformClient.cpp.

◆ isConnectedWithServer()

bool FrameTransformClient::isConnectedWithServer ( )
overridevirtual

Returns true if the client is connected with the server, false otherwise.

Returns
true/false

Implements yarp::dev::IFrameTransformClientControl.

Definition at line 951 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 391 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 194 of file FrameTransformClient.cpp.

◆ reconnectWithServer()

bool FrameTransformClient::reconnectWithServer ( )
overridevirtual

Attempts to reconnect the client with the server.

Returns true if the operation is succesful, false otherwise.

Returns
true/false

Implements yarp::dev::IFrameTransformClientControl.

Definition at line 962 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 923 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 687 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 741 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 912 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 918 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 820 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 840 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 874 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 888 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 127 of file FrameTransformClient.h.

◆ m_local_name

std::string FrameTransformClient::m_local_name
protected

Definition at line 107 of file FrameTransformClient.h.

◆ m_local_rpcServer

std::string FrameTransformClient::m_local_rpcServer
protected

Definition at line 110 of file FrameTransformClient.h.

◆ m_local_rpcUser

std::string FrameTransformClient::m_local_rpcUser
protected

Definition at line 111 of file FrameTransformClient.h.

◆ m_local_streaming_name

std::string FrameTransformClient::m_local_streaming_name
protected

Definition at line 114 of file FrameTransformClient.h.

◆ m_period

double FrameTransformClient::m_period
protected

Definition at line 118 of file FrameTransformClient.h.

◆ m_remote_name

std::string FrameTransformClient::m_remote_name
protected

Definition at line 108 of file FrameTransformClient.h.

◆ m_remote_rpc

std::string FrameTransformClient::m_remote_rpc
protected

Definition at line 112 of file FrameTransformClient.h.

◆ m_remote_streaming_name

std::string FrameTransformClient::m_remote_streaming_name
protected

Definition at line 113 of file FrameTransformClient.h.

◆ m_rpc_InterfaceToServer

yarp::os::Port FrameTransformClient::m_rpc_InterfaceToServer
protected

Definition at line 105 of file FrameTransformClient.h.

◆ m_rpc_InterfaceToUser

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

Definition at line 106 of file FrameTransformClient.h.

◆ m_rpc_mutex

std::mutex FrameTransformClient::m_rpc_mutex
protected

Definition at line 119 of file FrameTransformClient.h.

◆ m_streaming_connection_type

std::string FrameTransformClient::m_streaming_connection_type
protected

Definition at line 116 of file FrameTransformClient.h.

◆ m_transform_storage

Transforms_client_storage* FrameTransformClient::m_transform_storage
protected

Definition at line 117 of file FrameTransformClient.h.


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