void strat_hardstop(void)
{
+ DEBUG(E_USER_STRAT, "strat_hardstop");
+
trajectory_hardstop(&mainboard.traj);
pid_reset(&mainboard.angle.pid);
pid_reset(&mainboard.distance.pid);
IRQ_UNLOCK(flags);
}
+void strat_set_acc(double d, double a)
+{
+ trajectory_set_acc(&mainboard.traj, d, a);
+}
+
void strat_get_speed(uint16_t *d, uint16_t *a)
{
uint8_t flags;
strat_limit_speed_enabled = 0;
}
-/* called periodically */
+/* called periodically (note: disabled in 2010) */
void strat_limit_speed(void)
{
uint16_t lim_d = 0, lim_a = 0;
strat_init();
err = strat_main();
- printf("coucou\n");
NOTICE(E_USER_STRAT, "Finished !! returned %s", get_err(err));
strat_exit();
}
/* return true if we have to brake due to an obstacle */
uint8_t strat_obstacle(void)
{
-#if 0
int16_t x_rel, y_rel;
int16_t opp_x, opp_y, opp_d, opp_a;
return 0;
/* no opponent detected */
- if (get_opponent_xyda(&opp_x, &opp_y,
- &opp_d, &opp_a))
+ if (get_opponent_xyda(&opp_x, &opp_y, &opp_d, &opp_a))
return 0;
/* save obstacle position */
opponent_obstacle.y = opp_y;
opponent_obstacle.d = opp_d;
opponent_obstacle.a = opp_a;
-#else /* belgium cup only */
- int16_t x_rel, y_rel;
- int16_t opp_d, opp_a;
- double opp_x, opp_y;
-#ifdef HOST_VERSION
- if (time_get_s() >= 12 && time_get_s() <= 30)
- return 1;
-#endif
- if (!sensor_get(S_RCOB_WHITE))
- return 0;
-
- opp_a = 0;
- opp_d = 300;
-
- rel_da_to_abs_xy(opp_d, RAD(opp_a), &opp_x, &opp_y);
if (!is_in_area(opp_x, opp_y, 250))
return 0;
-#endif
/* sensor are temporarily disabled */
if (sensor_obstacle_is_disabled())