Tricopter algorithm [HELP - CONFIRM]

freak174:
It may be due to this line.
Goes from 0 - 180, maybe I should change it to -180 - 180.

myPID_Pitch_Plus.SetOutputLimits(0,180);

However if that will fix it, should I make a IF statement (for the roll axis)

You shouldn't need an if statement. But yes map the stick values so 0 degrees is center position. So you get positive or negative values when it's rolled to the left or right. And the same for pitch, yaw. Same with sensors - when the tri is perfectly horizontal read that as 0 deg pitch and roll.