Skip to content
Andrea Del Prete edited this page Mar 10, 2021 · 1 revision

Tasks

This page collects some useful information about the tasks available in TSID.

Masks

Most tasks in TSID allow the user to specify a mask (e.g., TaskSE3Equality, TaskCOM, TaskJointPosture, TaskActuationBounds, TaskJointBounds). Masks are vectors of binary numbers (0 or 1) that specify which axes of the task are actually controlled. This feature is extremely useful, for instance, to control only the xy position of the center of mass of the robot, or to control only the position (or only the orientation) of a frame.

Local and world frame

For TaskSE3Equality, the mask can be either applied in the local frame or in the world frame, depending on the value of the flag local_frame (which is true by default). Therefore, if you want to apply the mask in the world frame (which is the most common use case) you need to call the method TaskSE3Equality::useLocalFrame(false) before starting the controller.

Reference size

Another common doubts is whether, when a mask is used, the reference trajectory should have the size of the masked task or the size of the original task. In TSID we have decided not to change the size of the reference depending on the mask because this seemed to be simpler for the user.

Clone this wiki locally