PES 2 - Gruppe 1 / Mbed 2 deprecated Robocode_Random

Dependencies:   mbed

Fork of Robocode by PES 2 - Gruppe 1

Committer:
cittecla
Date:
Wed Mar 29 12:10:32 2017 +0000
Revision:
34:40d8d29b44b8
Parent:
source/main.cpp@33:8a98f8b9d859
Child:
35:554c922f2bb5
Child:
36:b654afdf886e
update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cittecla 32:777976c4d733 1 #include "mbed.h"
cittecla 34:40d8d29b44b8 2 #include "Pathfinding.h"
cittecla 34:40d8d29b44b8 3 #include "Robot.h"
cittecla 18:a82994e67297 4
cittecla 18:a82994e67297 5
cittecla 32:777976c4d733 6 int state = 10;
cittecla 32:777976c4d733 7 bool positioning_state = 0;
cittecla 32:777976c4d733 8 bool mapping_state = 0;
cittecla 31:51f52ffa4b51 9
cittecla 34:40d8d29b44b8 10 int IMU();
cittecla 34:40d8d29b44b8 11
cittecla 32:777976c4d733 12 int main()
cittecla 32:777976c4d733 13 {
cittecla 31:51f52ffa4b51 14
cittecla 32:777976c4d733 15
cittecla 34:40d8d29b44b8 16 // while (timer() < 300) {
cittecla 34:40d8d29b44b8 17 while (1) {
cittecla 34:40d8d29b44b8 18 // 5min
cittecla 33:8a98f8b9d859 19 //*******************************************************************************
cittecla 33:8a98f8b9d859 20 //Non_state machine driven function
cittecla 33:8a98f8b9d859 21 //This functions will be called every cycle, use for safety and sensor functipons
cittecla 33:8a98f8b9d859 22 //*******************************************************************************
cittecla 32:777976c4d733 23
cittecla 34:40d8d29b44b8 24 /* safty() {
cittecla 31:51f52ffa4b51 25
cittecla 34:40d8d29b44b8 26 }
cittecla 31:51f52ffa4b51 27
cittecla 34:40d8d29b44b8 28 scanning() {
cittecla 31:51f52ffa4b51 29 }
cittecla 34:40d8d29b44b8 30 */
cittecla 32:777976c4d733 31
cittecla 32:777976c4d733 32 if(positioning_state) {
cittecla 34:40d8d29b44b8 33 // positioning();
cittecla 32:777976c4d733 34 }
cittecla 32:777976c4d733 35 if(mapping_state) {
cittecla 34:40d8d29b44b8 36 // mapping();
cittecla 32:777976c4d733 37 }
cittecla 18:a82994e67297 38
cittecla 33:8a98f8b9d859 39 //*******************************************************************************
cittecla 33:8a98f8b9d859 40 //state machine driven function
cittecla 33:8a98f8b9d859 41 //This functions will only be called when their state is active.
cittecla 33:8a98f8b9d859 42 //The state machine will be in the same state until this action is completed or
cittecla 33:8a98f8b9d859 43 //a safty function kicks in and stops the current function.
cittecla 33:8a98f8b9d859 44 //Every function will return the next active state upon its transition table.
cittecla 33:8a98f8b9d859 45 //State and Transition Table can be found in the State_Machine.xlsx
cittecla 33:8a98f8b9d859 46 //*******************************************************************************
cittecla 32:777976c4d733 47 switch (state) {
cittecla 34:40d8d29b44b8 48 /* case 0:
cittecla 34:40d8d29b44b8 49 state = emergency_shutdown();
cittecla 34:40d8d29b44b8 50 break;
cittecla 34:40d8d29b44b8 51 case 1:
cittecla 34:40d8d29b44b8 52 state = colision_detected();
cittecla 34:40d8d29b44b8 53 break;
cittecla 34:40d8d29b44b8 54 case 2:
cittecla 34:40d8d29b44b8 55 state = current_to_high();
cittecla 34:40d8d29b44b8 56 break;
cittecla 34:40d8d29b44b8 57 case 3:
cittecla 34:40d8d29b44b8 58 state = overheating();
cittecla 34:40d8d29b44b8 59 break;
cittecla 31:51f52ffa4b51 60
cittecla 31:51f52ffa4b51 61
cittecla 34:40d8d29b44b8 62 case 10:
cittecla 34:40d8d29b44b8 63 state = idel();
cittecla 34:40d8d29b44b8 64 break;
cittecla 34:40d8d29b44b8 65 case 11:
cittecla 34:40d8d29b44b8 66 state = idel2();
cittecla 34:40d8d29b44b8 67 break;
cittecla 32:777976c4d733 68
cittecla 31:51f52ffa4b51 69
cittecla 34:40d8d29b44b8 70 case 15:
cittecla 34:40d8d29b44b8 71 state = initialisation();
cittecla 34:40d8d29b44b8 72 break;
cittecla 34:40d8d29b44b8 73 case 16:
cittecla 34:40d8d29b44b8 74 state = engage_motors();
cittecla 34:40d8d29b44b8 75 break;
cittecla 34:40d8d29b44b8 76 case 17:
cittecla 34:40d8d29b44b8 77 state = test_servos();
cittecla 34:40d8d29b44b8 78 break;
cittecla 34:40d8d29b44b8 79 case 18:
cittecla 34:40d8d29b44b8 80 state = inital_positioning();
cittecla 34:40d8d29b44b8 81 break;
cittecla 31:51f52ffa4b51 82
cittecla 31:51f52ffa4b51 83
cittecla 34:40d8d29b44b8 84 case 25:
cittecla 34:40d8d29b44b8 85 state = start_positioning();
cittecla 34:40d8d29b44b8 86 break;
cittecla 34:40d8d29b44b8 87 case 26:
cittecla 34:40d8d29b44b8 88 state = start_mapping();
cittecla 34:40d8d29b44b8 89 break;
cittecla 34:40d8d29b44b8 90 case 27:
cittecla 34:40d8d29b44b8 91 state = initial_turn();
cittecla 34:40d8d29b44b8 92 break;
cittecla 31:51f52ffa4b51 93
cittecla 31:51f52ffa4b51 94
cittecla 34:40d8d29b44b8 95 case 35:
cittecla 34:40d8d29b44b8 96 state = select_target();
cittecla 34:40d8d29b44b8 97 break;
cittecla 34:40d8d29b44b8 98 case 36:
cittecla 34:40d8d29b44b8 99 state = pathfinding();
cittecla 34:40d8d29b44b8 100 break;
cittecla 34:40d8d29b44b8 101 case 37:
cittecla 34:40d8d29b44b8 102 state = remove_target();
cittecla 34:40d8d29b44b8 103 break;
cittecla 25:08ee4525155b 104
cittecla 19:baa8371d55b4 105
cittecla 18:a82994e67297 106
cittecla 34:40d8d29b44b8 107 case 40:
cittecla 34:40d8d29b44b8 108 state = moving();
cittecla 34:40d8d29b44b8 109 break;
cittecla 34:40d8d29b44b8 110 case 41:
cittecla 34:40d8d29b44b8 111 state = moving_forward_for_distance();
cittecla 34:40d8d29b44b8 112 break;
cittecla 34:40d8d29b44b8 113 case 42:
cittecla 34:40d8d29b44b8 114 state = moving_backward_for_distance();
cittecla 34:40d8d29b44b8 115 break;
cittecla 34:40d8d29b44b8 116 case 43:
cittecla 34:40d8d29b44b8 117 state = turn_left_for_deg();
cittecla 34:40d8d29b44b8 118 break;
cittecla 34:40d8d29b44b8 119 case 44:
cittecla 34:40d8d29b44b8 120 state = turn_right_for_deg();
cittecla 34:40d8d29b44b8 121 break;
cittecla 32:777976c4d733 122
cittecla 34:40d8d29b44b8 123 case 46:
cittecla 34:40d8d29b44b8 124 state = move_to_next_coord();
cittecla 34:40d8d29b44b8 125 break;
cittecla 34:40d8d29b44b8 126 case 47:
cittecla 34:40d8d29b44b8 127 state = move_in_search_for_brick();
cittecla 34:40d8d29b44b8 128 break;
cittecla 18:a82994e67297 129
cittecla 18:a82994e67297 130
cittecla 34:40d8d29b44b8 131 case 50:
cittecla 34:40d8d29b44b8 132 state = grabbing();
cittecla 34:40d8d29b44b8 133 break;
cittecla 34:40d8d29b44b8 134 case 51:
cittecla 34:40d8d29b44b8 135 state = arm_move_up();
cittecla 34:40d8d29b44b8 136 break;
cittecla 34:40d8d29b44b8 137 case 52:
cittecla 34:40d8d29b44b8 138 state = arm_move_down();
cittecla 34:40d8d29b44b8 139 break;
cittecla 34:40d8d29b44b8 140 case 53:
cittecla 34:40d8d29b44b8 141 state = arm_move_to_hold();
cittecla 34:40d8d29b44b8 142 break;
cittecla 34:40d8d29b44b8 143
cittecla 34:40d8d29b44b8 144 case 55:
cittecla 34:40d8d29b44b8 145 state = oben_grabber();
cittecla 34:40d8d29b44b8 146 break;
cittecla 34:40d8d29b44b8 147 case 56:
cittecla 34:40d8d29b44b8 148 state = close_grabber();
cittecla 34:40d8d29b44b8 149 break;
cittecla 34:40d8d29b44b8 150 case 57:
cittecla 34:40d8d29b44b8 151 state = test_color();
cittecla 34:40d8d29b44b8 152
cittecla 34:40d8d29b44b8 153 case 99:
cittecla 34:40d8d29b44b8 154 sate = init();
cittecla 34:40d8d29b44b8 155 break;
cittecla 34:40d8d29b44b8 156 case 100:
cittecla 34:40d8d29b44b8 157 state = turn_left(30);
cittecla 34:40d8d29b44b8 158 break;
cittecla 34:40d8d29b44b8 159 case 101:
cittecla 34:40d8d29b44b8 160 state = turn_right_for_brick;
cittecla 34:40d8d29b44b8 161 break;
cittecla 34:40d8d29b44b8 162 case 102:
cittecla 34:40d8d29b44b8 163 state = move_to_brick;
cittecla 34:40d8d29b44b8 164
cittecla 34:40d8d29b44b8 165 */ case 200:
cittecla 34:40d8d29b44b8 166 state = IMU();
cittecla 32:777976c4d733 167 break;
cittecla 32:777976c4d733 168 default:
cittecla 32:777976c4d733 169 printf("Fatal Error, Unkonwn state!");
cittecla 32:777976c4d733 170 state = 0;
cittecla 32:777976c4d733 171 break;
cittecla 32:777976c4d733 172 }
cittecla 32:777976c4d733 173 }
cittecla 34:40d8d29b44b8 174 }
cittecla 34:40d8d29b44b8 175
cittecla 34:40d8d29b44b8 176 int IMU()
cittecla 34:40d8d29b44b8 177 {
cittecla 34:40d8d29b44b8 178 printf("%f", read_heading());
cittecla 34:40d8d29b44b8 179 return 200;
cittecla 34:40d8d29b44b8 180 }
cittecla 34:40d8d29b44b8 181
cittecla 34:40d8d29b44b8 182 int init()
cittecla 34:40d8d29b44b8 183 {
cittecla 34:40d8d29b44b8 184 Robot_init_all();
cittecla 34:40d8d29b44b8 185 return 100;
cittecla 34:40d8d29b44b8 186 }
cittecla 34:40d8d29b44b8 187 /*
cittecla 34:40d8d29b44b8 188 int turn_left(float deg)
cittecla 34:40d8d29b44b8 189 {
cittecla 34:40d8d29b44b8 190 bool in_function = false;
cittecla 34:40d8d29b44b8 191 if(in_function = false) {
cittecla 34:40d8d29b44b8 192 float current_deg = read_heading();
cittecla 34:40d8d29b44b8 193 set_speed(-50, 50);
cittecla 34:40d8d29b44b8 194 in_function = true;
cittecla 34:40d8d29b44b8 195 }
cittecla 34:40d8d29b44b8 196 if(current_deg - deg < read_heading() {
cittecla 34:40d8d29b44b8 197 set_speed(0, 0);
cittecla 34:40d8d29b44b8 198 return 101;
cittecla 34:40d8d29b44b8 199 in_function = false;
cittecla 34:40d8d29b44b8 200 }
cittecla 34:40d8d29b44b8 201 return 100;
cittecla 34:40d8d29b44b8 202 }
cittecla 34:40d8d29b44b8 203
cittecla 34:40d8d29b44b8 204 int turn_right_for_brick {
cittecla 34:40d8d29b44b8 205 return 0
cittecla 34:40d8d29b44b8 206 }*/