10#ifndef _ZERO_ORDER_HOLD_HPP
11#define _ZERO_ORDER_HOLD_HPP
14#include <localization_msgs/msg/odometry.hpp>
17#include <p_pid_controller_msgs/msg/base_axes.hpp>
18#include <planner_msgs/msg/wrench_plan.hpp>
19#include <rclcpp/rclcpp.hpp>
20#include <rclcpp_lifecycle/lifecycle_node.hpp>
21#include <rclcpp_lifecycle/lifecycle_publisher.hpp>
27using CallbackReturn = rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn;
41 rclcpp_lifecycle::LifecyclePublisher<planner_msgs::msg::WrenchPlan>::SharedPtr pub_;
42 rclcpp::Subscription<planner_msgs::msg::WrenchPlan>::SharedPtr plan_sub_;
43 rclcpp::Subscription<localization_msgs::msg::Odometry>::SharedPtr odom_sub_;
45 std::shared_ptr<timer::Timeout> timeout_;
47 localization_msgs::msg::Odometry::SharedPtr odom_;
48 planner_msgs::msg::WrenchPlan::SharedPtr hold_msg_;
49 bool first_timeout =
true;
50 bool had_timeout_ =
true;
54 void wrenchPlanCallback(planner_msgs::msg::WrenchPlan::SharedPtr _msg);
55 void odomCallback(
const localization_msgs::msg::Odometry::SharedPtr _msg);
56 bool copy_master(
const localization_msgs::msg::Odometry::SharedPtr _msg);
57 bool copy_slave(
const localization_msgs::msg::Odometry::SharedPtr _msg);
62 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
on_configure(
63 const rclcpp_lifecycle::State & state)
override;
64 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
on_activate(
65 const rclcpp_lifecycle::State & state)
override;
66 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
on_deactivate(
67 const rclcpp_lifecycle::State & state)
override;
68 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
on_cleanup(
69 const rclcpp_lifecycle::State & state)
override;
70 rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
on_shutdown(
71 const rclcpp_lifecycle::State & state)
override;
Definition: zero_order_hold.hpp:36
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_cleanup(const rclcpp_lifecycle::State &state) override
Definition: zero_order_hold.cpp:62
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_activate(const rclcpp_lifecycle::State &state) override
Definition: zero_order_hold.cpp:45
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_shutdown(const rclcpp_lifecycle::State &state) override
Definition: zero_order_hold.cpp:74
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_deactivate(const rclcpp_lifecycle::State &state) override
Definition: zero_order_hold.cpp:56
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_configure(const rclcpp_lifecycle::State &state) override
Definition: zero_order_hold.cpp:23
Definition: wrench_planner.hpp:21
Hold_Z_Mode
Definition: zero_order_hold.hpp:30
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn CallbackReturn
Definition: zero_order_hold.hpp:27