ROBOT_UNLOCK(ref_pos);
}
}
-
-void robot_calibrate_odometry()
-{
- robot.odo_distance_a = 0;
- robot.odo_distance_b = 0;
- FILE *file;
- file = fopen ("odometry_cal_data", "r");
- if (file == NULL)
- {
- robot.odo_cal_a = 1;
- robot.odo_cal_b = 1;
- fprintf(stderr, "ODO calibration file not found! \n\n");
- return;
- }
- char line [15];
- float a = 0;
- float b = 0;
- int num = 0;
- while (fgets (line, 15 , file)) {
- a += atof(strtok(line," "));
- fgets (line, 15 , file);
- b += atof(strtok(NULL," "));
- num ++;
- }
- fclose (file);
- if(a == 0 || b == 0) {
- robot.odo_cal_a = 1;
- robot.odo_cal_b = 1;
- return;
- }
- robot.odo_cal_a = a / num;
- robot.odo_cal_b = b / num;
- printf("ODO calibrated value A: %f\n",robot.odo_cal_a);
- printf("ODO calibrated value B: %f\n",robot.odo_cal_b);
-}
int robot_start() __attribute__ ((warn_unused_result));
void robot_exit();
void robot_destroy();
-void robot_calibrate_odometry();
-
void robot_get_est_pos_trans(double *x, double *y, double *phi);
void robot_get_est_pos(double *x, double *y, double *phi);
#include <ul_log.h>
#include "common-states.h"
-
+void robot_calibrate_odometry()
+{
+ robot.odo_distance_a = 0;
+ robot.odo_distance_b = 0;
+ FILE *file;
+ file = fopen ("odometry_cal_data", "r");
+ if (file == NULL)
+ {
+ robot.odo_cal_a = 1;
+ robot.odo_cal_b = 1;
+ fprintf(stderr, "ODO calibration file not found! \n\n");
+ return;
+ }
+ char line [15];
+ float a = 0;
+ float b = 0;
+ int num = 0;
+ while (fgets (line, 15 , file)) {
+ a += atof(strtok(line," "));
+ fgets (line, 15 , file);
+ b += atof(strtok(NULL," "));
+ num ++;
+ printf("a: %i, b: %i, num: %i\n", a, b, num);
+ }
+ fclose (file);
+ if(a == 0 || b == 0) {
+ robot.odo_cal_a = 1;
+ robot.odo_cal_b = 1;
+ return;
+ }
+ robot.odo_cal_a = a / num;
+ robot.odo_cal_b = b / num;
+ printf("ODO calibrated value A: %f\n",robot.odo_cal_a);
+ printf("ODO calibrated value B: %f\n",robot.odo_cal_b);
+}
UL_LOG_CUST(ulogd_strategy_odo_calibration); /* Log domain name = ulogd + name of the file */