Validate for Impedance Mode: Load Mass Validation failed

  • Hello everyone,

    we are having problems with the cartesian impedance control mode for SmartServo / SmartServoLIN with the KUKA LBR iiwa 14 robot (SunriseOS 1.7.2.14).

    The problems occurs when we try to call ServoMotion.validateForImpedanceMode(gripper);.

    It is more likely to happen if the robot is in an outstreched arm position.

    The error message is variance[1] of LBRExtTorqueObs@LBR_iiwa_14_R820_1 is 10.05559201000732 should be less than 10.


    However,the external axis torques that are shown on the KUKA SmartPad are less than 2 Nm for every axis (in case the correct tool is selected).

    It seems like the RoboticsAPI is not choosing the correct load data for determining the external axis torques.

    This is how we load the tool:

    Code
    gripper = ServoMotionUtilities.createToolFromTemplate("SchunkWSG50", path + "/RoboticsAPI.data.xml", context);
    gripper.attachTo(robot.getFlange());
    gripper.setDefaultMotionFrame(gripper.getFrame("/TCP"));

    The values in RoboticsAPI.data.xml are exactly those that were found by calling Determining the load data on the SmartPad.


    Thank you in advance for your help

    Best regards,

    Lukas

  • Well, this is what I found on the document,


    A precondition for the validation is that the robot is in a well-conditioned position, e.g. it must not be in a singularity position.

    It is advisable to carry out a position-controlled motion (e.g. a PTP motion) directly before validation. This ensures that the system uses the correct load data for validation.


    Probably you shouldn't call the validate() method on those poses, but do it sometime before your robot stretches.


    It is merely an idea, but if you really have to use impedance control with robot being stretched, Getting currentExternalForce and compensate that forces on your impedance mode in terms of biases.

Advertising from our partners