moveit2
The MoveIt Motion Planning Framework for ROS 2.
Loading...
Searching...
No Matches
Classes | Functions
moveit_ros_control_interface Namespace Reference

Classes

class  ControllerHandleAllocator
 
class  EmptyControllerAllocator
 This class allows MoveIt's controller manager to start and stop a controller that does not have a corresponding controller handle implementation without actually executing MoveIt trajectories through the controller handle. More...
 
class  GripperCommandControllerAllocator
 Simple allocator for moveit_simple_controller_manager::GripperCommandControllerHandle instances. More...
 
class  JointTrajectoryControllerAllocator
 Simple allocator for moveit_simple_controller_manager::FollowJointTrajectoryControllerHandle instances. More...
 
class  ParallelGripperCommandControllerAllocator
 Simple allocator for moveit_simple_controller_manager::ParallelGripperCommandControllerHandle instances. More...
 
class  Ros2ControlManager
 moveit_controller_manager::Ros2ControlManager sub class that interfaces one ros_control controller_manager instance. All services and names are relative to ns_. More...
 
class  Ros2ControlMultiManager
 Ros2ControlMultiManager discovers all running ros_control node and delegates member function to the corresponding Ros2ControlManager instances. More...
 

Functions

 MOVEIT_CLASS_FORWARD (ControllerHandleAllocator)
 
std::string parseJointNameFromResource (const std::string &claimed_interface)
 Get joint name from resource name reported by ros2_control, since claimed_interfaces return by ros2_control will have the interface name as suffix joint_name/INTERFACE_TYPE.
 
void deconflictControllerActivationLists (std::vector< std::string > &activate_controllers, std::vector< std::string > &deactivate_controllers)
 Modifies controller activation/deactivation lists to conform to ROS 2 control expectations. \detail Activation/deactivation is expected to be disjoint. For example, if controller B is a dependency of A (A chains to B) but controller B is also a dependency of C (B chains to B), then the switch from A->B to C->B would cause B to be in both the activation and deactivate list. This causes ROS 2 control to throw an error and reject the switch. This function adds the logic needed to avoid this from happening.
 
 MOVEIT_CLASS_FORWARD (Ros2ControlManager)
 

Function Documentation

◆ deconflictControllerActivationLists()

void moveit_ros_control_interface::deconflictControllerActivationLists ( std::vector< std::string > &  activate_controllers,
std::vector< std::string > &  deactivate_controllers 
)

Modifies controller activation/deactivation lists to conform to ROS 2 control expectations. \detail Activation/deactivation is expected to be disjoint. For example, if controller B is a dependency of A (A chains to B) but controller B is also a dependency of C (B chains to B), then the switch from A->B to C->B would cause B to be in both the activation and deactivate list. This causes ROS 2 control to throw an error and reject the switch. This function adds the logic needed to avoid this from happening.

Parameters
[in]activate_controllerscontrollers to activate
[in]deactivate_controllerscontrollers to deactivate

Definition at line 95 of file controller_manager_plugin.cpp.

Here is the caller graph for this function:

◆ MOVEIT_CLASS_FORWARD() [1/2]

moveit_ros_control_interface::MOVEIT_CLASS_FORWARD ( ControllerHandleAllocator  )

◆ MOVEIT_CLASS_FORWARD() [2/2]

moveit_ros_control_interface::MOVEIT_CLASS_FORWARD ( Ros2ControlManager  )

◆ parseJointNameFromResource()

std::string moveit_ros_control_interface::parseJointNameFromResource ( const std::string &  claimed_interface)

Get joint name from resource name reported by ros2_control, since claimed_interfaces return by ros2_control will have the interface name as suffix joint_name/INTERFACE_TYPE.

Parameters
[in]claimed_interfaceclaimed interface as joint_name/INTERFACE_TYPE
Returns
joint_name part of the /p claimed_interface

Definition at line 78 of file controller_manager_plugin.cpp.