The errors above are the only ones. Here is the code:
#include "robot.h"
#include "Arduino.h"
#include "Servo.h"
#include <PID_v1.h>
robot::robot() {
Servo servo[3];
char l[] = "lmr";
double enc[3] = {0, 0, 0};
setupPID();
}
void robot::setupPID() {
double servoSpeed[] = {1,1,1};
double rotationWanted[] = {0, 0, 0};
double kp[3] = {.15, .2, .10};
double kd[3] = {.2, .2, .1};
double ki[3] = {0, 0, 0};
double p[] = {0, 0, 0};
PID leftPID(&enc[0], &servoSpeed[0], &rotationWanted[0], kp[0],kd[0],ki[0], DIRECT);
PID middlePID(&enc[1], &servoSpeed[1], &rotationWanted[1], kp[1],kd[1],ki[1], DIRECT);
PID rightPID(&enc[2], &servoSpeed[2], &rotationWanted[2], kp[2],kd[2],ki[2], DIRECT);
}
void robot::setup() {
for(int i=0;i<3;i++) {
servo[i].write(90);
}
//part that errors
leftPID.Compute();
}
void robot::servSpeed(float speed[3]) {
for(int i=0;i<3;i++) {
servo[i].write(speed[i]);
}
}
void robot::processEncoders() {
Serial.println(enc[0]);
Serial.println(enc[1]);
Serial.println(enc[2]);
}
void robot::updateEncoders(int en1, int en2, int en3) {
enc[0] = en1;
enc[1] = en2;
enc[2] = en3;
}
#ifndef robot_h
#define robot_h
#include "Arduino.h"
#include "Servo.h"
#include <PID_v1.h>
class robot {
public:
robot();
Servo servo[3];
void setup();
int pin[3];
void servSpeed(float speed[3]);
char l[3];
void processEncoders();
void updateEncoders(int en1, int en2, int en3);
double enc[3];
PID leftPID(double* d1, double* d2, double* d3, int i1, int i2, int i3);
PID rightPID(double* d1, double* d2, double* d3, int i1, int i2, int i3);
PID middlePID(double* d1, double* d2, double* d3, int i1, int i2, int i3);
void setupPID();
private:
double rotationWanted[3];
double servoSpeed[3];
};
#endif