set Additional Torque In Cartesian Impedance Control

  • Hello. I have a question related to adding a constant torque for a rotational degree of freedom (A)under impedance control

    Kuka iiwa is under impedance control in smart servo mode.

    I have set impedance parameters (Stiffness and damping ratio). I have been searching for finding a command for setting a constant torque in a cartesian impedance control mode. I came across The setAdditionalControlForce() and setBias() .

    I have tried The setAdditionalControlForce() but the path did not change in comparison with whenever I removed that command and Kuka worked without that additional torque.

    Do you have any idea about how I can add 1Nm in a rotational degree of freedom? (path is clockwise and the resisting torque is opposite)

    I have attached the part of the document related to this issue

    thanks for reading this problem.

  • AD
  • Hello Victoria


    If the path depends on force which LBR add, then you can check direction(vector) to add the force.


    //setting parameters for impedance mode

    addingConstantForceMode = new CartesianSineImpedanceControlMode();

    addingConstantForceMode.parametrize(CartDOF.Z).setStiffness(0);

    addingConstantForceMode.parametrize(CartDOF.Z).setBias(1); //Nearly 1N


    In above code it push Z direction for example.

  • Hello Mabot.

    Thank you for your response.

    Actually, I have found out that setAdditionalForceControl() works in smartServoLIN (linear)mode. but I cannot understand the actual procedure behind this command


    addingConstantForceMode = new CartesianLinImpedanceControlMode();

    for loop(){

    addingConstantForceMode.parametrize(CartDOF.A).setStiffness(10);

    addingConstantForceMode.parametrize(CartDOF.A).setAdditionalForceControl(1);

    addingConstantForceMode.setDestination(Frame); //just angular displacement

    }

    I applied a geayer torque(10Nm) in an example to see the result better. actually, when it comes to setAdd... it shows an angular displacement with respect to Stiffness( before an unlimited position hold command ); but when I used this command in the for loop it does not change anything at all. And I want to know why KUKA works like this in this situation?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now