Can a Servo Hold its Position?

Hi there - I’m trying to lift an robotic arm to a certain position. I have a servo on there now and it is great because I can program it to move exactly to where I want it. But after it moves to that position, it seems to always go back “home”. Can I program the servo to hold it’s position? Thanks!

You don’t have to do anything special to get a servo to hold a position; you just send it the value to move to and hold. I suspect you’re telling the servo to return to “home” position. Servos don’t work like motors; the value you send to the controller port when a servo is attached gives the relative position you want the servo to maintain. You would only set that value back to zero if you want the servo to move back to the centered (what you call “home”) position.

Is it possible you are lifting too much weight and causing the motor to overheat? If so, the arm might lift up and then seem to sag back down toward where it started. If it’s a Vex motor, it generally can’t support more than about a motor value of 10-20 for very long unless it has some kind of gearing.

servos aren’t like motors, if you set them to 0, they go back to the center position, make sure you never had them set to 0

no, the servos do not provide much torque at all, also any resisting torque needed by the servo in order to maintain its position will heat up the servo quite fast. I had a group of kids use a servo on a 3:5 ratio so that the full range of the servo spins the gear a full 360 degrees. It was simply turning a 60t gear with empty cups to hold marbles. It burned out after about 5 minutes of testing an auton sorting program

As a team who has used a servo to intake cones for over 5 months of the In The Zone season, I have a very positive outlook on the servo.

If you are using a servo while competing in VEX robotics, I HIGHLY suggest having your servo’s 0 position be a position that the servo can turn to. When your robot turns on, the servo is set to zero unless connected AND told to not be set to zero. When your robot is connected to the field when the field is disabled, your servo will be set to zero UNTIL BOTH the field is enabled AND the program tells the servo to go to a position other than zero. As long as the robot is powered on, the servo is on regardless if the field control is enabled or not (BTW You can reallllly take advantage of this when holding cones). I have never stripped internal gears with the one servo I have owned for the entire season, and the servo has been the most consistent and lightweight motor I have ever seen. The servo motor never stopped or halted mid-match, and it provided enough torque to hold a cone. I would say that a servo DOES NOT provide the same amount of torque as a normal motor, but I highly recommend using a servo if position is applied and it doesn’t require much torque.

To get to the answer, the entire JOB of a servo IS to hold its position. As what I can tell, the issue most probably is not the servo, it’s probably how you programmed the servo. Could you post the code which you are using for the arm?

1 Like