Brazo robótico con servos

Bueno creo que hay una discrepancia entre la consigna y el código.
Hacer que un servo vaya en un sentido y el otro en el opuesto no significa que uno lo haga servo3 de 180 a 0 180 veces como esta ocurriendo.
Lo que se debe hacer es que se mueve un contador por ejemplo x y el otro se maneja de modo opuesto. i = 180 - x y mientras uno se mueve en un sentido el otro lo hacen el en sentido opuesto.
Así:

void loop() {

//sentido positivo 

  for (int x = 0; x <= 180; x++){
      i = 180-x;
      servo2.write(x);
      servo3.write(i);
      delay(25);
  }
//sentido negativo

  for (int x = 180; x >= 0; x--){
      i = 180-x;
      servo2.write(x);
      servo3.write(i);
      delay(25);
  }
}

Esta ha sido mi interpretación de la consigna.