External joint efforts measurements through FRI

  • Hello,

    I am trying to work with the KUKA iiwa 14 820, my goal is to apply an impedance controller through FRI, that will be modified (so i don't want to use the cartesian impedance mode of the robot).

    The problem i am having is that the measurements of joint external torques (which i need for my control scheme) are not zero when the robot is standing still with no external forces applied. There is a difference between applied torque (due to the gravity compensation) and the measured torque (should be gravity + some friction ?), and this difference goes almost completely as an external torque. An example:

    Measured: -0.923347 54.783570 -5.389097 -19.635456 -1.095186 -0.747938 -0.024364
    Commanded: -0.000000 52.627036 -5.599072 -19.337630 -1.030718 -0.749381 -0.011041
    External: -0.924499 2.163937 0.219936 -0.301189 -0.067499 0.003105 -0.012845

    This differences change with the robot posture (so not just a simple bias that could be erased). I clarify again, all this measurements are done when the robot is not moving and nothing is applying forces to it.

    The scheme that i am using right now is (code at the end):

      • In the robot controller side (java): a joint impedance control mode with a position hold, stiffness and damping are set to zero for all the joints.

      • In the client side (FRI, C++): Applying zero torque to each joint (for now, since i need to solve this issue) and setting joint poisition as actual joint position to avoid the delta error

    So i am thinking that maybe the gravity compensation performed by the robot (since it is done by the hold method + FRI itself) is not really accurate, but enough to allow mechanical friction to avoid movements, and thats the external effort that i am getting (although in that case, friction would also be badly estimated)

    I know external torques are estimated from the torque measured, applied, and dynamics, but this difference seems to much to me. When I estimate external cartesian forces from te joint external torques I get values up to 3 N when no forces are really applied.

    I would really appreciate any ideas or corrections if I am making some mistakes,


    Java robot side:

    FRI client side

  • AD
  • I am experiencing a similar issue related to gravity compensation. When sending a zero torque command in torque control mode, the robot overcompensates and drifts upward. This is with nothing attached to the end effector on the phisical robot and no SpatialObject.attachTo(lbr.getFlage()) used.

    So the error in calibration appear to lie within the robot controller itself. Were you able to make any progress?

  • So the error in calibration appear to lie within the robot controller itself.

    I have a similar Problem and I think you are right. To me it seems that the IIWAs have problems compensating their dynamics well, which leads to higher (estimated) external torques and drift without position feedback. This was also a problem of the predecessors LWR 4+.

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