Tobis Programm forked to not destroy your golden files
Fork of Robocode by
source/Positioning.cpp
- Committer:
- aeschsim
- Date:
- 2017-04-19
- Revision:
- 68:29c52ea147d5
- Parent:
- 64:8cfca8fad65d
- Child:
- 69:1fdcef6a7577
File content as of revision 68:29c52ea147d5:
/** * Positioning function library * Handels position of the Robot on the map **/ #include "Positioning.h" coordinates current_coord; // Updated position current_pos; // Generated from current_coord float current_heading; position next_pos; bool init = false; Timer t2; int deg_r = 0; int deg_l = 0; float last_dist_r = 0; float last_dist_l = 0; coordinates get_current_coord() { return current_coord; } coordinates pos_to_coord(position pos) { coordinates coord = {0}; coord.x = pos.x + 0.5f; coord.y = pos.y + 0.5f; return coord; } position coord_to_pos(coordinates coord) { position pos = {0}; pos.x = rint(coord.x -0.5f); pos.y = rint(coord.y -0.5f); return pos; } position get_current_pos() { current_pos = coord_to_pos(current_coord); return current_pos; } position get_next_pos() { return next_pos; } float get_current_heading() { return current_heading; } void positioning() { printf("positioning...\r\n"); } int initial_positioning() { if(init == false) { last_dist_r = 100; last_dist_l = 100; deg_r = -50; deg_l = 50; set_servo_position(0,deg_l); //servo sensor left set_servo_position(2,-deg_r); //servo sensor right t2.start(); init = true; } else { if(t2 > 0.2f) { t2 = 0; float dist_r = getDistanceIR(4); float dist_l = getDistanceIR(0); //right if(dist_r < last_dist_r) { last_dist_r = dist_r; deg_r += 5; set_servo_position(2,-deg_r); } else { // current_coord.y = } //left } } //finished //return 11 // not finished*/ return 16; } /* turn_straight_right(); turn_straight_left(); while(last_dist_r > sensors[r]) { turn_sensor_right(1); //turn sensor + 1 deg wait(0.1f) deg_r += 1; last_dist_r = sensors[r]; } while(last_dist_l > sensors[l]) { turn_sensor_left(-1); //turn sensor - 1 deg wait(0.1f) deg_l += 1; last_dist_l = sensors[l]; } int deg_l_2=0; turn_straight_left(); last_dist_l = 0; while(last_dist_l < sensors[l]) { turn_sensor_left(1); //turn sensor +1 deg (positiv = uhrzeigersinn) wait(0.1f); deg_l_2 += 1; last_dist_l = sensors[l]; } turn_straight_right(); turn_straight_left(); wait(0.2f); */