ros2_control - humble
|
Forward command controller for a set of joints and interfaces. More...
#include <forward_controllers_base.hpp>
Public Member Functions | |
FORWARD_COMMAND_CONTROLLER_PUBLIC controller_interface::InterfaceConfiguration | command_interface_configuration () const override |
Get configuration for controller's required command interfaces. | |
FORWARD_COMMAND_CONTROLLER_PUBLIC controller_interface::InterfaceConfiguration | state_interface_configuration () const override |
Get configuration for controller's required state interfaces. | |
FORWARD_COMMAND_CONTROLLER_PUBLIC controller_interface::CallbackReturn | on_init () override |
Extending interface with initialization method which is individual for each controller. | |
FORWARD_COMMAND_CONTROLLER_PUBLIC controller_interface::CallbackReturn | on_configure (const rclcpp_lifecycle::State &previous_state) override |
FORWARD_COMMAND_CONTROLLER_PUBLIC controller_interface::CallbackReturn | on_activate (const rclcpp_lifecycle::State &previous_state) override |
FORWARD_COMMAND_CONTROLLER_PUBLIC controller_interface::CallbackReturn | on_deactivate (const rclcpp_lifecycle::State &previous_state) override |
FORWARD_COMMAND_CONTROLLER_PUBLIC controller_interface::return_type | update (const rclcpp::Time &time, const rclcpp::Duration &period) override |
Public Member Functions inherited from controller_interface::ControllerInterface | |
CONTROLLER_INTERFACE_PUBLIC bool | is_chainable () const final |
CONTROLLER_INTERFACE_PUBLIC std::vector< hardware_interface::CommandInterface > | export_reference_interfaces () final |
CONTROLLER_INTERFACE_PUBLIC bool | set_chained_mode (bool chained_mode) final |
CONTROLLER_INTERFACE_PUBLIC bool | is_in_chained_mode () const final |
Public Member Functions inherited from controller_interface::ControllerInterfaceBase | |
CONTROLLER_INTERFACE_PUBLIC void | assign_interfaces (std::vector< hardware_interface::LoanedCommandInterface > &&command_interfaces, std::vector< hardware_interface::LoanedStateInterface > &&state_interfaces) |
CONTROLLER_INTERFACE_PUBLIC void | release_interfaces () |
virtual CONTROLLER_INTERFACE_PUBLIC return_type | init (const std::string &controller_name, const std::string &namespace_="", const rclcpp::NodeOptions &node_options=rclcpp::NodeOptions() .allow_undeclared_parameters(true) .automatically_declare_parameters_from_overrides(true)) |
CONTROLLER_INTERFACE_PUBLIC const rclcpp_lifecycle::State & | configure () |
Custom configure method to read additional parameters for controller-nodes. | |
CONTROLLER_INTERFACE_PUBLIC std::shared_ptr< rclcpp_lifecycle::LifecycleNode > | get_node () |
CONTROLLER_INTERFACE_PUBLIC std::shared_ptr< rclcpp_lifecycle::LifecycleNode > | get_node () const |
CONTROLLER_INTERFACE_PUBLIC const rclcpp_lifecycle::State & | get_state () const |
CONTROLLER_INTERFACE_PUBLIC unsigned int | get_update_rate () const |
template<typename ParameterT > | |
auto | auto_declare (const std::string &name, const ParameterT &default_value) |
Declare and initialize a parameter with a type. | |
Protected Member Functions | |
virtual void | declare_parameters ()=0 |
virtual controller_interface::CallbackReturn | read_parameters ()=0 |
Protected Attributes | |
std::vector< std::string > | joint_names_ |
std::string | interface_name_ |
std::vector< std::string > | command_interface_types_ |
realtime_tools::RealtimeBuffer< std::shared_ptr< CmdType > > | rt_command_ptr_ |
rclcpp::Subscription< CmdType >::SharedPtr | joints_command_subscriber_ |
Protected Attributes inherited from controller_interface::ControllerInterfaceBase | |
std::vector< hardware_interface::LoanedCommandInterface > | command_interfaces_ |
std::vector< hardware_interface::LoanedStateInterface > | state_interfaces_ |
unsigned int | update_rate_ = 0 |
Forward command controller for a set of joints and interfaces.
This class forwards the command signal down to a set of joints or interfaces.
Subscribes to:
|
overridevirtual |
Get configuration for controller's required command interfaces.
Method used by the controller_manager to get the set of command interfaces used by the controller. Each controller can use individual method to determine interface names that in simples case have the following format: <joint>/<interface>
. The method is called only in inactive
or active
state, i.e., on_configure
has to be called first. The configuration is used to check if controller can be activated and to claim interfaces from hardware. The claimed interfaces are populated in the command_interfaces_ member.
Implements controller_interface::ControllerInterfaceBase.
|
protectedpure virtual |
Derived controllers have to declare parameters in this method. Error handling does not have to be done. It is done in on_init
-method of this class.
Implemented in forward_command_controller::ForwardCommandController, and forward_command_controller::MultiInterfaceForwardCommandController.
|
overridevirtual |
Extending interface with initialization method which is individual for each controller.
Implements controller_interface::ControllerInterfaceBase.
Reimplemented in effort_controllers::JointGroupEffortController, position_controllers::JointGroupPositionController, and velocity_controllers::JointGroupVelocityController.
|
protectedpure virtual |
Derived controllers have to read parameters in this method and set command_interface_types_
variable. The variable is then used to propagate the command interface configuration to controller manager. The method is called from on_configure
-method of this class.
It is expected that error handling of exceptions is done.
Implemented in forward_command_controller::ForwardCommandController, and forward_command_controller::MultiInterfaceForwardCommandController.
|
overridevirtual |
Get configuration for controller's required state interfaces.
Method used by the controller_manager to get the set of state interface used by the controller. Each controller can use individual method to determine interface names that in simples case have the following format: <joint>/<interface>
. The method is called only in inactive
or active
state, i.e., on_configure
has to be called first. The configuration is used to check if controller can be activated and to claim interfaces from hardware. The claimed interfaces are populated in the state_interface_ member.
Implements controller_interface::ControllerInterfaceBase.
|
overridevirtual |
Control step update. Command interfaces are updated based on on reference inputs and current states. The method called in the (real-time) control loop.
[in] | time | The time at the start of this control loop iteration |
[in] | period | The measured time taken by the last control loop iteration |
Implements controller_interface::ControllerInterfaceBase.