7. Optimised Cell Collisions

Cell Editor Tutorial

These tutorials cover features and concepts relevant to the verbotics cell editor. This tutorial covers cell collisions, and methods of creating optimised and efficient collisions.

Prerequisites and Resources

This walkthrough uses a tutorial cell which can be downloaded here.

Video Tutorial

Step by Step Guide

Introduction

In this tutorial, we’ll be exploring methods of creating effective and optimised cell collisions to ensure a high level of performance for your cells in both Cell Editor and Verbotics Weld.

Poorly created collisions can severely impact both the performance of the cell when planning, and also impact the quality of the motion plans generated when planning welds.

Instead, this tutorial will introduce you to methods used internally by the verbotics team to create high quality cells. You’ll be exploring these methods by adding optimised collisions to a completed version of the cell made in the Cell Editor Walkthrough.

Creating Collisions for Robots

One of the better practices to follow when adding collisions is to work through a cell link-by-link. This ensures that collisions effectively cover bodies contained within the given link, and allow for tighter or more generous margins depending on the link’s purpose.

This is the practice you’ll be applying when adding collisions to the robot in this part of the tutorial. Starting from the base link, and working up to link 6.

As you work your way through these links, it’s important to consider each links proximity to the workpiece during welding tasks.

Links that approach or operate in close proximity to the workpiece will need much tighter collisions and smaller margins than links that will operate much further away from the workstation.

Base Link (Margin = 20mm)

The base link of the robot is both fixed and is always positioned at a far distance from the workpiece. As such, a larger margin can be used, and the shape of the collision can be much less detailed.

Select the base link’s body and open the collision bounds menu. Given the link should have large margins and a very simple collision body, set the shape to box shape and the margin to 20mm, then add a single collision to cover the entire body.

base link collisions

Base Link Collisions

Link 1 (Margin = 10 or 20mm)

Note

Links 1, 2 and 3 have 2 bodies, one for the robot’s main body and one for a series of cables attached to the robot. While you should include collisions for these cables if they are on your robot, today’s tutorial focuses on the robot’s main bodies only, as such you can hide/ignore these cables.

The body for link 1 is slightly more complex than the base link, and in some cases can operate closer to workpieces and workstations, especially in cells which utilise a gantry positioner.

Due to this, the collisions for link 1 can’t be simplified into a single body, and instead will require you to examine the visual body and break it down into several simple collision bodies. The body for link 1 can be broken down into 4 simple collision bodies:

  • A cylindrical collision for the connecting face to the base link

  • A box collision for the motor driving joint 1

  • A box collision for the motor driving joint 2

  • A cylindrical collision for the connecting face to joint 2

To select these specific regions of the mesh, use the select vertex tool represent by select vertex icon

link 1 collisions

Link 1 Collisions

Link 2 (Margin = 10mm)

Using a similar method to link 1, link 2 can be broken down into 3 simple collision bodies:

  • A cylindrical collision for the connecting face to joint 2

  • A cylindrical collision for the connecting face to joint 3

  • A box collision for the remaining area in-between the two connecting faces.

For the box collision, enabling the option Orient to minimise volume will allow the generated box to align with the sloped region of link 2.

box bounds options

Box Bounds Parameters

To create each cylinder, you can select vertices of the connecting face from the side to create a short cylinder with the correct radius. Then use the properties widget to extend the length of the cylinder to cover the region behind the face.

link 2 collisions

Creating Box Collision for Link 2

Once added, the collisions for link 2 should appear similar to the image below.

img1

img2

Link 3 (Margin = 10mm)

Link 3’s collisions can be broken down into 2 box collisions. One box covering the lower, wider region and a second covering the upper, thinner region. These 2 boxes will overlap in order to cover their regions, however this is completely fine and won’t cause any issues.

To create these boxes, use the select vertex tool and start by shift-selecting two faces of the region you’re creating the collision for. You may need to select an additional vertex for any parts of the mesh that extend beyond the current preview generated.

link 3 collisions

Creating Box Collision for Link 3

Once added, link 3’s collisions should appear similar to the image below.

link 3 collisions

Link 3 Collisions

Link 4 (Margin = 10mm)

In addition to the process of breaking down a link’s body into simple shapes, there are times when you’ll also need to consider what items aren’t included in the cell but should be considered when planning, as well as potential collisions that may occur with the given link.

Link 4 has regions where both of these considerations are needed to ensure the cell produces viable motion plans. First, the physical cell with have wire being fed to the torch in-between the connecting face to joint 3 and the flange mount. As such, a cylinder collision body with a radius similar to the wire should be added along this region.

link 4 wire collisions

Creating Cylindrical Collision for Link 4’s Wire

Additionally, the collision body required for the rounded end of link 4’s body may overlap with the collision body for the base of the torch. While usually you can disable adjacent and overlapping collisions, parts of the torches nozzle are able to collide with link 4 at certain positions, therefore disabling this collision can risk a physical collision in the real-life version of the cell.

To avoid this issue, this area of link 4 is covered by increasing the size of link 5’s collisions to cover both the connecting face between link 4 and 5, as well as this end of link 4.

With these 2 specific collisions identified, link 4 will consist of 3 collision bodies:

  • A box collision to cover the length of link 4’s arm

  • A cylindrical collision to cover the connecting face between link 3 and 4

  • A cylindrical collision representing the wire being fed from link 3 to the torch

link 4 collisions

Link 4 Collisions

Link 5 (Margin = 5mm)

Considering the region of link 4 required to be covered by link 5’s collisions, only 2 collisions are required for link 5:

  • A cylindrical collision to cover the connecting region between link 4 and 5, as well as the rounded end of link 4

  • A cylindrical collision to cover the connecting face between link 5 and 6

link 5 collisions

Creating Cylindrical Collision for Link 5

Once added, the collisions for link 5 should appear similar to the image below.

link 5 collisions

Link 5 Collisions

Link 6 (Margin <= 1mm)

In most cases, the body for link 6 will consist of a single cylinder. As such, a single cylindrical collision is all that’s required.

This can be created without the need for the vertex selection, instead select the body and create a single cylinder with a margin of 1mm or less using the create the bounds tool.

link 6 collision

Link 6 Collision

Creating Collisions for Torches

Generally, torches will be made up of two 2 links with a single body for each. This being the torch link, with a body comprised of the base of the torch up to the start of the nozzle, and the nozzle link, with a body comprised of only the end nozzle of the torch.

Torch Link (Margin <= 0.5mm)

Often, the body contained within the torch link will be primarily made up of cylindrical shapes. When this occurs, a unique tool in the create bounds menu can be used to generate collisions for the torch link.

With the torch body selected, open the create bounds window and enable the option labelled Generate cylindrical torch geometry. For this tool to generate appropriate collision bounds, a viable value for the depth parameter will need to be determined. This can be set to 5.

torch collisions

Creating Cylindrical Torch Collisions for the Torch

For cell’s working on complex workpieces, the cylindrical collisions generated for the conical regions of the torch may need to be broken down into several cylinders with the radius of each decreasing.

Torch collisions

Torch Collisions

Nozzle (Margin <=0.5mm)

The nozzle link is the link that operates closest to the workpiece at all times, therefore its collisions must be as precise as possible and have an extremely small margin. To achieve this, the best practice is to create the collisions manually and ensure they remain aligned with the nozzle link.

The nozzle link should consist of a cylindrical collision body that covers the larger region of the nozzle that is constant in radius. Then for the end of the nozzle, a series of cylindrical collisions should be created, with the radius of each body gradually being decreased to match the conical shape of the end of the nozzle.

nozzle collisions

Creating Cylindrical Collisions for the Nozzle

Once complete, the nozzle’s collisions should appear similar to the image below.

Nozzle collisions

Nozzle Collisions

Creating Collisions for the Workstation

Similar to how collisions were created for both the robot and torch, the workstation collisions should be completed link by link. As the workpiece is mounted to the workstation, the collisions added will need to consider the areas the workpiece may spread into.

Base Link (Margin = 20mm)

The bodies making up the base link tend to be completely separate from the workpiece region. As such, the collisions for these should be as simple as reasonable, and have larger margins. However, the front faces of these collisions should stay as close to the main body as possible to avoid interfering with the workpiece when the arm is rotated.

station base collisions

Creating Box Collisions for the Workstation’s Base

Rotator Link 1/Arm Link (Margin = 10mm)

The body making up rotator link 1, representing the arm of rotator, can be broken down into 3 box collisions:

  • A box collision for the length of the arm

  • A box collision for the region connecting the arm to the base, angled to align with the slope of this region

  • A box collision for the region under the platter

station arm collisions

Creating Box Collisions for the Workstation’s Arm

Platter Link (Margin = 1mm)

The platter link only requires a single cylindrical collision with a tight margin. As workpieces are mounted to the platter and the torch’s nozzle will often be operating close to the platter, the collision bound needs to be as tight to the surface of the platter.

station platter collisions

Creating Cylindrical Collision for the Workstation’s Platter

Creating Collisions for the Robot Positioner

Margin = 20mm

Positioners will often be positioned relatively distanced from the workpiece and workstations, as such more simplified collision bounds with a larger margin are appropriate in order to improve cell performance and to also ensure no other cell items come unnecessarily close to the positioner.

As such, the robot positioner only requires 2 collision bounds:

  • A collision box covering the span of the track

  • A collision box around the carriage

track collisions

Track Collisions

Completed Collisions and Download for Completed Example Cell

Once all collisions have been added, the final cell should look similar to the image shown below. In addition to this, a downloadable version of this completed cell is available at the bottom of this section, which you can use to compare to your own cell.

Download for Completed Example Cell

Collisions Example Cell Completed