71 CONTROLLER_INTERFACE_PUBLIC
74 CONTROLLER_INTERFACE_PUBLIC
77 CONTROLLER_INTERFACE_PUBLIC
80 CONTROLLER_INTERFACE_PUBLIC
83 CONTROLLER_INTERFACE_PUBLIC
84 void assign_interfaces(
85 std::vector<hardware_interface::LoanedCommandInterface> && command_interfaces,
86 std::vector<hardware_interface::LoanedStateInterface> && state_interfaces);
88 CONTROLLER_INTERFACE_PUBLIC
89 void release_interfaces();
91 CONTROLLER_INTERFACE_PUBLIC
92 virtual return_type init(
const std::string & controller_name);
94 CONTROLLER_INTERFACE_PUBLIC
95 virtual return_type init(
const std::string & controller_name, rclcpp::NodeOptions & node_options);
97 CONTROLLER_INTERFACE_PUBLIC
98 virtual return_type update() = 0;
100 CONTROLLER_INTERFACE_PUBLIC
101 std::shared_ptr<rclcpp::Node> get_node();
110 template <
typename ParameterT>
111 auto auto_declare(
const std::string & name,
const ParameterT & default_value)
113 if (!node_->has_parameter(name))
115 return node_->declare_parameter<ParameterT>(name, default_value);
119 return node_->get_parameter(name).get_value<ParameterT>();
133 CONTROLLER_INTERFACE_PUBLIC
134 const rclcpp_lifecycle::State &
configure();
136 CONTROLLER_INTERFACE_PUBLIC
137 const rclcpp_lifecycle::State & cleanup();
139 CONTROLLER_INTERFACE_PUBLIC
140 const rclcpp_lifecycle::State & deactivate();
142 CONTROLLER_INTERFACE_PUBLIC
143 const rclcpp_lifecycle::State & activate();
145 CONTROLLER_INTERFACE_PUBLIC
146 const rclcpp_lifecycle::State & shutdown();
148 CONTROLLER_INTERFACE_PUBLIC
149 const rclcpp_lifecycle::State & get_current_state()
const;
152 std::vector<hardware_interface::LoanedCommandInterface> command_interfaces_;
153 std::vector<hardware_interface::LoanedStateInterface> state_interfaces_;
154 std::shared_ptr<rclcpp::Node> node_;
155 rclcpp_lifecycle::State lifecycle_state_;