YARP
Yet Another Robot Platform
FrameTransform: start all the required devices needed for transforming frames

Description

The devices related to frame transformation have been decomposed into various submodules:

Thrift interfaces:

libyarp_dev interfaces:

This particular device can be decomposed into client and server if needed, as can be seen below, and each client and server can have various submodules so the user can choose a different structure depending on his need.

FrameTransformClient

A client to manage frame transforms for robots.
This device implements the yarp::dev::IFrameTransform interface and it can be configured in different ways to match the user's needs.
In the following sections a brief description and simple graphic representation for each configuration are shown.

Client configurations that DO NOT need a Server

  • LOCAL ONLY This first configuration have to be used when the the user needs only to manage and store the transforms locally.
    Command line instructions to use the configuration:
    yarpdev --device frameTransformClient --filexml_option ftc_local_only.xml
  • ROS ONLY This second configuration is to be chosen everytime a bilateral communication (publish and subscribe) with ROS is needed.
    The picture hereunder shows, as in the previous case, a simplified schema of the configuration. Command line instructions to use the configuration:
    yarpdev --device frameTransformClient --filexml_option ftc_ros.xml
    • ROS PUB ONLY and ROS SUB ONLY These two configurations have been added in order to allow a one way communication between the client and the ROS environment, be it publication or subscription. To launch these configurations the following commands have to be used:
      yarpdev --device frameTransformClient --filexml_option ftc_pub_ros.xml
      yarpdev --device frameTransformClient --filexml_option ftc_sub_ros.xml

Client configurations that DO need a Server

The following configurations need, as the section title suggests, a running server component. The appropriate client configuration depends on the running server.

  • YARP ONLY This is the full client that uses only yarp.
    N.B. The client use only yarp but the server attached can be both ONLY YARP or YARP + ROS
    Command line instructions to use the configuration:
    yarpdev --device frameTransformClient --filexml_option ftc_yarp_only.xml
    • YARP PUB ONLY and YARP SUB ONLY These two configurations, as the last two of the previous section, allow to select only one of the two available communication routes.
      Like the one above they can be used in combination with an ONLY YARP or YARP + ROS server configuration
    • In the following lines, the commands to launch these two configurations are shown:
      yarpdev --device frameTransformClient --filexml_option ftc_pub_yarp_only.xml
      yarpdev --device frameTransformClient --filexml_option ftc_sub_yarp_only.xml
    • YARP UPDATE ONLY This third YARP ONLY configuration allows to connect to another yarp client (it must publish transforms to the network) in order to monitor the transforms coming from it.
      yarpdev --device frameTransformClient --filexml_option ftc_yarp_only_single_client.xml
  • YARP AND ROS The last available version of the client uses both YARP and ROS.
    It has to be used when a YARP only server is running and the client needs to store transform coming from both YARP and ROS.
    To launch this client the following command have to be employed:
    yarpdev --device frameTransformClient --filexml_option ftc_full_ros.xml

FrameTransformServer

For what is concerning the server part, there are 2 different configurations: (XML files path to be determined)

  • The first one is the YARP ONLY configuration.
    It starts a server listening only to thrift ports with a small storage inside to update all the clients that connects to it later with the latest transforms.
    the code to launch this server is:
    yarprobotinterface --config fts_yarp_only.xml
  • The second one is the YARP AND ROS configuration.
    It starts a server listening to both thrift ports and ros topics, so its updates came from both parts. It has also a small storage inside to update all the clients that connects to it later with the latest transforms.
    the code to launch this server is:
    yarprobotinterface --config fts_full_ros.xml