Collisions

This topic introduces the collision detection feature in Mech-Viz.

Introduction

In applications such as machine tending and (de)palletizing, avoiding collisions between the robot and other objects is crucial to keeping the project going non-stop. Mech-Viz can detect possible collisions and plan the robot path accordingly, so that the resulting path is collision-free.

If collision cannot be avoided, Mech-Viz will stop the project and display the detected collision in the 3D simulation area, so that you can adjust the project accordingly.

Computation Settings

In Computation Settings, you can set the extent of collision computation to perform and plan history to save. The options affect the speed of project execution.

During project testing and debugging, it is recommended to select the Compute complete collision contacts of each candidate solution and Save in plan history options, in order to save the complete record in Plan History for locating and solving problems.

Collision Detection Configuration

Collision occurs between two objects. In Collision Detection Configuration, you can set between which two types of objects to check for collisions, such as point cloud and other objects. Object collision models are required for detecting collisions between certain types of objects.

Before enabling collision detection, please add and configure the corresponding collision models in the Resources panel.

  • For adding and configuring the robot tool models, please refer to Tools .

  • For adding and configuring the scene object models, please refer to Scene Objects .

  • The workobject models are automatically generated from the data provided by Mech-Vision. See below for detailed configuration instructions.

By default, Mech-Viz detects collisions between the following objects:

1

Robot links

Robot links

2

Robot links

Scene objects

3

Robot links

Robot tool

4

Scene objects

Robot tool

You can also configure the detection of collisions between the following objects.

To configure the following collision detection, click Collision detection configuration in the Collisions tab to open the Collision Detection Configuration window.

Collision between Point Cloud and Other Objects

Click the Detect collision between point cloud and others option in the Configuration on point cloud pane on the left to enable the detection of collisions between point cloud and other objects. In addition, you can configure the detection of collisions between point cloud and robot links, and collisions between point cloud and held objects.

Hint

Collisions with point cloud is only detected for the “Vision Move” Step and the “Relative Move” Steps that depend on the “Vision Move” Step, but not for the other move-type Steps.

Configuration on point cloud - Point cloud cube edge length

Point cloud cubes are the cubes centered at each point in the point cloud.

A point cloud is made of points, which are zero-dimensional and thus cannot be used for collision detection. Therefore, the cubes are generated for the purpose of collision detection.

If these cubes collide with other objects, the point cloud is considered to have collided with these objects.

Please adjust this parameter according to the requirements of collision detection accuracy and speed.

Configuration on tool - Collision volume threshold

Set how large a volume of the robot tool model is allowed to collide with the point cloud.

If the collision volume of the tool model with the point cloud cubes exceeds this threshold, a collision between the robot tool and point cloud is considered to have occurred.

Please adjust this parameter according to the actual tolerance of collision.

Configuration on robot links - robot links

Robot links are divided into wrist, forearm, upper arm and base.

By default, collisions between the robot links and point cloud are not detected.

Please enable the collision detection for robot links according to the actual needs.

Configuration on robot links - Collision volume threshold

Set how large a volume of a robot link is allowed to collide with the point cloud.

If the collision volume of a robot link with the point cloud cubes exceeds this threshold, a collision between this robot link and the point cloud is considered to have occurred.

Please adjust this parameter according to the actual tolerance of collision.

Collision between Held Workobject and Other Objects

Click the Detect collision between held workobject and others option in the Configuration on held workobject pane on the right to enable the detection of collisions between the held workobject and other objects.

Please select Cuboid or Custom according to the type of workobject model.

Cuboid

Add cuboid collision models

Collision models of cuboid workobjects are automatically generated by Mech-Viz based on the workobject dimensions provided by Mech-Vision. Therefore, please complete the following configurations in Mech-Vision to have the workobject dimensions output.

  1. In the Mech-Vision project, use either of the following Steps to obtain the workobject dimensions:

  2. Output the workobject dimensions to Mech-Viz with the “Procedure Out Step. Mech-Viz will generate the corresponding collision models.

Hint

Number of “vision poses” and that of “object dimensions” should match.

Cuboid bottom safety distance

For mixed-case palletizing applications, please set an appropriate cuboid bottom safety distance for the cuboid workobject models.

The cuboid bottom safety distance adds a collision detection zone to the bottom of the workobject model. If other objects enter this zone, these objects are considered to have collided with the workobjects. Therefore, setting a cuboid bottom safety distance is helpful for avoiding collisions between the held workobjects and those that have been placed.

To set a cuboid bottom safety distance, enable For cuboid workobjects, also detect collision within a bottom safety distance during holding and placing in mixed-case palletizing, and then adjust the value of Cuboid bottom safety distance.

../../_images/collision_picked5.png
Collision volume threshold

Set how large a volume of the held workobject model is allowed to collide with the point cloud.

If the collision volume of the held workobject model with the point cloud cubes exceeds this threshold, a collision between this workobject and the point cloud is considered to have occurred.

To adjust this parameter, enable Detect collision between point cloud and others option in the Configuration on point cloud pane on the left.

Please adjust this parameter according to the actual tolerance of collision.

Custom

Add custom models
  1. Move the STL and BINVOX model files of the workobject to the collision_models folder under the Mech-Viz project folder. If there is no collision_models folder, please create one.

  2. Check the label name through the “Pose labels” port of the corresponding Step in Mech-Vision, and rename the model files to the label name. If you add a workobject configuration in “Resources” of Mech-Viz, you must set the “workobject name” as the label name.

  3. In the “Send Point Cloud to External Service” Step of the corresponding Mech-Vision project, check the Send Object Information parameter and uncheck the Input Point Cloud in Camera Frame parameter. Connect all the input ports of this Step to the corresponding data streams.

Hint

The output point cloud and pose must be in the robot reference frame.

Collision volume threshold

Set how large a volume of the held workobject model is allowed to collide with the point cloud.

If the collision volume of the held workobject model with the point cloud cubes exceeds this threshold, a collision between this workobject and the point cloud is considered to have occurred.

To adjust this parameter, enable Detect collision between point cloud and others option in the Configuration on point cloud pane on the left.

Please adjust this parameter according to the actual tolerance of collision.