ros2_control - galactic
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
controller_manager::ControllerManager Class Reference
Inheritance diagram for controller_manager::ControllerManager:
Inheritance graph
[legend]
Collaboration diagram for controller_manager::ControllerManager:
Collaboration graph
[legend]

Public Member Functions

CONTROLLER_MANAGER_PUBLIC ControllerManager (std::unique_ptr< hardware_interface::ResourceManager > resource_manager, std::shared_ptr< rclcpp::Executor > executor, const std::string &manager_node_name="controller_manager", const std::string &namespace_="")
 
CONTROLLER_MANAGER_PUBLIC ControllerManager (std::shared_ptr< rclcpp::Executor > executor, const std::string &manager_node_name="controller_manager", const std::string &namespace_="")
 
CONTROLLER_MANAGER_PUBLIC controller_interface::ControllerInterfaceSharedPtr load_controller (const std::string &controller_name, const std::string &controller_type)
 
CONTROLLER_MANAGER_PUBLIC controller_interface::ControllerInterfaceSharedPtr load_controller (const std::string &controller_name)
 load_controller loads a controller by name, the type must be defined in the parameter server.
 
CONTROLLER_MANAGER_PUBLIC controller_interface::return_type unload_controller (const std::string &controller_name)
 
CONTROLLER_MANAGER_PUBLIC std::vector< ControllerSpecget_loaded_controllers () const
 
template<typename T , typename std::enable_if< std::is_convertible< T *, controller_interface::ControllerInterface * >::value, T >::type * = nullptr>
controller_interface::ControllerInterfaceSharedPtr add_controller (std::shared_ptr< T > controller, const std::string &controller_name, const std::string &controller_type)
 
CONTROLLER_MANAGER_PUBLIC controller_interface::return_type configure_controller (const std::string &controller_name)
 configure_controller Configure controller by name calling their "configure" method.
 
CONTROLLER_MANAGER_PUBLIC controller_interface::return_type switch_controller (const std::vector< std::string > &start_controllers, const std::vector< std::string > &stop_controllers, int strictness, bool start_asap=kWaitForAllResources, const rclcpp::Duration &timeout=rclcpp::Duration::from_nanoseconds(kInfiniteTimeout))
 switch_controller Stops some controllers and start others.
 
CONTROLLER_MANAGER_PUBLIC void read ()
 
CONTROLLER_MANAGER_PUBLIC controller_interface::return_type update (const rclcpp::Time &time, const rclcpp::Duration &period)
 
CONTROLLER_MANAGER_PUBLIC void write ()
 
CONTROLLER_MANAGER_PUBLIC unsigned int get_update_rate () const
 Deterministic (real-time safe) callback group, e.g., update function.
 

Static Public Attributes

static constexpr bool kWaitForAllResources = false
 
static constexpr auto kInfiniteTimeout = 0
 

Protected Member Functions

CONTROLLER_MANAGER_PUBLIC void init_services ()
 
CONTROLLER_MANAGER_PUBLIC controller_interface::ControllerInterfaceSharedPtr add_controller_impl (const ControllerSpec &controller)
 
CONTROLLER_MANAGER_PUBLIC void manage_switch ()
 
CONTROLLER_MANAGER_PUBLIC void stop_controllers ()
 
CONTROLLER_MANAGER_PUBLIC void start_controllers ()
 
CONTROLLER_MANAGER_PUBLIC void start_controllers_asap ()
 
CONTROLLER_MANAGER_PUBLIC void list_controllers_srv_cb (const std::shared_ptr< controller_manager_msgs::srv::ListControllers::Request > request, std::shared_ptr< controller_manager_msgs::srv::ListControllers::Response > response)
 
CONTROLLER_MANAGER_PUBLIC void list_controller_types_srv_cb (const std::shared_ptr< controller_manager_msgs::srv::ListControllerTypes::Request > request, std::shared_ptr< controller_manager_msgs::srv::ListControllerTypes::Response > response)
 
CONTROLLER_MANAGER_PUBLIC void list_hardware_interfaces_srv_cb (const std::shared_ptr< controller_manager_msgs::srv::ListHardwareInterfaces::Request > request, std::shared_ptr< controller_manager_msgs::srv::ListHardwareInterfaces::Response > response)
 
CONTROLLER_MANAGER_PUBLIC void load_controller_service_cb (const std::shared_ptr< controller_manager_msgs::srv::LoadController::Request > request, std::shared_ptr< controller_manager_msgs::srv::LoadController::Response > response)
 
CONTROLLER_MANAGER_PUBLIC void configure_controller_service_cb (const std::shared_ptr< controller_manager_msgs::srv::ConfigureController::Request > request, std::shared_ptr< controller_manager_msgs::srv::ConfigureController::Response > response)
 
CONTROLLER_MANAGER_PUBLIC void load_and_configure_controller_service_cb (const std::shared_ptr< controller_manager_msgs::srv::LoadConfigureController::Request > request, std::shared_ptr< controller_manager_msgs::srv::LoadConfigureController::Response > response)
 
CONTROLLER_MANAGER_PUBLIC void load_and_start_controller_service_cb (const std::shared_ptr< controller_manager_msgs::srv::LoadStartController::Request > request, std::shared_ptr< controller_manager_msgs::srv::LoadStartController::Response > response)
 
CONTROLLER_MANAGER_PUBLIC void configure_and_start_controller_service_cb (const std::shared_ptr< controller_manager_msgs::srv::ConfigureStartController::Request > request, std::shared_ptr< controller_manager_msgs::srv::ConfigureStartController::Response > response)
 
CONTROLLER_MANAGER_PUBLIC void reload_controller_libraries_service_cb (const std::shared_ptr< controller_manager_msgs::srv::ReloadControllerLibraries::Request > request, std::shared_ptr< controller_manager_msgs::srv::ReloadControllerLibraries::Response > response)
 
CONTROLLER_MANAGER_PUBLIC void switch_controller_service_cb (const std::shared_ptr< controller_manager_msgs::srv::SwitchController::Request > request, std::shared_ptr< controller_manager_msgs::srv::SwitchController::Response > response)
 
CONTROLLER_MANAGER_PUBLIC void unload_controller_service_cb (const std::shared_ptr< controller_manager_msgs::srv::UnloadController::Request > request, std::shared_ptr< controller_manager_msgs::srv::UnloadController::Response > response)
 

Protected Attributes

unsigned int update_loop_counter_ = 0
 
unsigned int update_rate_ = 100
 

Member Function Documentation

◆ configure_controller()

controller_interface::return_type controller_manager::ControllerManager::configure_controller ( const std::string &  controller_name)

configure_controller Configure controller by name calling their "configure" method.

Parameters
[in]controller_nameas a string.
Returns
configure controller response
See also
Documentation in controller_manager_msgs/ConfigureController.srv

◆ get_update_rate()

unsigned int controller_manager::ControllerManager::get_update_rate ( ) const

Deterministic (real-time safe) callback group, e.g., update function.

Deterministic (real-time safe) callback group for the update function. Default behavior is read hardware, update controller and finally write new values to the hardware.

◆ load_controller()

controller_interface::ControllerInterfaceSharedPtr controller_manager::ControllerManager::load_controller ( const std::string &  controller_name)

load_controller loads a controller by name, the type must be defined in the parameter server.

Parameters
[in]controller_nameas a string.
Returns
controller
See also
Documentation in controller_manager_msgs/LoadController.srv

◆ switch_controller()

controller_interface::return_type controller_manager::ControllerManager::switch_controller ( const std::vector< std::string > &  start_controllers,
const std::vector< std::string > &  stop_controllers,
int  strictness,
bool  start_asap = kWaitForAllResources,
const rclcpp::Duration &  timeout = rclcpp::Duration::from_nanoseconds(kInfiniteTimeout) 
)

switch_controller Stops some controllers and start others.

Parameters
[in]start_controllersis a list of controllers to start
[in]stop_controllersis a list of controllers to stop
[in]setlevel of strictness (BEST_EFFORT or STRICT)
See also
Documentation in controller_manager_msgs/SwitchController.srv

The documentation for this class was generated from the following files: