Using custom meshes for improving collision avoidance accuracy

Trying to improve the collision avoidance accuracy or IRB4600 (IRC5) between the tool and the product. Here's the object (product) the robot will be working on:

As you can see, it has a curvature that a tool has to approach very closely, but not collide with. Therefore, the standard robot studio convex hull generator was deemed not precise enough, as the collision mesh generated by RobotStudio generally looks like this:

The curvature's shape is completely lost when the hull is created, and this conflicts with the RAPID motion program that has to closely approach the curved surface. Sure, with enough subdivision planes (and lots of effort) it is possible to approximate the curve, but even then the issue still stands - it's not accurate for our application.

To resolve that, I've made a custom collision mesh for the product in CAD that accurately represents the physical product dimensions, and converted it into RobotStudio collision .xml using self-made Python script. Then, I've swapped the .xml in the controller's CA folder with the converted one and restarted the IRC5. Result is given below:

It is clear that in this case the curvature is preserved, and the collision mesh follows the physical dimensions 100%.

However, despite the changed collision geometry, the collision avoidance seems to  treat it as if it had a rough convex hull collision still:

The predicted collision between product's surface and the tool seems as if the previous "rough hull" type of collision is in use:

Any ideas on why this is happening?
Are any files besides .xml in CA folder define the collision avoidance mesh?

And since we are on the topic, does RobotStudio (or RobotWare for this matter) algorithms support custom hull geometry at all?


  • Hello,

    Do you get a different result with the Override safety distance checked, and set to 1mm?

    Maxim Riabichev
    PC Software Support Engineer
  • GOTO
    edited December 2021

    Do you get a different result with the Override safety distance checked, and set to 1mm?
    Hello Maxim,

    Thank you for your suggestion. However, checking the "Override safety distance" (1mm) changed nothing - same false positive prediction is reported by the controller.

    After some further experimentation, I now believe that the problem might be connected to the shape's convexity.

    The converted collision mesh has a clear concave feature (the curvature). If RobotStudio's algorithm only relies on vertex cloud data to determine the collision, then the concave feature may be interfering with it, as the algorithm expects every hull to be 100% convex. Is my assumption correct?

  • Unfortunately, I don't have a good enough insight in the workings of CA to validate your assumption.

    My suggestion is to contact your local ABB ( and ask them for assistance. We can then escalate the case internally and ask R&D directly.


    Maxim Riabichev
    PC Software Support Engineer