As you see many product and open source using RC servo to build small robot arm. This question might simple but I think it important to someone that want to build robot arm and decide which type of actuator to use.

1. How RC Servo control position? what type of control used (P,PI,PID)?

As engineer student I learn to control DC motor and learn how it interact with dynamics system like robot arm (manipulator) It take many knowledge about this system and parameter that we try to control to cancel non linear term or at least make it stable. But how RC servo work to control its position? I've try to build robot arm myself (parallelizer type ,15 CM Arm, 3 x MG995) it look stable (not osculate and still actuated) How that possible to design position control that work in wide range parameter?

2. From that type of control, Is that suitable for robot arm or should I use another one?

As you see in many project. it seem to work with manual control. some project make its remember command and repeat it (show some repeatability). after playing around I see that RC servo cannot compensate steady state error (may be it don't have I term) and it can't read its position it quit dangerous when it start and do rapid move. In my application I want to control robot by calculate inverse kinematic. after working on it for many days, it seem pretty hard to to tune or calibrate it.


1 Answer 1


A servo motor means it has feedback, you have the motor which does the actuation, and you have the feedback system that reads back where the servo is positioned and trims the position of the motor to make them align,

Most use either a potentiometer, an encoder wheel and 2 or more sensors, or a hall effect rotation sensor, the goal is that is is able to read back in where the rotor is positioned so that it can make sure it matches what is set,

enter image description here Image Source

  1. a servo motor without an integration term would not be desirable in most cases, as this is what corrects small offsets, to make sure where it ended up is exactly where you desire, due to how noisy this position measurement tends to be, I suspect most would not use derivative, so a PI controller.

This should mean that if you nudge the servo horn it should come back to the same position each and every time, and to be very hard to turn if you try and force it, this would be it correcting for steady state errors.

The internal servo controllers are usually "tuned" to be stable over there speed and weight limits, meaning they should not oscillate. what this usually means is if you find the slowest and least reactive P and I settings for those ranges, while it makes the response slower, it means that there is no point during operation where it is at risk of oscillation,

  1. Inverse kinematics give you what angles you need each motor to be for a motion path, however you need to build the speed and inertial limits in to your model, e.g. extending an arm on a robot, the elbow joints speed is not linear over that time period, and you will need to slow the speed of that motion to match the slowest motor, any faster and it will not line up with what you expect, equally if you put too much load on a motor by asking it to accelerate faster than its weight limit, it will also not match your expectation.

Other tricks to make things as stable as possible will be to slice your motion path up into many small steps, the larger a step you ask the servo to follow, the less control you have over how it gets to that step, and means you have to start correcting for the motors internal control system, instead try and make your own kinematic control system closer to a least disturbance control system, where it deliberately runs a little slower than the control loops it feeds to make sure your never pushing things to a point where they can oscillate.

  • \$\begingroup\$ Thank for your participation, I still find some reference document about these do you have one? \$\endgroup\$
    – M lab
    May 7, 2020 at 9:31
  • \$\begingroup\$ seem like no one want to talk about RC Servo seriously. \$\endgroup\$
    – M lab
    May 7, 2020 at 9:34
  • \$\begingroup\$ Could you clarify? I am struggling to understand what you are asking for in these comments. \$\endgroup\$
    – Reroute
    May 7, 2020 at 9:48
  • \$\begingroup\$ I just need technical document for reference in my work. I can't find it in internet. If you can share it will be appreciate. \$\endgroup\$
    – M lab
    May 7, 2020 at 10:12
  • \$\begingroup\$ do you mean for the servo motor you list in your question, e.g.electronicoscaldas.com/datasheet/MG995_Tower-Pro.pdf , or something else? \$\endgroup\$
    – Reroute
    May 7, 2020 at 10:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.