Robot collision

  • Hello,

    We had accident in work. The robot had collision and no one know why. The operator turned off the robot and i couldn't see where in program it was heppend. Can I save in controler information about posstion (or called functions) at intervals and read it after turn off robot(or pendrive) ? I can connect robot to PLC, but I would like to avoid it.

    Can I prevent collision with a function like that:

    If DX(here)<1500 and DY>50 THEN

    HALT

    END


    Is it a good practise? Is there another option?

  • To be a troubleshooting detective - Check out Aux 07 for the:

    - Operation Log

    - Error Log

    - Program Edit Log

    - Executing Program Log


    In the error log, this displays the error code, date and time stamp of the error.

    If you press enter on a highlighted line, you will see more information including:

    - Previous 'x' operations prior to the error.

    - Program

    - Step

    - Positional data referencing commanded, actual values.


    These logs can be used to build a chronological order of events leading up to the error.

    In cases where collisions have suddenly appeared in a 'mature/debugged' system, I would ask the question of 'External Influence'.

    - Meaning....operator has jumped steps, changed program, moved the manually away from the intended path etc etc.


    If it is a new system and you're in the process of debugging/commissioning or being tasked for improving things, then consider:

    - Collision detection option

    - Cubic S option (usually intended for man/machine safety).

    - Workspaces

    - XYZ Limit

    - ULIMIT and LLIMIT commands (which adjust the upper and lower motion limits of the joints and can be used as program commands).

    - PAUSE, HOLD, ABORT, HALT commands or the MC equivalents used in a PC Task


    I would always consider using built in options first, to see if these would be suitable, before proceeding down a programmable collision prevention route.

  • Hello, you can get the error and the operation log. What kind of robot are you using and what the robot is doing?

    The robot takes detal between other machin and puts it next to it. This is the Z seria.


    To be a troubleshooting detective - Check out Aux 07 for the:

    OK, it was told a bit. Someone changed switch to teach/repeat and a few minute later collision occurred. I will try to check the code. Maybe it could have reset any signals.

    In cases where collisions have suddenly appeared in a 'mature/debugged' system, I would ask the question of 'External Influence'.

    Yes, this is has been working for 2 years without program. But I would like to avoid this in the future and introduce restrictions. You can say something more about XYZ Limit. I think Ulimit and Llimit won't fit here, but I'll read about it.

  • Quote

    Someone changed switch to teach/repeat and a few minute later collision occurred

    In the robotics world, sadly this type of description is very common....along side:

    'I pressed the button I usually press and it doesn't work'.

    But yes, external influence...….


    This is where I refer to you as the 'Troubleshooting Detective'...…:police:

    Your mission:

    - Isolate crime scene, photograph the end result, photograph current status of error display, mode, switches, program, steps and joint angles displayed.

    - Identify, locate and detain for all witnesses, operators, cleaners and burglars in vicinity (make note if any have dirty hands, or sweating profusely).

    - Obtain error, operations, program execution and program edit logs from Aux 07.

    - Study the logs and build up timeline of operations leading up the incident and create summary of events.

    - Compare time and date of logs to determine which specific operator was on shift at that time.

    - Using study, then interview operator/witnesses in dark room with strong light shone in face.

    - Use strong, assertive but non aggressive voice to ask for their account.

    - Make notes along with comparison of study to ascertain whether they are telling the truth.

    - Then have a break from interview, give them time to 'boil' at pending impeachment to occur.

    - Make conclusion to operator/witness and ask why they interfered with equipment outside of their responsibility level and trainings.

    - Ignore their excuse, make severe reprimand by breaking their little finger on dominant hand they use for masturbation.

    - Problem will never happen again...………….:top:


    XYZ Limit is called MOVING AREA XYZ LIMITS located in Aux 0518.

    - This allows for 1 area to be setup.

    - If robot TCP exceeds limit, then motor power turns off immediately.

    - If you can make area surround robot and not contain external peripherals, then this could easily be introduced.


    Set Workspace Aux 0403 around problem area with dedicated signal allocated in Aux 0602.

    - Then in PC TASK simple check for if signal off or on, then MC HOLD, MC ZPOWER OFF etc.


    If not, then read AS manual for ULIMIT and LLIMIT command.

    - This command can be used in program to set precision point as Upper or/and lower motion limits for part of process.

    - Then you can change again for another part of process.


    In addition, then ask for enabling of collision detection.

    - Enable both collision and shock detection for repeat and teach modes.

  • Hello again :beerchug:



    I have done some test and there will be more and more questions, Unfortunately, I don;t have a robot at all times, so please help. I run a parallel program that detects the presence of a detail. In the main program, for example:
    1) lmove item 1
    2) lmove item 2

    There is an error during move 1. According to the robot, has move 1 been made and is in position 1?

    I'm trying to give restrictions and for example in the picture MOVING AREA XYZ LIMITS will do nothing because I have to give more restrictions. I can set the workspaces. In my case is:
    1) Upper end
    X = 3000
    Y = 100
    Z = 0

    Lower End
    X = -3000
    Y = -100
    Z = 500

    2) Upper end
    X = -100
    Y = -100
    Z = 0

    Lower End
    X = 3000
    Y = -100
    Z = 500

    3) Upper end
    X = 100
    Y = 100
    Z = 0

    Lower End
    X = 600
    Y = 100
    Z = 500

    Is it correctly? Can I put workspaces on top of the other?

    Can I write it in code, or do I have to use it in teach pendant?

    Can I use ULIMIT and LLIMIT in base coordinate?


  • There is an error during move 1. According to the robot, has move 1 been made and is in position 1?

    If error occurs before 'axis coincidence' (ie not reached accuracy radius of location) then robot will not have completed move and be in 'no mans land'.

    But the robot will continue from current stopped position, or if you moved it manually somewhere else to then complete the step if executed again.


    Look at using DEST command in instances of error during motion, or interrupt usage such as holds/pauses etc.

    You can then have known location to move to then.


    Yes, XYZ limit is only applicable for 1 area only, so only has limited use.


    Yes, with workspaces, you can stack them, overlap them, intersect them no problem.

    They are just areas that the robot monitors for TCP position and turn on/off allocated signals.

    Workspaces do not automatically trigger an event, you need to code in to look for state of allocated signal and maybe compare location too.

    It is common to overlap workspaces, then you will always have definite 2 signals to monitor for to ensure correct workspace TCP is in - ie no empty space.

    You could also use 'empty space' as a workspace too if you think about it.

    ie if you look at motion of robot from one table to another......both tables have workspaces.....but in between does not.


    Workspaces cannot be adjusted in code, they have to be setup via file load, or teach pendant.

    But you need to also consider if you are changing base coordinates, then workspace will follow new base coordinate.


    ULIMIT and LLIMIT are only for joint angles and not cartesian, so there are for a specific posture of robot, not transform.

  • Unfortunately MOVING AREA XYZ LIMITS are in use and I cannot use them. Will creating a program that will check the position load the processor much?


    If DX (here) <1500 and DY> 50 THEN


    HALT


    END


    This is a temporary solution to finding a problem.


    Can I calculate the angles for the work area?

  • Will creating a program that will check the position load the processor much?

    Absolutely not, those types of commands are supposed to be used for this type of purpose.

    But they have to be understood and used/applied correctly.

    There is no 'rule book or guide' you have to follow to say you have to use a specific commands for specific situations.

    It's how you apply them, that makes them effective.


    HERE command is used to create a location/precision point.

    - This will create this location/precision point at the time of execution.

    - So if the robot is currently moving, the position will never be the same UNLESS you are stationary at the point of execution.


    HALT command turns off motor power, and cycle start.

    - It prevents from carrying on.

    - To carry on after a HALT, you need to clear the current stack of the current program (re-prime it).

    - You also may need to manually move the robot to a safe position before restarting.


    What you have written is not really correct.

    Can you explain what you are wanting to prevent from happening?

    - Provide small drawing perhaps.

  • Why aren't You create workspace ?



    All 9 workspace are occupied. :tired_face: I want to apply something to the memento until I make changes to have a free workspace or find fault.


    Can you explain what you are wanting to prevent from happening?

    - Provide small drawing perhaps.


    The correct robot motion is from p1 to p2 to p3. When an error occurs, the robot also has to write to p2 and p3. When I confirm that I see an error, sometimes he does not move p2 and wants to go straight to p3 and creates a collision. I was looking for the reason for this error but I want to protect the robot against collision and let him work. It happens rarely but you don't want to risk it.

  • What controller and robot are you using? What is the accuracy between the points?


    You can force the robot not to go directly to p3. So, this problem it is only If the robot has an error and you start again?

  • Cheers for the image.

    So normal operation is basically:

    LMOVE p1

    LMOVE p2

    LMOVE p3


    As I understand it.

    1. You are experiencing instances where the robot appears to be missing p2 from p1, and straight lining to p3.

    - Resulting in your 'Ouch'.....Heehee, that word made me smile......I use the word 'oops'.

    - You are trying to determine what is causing this straight lining to p3.

    - Is this correct?


    2. Does the robot write to p2 and p3 during normal operation, or only on an occurrence of an error.

    3. If so, what error, is this error being produced as a result of normal operation or manual intervention.

    4. Can you provide your code, if you are worried about company ip and posting it on the forum, you can send it me via conversation.....:respect:


    I think this can simply be accomplished, but need to see your code.

    Also, are you running any PC Tasks at all?

  • Thank you very much for your help :beerchug:


    but my question is still I can use

    "if x <... y> ... then

    ..."

    to check the position and stop the robot. Will this put a heavy load on the processor and slow down the robot?


    I am in the process of changing codes and checking errors, so I will probably find this error but it will take me a while. For now, I want to provide temporary protection.


    I only use PCEXECUTE and CALL. The controller searches for errors performed in parallel with the program. If I find a mistake, I'll let you know:winking_face:

  • No need to stop the robot based on some conditions.


    What controller and robot are you using? What is the accuracy between the points?


    So, this problem it is only If the robot has an error and you start again?


    I am thinking at a different solution, but i need some answers from you.

  • I want to stop making the move.

    This is an E controler. The collision appeared 3 times, it's hard for me to determine how it occurs. I want to protect robot before I find a solution. There are many aspects that I still do not know. Apparently, it happened that the operator confirmed the move and instead made the move to p2 and p3 did it from the flare move to p3. But I can't believe everything

  • but my question is still I can use

    "if x <... y> ... then

    ..."

    to check the position and stop the robot. Will this put a heavy load on the processor and slow down the robot?


    As I said in previous post...…Yes you can, and this is exactly what this type of code is to be used for, so no worry about 'load on processor'.

    Kawasaki wants to eat more code......and so do we.


    Show us the code, we are hungry to eat it.....we cannot fill our bellies without it...….

Advertising from our partners