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