Hello again,
Thanks for the kind words!
So after reviewing the new video it's quite clear what the problem is: you have counterclockwise servos!
This happens sometimes when self-sourcing. Most servos on the market are "clockwise" servos. This means if you look down on the shaft, 0 degrees is as far as possible counterclockwise, and higher angles move the shaft clockwise.
Some servos are "CCW" or counterclockwise. They start at angle 0 all the way clockwise, then larger angles move them counterclockwise.
You may want to carefully read the vendor information from where you got the servo to see if the vendor mentioned which way the servo goes. Because the vast majority of servos are clockwise servos, if a vendor does not say which direction the servos go then normally you can assume they are clockwise servos. However, the internet is basically the wild, wild west, and so you never really know what you're getting. There are plenty of vendors who give you little or no information about what you're buying, or worse yet they're giving you blatantly false information.
In any case, the fix is a simple one. In the analog version of the robot code just go to line 1347 and change:
int p = map(position,0,180,SERVOMIN,SERVOMAX);
to:
int p = map(position,180,0,SERVOMIN,SERVOMAX);
This will reverse all servo motion commands to be suitable for counterclockwise servos.
Be very careful when buying replacement servos, there is no single simple code change that will save you if you somehow mix and match both kinds of servo! It could be done using some if statements to map some servos differently than others, but I would not suggest it as things might get kind of confusing.
Hope this helps,
Steve P.