PES 2 - Gruppe 1 / Mbed 2 deprecated Robocode_Random

Dependencies:   mbed

Fork of Robocode by PES 2 - Gruppe 1

Committer:
cittecla
Date:
Tue Apr 04 11:58:34 2017 +0000
Revision:
37:20e0e2487efc
Parent:
35:554c922f2bb5
Parent:
36:b654afdf886e
Child:
38:3526c36e4c73
something;

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