So I think I have figured out the issue. I needed to change
Act1 = (float(ActPot2MapVal) / float(ActPot1MapVal)) * 400.00;
to
Act1 = (float(ActPot2MapVal) / float(ActPot1MapVal)) * 375.00;.
This acts as like a buffer for the actuators so that they have time to react to the new speed value.
void EqualizeUP(){
Act1=0;
Act2=0;
if(ActPot1MapVal > ActPot2MapVal){
Act1 = (float(ActPot2MapVal) / float(ActPot1MapVal)) * 375.00;
Act2 = 400;
}
else{
Act2 = (float(ActPot1MapVal) / float(ActPot2MapVal)) * 375.00;
Act1 = 400;
}
}
void EqualizeDOWN(){
Act1=0;
Act2=0;
if(ActPot1MapVal > ActPot2MapVal){
Act2 = (float(ActPot2MapVal) / float(ActPot1MapVal)) * -375.00;
Act1 = -400;
}
else{
Act1 = (float(ActPot1MapVal) / float(ActPot2MapVal)) * -375.00;
Act2 = -400;
}
}