PLAYGROUND_HEIGHT_M - (ROBOT_WIDTH_M/2) +0.01,
NO_TURN());
} else if (slope_approach_style_p->which_oranges == NEAR_PLAYGROUND_CENTER) {
- FSM_TIMER(3000);
+ FSM_TIMER(3500);
robot_trajectory_add_point_trans(
x_coord(SLOPE_TO_RIM_M + SLOPE_LENGTH_M - ROBOT_AXIS_TO_BACK_M, slope_approach_style_p->which_side),
1.85 - (PLAYGROUND_HEIGHT_M - (ROBOT_WIDTH_M/2) + 0.01 - 1.85));
FSM_TRANSITION(sledge_down);
break;
case EV_TIMER:
- act_vidle(VIDLE_LOAD_PREPARE, 5);
+ act_vidle(VIDLE_LOAD_PREPARE, 10);
break;
case EV_START:
case EV_VIDLE_DONE:
robot.fsm.motion.debug_states = 1;
//robot.fsm.act.debug_states = 1;
- robot.fsm.main.state = &fsm_state_main_start_opp_corn;
+ //robot.fsm.main.state = &fsm_state_main_start_opp_corn;
+ //robot.fsm.main.state = &fsm_state_main_start_opp_oranges;
+ robot.fsm.main.state = &fsm_state_main_start_six_oranges;
+
//robot.fsm.main.transition_callback = trans_callback;
//robot.fsm.motion.transition_callback = move_trans_callback;
{
switch (FSM_EVENT) {
case EV_ENTRY: SUBFSM_TRANSITION(to_cntainer_and_unld, NULL); break;
- /* FIXME: do something more meaningfull the next time */
case EV_RETURN: FSM_TRANSITION(pick_opp_oranges); break;
default: break;
}
}
+FSM_STATE_DECL(pick_rest_of_opp_oranges);
FSM_STATE(pick_opp_oranges)
{
switch (FSM_EVENT) {
case EV_ENTRY: SUBFSM_TRANSITION(approach_the_slope, new slope_approach_style(OPPONENTS, NEAR_PLAYGROUND_BOUNDARY)); break;
- case EV_RETURN: FSM_TRANSITION(unload_oranges); break;
+ case EV_RETURN: FSM_TRANSITION(pick_rest_of_opp_oranges); break;
+ default: break;
+ }
+}
+
+FSM_STATE_DECL(unload_opp_oranges);
+FSM_STATE(pick_rest_of_opp_oranges)
+{
+ switch (FSM_EVENT) {
+ case EV_ENTRY: SUBFSM_TRANSITION(approach_the_slope, new slope_approach_style(OPPONENTS, NEAR_PLAYGROUND_CENTER)); break;
+ case EV_RETURN: FSM_TRANSITION(unload_opp_oranges); break;
+ default: break;
+ }
+}
+
+FSM_STATE(unload_opp_oranges)
+{
+ switch (FSM_EVENT) {
+ case EV_ENTRY: SUBFSM_TRANSITION(to_cntainer_and_unld, NULL); break;
+ case EV_RETURN: FSM_TRANSITION(opp_corns); break;
default: break;
}
}