Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
moveit_ros_control_interface::MoveItControllerManager Class Reference

moveit_controller_manager::MoveItControllerManager sub class that interfaces one ros_control controller_manager instance. All services and names are relative to ns_. More...

Inheritance diagram for moveit_ros_control_interface::MoveItControllerManager:
Inheritance graph
[legend]

Public Member Functions

void getActiveControllers (std::vector< std::string > &names) override
 Refresh controller list and output all active, managed controllers. More...
 
moveit_controller_manager::MoveItControllerHandlePtr getControllerHandle (const std::string &name) override
 Find and return the pre-allocated handle for the given controller. More...
 
void getControllerJoints (const std::string &name, std::vector< std::string > &joints) override
 Read resources from cached controller states. More...
 
void getControllersList (std::vector< std::string > &names) override
 Refresh controller list and output all managed controllers. More...
 
ControllerState getControllerState (const std::string &name) override
 Refresh controller state and output the state of the given one, only active_ will be set. More...
 
 MoveItControllerManager ()
 The default constructor. Reads the namespace from ~ros_control_namespace param and defaults to /. More...
 
 MoveItControllerManager (const std::string &ns)
 Configure interface with namespace. More...
 
bool switchControllers (const std::vector< std::string > &activate, const std::vector< std::string > &deactivate) override
 Filter lists for managed controller and computes switching set. Stopped list might be extended by unsupported controllers that claim needed resources. More...
 
- Public Member Functions inherited from moveit_controller_manager::MoveItControllerManager
 MoveItControllerManager ()
 
virtual ~MoveItControllerManager ()
 

Private Types

typedef std::map< std::string, ControllerHandleAllocatorPtr > AllocatorsMap
 
typedef std::map< std::string, controller_manager_msgs::ControllerState > ControllersMap
 
typedef std::map< std::string, moveit_controller_manager::MoveItControllerHandlePtr > HandleMap
 

Private Member Functions

void allocate (const std::string &name, const controller_manager_msgs::ControllerState &controller)
 Allocates a MoveItControllerHandle instance for the given controller Might create allocator object first. More...
 
void discover (bool force=false)
 Call list_controllers and populate managed_controllers_ and active_controllers_. Allocates handles if needed. Throttled down to 1 Hz, controllers_mutex_ must be locked externally. More...
 
std::string getAbsName (const std::string &name)
 get fully qualified name More...
 

Static Private Member Functions

static bool isActive (const controller_manager_msgs::ControllerState &s)
 Check if given controller is active. More...
 

Private Attributes

ControllersMap active_controllers_
 
AllocatorsMap allocators_
 
boost::mutex controllers_mutex_
 
ros::Time controllers_stamp_
 
HandleMap handles_
 
pluginlib::ClassLoader< ControllerHandleAllocatorloader_
 
ControllersMap managed_controllers_
 
const std::string ns_
 

Detailed Description

moveit_controller_manager::MoveItControllerManager sub class that interfaces one ros_control controller_manager instance. All services and names are relative to ns_.

Definition at line 116 of file controller_manager_plugin.cpp.

Member Typedef Documentation

◆ AllocatorsMap

typedef std::map<std::string, ControllerHandleAllocatorPtr> moveit_ros_control_interface::MoveItControllerManager::AllocatorsMap
private

Definition at line 123 of file controller_manager_plugin.cpp.

◆ ControllersMap

typedef std::map<std::string, controller_manager_msgs::ControllerState> moveit_ros_control_interface::MoveItControllerManager::ControllersMap
private

Definition at line 120 of file controller_manager_plugin.cpp.

◆ HandleMap

typedef std::map<std::string, moveit_controller_manager::MoveItControllerHandlePtr> moveit_ros_control_interface::MoveItControllerManager::HandleMap
private

Definition at line 126 of file controller_manager_plugin.cpp.

Constructor & Destructor Documentation

◆ MoveItControllerManager() [1/2]

moveit_ros_control_interface::MoveItControllerManager::MoveItControllerManager ( )
inline

The default constructor. Reads the namespace from ~ros_control_namespace param and defaults to /.

Definition at line 223 of file controller_manager_plugin.cpp.

◆ MoveItControllerManager() [2/2]

moveit_ros_control_interface::MoveItControllerManager::MoveItControllerManager ( const std::string &  ns)
inline

Configure interface with namespace.

Parameters
nsnamespace of ros_control node (without /controller_manager/)

Definition at line 234 of file controller_manager_plugin.cpp.

Member Function Documentation

◆ allocate()

void moveit_ros_control_interface::MoveItControllerManager::allocate ( const std::string &  name,
const controller_manager_msgs::ControllerState &  controller 
)
inlineprivate

Allocates a MoveItControllerHandle instance for the given controller Might create allocator object first.

Parameters
namefully qualified name of the controller
controllercontroller information

Definition at line 181 of file controller_manager_plugin.cpp.

◆ discover()

void moveit_ros_control_interface::MoveItControllerManager::discover ( bool  force = false)
inlineprivate

Call list_controllers and populate managed_controllers_ and active_controllers_. Allocates handles if needed. Throttled down to 1 Hz, controllers_mutex_ must be locked externally.

Parameters
forceforce rediscover

Definition at line 148 of file controller_manager_plugin.cpp.

◆ getAbsName()

std::string moveit_ros_control_interface::MoveItControllerManager::getAbsName ( const std::string &  name)
inlineprivate

get fully qualified name

Parameters
namename to be resolved to an absolute name
Returns
resolved name

Definition at line 214 of file controller_manager_plugin.cpp.

◆ getActiveControllers()

void moveit_ros_control_interface::MoveItControllerManager::getActiveControllers ( std::vector< std::string > &  names)
inlineoverridevirtual

Refresh controller list and output all active, managed controllers.

Parameters
[out]nameslist of controllers (with namespace)

Implements moveit_controller_manager::MoveItControllerManager.

Definition at line 275 of file controller_manager_plugin.cpp.

◆ getControllerHandle()

moveit_controller_manager::MoveItControllerHandlePtr moveit_ros_control_interface::MoveItControllerManager::getControllerHandle ( const std::string &  name)
inlineoverridevirtual

Find and return the pre-allocated handle for the given controller.

Parameters
name
Returns

Implements moveit_controller_manager::MoveItControllerManager.

Definition at line 244 of file controller_manager_plugin.cpp.

◆ getControllerJoints()

void moveit_ros_control_interface::MoveItControllerManager::getControllerJoints ( const std::string &  name,
std::vector< std::string > &  joints 
)
inlineoverridevirtual

Read resources from cached controller states.

Parameters
[in]namename of controller (with namespace)
[out]joints

Implements moveit_controller_manager::MoveItControllerManager.

Definition at line 293 of file controller_manager_plugin.cpp.

◆ getControllersList()

void moveit_ros_control_interface::MoveItControllerManager::getControllersList ( std::vector< std::string > &  names)
inlineoverridevirtual

Refresh controller list and output all managed controllers.

Parameters
[out]nameslist of controllers (with namespace)

Implements moveit_controller_manager::MoveItControllerManager.

Definition at line 259 of file controller_manager_plugin.cpp.

◆ getControllerState()

ControllerState moveit_ros_control_interface::MoveItControllerManager::getControllerState ( const std::string &  name)
inlineoverridevirtual

Refresh controller state and output the state of the given one, only active_ will be set.

Parameters
[in]namename of controller (with namespace)
Returns
state

Implements moveit_controller_manager::MoveItControllerManager.

Definition at line 312 of file controller_manager_plugin.cpp.

◆ isActive()

static bool moveit_ros_control_interface::MoveItControllerManager::isActive ( const controller_manager_msgs::ControllerState &  s)
inlinestaticprivate

Check if given controller is active.

Parameters
sstate of controller
Returns
true if controller is active

Definition at line 137 of file controller_manager_plugin.cpp.

◆ switchControllers()

bool moveit_ros_control_interface::MoveItControllerManager::switchControllers ( const std::vector< std::string > &  activate,
const std::vector< std::string > &  deactivate 
)
inlineoverridevirtual

Filter lists for managed controller and computes switching set. Stopped list might be extended by unsupported controllers that claim needed resources.

Parameters
activate
deactivate
Returns
true if switching succeeded

Implements moveit_controller_manager::MoveItControllerManager.

Definition at line 333 of file controller_manager_plugin.cpp.

Member Data Documentation

◆ active_controllers_

ControllersMap moveit_ros_control_interface::MoveItControllerManager::active_controllers_
private

Definition at line 122 of file controller_manager_plugin.cpp.

◆ allocators_

AllocatorsMap moveit_ros_control_interface::MoveItControllerManager::allocators_
private

Definition at line 124 of file controller_manager_plugin.cpp.

◆ controllers_mutex_

boost::mutex moveit_ros_control_interface::MoveItControllerManager::controllers_mutex_
private

Definition at line 130 of file controller_manager_plugin.cpp.

◆ controllers_stamp_

ros::Time moveit_ros_control_interface::MoveItControllerManager::controllers_stamp_
private

Definition at line 129 of file controller_manager_plugin.cpp.

◆ handles_

HandleMap moveit_ros_control_interface::MoveItControllerManager::handles_
private

Definition at line 127 of file controller_manager_plugin.cpp.

◆ loader_

pluginlib::ClassLoader<ControllerHandleAllocator> moveit_ros_control_interface::MoveItControllerManager::loader_
private

Definition at line 119 of file controller_manager_plugin.cpp.

◆ managed_controllers_

ControllersMap moveit_ros_control_interface::MoveItControllerManager::managed_controllers_
private

Definition at line 121 of file controller_manager_plugin.cpp.

◆ ns_

const std::string moveit_ros_control_interface::MoveItControllerManager::ns_
private

Definition at line 118 of file controller_manager_plugin.cpp.


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


moveit_ros_control_interface
Author(s): Mathias Lüdtke
autogenerated on Sat May 3 2025 02:28:17