Include homologation as strategy into competition machine.
bin_PROGRAMS += competition
competition_SOURCES = competition2012.cc \
common-states.cc strategy_get_central_buillon.cc \
- strategy_odo_calibration.cc
+ strategy_homologation.cc strategy_odo_calibration.cc
bin_PROGRAMS += homologation
homologation_SOURCES = homologation2012.cc
}
}
+/* Homologation states */
+FSM_STATE(homolog_approach_buillon)
+{
+ switch(FSM_EVENT) {
+ case EV_ENTRY:
+ robot_trajectory_new(&tcSlow); // new trajectory
+ robot_trajectory_add_point_trans(
+ 0.65,
+ PLAYGROUND_HEIGHT_M - (ROBOT_WIDTH_M/2.0));
+ robot_trajectory_add_point_trans(
+ 0.65,
+ 1.3);
+ robot_trajectory_add_final_point_trans(
+ 0.5,
+ 1.1,
+ NO_TURN());
+ break;
+ case EV_MOTION_DONE:
+ case EV_TIMER:
+ FSM_TRANSITION(homolog_push_bottle);
+ break;
+ default:
+ break;
+ }
+}
+
+FSM_STATE(homolog_push_bottle)
+{
+ switch(FSM_EVENT) {
+ case EV_ENTRY:
+ robot_trajectory_new(&tcSlow); // new trajectory
+ robot_trajectory_add_point_trans(
+ 0.64,
+ 0.7);
+ robot_trajectory_add_final_point_trans(
+ 0.64 + 0.08,
+ ROBOT_AXIS_TO_FRONT_M + 0.05,
+ ARRIVE_FROM(DEG2RAD(270), 0.10));
+ break;
+ case EV_MOTION_DONE:
+ SUBFSM_RET(NULL);
+ break;
+ default:
+ break;
+ }
+}
+
+
/* State for odometry calibration */
FSM_STATE(go_back_for_cal)
extern bool up;
/* strategy FSM */
FSM_STATE_DECL(get_central_buillon_first);
-FSM_STATE_DECL(ignore_central_buillon);
+FSM_STATE_DECL(homolog_wait_for_start);
FSM_STATE_DECL(calibrate);
/* Strategy catch buillon in center */
FSM_STATE_DECL(push_second_bottle);
*/
+/* HOMOLOGATION states */
+/* movement states - buillon */
+FSM_STATE_DECL(homolog_approach_buillon);
+/* Pushing the bottle */
+FSM_STATE_DECL(homolog_push_bottle);
void start_entry();
void start_timer();
void start_go();
switch (FSM_EVENT) {
case EV_ENTRY:
start_entry();
-#ifdef COMPETITION
+//#ifdef COMPETITION
ul_logmsg("waiting for start\n");
FSM_TIMER(1000);
break;
-#endif
+//#endif
case EV_START:
start_go();
FSM_TRANSITION(pick_central_buillon);
start_exit();
break;
case EV_SWITCH_STRATEGY:
- FSM_TRANSITION(calibrate);
+ FSM_TRANSITION(homolog_wait_for_start);
break;
default:;
}
--- /dev/null
+#include "common-states.h"
+#include "robot.h"
+#include <ul_log.h>
+
+
+UL_LOG_CUST(ulogd_strategy_homologation); /* Log domain name = ulogd + name of the file */
+
+
+FSM_STATE(homolog_wait_for_start)
+{
+ switch (FSM_EVENT) {
+ case EV_ENTRY:
+ start_entry();
+//#ifdef COMPETITION
+ ul_logmsg("waiting for start\n");
+ FSM_TIMER(1000);
+ break;
+//#endif
+ case EV_START:
+ start_go();
+ SUBFSM_TRANSITION(homolog_approach_buillon, NULL);
+ break;
+ case EV_TIMER:
+ FSM_TIMER(1000);
+ start_timer();
+ break;
+ case EV_EXIT:
+ start_exit();
+ break;
+ case EV_SWITCH_STRATEGY:
+ FSM_TRANSITION(calibrate);
+ break;
+ case EV_RETURN:
+ break;
+ default:;
+ }
+}
\ No newline at end of file