This section show the operators used by PROMISE. At the end we provide a table with more information, including the semantics of each operator and their representation using both syntaxes. To better understand the operators, we explain an illustrative example in this website.
This operator is always the root of the mission. The operators o1, o2, · · · , on are executed in parallel, each by a different robot. This means that the operators under each branch of the parallel are assigned to a specific robot, as represented in the labels of the edges (represented as gray arrows). The operator paralle returns success when all operators return success, failure otherwise.
Example: Robot1 loads an item onto Robot2, which in turn delivers it to a specific location.
Its function is to delegate the execution of a task t to a specific robot (specified by the Parallel operator, as explained above). Tasks are specified using patterns for robotic missions that take as input parameters as locations (indicated as l1,l2,...,ln) and actions (indicated as a1, a2, . . . , an). The operator delegate returns failure if the associated task is failed and success if it is succesful.
Example: Robot1 sequentially patrols (i.e., visits infinitely often) a list of locations.
The fallback operator starts by executing the first operator (o1); if it is executed successfully, it ends with success. If the execution of the first operator fails, tries to execute the second operator. This procedure is repeated for all the other input operators. Returns failure if all operators fail.
Example: Robot1 tries to grasp an object. If it fails, the robot tries to detect and track the object again.
Executes all the operators from the first to the last in a sequential manner (o1, o2, · · · , on). If an operator returns success executes the subsequent operator. If one of its children operators returns a failure, the operator sequence returns failure. The operator sequence returns success if and only if all the children operators return success.
Example: Robot1 must visit the storage room, pick a specific item, and bring it back.
The event handler executes its default operator o when started. If an event ei occurs during the execution of the default mission, the event handler triggers the execution of operator oi in response. Once the execution of oi is finished, the event handler resumes the execution of the default mission (o). The event handler returns success if the default mission succeeds and all the events that occurred during the execution of o are correctly handled.
Example: Robot1 patrols the areas of a hospital during the night (default mission), and if it detects an intruder (e1), the robot will raise an alarm (e1).
Evaluates the conditions from the first to the last. If the evaluation of one or more conditions is true, executes the correspond- ing operators. Returns ⊥ if an operation is not successful, i.e., either it fails or an event occurs. Returns ⊤ when all the executed operations return ⊤.
Allows the composition of a core movement task with one or more avoidance tasks and with one or more trigger tasks. The com- position is performed by means of the andlogical operator.