moveit2
The MoveIt Motion Planning Framework for ROS 2.
Classes | Public Member Functions | List of all members
moveit_controller_manager::MoveItControllerManager Class Referenceabstract

MoveIt does not enforce how controllers are implemented. To make your controllers usable by MoveIt, this interface needs to be implemented. The main purpose of this interface is to expose the set of known controllers and potentially to allow activating and deactivating them, if multiple controllers are available. More...

#include <controller_manager.h>

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

Classes

struct  ControllerState
 Each controller known to MoveIt has a state. This structure describes that controller's state. More...
 

Public Member Functions

 MoveItControllerManager ()
 Default constructor. This needs to have no arguments so that the plugin system can construct the object. More...
 
virtual ~MoveItControllerManager ()
 
virtual void initialize (const rclcpp::Node::SharedPtr &node)=0
 
virtual MoveItControllerHandlePtr getControllerHandle (const std::string &name)=0
 Return a given named controller. More...
 
virtual void getControllersList (std::vector< std::string > &names)=0
 Get the list of known controller names. More...
 
virtual void getActiveControllers (std::vector< std::string > &names)=0
 Get the list of active controllers. More...
 
virtual void getControllerJoints (const std::string &name, std::vector< std::string > &joints)=0
 Report the joints a controller operates on, given the controller name. More...
 
virtual ControllerState getControllerState (const std::string &name)=0
 Report the state of a controller, given its name. More...
 
virtual bool switchControllers (const std::vector< std::string > &activate, const std::vector< std::string > &deactivate)=0
 Activate and deactivate controllers. More...
 

Detailed Description

MoveIt does not enforce how controllers are implemented. To make your controllers usable by MoveIt, this interface needs to be implemented. The main purpose of this interface is to expose the set of known controllers and potentially to allow activating and deactivating them, if multiple controllers are available.

Definition at line 157 of file controller_manager.h.

Constructor & Destructor Documentation

◆ MoveItControllerManager()

moveit_controller_manager::MoveItControllerManager::MoveItControllerManager ( )
inline

Default constructor. This needs to have no arguments so that the plugin system can construct the object.

Definition at line 178 of file controller_manager.h.

◆ ~MoveItControllerManager()

virtual moveit_controller_manager::MoveItControllerManager::~MoveItControllerManager ( )
inlinevirtual

Definition at line 182 of file controller_manager.h.

Member Function Documentation

◆ getActiveControllers()

virtual void moveit_controller_manager::MoveItControllerManager::getActiveControllers ( std::vector< std::string > &  names)
pure virtual

Get the list of active controllers.

If there is only one controller in the system, this will be active. When multiple controllers exist, and they operate on overlapping sets of joints, not all controllers should be active at the same time.

Implemented in moveit_simple_controller_manager::MoveItSimpleControllerManager, moveit_ros_control_interface::Ros2ControlMultiManager, and moveit_ros_control_interface::Ros2ControlManager.

◆ getControllerHandle()

virtual MoveItControllerHandlePtr moveit_controller_manager::MoveItControllerManager::getControllerHandle ( const std::string &  name)
pure virtual

◆ getControllerJoints()

virtual void moveit_controller_manager::MoveItControllerManager::getControllerJoints ( const std::string &  name,
std::vector< std::string > &  joints 
)
pure virtual

Report the joints a controller operates on, given the controller name.

In order to decide which controller to use, it is necessary to reason about the joints a controller operates on.

Implemented in moveit_simple_controller_manager::MoveItSimpleControllerManager, moveit_ros_control_interface::Ros2ControlMultiManager, and moveit_ros_control_interface::Ros2ControlManager.

◆ getControllersList()

virtual void moveit_controller_manager::MoveItControllerManager::getControllersList ( std::vector< std::string > &  names)
pure virtual

◆ getControllerState()

virtual ControllerState moveit_controller_manager::MoveItControllerManager::getControllerState ( const std::string &  name)
pure virtual

◆ initialize()

virtual void moveit_controller_manager::MoveItControllerManager::initialize ( const rclcpp::Node::SharedPtr &  node)
pure virtual

◆ switchControllers()

virtual bool moveit_controller_manager::MoveItControllerManager::switchControllers ( const std::vector< std::string > &  activate,
const std::vector< std::string > &  deactivate 
)
pure virtual

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