Collision during collision recovery


Hi all,

I have a system with three arms and an external axis run by one IRC5 controller. One of the motion tasks tends to have collisions which are impossible to avoid. The process material has variations which I cannot spot out in advance. Therefore an automated recovery from a collision is needed.

I've enabled the system parameter Controller/General Rapid/CollisionErrorHandling which allows the system to recover from a collision. I also use PathRecord to record robot movements prior to collision. An error handler is then using PathRecMoveBwd to back off. Everything works fine and the system is 90% able to auto-recover. The above mentioned error handler is managing a number of routines and some of them generate troubles. When a collision takes place it's first detected and then there's a retract movement which relieves residual forces caused by the collision. Sometimes this retract movement triggers a new collision.

How to avoid triggering this new collision?

It seems that the collision detection level should be raised right after the collision to enable the retract movement. However, the retract movement takes place before jumping to the error handler. Therefore I created a trap which is triggered by the system output MotionSupervisionTriggered. The trap is setting motion supervision off or raising the motion supervision level to max. No success. I haven't found a way to really figure whether the trap is run early enough, though. Perhaps the system is first finishing the retract movement and the trap is run only then.
I've also tried to play with the system parameter Motion/MotionSupervision/collision_detection_memory adjusting it both bigger and as small as possible. No luck.

I find this behaviour unlogical since it is still possible to jog the robot off from the collision without adjusting the motion supervision level. My experience is that switching off motion supervision is the only way to recover if a tool is really jammed to an obstacle. That's not the case here but automatic recovery is still impossible. Once again, in most cases it works but not every time




  • Anyone?
  • nquattro1996
    Im definitely not an expert on the subject, but i have seen some interesting things done with MultiMove capabilities incorporating the use of multiple arms all intertwining. Have you seen the "Fanta Can Challenge"? it demonstrates the capabilities of MultiMove, where you set up a path for one robot to follow and another robot to move those points. If the object that the points along the path physically move, as in they are attached to a tool attached to a moving robot, you can still track them. i don't know if this is exactly what you are looking for or if this was helpful, but it may give you a direction...?
  • graemepaulin

    If you set the collision detection memory to zero this disables backing off (you have to restart the controller for changes to this parameter to take effect).

    Then the first thing you do in your error recovery is to turn off motion supervision - to prevent it triggering again.

    Last thing to do is turn motion supervision back on again.