summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/move.fsm
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io/src/move.fsm')
-rw-r--r--digital/io/src/move.fsm26
1 files changed, 26 insertions, 0 deletions
diff --git a/digital/io/src/move.fsm b/digital/io/src/move.fsm
index 20334686..2812f686 100644
--- a/digital/io/src/move.fsm
+++ b/digital/io/src/move.fsm
@@ -16,6 +16,10 @@ States:
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
+ moving loader down.
Events:
move_start
@@ -34,6 +38,9 @@ MOVE_IDLE:
MOVE_ROTATING:
bot_move_succeed -> MOVE_MOVING
move to next position.
+ loader_errored -> MOVE_LOADER_UNBLOCKING_UPING
+ move backward
+ loader up
MOVE_MOVING:
bot_move_succeed: done -> MOVE_IDLE
@@ -50,6 +57,9 @@ MOVE_MOVING:
obstacle_in_front -> MOVE_WAIT_FOR_CLEAR_PATH
reset final_move.
stop the bot.
+ loader_errored -> MOVE_LOADER_UNBLOCKING_UPING
+ move backward
+ loader up
MOVE_MOVING_BACKWARD_TO_TURN_FREELY:
bot_move_succeed: path_found_rotate -> MOVE_ROTATING
@@ -74,3 +84,19 @@ MOVE_WAIT_FOR_CLEAR_PATH:
decrement counter.
state_timeout: no_path_found_and_no_try_again -> MOVE_IDLE
post failure.
+
+MOVE_LOADER_UNBLOCKING_UPING:
+ bot_move_succeed -> MOVE_LOADER_UNBLOCKING_DOWNING
+ loader down
+ bot_move_failed -> MOVE_LOADER_UNBLOCKING_DOWNING
+ loader down
+
+MOVE_LOADER_UNBLOCKING_DOWNING:
+ loader_downed: rotate -> MOVE_ROTATING
+ repeat last rotate
+ loader_downed: move -> MOVE_MOVING
+ repeat last move
+ loader_errored -> MOVE_LOADER_UNBLOCKING_UPING
+ move backward
+ loader up
+