Wiki

Clone wiki

scl-manips-group / debug / task_pri_order

Task prioritization

Operational space control resolves inter-task conflicts by projecting conflicting tasks into a non-conflicting null space.

The null space is computed by prioritizing tasks in which lower priority tasks are constrained by higher priority tasks.

As a rule of thumb, place the most mobile tasks (hands, feet) at the highest priority level (0). Next, place the less constrained tasks (elbow, knee) etc. Place the most constrained tasks (torso) at the next level. Finally, add null space damping or posture.

Ideally, you should avoid overconstraining the robot. Doing so will make the controller somewhat sensitive to perturbation. Uncontrolled null spaces have very nice perturbation responses.

Finally, you can also use gain differences to trade off tasks against each other at the same priority level. Remember that forces simply sum. A 1:2 gain ratio for two tasks, means that the higher gain task will be executed twice as well as the lower gain task.

Updated