YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
frameTransformSet_nwc_ros2.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2023 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef YARP_DEV_FRAMETRANSFORMSETNWCROS2_H
7#define YARP_DEV_FRAMETRANSFORMSETNWCROS2_H
8
9
10#include <yarp/os/Network.h>
12#include <yarp/sig/Vector.h>
14#include <yarp/dev/PolyDriver.h>
16#include <rclcpp/rclcpp.hpp>
17#include <tf2_msgs/msg/tf_message.hpp>
18#include <geometry_msgs/msg/quaternion.hpp>
19#include <geometry_msgs/msg/transform.hpp>
20#include <geometry_msgs/msg/vector3.hpp>
21#include <geometry_msgs/msg/transform_stamped.hpp>
22#include <std_msgs/msg/header.hpp>
24#include <Ros2Utils.h>
25#include <mutex>
26#include <map>
28
29
59{
60public:
61 FrameTransformSet_nwc_ros2(double tperiod=0.010);
63
64 //DeviceDriver
65 bool open(yarp::os::Searchable& config) override;
66 bool close() override;
67
68 //periodicThread
69 void run() override;
70
71 //IFrameTransformStorageSet interface
72 yarp::dev::ReturnValue setTransforms(const std::vector<yarp::math::FrameTransform>& transforms) override;
74 yarp::dev::ReturnValue deleteTransform(std::string t1, std::string t2) override;
76
77 //own
79 void ros2TimeFromYarp(double yarpTime, builtin_interfaces::msg::Time& ros2Time);
80 void yarpTransformToROS2Transform(const yarp::math::FrameTransform &input, geometry_msgs::msg::TransformStamped& output);
81
82private:
83 mutable std::mutex m_trf_mutex;
84 rclcpp::Publisher<tf2_msgs::msg::TFMessage>::SharedPtr m_publisherFtTimed;
85 rclcpp::Publisher<tf2_msgs::msg::TFMessage>::SharedPtr m_publisherFtStatic;
87 rclcpp::Node::SharedPtr m_node;
88};
89
90#endif // YARP_DEV_FRAMETRANSFORMSETNWCROS2_H
contains the definition of a Vector type
This class is the parameters parser for class FrameTransformSet_nwc_ros2.
frameTransformSet_nwc_ros2: A ros network wrapper client which publishes the transforms received on t...
yarp::dev::ReturnValue clearAll() override
Delete all transforms in a storage.
void ros2TimeFromYarp(double yarpTime, builtin_interfaces::msg::Time &ros2Time)
yarp::dev::ReturnValue setTransform(const yarp::math::FrameTransform &transform) override
Save a frame transform in a storage.
yarp::dev::ReturnValue setTransforms(const std::vector< yarp::math::FrameTransform > &transforms) override
Save some frame transforms in a storage.
yarp::dev::ReturnValue deleteTransform(std::string t1, std::string t2) override
Delete a single transform in the storage.
bool open(yarp::os::Searchable &config) override
Open the DeviceDriver.
~FrameTransformSet_nwc_ros2()=default
void run() override
Loop function.
bool close() override
Close the DeviceDriver.
void yarpTransformToROS2Transform(const yarp::math::FrameTransform &input, geometry_msgs::msg::TransformStamped &output)
Interface implemented by all device drivers.
FrameTransformContainer: A class that contains a vector of frame transformations and exposes yarp::de...
An abstraction for a periodic thread.
A base class for nested structures that can be searched.
Definition Searchable.h:31