42 explicit WrenchTransformer(
const rclcpp::NodeOptions & options = rclcpp::NodeOptions());
49 void wrench_callback(
const geometry_msgs::msg::WrenchStamped::SharedPtr msg);
50 bool transform_wrench(
51 const geometry_msgs::msg::WrenchStamped & input_wrench,
const std::string & target_frame,
52 geometry_msgs::msg::WrenchStamped & output_wrench);
54 void setup_subscriber();
55 void setup_publishers();
63 std::string normalize_namespace_for_topics()
const;
65 std::shared_ptr<force_torque_wrench_transformer::ParamListener> param_listener_;
66 force_torque_wrench_transformer::Params params_;
68 rclcpp::Subscription<geometry_msgs::msg::WrenchStamped>::SharedPtr wrench_subscriber_;
69 std::unordered_map<std::string, rclcpp::Publisher<geometry_msgs::msg::WrenchStamped>::SharedPtr>
70 transformed_wrench_publishers_;
72 std::shared_ptr<tf2_ros::Buffer> tf_buffer_;
73 std::shared_ptr<tf2_ros::TransformListener> tf_listener_;
75 std::string input_topic_;
76 std::string output_topic_suffix_;
77 std::vector<std::string> target_frames_;