summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--digital/io/src/ai_move_cb.c7
-rw-r--r--digital/io/src/main.c1
-rw-r--r--digital/io/src/move.c13
-rw-r--r--digital/io/src/move.h4
4 files changed, 18 insertions, 7 deletions
diff --git a/digital/io/src/ai_move_cb.c b/digital/io/src/ai_move_cb.c
index 3d19ef63..bca348f6 100644
--- a/digital/io/src/ai_move_cb.c
+++ b/digital/io/src/ai_move_cb.c
@@ -246,13 +246,6 @@ ai__MOVE_MOVING_BACKWARD_TO_TURN_FREELY__bot_move_failed (void)
fsm_branch_t
ai__MOVE_WAIT_FOR_CLEAR_PATH__state_timeout (void)
{
- uint8_t i;
- /* Position sensed obstacle. */
- for (i = 0; i < main_obstacles_nb; i++)
- {
- path_obstacle (i, main_obstacles_pos[i].x, main_obstacles_pos[i].y,
- MOVE_OBSTACLE_RADIUS, 0, MOVE_OBSTACLE_VALIDITY);
- }
/* Try to move. */
if (move_get_next_position ())
{
diff --git a/digital/io/src/main.c b/digital/io/src/main.c
index e06b5139..43d6948c 100644
--- a/digital/io/src/main.c
+++ b/digital/io/src/main.c
@@ -260,6 +260,7 @@ main_loop (void)
position_t robot_pos;
asserv_get_position (&robot_pos);
main_obstacles_nb = radar_update (&robot_pos, main_obstacles_pos);
+ move_obstacles_update ();
simu_send_pos_report (main_obstacles_pos, main_obstacles_nb, 0);
}
diff --git a/digital/io/src/move.c b/digital/io/src/move.c
index f0996070..6eb9bfde 100644
--- a/digital/io/src/move.c
+++ b/digital/io/src/move.c
@@ -25,10 +25,14 @@
#include "common.h"
#include "move.h"
#include "fsm.h"
+#include "bot.h"
#include "radar.h"
#include "asserv.h"
#include "main.h"
+#include "modules/path/path.h"
+#include "modules/utils/utils.h"
+
/**
* Internal data used by the move FSM.
*/
@@ -46,6 +50,15 @@ move_start (position_t position, uint8_t backward)
}
void
+move_obstacles_update (void)
+{
+ uint8_t i;
+ for (i = 0; i < main_obstacles_nb; i++)
+ path_obstacle (i, main_obstacles_pos[i].x, main_obstacles_pos[i].y,
+ MOVE_OBSTACLE_RADIUS, 0, MOVE_OBSTACLE_VALIDITY);
+}
+
+void
move_check_obstacles (void)
{
if (fsm_can_handle_event (&ai_fsm, AI_EVENT_obstacle_in_front))
diff --git a/digital/io/src/move.h b/digital/io/src/move.h
index 64100a14..173de27e 100644
--- a/digital/io/src/move.h
+++ b/digital/io/src/move.h
@@ -71,6 +71,10 @@ extern struct move_data_t move_data;
void
move_start (position_t position, uint8_t backward);
+/** To be called when obstacles positions are computed. */
+void
+move_obstacles_update (void);
+
/** Check for blocking obstacles. */
void
move_check_obstacles (void);