How to avoid the sudden speed limit stop when using SmartServoLIN?

  • I'm using IIWA's SmartServoLIN mode and I have a trouble with the sudden stop. When the robot tries to reach far, it sometimes stops. The message on Teaching Pedant is as follows:
    "Application was stopped due to the following error:
    com.kuka.roboticsAPI.executionModel.CommandInvalidException: Error while executing
    com.kuka.roboticsAPI.motionModel.SmartServoLIN@... on device LBR_iiwa_14_R820_1. Speed limit detected at
    com.kuka.roboticsAPI.controllerModel.sunrise.SunriseExecutionService$ErrorHandlerRunner.run
    ...."


    Currently, I set the parameters such as translational velocity (around 1000-2000 mm/s), acceleration (around 1000 mm/s2), rotational velocity and acceleration. I can make these small to avoid the sudden stop, but at the same time, I don't want to make the robot movement slow if not necessary.


    It seems SmartServoLIN cannot handle its joint speed limit or something by itself. Are there any ways to avoid the sudden stop when the robot arm tries to reach far?

  • Quote

    Currently, I set the parameters such as translational velocity (around 1000-2000 mm/s), acceleration (around 1000 mm/s2), rotational velocity and acceleration. I can make these small to avoid the sudden stop, but at the same time, I don't want to make the robot movement slow if not necessary.


    Are these motion parameters or Security Config AMF's?

  • I'm not sure if this will help much, but I've also encountered the same runtime error when executing a motion batch with set cartesian blending and a .breakWhen() parameter.


    Basically, I wanted the robot to cancel the motion batch and go home when it encountered some force, but when the robot tried to break the motion, it would throw that error and freeze, similar to your problem. The way that I eventually got around this was surrounding the motion in a try/catch block:


    Code
    try { 
    			TorqueGun.move(crossover.setMode(softMove).breakWhen(cancelMove));
    		} catch (Exception e) {
    			getLogger().error("collision while switching sides, moving home.");
    		}


    I don't profess to be a computer scientist, so it might bear some looking into how java handles the try/catch, but using that should help you avoid the sudden stop and error throwing.

  • Check and see if you are not close to the singularities of the robot, apart from that you will have to provide a lot more info for someone on the forum to provide assistance (read the Read first!)

  • Yes it happens when the robot is near a singularity or near it's working space limit. I do resolve the problem with :

    1. using SmartServo class rather than SmartServoLIN class. It enables error interception which seems not to be the case with SmartServoLIN;

    2. using a space limit survey background task

Advertising from our partners