I have a question regarding impedance control for a robotic manipulator.

Given that we have a task space trajectory: $\ddot{x}$, $\dot{x}$ and $x$

And the dynamics model of the robot:

$$\tau = M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) + J^\intercal F_{ext}$$

Control law:

$$u = M(q)a_{qin} + C(q,\dot{q})\dot{q} + G(q)$$

Forward dynamics model (Robot):

$$M^{-1} \{ u - C(q, \dot{q})\dot{q} - G(q) -J^\intercal F_{ext} \} = a_{qin}$$

Where $M(q)$ is the inertia matrix, $C(q,\dot{q})$ is the coriolis matix, $G(q)$ is the gravitational load vector, $J^\intercal F_{ext}$ is the external force exerted onto the links, $\ddot{q}$, $\dot{q}$ and $q$ are the joint space trajectories, $\tau$ is the torque, $u$ is the control signal and finally $a_{qin}$ is the computed joint acceleration for the control law.

$$\ddot{q} = a_{qin}$$

For the above, we have impedance control (Spong M.W, 2006), where:

$$\alpha = \ddot{x}^d + M_d^{-1} (B_d (\dot{x}^d - \dot{x}) + K_d(x^d - x) + F)$$

Where the closed loop form is:

$$M_d \ddot{e} + B_d\dot{e} + K_d e = -F$$

where $e = (x^d - x)$, and $\ddot{x} = \alpha $ (double integrator system)

$$a_{qin} = J^{-1} (\alpha - \dot{J} \dot{q})$$

With $M_d$ being the inertia, $B_d$ the damping and $K_d$ stiffness coefficients for each of the degrees of freedom for the Task-space trajectories $\ddot{x}$, $\dot{x}$ and $x$ and $F$ is sensor force?.

Here is how I see the block diagram of the system (and it might be wrong):

An overview of the system

My question: Where does the force $$F$$

Come into play? Is it the same as:

$$F_{ext} = F$$

If $F_{ext} = F$, does this mean that the Force from the sensor is:

$$\tau = M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) + J^\intercal F ?$$

These general equations are all fetched from (Spong M.W., 2006) and I am just trying to make sense of them. Consider me an idiot, but I need help :(!

  • $\begingroup$ I am not putting this as an answer because I am not certain. But it seems to me that Fext represents the forces applied to the robot by the environment, and F is the set of desired forces the controller should exert on the environment for it to be a true impedance controller. $\endgroup$
    – SteveO
    Feb 22, 2020 at 19:09
  • $\begingroup$ Hi @SteveO , thank you for responding - just in case for clarity - hopefully you're not taking the block diagram as law, since I was the one that created the diagram. I will edit the post to this to make it clear. But a snippet from (Spong, 2006) states: * "Note that for F = 0 tracking of the reference trajectory, * $x^d (t)$ , is achieved, whereas for nonzero environmental force, tracking is not necessarily achieved." -- So I suspect that it is a feedback of the external? man - I really don't know. $\endgroup$
    – Spaceman
    Feb 22, 2020 at 19:21
  • $\begingroup$ You may be right. I was using the block diagram. Unfortunately I don’t have Spong’s text to look at the rest of the derivation. But I’ll check some other impedance control literature. $\endgroup$
    – SteveO
    Feb 22, 2020 at 19:29
  • $\begingroup$ @SteveO Sorry for the late reply, but absolutely - that would be really appreciated :)! $\endgroup$
    – Spaceman
    Feb 23, 2020 at 19:32

1 Answer 1


Yes, it is the same, $F$ should be the same as $F_{ext}$. And $F$ comes from a sensor or an estimation, in general from a force sensor.

The diagram seems correct and you may have $F$ and $F_{ext}$ coming from the same source.

The impedance controller is an indirect force control, you directly do not control the force exerted to the environment but rather a behavior to an external force based on the position error of the manipulator (mass spring damper system).

A hybrid force/position control where you have a cascaded force control with an impedance control can directly control the force while having a mas spring damper behavior.

  • $\begingroup$ So $F$ and $F_{ext}$ come from the same source? I suppose the thing I am not understanding is whether I... say, send an external force $F$ to the impedance controller, must I also send $F_{ext}$ at the same time? Since the $J^\intercal F_{ext}$ disturbs the $\tau$ sent to the robot and when I already sent the external force $F$ to the impedance controller. $\endgroup$
    – Spaceman
    Feb 24, 2020 at 11:52
  • 1
    $\begingroup$ SInce $F$ in your system will come from a sensor you could add a zero order hold - hold the signal for a sample so that $F$ is delayed one sample with respect to $F_{ext}$, with respect to what you were asking you are cancelling the effect of the external force in the impedance controller the same way you suppress the effects of gravity and coriolis-centrifugal force. $\endgroup$
    – jdios
    Feb 25, 2020 at 12:42
  • $\begingroup$ Thank you sincerely! This is explanation is what I needed. $\endgroup$
    – Spaceman
    Feb 25, 2020 at 13:16

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.