Task Servoing
The desired terms, , , , and , from (1), (1), (1), and (1), respectively are provided by higher-level task servoing. Commonly, the high-level reference of a task is simply to attain some pose, and in the case of a wrench task, some force and/or torque. For acceleration tasks, if the desired task value is expressed as a pose, position, or orientation, then it must be converted to an acceleration. This is done here using a feedforward (PD) controller,
(1)
noindent where is the feedforward frame acceleration term, and are the current pose error and its derivative, with and , their proportional and derivative gains respectively. This term also serves to remove drift at the controller level and stabilize the output of the task. The terms, and , are not explicitly defined here because they are representation dependent (see citep{Siciliano2008}). For wrench and torque tasks a similar servoing controller can be developed using a Proportional-Integral (PI) controller.
(2)
This servoing helps stabilize the whole-body controller by driving the desired task values to some fixed state in asymptotically stable manner. Without the servoing the the task error objective term, , could change discontinuously between time steps resulting in discontinuous jumps in the optimal joint torques determined between two time steps.