summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/move.c
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io/src/move.c')
-rw-r--r--digital/io/src/move.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/digital/io/src/move.c b/digital/io/src/move.c
index 69f71b31..f0996070 100644
--- a/digital/io/src/move.c
+++ b/digital/io/src/move.c
@@ -25,6 +25,9 @@
#include "common.h"
#include "move.h"
#include "fsm.h"
+#include "radar.h"
+#include "asserv.h"
+#include "main.h"
/**
* Internal data used by the move FSM.
@@ -42,3 +45,16 @@ move_start (position_t position, uint8_t backward)
fsm_handle_event (&ai_fsm, AI_EVENT_move_start);
}
+void
+move_check_obstacles (void)
+{
+ if (fsm_can_handle_event (&ai_fsm, AI_EVENT_obstacle_in_front))
+ {
+ position_t robot_pos;
+ asserv_get_position (&robot_pos);
+ if (radar_blocking (&robot_pos.v, &move_data.step, main_obstacles_pos,
+ main_obstacles_nb))
+ fsm_handle_event (&ai_fsm, AI_EVENT_obstacle_in_front);
+ }
+}
+