Innovative idea of auto recovery

  • Hello All,


    First of all, This is my first post on this forum and I am looking forward to sharing knowledge and learn from you guys.


    I would like to know how do you guys write a program to do auto recovery at the cell.


    Currently, at my workplace, we use ABB robots and most of the cell have auto recovery features. we define a variable call "Current_Task" in every routine and assign a number to that variable.
    For example, assign 10 to variable "current_task" if picking up the part from infeed and clear current_task once out of that routine, assign 20 if servicing Machine, Assign 30 if dropping the part at outfeed conveyor and we also define world zone in the program to know the position of our robots as well.


    Once robot crash, we check the current task and depending on the current task, jump to recovery routine of that task and just hit play and robot will come out and move to home position.


    But the problem with such kind of auto recovery method is, let's say if robot crash inside the machine (motion supervision) and someone tried to recover the robot manually by jogging and made it halfway but he realized oh I have recovery routine and then tried to auto recover, robot will go back to where it was crashed and recover from there which could possibly cause another crash.


    I am really interested in some innovative idea to do automatic recovery by itself without the help of anyone.


    For example, we can find the position of each axis of the robot by getting the value from a resolver and we already know the dimensions of each machine and objects in the cell and we do have safe move on each cell in robot work area. once robot get motion supervision in the cell, find the position of each axis of the robot and then know where the robot is right now and recover automatically and alarm up the machine, and robot continue running and servicing other machines and won't go in that machine until someone clear the fault because robot might drop the part during auto recovery.


    What do you guys think of it? is it possible to do that or just curious to know what kind of auto recovery are you guys currently using in the workplace and would love to learn from you.


    Thank you for the great ideas and knowledge in advance.


    Thank you,

  • I'm not a ABB expert, but from what I know that's possible.



    It is going to take a lot of work, but you can do it.


    There are 2 ways:


    1. Find the closes point.
    You can check current location of the robot and check how far is it for closes programmed point. You can define a radius eg. 100mm. So base on that robot will move to closes known position with limited speed (optional) and than continue on till recovery is done.


    2. Define WZ Stationary zones
    But that depends how "flexible" you are. I mean how tight is in there. The way how it will work would be the same as mentioned above, but instead of looking for a specific point in a program you would look for a WZ zone. So if robot is in some WZ zone, you can move to pre-defined position and from there continue your recovery.


    What is the main problem with that ?
    It requires A LOT of logic and it's easy to make a mistake and checking it takes a lot of time, but it works pretty good :P. There is one more thing, after you add/edit (edit, assuming it's not a robottarget) you need to remember to add/edit this point in every recovery routine.


    Hope that's what you are looking for.

  • I concur with ownage. I have seen a system programmed this way.


    Given a robotic task for a machine system consisting of invariable motions, an extensive set of recovery programs were developed. Upon any fault, the controller would query the robot position and configuration. Based on analysis of these data, the robot was commanded to slowly move to the nearest point in a pre-determined safe extraction trajectory. Location & configuration were then re-confirmed, and then the arm would retract out of harm's way. It worked. Mostly.


    I don't recommend this strategy except for the most valuable of applications. The amount of man-hours required to implement this strategy in a complex system is extensive and prohibitive. 100% reliability is not guaranteed. I would spend my time training & empowering operators to manage their own recoveries, with appropriate escalation protocols to the Engineers when needed.

  • I, too have used the compare current position to known, taught positions method. I does require a lot of testing for it to be bulletproof. One other method I experimented with in the past was using the pathrecorder and play path backward. I had limited success with that because we were using that crappy IFWC, which would give a start main which threw out my recorded paths! You would think that ABB, who came up with IFWC, would have thought about using the path recorder.

  • I am using 4 different types.


    1. No automatic recovery. All done manually by operators. Only for good trained operators.


    2. Setting a variable (group output) at each motion command to a unique value. For recovery check the variable and move backward, or forward on the normal path. The universal method, works at nearly any time.


    3. Check the area where the robot actually is positioned and do some fixed movements, dependent from the area. F.e.: on area1: move straight upwards to Z=1200, then move to X=500 ..., then move to home; on area2: move to X=1200, then move to X=800, then move to home. The method for easy cells with lot of space, i.e. palletizing or similar.


    4. The method from the other posts. This is the most hated one for me, because it is too complicated to implement, and sometimes not really good to implement, if the cell is very small and tight with many collision possibilities and positions, you will have trouble to find the correct position to start from. And by the way: there is no need for safe move for this application, on a real cell you will never be able to prevent any collision to a device in the cell by safe move. Keep in mind that save move is intended to be used for operator safety not for machine safety.


    But these ideas are not innovative, I use them since more than 25 years.
    The only thing that is kind of innovative in your description is that the robot will continue after a motion supervision and do all other things except the machine where the fault happened. I wouldn't do that without checking the reason for the problem. Who says that the problem did not damage the tool at the robot, and that will damage the other devices?

  • I have assisted a few weeks ago with my method but I think this works well if you would like to check it out. I basically make boxes in the cell and read the current position, then make a decision on the best way to get to the home position from there. the con is you can have a lot of boxes based on how much equipment you are trying to avoid the pro is its easy to test just jog the robot around and then run your tooling home routine.




    https://www.robot-forum.com/ro…returning-home-with-crobt

Advertising from our partners