Where we will test the side ToF sensors

Dependencies:   QEI2 PID Watchdog VL53L1X_Filter ros_lib_kinetic

Committer:
isagmz
Date:
Tue Jul 09 17:52:32 2019 +0000
Revision:
21:d1faccb96146
Parent:
18:a10277a63b53
Finished IMU side sensor code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
isagmz 18:a10277a63b53 1
isagmz 18:a10277a63b53 2 #include "statistics.h"
isagmz 18:a10277a63b53 3 #include "mbed.h"
isagmz 18:a10277a63b53 4
isagmz 18:a10277a63b53 5 /**************************************************************************
isagmz 18:a10277a63b53 6 * This function initializes the private members of the class Statistics *
isagmz 18:a10277a63b53 7 **************************************************************************/
isagmz 18:a10277a63b53 8 statistics::statistics(int* Input, double dataLengthIn, int firstDataPointIn){
isagmz 18:a10277a63b53 9 data = Input;
isagmz 18:a10277a63b53 10 dataLength = dataLengthIn;
isagmz 18:a10277a63b53 11 firstDataPoint = firstDataPointIn;
isagmz 18:a10277a63b53 12 }
isagmz 18:a10277a63b53 13
isagmz 18:a10277a63b53 14 /**************************************************************************
isagmz 18:a10277a63b53 15 * This function returns the mean(average) of an array. *
isagmz 18:a10277a63b53 16 **************************************************************************/
isagmz 18:a10277a63b53 17 double statistics::mean(){
isagmz 18:a10277a63b53 18 double sum;
isagmz 18:a10277a63b53 19 for(int i = firstDataPoint; i < (firstDataPoint + dataLength); ++i)
isagmz 18:a10277a63b53 20 {
isagmz 18:a10277a63b53 21 sum += data[i];
isagmz 18:a10277a63b53 22 }
isagmz 18:a10277a63b53 23 //printf("sum %f, data length %f\r\n", sum, dataLength);
isagmz 18:a10277a63b53 24 wait(.001);
isagmz 18:a10277a63b53 25 double average = sum/dataLength;
isagmz 18:a10277a63b53 26 return average;
isagmz 18:a10277a63b53 27 }
isagmz 18:a10277a63b53 28
isagmz 18:a10277a63b53 29 /**************************************************************************
isagmz 18:a10277a63b53 30 * This function returns the standard deviation of an array. This is *
isagmz 18:a10277a63b53 31 * used to determine whether the data is valid or not. *
isagmz 18:a10277a63b53 32 **************************************************************************/
isagmz 18:a10277a63b53 33 double statistics::stdev(){
isagmz 18:a10277a63b53 34 double sum = 0.0, mean, standardDeviation = 0.0;
isagmz 18:a10277a63b53 35 //printf("The length of the array is %d\n", dataLength);
isagmz 18:a10277a63b53 36 //double num = (pow(2.0,2.0));
isagmz 18:a10277a63b53 37 //printf("2^2 is %f\n", num);
isagmz 18:a10277a63b53 38 //int i;
isagmz 18:a10277a63b53 39
isagmz 18:a10277a63b53 40 for(int i = firstDataPoint; i < (firstDataPoint + dataLength); ++i)
isagmz 18:a10277a63b53 41 {
isagmz 18:a10277a63b53 42 sum += data[i];
isagmz 18:a10277a63b53 43 //printf("%d\n", data[i]);
isagmz 18:a10277a63b53 44 }
isagmz 18:a10277a63b53 45
isagmz 18:a10277a63b53 46 mean = sum/dataLength;
isagmz 18:a10277a63b53 47
isagmz 18:a10277a63b53 48 for(int i = firstDataPoint; i < (firstDataPoint + dataLength); ++i) {
isagmz 18:a10277a63b53 49 //standardDeviation += pow(data[i] - mean, 2);
isagmz 18:a10277a63b53 50 standardDeviation += (data[i] - mean)*(data[i] - mean);
isagmz 18:a10277a63b53 51 }
isagmz 18:a10277a63b53 52
isagmz 18:a10277a63b53 53 return sqrt(standardDeviation / dataLength);
isagmz 18:a10277a63b53 54 }