Tasks describe via which steps (what: the ordering of steps) and in which manner (how: the kind of execution) to accomplish a particular job. For this, a vocabulary with a semantics is needed not only for the task names but also for the in-attributes, the out-attributes, and the task results. The task definition meta-model allows domain experts at Composition Tier 2 to specify that vocabulary and its meaning for a particular domain. Tasks are realized at Composition Tier 3.
Separating task definitions and task realizations makes sure that the behavior developer uses only that vocabulary with the given semantics as has been agreed by the domain experts. This not only ensures composability of task blocks but also ensures that the robot finally shows the extended behavior.
The domain-specific task definitions at Composition Tier 2 ensure that different tasks talk about activities in the same way. In consequence, tasks belonging to the same domain talk about the same activity when they use the same name and their input / output arguments as well as their result values follow the same domain-specific vocabulary and meaning.
A task definition as the interface specification of a task contains input and output attributes of a primitive type (int, bool, etc.) and returns a result (TaskResult). The set of all contained SkillResults models the possible results a task could evaluate to. Each TaskResult maps to either SUCCESS or ERROR and contains an additional value to provide further result details (e.g. ERROR and “No Path” for a transportation task).
This document contains material from: