Sequencer and Sequences
For more informations how sequences and the sequencer work, have a look athttp://wiki.eeros.org/eeros_architecture/sequencer/start in the eeros wiki.
Main Sequence
The main sequence starts shortly after the executor started running. It is responsible to initialize the robot by stepping through the safety levels up to slSystemReady
. From there the user can choose whether she wants to start normal operation or switch off the system again. The main sequence has an associated EmergencyMonitor
. This monitor helps to detect an emergency condition (if the red button was pressed) and will interrupt the main sequence. Upon returning from the emergency state the monitor will cause a restart of the main sequence.
Homing
The homing of the Delta robot is done in the Homing Sequence
. The three axis are raised by driving the three motors upwards with constant speed until the end stop. At this point the encoders are set to their initial position. The angle of this initial position can be determined from the mechanical constraints, see Initialization - Zero reference. From there the tool center point is moved to position ready. As soon as Homing Sequence
finishes a safety event is triggered, which causes the safety system to change to slHomed
level.
Circle Sequence
As soon as the safety system reaches the level slAutoMoving
it will start the CircleSequence
. First the TCP is moved to a start position on the circle. Then the circle planner in the Control System is activated and the robot will perform a circular movement. The CircleSequence
repetitively runs step Wait
.
The CircleSequence
is equipped with two monitors.
- Mouse Monitor: This monitor checks if the mouse is moved. As soon as this condition is met, the current sequence is aborted and the
MoveMouseExceptionSequence
gets started. This sequence triggers the safety event “doMouseControl”. This causes the safety system to change toslMouseControl
level. - BlueButton Monitor: Another monitor permanently checks if the blue button is pressed. Its associated exception sequence stops the current sequence, moves the TCP to its initial position and triggers a
stopMoving
event. The safety system will return toslSystemReady
.
Mouse Sequence
The MainSequence
starts the MouseSequence
as soon as the safety system jumps into level slMouseControl
. As long as the mouse gets moved, the MouseSequence
will be active and the TCP will duly follow the position given by the mouse. This sequence is equipped with two monitors.
- Timeout Monitor: If the mouse doesn't send any event for 2 seconds, this monitor starts the
MouseTimeoutExpectionSequence
. This exception sequence aborts theMouseSequence
and causes the safety system to fall back to levelslAutoMoving
, which in turns restartsCircleSequence
. - BlueButton Monitor: Another monitor permanently checks if the blue button is pressed. Its associated exception sequence stops the current sequence, moves the TCP to its initial position and triggers a
stopMoving
event. The safety system will return toslSystemReady
.
Parking Sequence
The MainSequence
starts the ParkingSequence
as soon as the safety system jumps into level slParking
. The TCP moves to a park position before the driving signals to the motors are set to zero. Finally a parkingDone
event is triggered.
Abort Monitor and Condition
For a system under development it is advantageous to be able to stop the running application by pressing CTRL-C
. For this purpose every sequence and step is equipped with an abort monitor together with an abort condition, see https://wiki.eeros.org/eeros_architecture/sequencer/monitors