summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/move.fsm
diff options
context:
space:
mode:
authorJérôme Jutteau2011-05-02 23:32:51 +0200
committerNicolas Schodet2011-05-02 23:32:51 +0200
commit2376aeb614d69d7050209f858818bfa7d36be398 (patch)
treededa5a2e0b95187c9fc295bf3f6c5230eb684b99 /digital/io/src/move.fsm
parent8a6cac0a41be34d36122ab5271295b0ee83fddac (diff)
digital/io: adapt FSM to new FSM system (AngFSM)
Diffstat (limited to 'digital/io/src/move.fsm')
-rw-r--r--digital/io/src/move.fsm137
1 files changed, 0 insertions, 137 deletions
diff --git a/digital/io/src/move.fsm b/digital/io/src/move.fsm
deleted file mode 100644
index add29b05..00000000
--- a/digital/io/src/move.fsm
+++ /dev/null
@@ -1,137 +0,0 @@
-# Move FSM
-# This FSM is responsible to move the bot from the current position to the
-# desired one. It will try to avoid obstacle and manage the case when the
-# asserv is blocked.
-move
- move with avoid obstacle.
-
-States:
- *MOVE_IDLE
- waiting for the beginning of the move FSM.
- MOVE_ROTATING [timeout=1125]
- rotating towards next point.
- MOVE_MOVING [timeout=2250]
- moving to a position (intermediate or final).
- MOVE_MOVING_BACKWARD_TO_TURN_FREELY
- moving backward to go away from what is blocking the bot.
- MOVE_WAIT_FOR_CLEAR_PATH [timeout=255]
- waiting for obstacle to disappear.
- MOVE_LOADER_UNBLOCKING_UPING
- moving loader up and move backward to unblock loader.
- MOVE_LOADER_UNBLOCKING_DOWNING [timeout=450]
- moving loader down.
-
-Events:
- move_start
- initialize the FSM and start the movement directly.
- obstacle_in_front
- the bot has seen something (front is the same when going backward).
-
-MOVE_IDLE:
- move_start: path_found_rotate -> MOVE_ROTATING
- rotate towards next position.
- move_start: path_found -> MOVE_MOVING
- move to next position.
- move_start: no_path_found -> MOVE_IDLE
- post failure event.
-
-MOVE_ROTATING:
- bot_move_succeed -> MOVE_MOVING
- move to next position.
- bot_move_failed -> MOVE_MOVING
- move to next position.
- state_timeout -> MOVE_MOVING
- move to next position.
- loader_errored -> MOVE_LOADER_UNBLOCKING_UPING
- move backward
- loader up
-
-MOVE_MOVING:
- bot_move_succeed: done -> MOVE_IDLE
- post success event.
- bot_move_succeed: path_found_rotate -> MOVE_ROTATING
- rotate towards next position.
- bot_move_succeed: path_found -> MOVE_MOVING
- move to next position.
- bot_move_succeed: no_path_found -> MOVE_IDLE
- post failure event.
- bot_move_failed -> MOVE_MOVING_BACKWARD_TO_TURN_FREELY
- reset final_move.
- move backward to turn freely.
- state_timeout -> MOVE_MOVING_BACKWARD_TO_TURN_FREELY
- reset final_move.
- move backward to turn freely.
- obstacle_in_front: tryagain -> MOVE_WAIT_FOR_CLEAR_PATH
- reset final_move.
- stop the bot.
- obstacle_in_front: tryout -> MOVE_IDLE
- stop the bot.
- post failure event.
- loader_errored -> MOVE_LOADER_UNBLOCKING_UPING
- move backward
- loader up
-
-MOVE_MOVING_BACKWARD_TO_TURN_FREELY:
- bot_move_succeed: tryout -> MOVE_IDLE
- post failure event.
- bot_move_succeed: path_found_rotate -> MOVE_ROTATING
- rotate towards next position.
- bot_move_succeed: path_found -> MOVE_MOVING
- move to next position.
- bot_move_succeed: no_path_found -> MOVE_IDLE
- post failure event.
- bot_move_failed: tryout -> MOVE_IDLE
- post failure event.
- bot_move_failed: path_found_rotate -> MOVE_ROTATING
- rotate towards next position.
- bot_move_failed: path_found -> MOVE_MOVING
- move to next position.
- bot_move_failed: no_path_found_tryagain -> MOVE_WAIT_FOR_CLEAR_PATH
- nothing to do.
- bot_move_failed: no_path_found_tryout -> MOVE_IDLE
- post failure event.
-
-MOVE_WAIT_FOR_CLEAR_PATH:
- state_timeout: path_found_rotate -> MOVE_ROTATING
- rotate towards next position.
- state_timeout: path_found -> MOVE_MOVING
- move to next position.
- state_timeout: no_path_found_tryagain -> .
- decrement counter.
- state_timeout: no_path_found_tryout -> MOVE_IDLE
- post failure.
-
-MOVE_LOADER_UNBLOCKING_UPING:
- bot_move_succeed -> MOVE_LOADER_UNBLOCKING_DOWNING
- loader down
- reset unblocking retry counter
- bot_move_failed -> MOVE_LOADER_UNBLOCKING_DOWNING
- loader down
- reset unblocking retry counter
-
-MOVE_LOADER_UNBLOCKING_DOWNING:
- loader_downed: path_found_rotate -> MOVE_ROTATING
- rotate towards next position.
- loader_downed: path_found -> MOVE_MOVING
- move to next position.
- loader_downed: no_path_found -> MOVE_IDLE
- post failure.
- loader_errored: tryagain -> MOVE_LOADER_UNBLOCKING_UPING
- move backward
- loader up
- loader_errored: tryout_path_found_rotate -> MOVE_ROTATING
- rotate towards next position.
- loader_errored: tryout_path_found -> MOVE_ROTATING
- move to next position.
- loader_errored: tryout_no_path_found -> MOVE_IDLE
- post failure.
- state_timeout: tryagain -> MOVE_LOADER_UNBLOCKING_UPING
- move backward
- loader up
- state_timeout: tryout_path_found_rotate -> MOVE_ROTATING
- rotate towards next position.
- state_timeout: tryout_path_found -> MOVE_ROTATING
- move to next position.
- state_timeout: tryout_no_path_found -> MOVE_IDLE
- post failure.
-