Add Goal-/Application-Model module

Idea: workflow with given points and "worktime"

Workflow = { move to point P_i - Wait t_i seconds } \forall i \in I

Grammar:

Application ::= WorkPose* /Workflow/ RobotState;

RobotState ::= <CurrentPosition:DoublePosition>;

WorkPose ::= <Position:DoublePosition> <Duration:double>;

Workflow ::= Step* /<NextPosition:DoublePosition>/ ;

abstract Step ;
MoveTo : Step ::= <Position:DoublePosition> ; // in [m,m,m]
Work : Step ::= <Duration:double> ; // in s

rel Step.successor <-> Step.predecessor*;
rel Workflow.currentStep? -> Step;

Definitions:

read Goal.CurrentPosition using ... ;
write Workflow.NextPosition using CreateTrajectoryMessage, SerializeTrajectory;

CreateTrajectoryMessage maps DoublePosition dp to plan.TrajectoryMessage {:
  // compute intermediate points at ROS side, not here
:}
Edited by René Schöne