What exactly is active compliance control in robotics joint? Why Is it used ? How can I write a program to simulate the compliance control in matlab for a single robotic link or single robotic joint ? I have to develop an algorithm for torque control. I have to sense the torque and give feedback to BLDC motor which is supposed to apply some controlled torque. I also have some unclear understanding of few things: Lets say I have single joint two link systems, How would this system behave when I have applied the compliance control algorithm at the joint? How will I test it? I mean if I apply some external torque what should it do so that I understand that it is in compliance control mode. Here is a related paper. http://www.thehandembodied.eu/pdf/ICCAS.pdf

  • 2
    $\begingroup$ If you don't know what it is, why do you want to simulate it? $\endgroup$
    – Ben
    Mar 22, 2014 at 1:06

1 Answer 1


I was hoping you would elaborate your question because it is pretty vague. There are two kinds of robot arm compliance: passive and active.

Passive compliance is a property of the physical system. For example a soft end-effector, a spring in line with the motor (aka series elastic actuation), or a flexible link. If you know all the parameters of the arm such as masses, moments of inertia, spring, and damper coefficients, you can determine various characteristics of the arm. For example, how the arm will behave when given a step input. This is a standard control problem.

Active compliance uses sensing in the arm and/or end-effector to sense external forces on the arm, then move the joints accordingly. This is closely related to force control. In the industrial world, this could be applying the right amount of force during some machining operation. For arms in human environments, this could be moving out of the way when a user pushes the arm.

  • $\begingroup$ What's the use in human environment? Just moving out of the way when it is pushing ? This normally happens with anything apply force things (joints) will move out of the way, what’s the difference in this case ? $\endgroup$ Apr 3, 2014 at 0:09
  • $\begingroup$ Also Thanks a lot. am I clear now ? So I have to work in the active compliance area, and make algorithm for the torque control for the joint of two link robot. $\endgroup$ Apr 3, 2014 at 1:35
  • $\begingroup$ Typically, robot joints are very strong and a user pushing on the arm won't make it budge at all without the robot "wanting" to move. Of course if you have a small, light, and weak arm (possibly made from hobby servos for example), you will be able to easily overpower it. But i think this is the exception. In this case, the weak motors may be thought of as a type of passive compliance. $\endgroup$
    – Ben
    Apr 3, 2014 at 1:50
  • $\begingroup$ Is it like when it is not in contact with the human i.e nobody is applying force, the joint will stay in the position the human last left it in ( single joint two link) and compensate for gravity, but the gravity can not move the joint ? I mean what is equilibrium state of such joint, will it be decided according to gravity ? or the last position where somebody left it? $\endgroup$ Apr 3, 2014 at 2:00
  • $\begingroup$ That is completely up to you and your compliant arm control code. :) $\endgroup$
    – Ben
    Apr 4, 2014 at 0:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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