SwitchController
This is a ROS service definition.
Source
# The SwitchController service allows you to deactivate a number of controllers
# and activate a number of controllers, all in one single timestep of the
# controller manager's control loop.
# To switch controllers, specify
# * the list of controller names to activate,
# * the list of controller names to deactivate, and
# * the strictness (STRICT, BEST_EFFORT, AUTO, or FORCE_AUTO)
# * STRICT means that switching will fail if anything goes wrong (an invalid
# controller name, a controller that failed to activate, etc.).
# * BEST_EFFORT:
# Transitions are only triggered if the controller is not yet in the target state.
# If it is already in the target state, no error occurs.
# Returns 'false' if all controllers of 'activate_controllers' or 'deactivate_controllers' are not yet loaded or configured,
# or the pending transitions of all existing controllers of 'activate_controllers'
# or 'deactivate_controllers' fail.
# Returns 'true' otherwise.
# * AUTO means that the controller manager will automatically resolve the controller
# chain in order to activate and/or deactivate the specified controllers.
# This is useful in complex systems when you want all dependent controllers to start
# within the same update iteration.
# * FORCE_AUTO means that the controller manager will take all necessary steps to activate
# the specified controllers without requiring you to explicitly list the controllers
# to be deactivated. This is useful when the controller being activated depends on
# another unknown controller that is currently running. The controller manager will
# deactivate any controllers that block the activation of the requested controller,
# following the mutually exclusive joint interface switching principle. For example,
# to activate a controller that uses a joint's position interface, the controller manager
# will automatically deactivate any controllers that use conflicting interfaces for
# the same joint.
# * activate the controllers as soon as their hardware dependencies are ready, will
# wait for all interfaces to be ready otherwise
# * the timeout before aborting pending controllers. Zero for infinite
# The return value "ok" indicates if the controllers were switched
# successfully or not. The meaning of success depends on the
# specified strictness.
# The return value "message" provides some human-readable information.
string[] activate_controllers
string[] deactivate_controllers
int32 strictness
int32 BEST_EFFORT=1
int32 STRICT=2
int32 AUTO=3
int32 FORCE_AUTO=4
bool activate_asap
builtin_interfaces/Duration timeout
---
bool ok
string message