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
:}