Wearable Intertace for Teleoperation of Robot Arms - WITRA

[Update 10] Impedance Control Implementation on SCARA
Update #10135  |  26 Nov 2014

A Quick Video Showing SCARA with Impedance Control

The Purpose of an Interaction Control

There are numerous ways to control industrial robot manipulators. However, many of them fail in the sense that they do not provide surrounding objects and people with enough safety. Thus, although the goal of WITRA is to make it possible for the user to teleoperate a robot arm and, therefore, not share the same environment as the robot, we still want to guarantee that the objects on the robot’s surroundings do not get damaged by robot operation. Impedance control arises as a good option in this case, once it deals with controlling the interaction between the robot and its environment.



Background Knowledge

Impedance control consists of controlling the dynamic relationship between force and position, instead of controlling only force or position. This way, it is possible to enable the robot to behave as a second-order system: mass-spring-damper. These characteristics can be modified as needed.



Impedance control was first presented by Hogan in 1985 [1]  and according to his work, the robot manipulator and its environment can be modelled as a impedance-admittance relationship, with the robot being an impedance and the environment, an admittance.





Displacement or velocity




Displacement or velocities


That is, we set a goal position for the robot and if it is off this position, it will produce on a force on what is preventing it to go to that position, namely, the environment.

Another advantage of Impedance Control is that it can be used to perform free movements as well as movements with contact between the robot and the environment. Unlike other control methods, it is not necessary to switch the controller when contact is performed and thus instabilities are avoided.

Hence, impedance control is capable of tolerating collisions without loosing stability. This is a very important characteristic in WITRA’s application field, since the environment is, in most cases, non-structured and unpredictable (e.g.: In deep-ocean maintenance).



Basically, our goal is to have the robot follow a setpoint position, as well as have a desired velocity of the TCP (Tool Center Point). We model the TCP’s balance point equations with the environment. Given that we want to control the dynamic relationship between the manipulator and the environment, the equations for spring and damper forces, are, respectively:



Where K and B are the desired spring stiffness and damping. X0 and V0 are the desired position and desired velocity, respectively, and X and V are the actual position and velocity.

The position X is related to the joint angles through the forward kinematics and, thus, is a function of the joint variables:

X = L(Ө)

 where Ө is a vector joint variables. Similarly, V can be related to the joint velocities thought the Jacobian Matrix [2] (ADICIONAR REFERENCIA A JACOBIANO)

V = J(Ө) Ө’

Where Ө’ is the first derivative of Ө. Finally, the joint torques are related to the force at the TCP though


There this Jacobian matrix for this last equation is the force-torque Jacobian.

Hence, it is possible to calculate the joint torques by knowing the values of K, B and the desired position and velocity at every instant.


Finally, the impedance behavior is shown on the next equation:


Where F_int are the interaction forces between the manipulator and the environment. These forces are measured using a six-axis force sensor at the robot’s end-effector.

Besides that, we can show the equation that models the manipulator dynamics in terms of torque, accounting for the interaction torque (tau_int):


On the right-hand side of the equation, the first term is the inertial term, the second, the torque that depends Coriolis forces, the third accounts for torques that depend on velocity, such as friction and the last term is the torque related exclusively to position, such as gravity.

The next figure shows a block-diagram of the implementation. With this control implementation, it is possible to calculate the desired torques at the joints of the manipulator.



Position-based Impedance Control

There are many issues which can arise from the method previously shown. One of them is that torque control can lead to instabilities of the robot, due to a few factors, among them the mechanical transmission that inputs friction factors that cannot be neglected. Other ways of implementing Impedance Control can be explored, such as the position-based one.

On this implementation, we try to obtain an equation that calculates the new position of the manipulator based on the desired dynamic characteristics, performing a position control of the joints. The next equation deals with the displacement X_a that is used to correct the position setpoint. Using the interface force measured by the force sensor:


Furthermore, knowing the desired position X_v, the final position is calculated by

X_c = X_v – X_a

The final block-diagram is given by:




Make sure you also follow our news and updates on our social channels below. 

youtube       facebook       email



[1] HOGAN, N.     Impedance control: An approach to manipulation: I, II and III. Journal of dynamic systems, measurement, and control, v. 107, n.2, p. 17, 1985

[2] Jacobian Matrix and Determinant. Available at: http://en.wikipedia.org/wiki/Jacobian_matrix_and_determinant