+FSM_STATE(approach_arena)
+{
+ switch (FSM_EVENT) {
+ case EV_ENTRY:
+ DBG_PRINT_EVENT("approaching arena");
+
+ robot_trajectory_new(&tcSlow);
+ robot_trajectory_add_point_notrans(0.22, 0.9);
+ robot_trajectory_add_point_notrans(0.65, 0.8);
+ robot_trajectory_add_point_notrans(0.65, 0.5);
+ robot_trajectory_add_point_notrans(1.15, 0.5);
+ robot_trajectory_add_final_point_notrans(1.15, 1.35, ARRIVE_FROM(DEG2RAD(90), 0.1));
+ break;
+ case EV_MOTION_ERROR:
+ DBG_PRINT_EVENT("ERROR: position is not reachable!");
+ FSM_TIMER(1000);
+ break;
+ case EV_MOTION_DONE:
+ FSM_TRANSITION(go_home);
+ break;
+ case EV_TIMER:
+ case EV_EXIT:
+ DBG_PRINT_EVENT("Unhandled event!");
+ break;
+ }
+}
+