summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/init.fsm
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io/src/init.fsm')
-rw-r--r--digital/io/src/init.fsm106
1 files changed, 0 insertions, 106 deletions
diff --git a/digital/io/src/init.fsm b/digital/io/src/init.fsm
deleted file mode 100644
index f780ba45..00000000
--- a/digital/io/src/init.fsm
+++ /dev/null
@@ -1,106 +0,0 @@
-# init FSM
-# This FSM is used to place the bot at a "start position" for a match. It is
-# more precise than a human hand and reset the asserv board to the start
-# position.
-# Some remarks:
-# - for security reason, we need to insert the jack then removed it, then
-# insert it back. Why? Because it can already be inserted.
-# - other FSM can do a similar thing by using the first jack out to
-# initialize.
-init
- place the bot in the start position for a match.
-
-States:
- *INIT_IDLE
- waiting for the beginning of the top FSM.
- INIT_WAIT_FIRST_JACK_IN
- wait for the jack to be inserted into the bot for the first time.
- INIT_WAIT_FIRST_JACK_OUT
- wait the jack to be removed from the bot for the first time.
- INIT_WAIT_SECOND_JACK_IN
- wait for the jack to be inserted into the bot for the second time.
- INIT_WAIT_FOR_HANDS_OUT[timeout=225]
- just wait for operator hands to be removed from the jack.
- INIT_GO_TO_THE_WALL
- go to the wall for the first time.
- INIT_GO_AWAY_FROM_THE_WALL
- reset the Y position of the bot.
- reset the angular position of the bot.
- go backward from the wall for a specific distance.
- INIT_FACE_OTHER_WALL
- make the bot face the other wall.
- INIT_WAIT_AFTER_ROTATION [timeout=100]
- make sure rotation is really finished before continuing.
- INIT_GO_TO_THE_WALL_AGAIN
- go to the wall for the second time.
- INIT_GO_AWAY_FROM_THE_WALL_AGAIN
- reset the X position of the bot.
- go backward from the wall for a specific distance.
- INIT_GO_TO_START_POSITION
- go to the start position.
- INIT_WAIT_SECOND_JACK_OUT
- wait the jack to be removed from the bot for the second time.
-
-Events:
- jack_inserted_into_bot
- the jack is inserted into the bot.
- jack_removed_from_bot
- the jack is removed from the bot.
-
-INIT_IDLE:
- start -> INIT_WAIT_FIRST_JACK_IN
- do nothing.
-
-INIT_WAIT_FIRST_JACK_IN:
- jack_inserted_into_bot -> INIT_WAIT_FIRST_JACK_OUT
- do nothing.
-
-INIT_WAIT_FIRST_JACK_OUT:
- jack_removed_from_bot -> INIT_WAIT_SECOND_JACK_IN
- start trace module.
- get and store the color of the bot.
-
-INIT_WAIT_SECOND_JACK_IN:
- jack_inserted_into_bot -> INIT_WAIT_FOR_HANDS_OUT
- do nothing.
-
-INIT_WAIT_FOR_HANDS_OUT:
- state_timeout -> INIT_GO_TO_THE_WALL
- fuck the wall in front.
-
-INIT_GO_TO_THE_WALL:
- bot_move_succeed -> INIT_GO_AWAY_FROM_THE_WALL
- reset the Y position of the bot.
- reset the angular position of the bot.
- move away from the wall (linear move).
-
-INIT_GO_AWAY_FROM_THE_WALL:
- bot_move_succeed -> INIT_FACE_OTHER_WALL
- turn to face the other wall.
-
-INIT_FACE_OTHER_WALL:
- bot_move_succeed -> INIT_WAIT_AFTER_ROTATION
- nothing to do.
-
-INIT_WAIT_AFTER_ROTATION:
- state_timeout -> INIT_GO_TO_THE_WALL_AGAIN
- fuck the wall in front.
-
-INIT_GO_TO_THE_WALL_AGAIN:
- bot_move_succeed -> INIT_GO_AWAY_FROM_THE_WALL_AGAIN
- reset the X position of the bot.
- move away from the wall (linear move).
-
-INIT_GO_AWAY_FROM_THE_WALL_AGAIN:
- bot_move_succeed -> INIT_GO_TO_START_POSITION
- go to the start position with a go to movement.
-
-INIT_GO_TO_START_POSITION:
- bot_move_succeed -> INIT_WAIT_SECOND_JACK_OUT
- nothing to do, the bot is at the start position.
-
-INIT_WAIT_SECOND_JACK_OUT:
- jack_removed_from_bot -> INIT_IDLE
- tell other FSM the match begins.
- start the chrono.
-