if ((Serial.available() == 4)) {
The == should be replaced with >=.
Are servoID, servo1Angle, and servo2Angle bytes in the Processing program?
Are base, baseID , shoulder, and shoulderID all bytes in the Arduino program?
Are you aware that serial data delivery follows the USPS business, where delivery is not guaranteed? The only guarantee is that an attempt will be made to deliver the data.
If any one of the 4 bytes sent does not make it, all subsequent data will be wrong, until 3 more bytes get lost.