KUKA|prc tool path optimizer
Kuka|prc is a collection of grasshopper components which enables users to control the KUKA robots parametrically. While you are able to solve inverse kinematics for different models of robots and control the robot arms by setting up a predefined tool-path, you may not able to avoid collisions if they arise during the simulation.
The aim of tool-path optimizer component is to find a collision free solution for a given tool-path by rotating the tool about its rotary axis. This process include printing the axial map by analyzing the all possible tool-paths with different rotation degree and then finding a set of rotations within the map which contains no collisions or singularity.
Collison MAP
Collision map is the visual representation of collision zones in the toolpath. The X axis is the position of the tool along the toolpath from the start to the end position. Y axis represent the degree of the rotation of the axis 6. The black the polyline represent the optimized axis. Collisions , out of reach areas and singularities are presented with different colors, Your task is find a collision free path within the white zone from the start to end of the tool-path. This path is normally found by the component automatically after generation of the map. In case the Tool-path optimizer is not able to find a solution in the rendered axis map or if the automatic solution(s) still contains collisions , then it is possible to tweak the path within the axis map by adding or removing the control points. To edit the path simply zoom on the axis map display till the yellowish control points appear along the path. To add a control point simply click on a path segment and to remove one drag it out side the display. Modify the path till it is completely within the white zone of the axis map. If the KUKA|prc analysis is still showing collisions then you may need to increase the resolution or the domain of the axis map.
It is important to note the robot settings in the optimizer component must be identical to the KUKA|prc Core component which runs the simulation.
Embedded Controls
The following controls are embedded in KUKA|prc tool path optimizer component and can be adjusted directly from the component.
Interpolation
Determines the distance between the interpolated planes and controls the horizontal resolution of the Collision Map. It is recommended to use the same value as the Interpolation in the KUKA|prc settings.
Resolution
Controls the vertical resolution of the Collision Map by dividing the Domain to smaller intervals. The algorithm use an exponential function of base 2 ( ) to determine the step interval size. For example by the resolution 3 the step size is 90/8 = 11.25 degree.
Domain
Defines the search area. The search area is symmetric around the 0 value which indicates the current value of axis 5. The maximum value of 180 covers 360 degree rotation , 180 clockwise and -180 counter-clockwise.
Singularities
Detect the singularities in the Collision Map. A singularity occurs when one or more axis of robot moves faster than maximum speed.
Solution
In the case of having more than one valid paths user can switch between different paths using the solution explorer.
Lock Start/End
Choosing this option will use the end position of the robot tool also as the start position, therefore user may only need to enter the start position.
Robot base settings
The position and orientation of the robot base with respect to the zero point. These settings must match the base settings of KUKA|prc core component.
Robot Start/End Position
The axis value at start or end position of robot must be set here. These settings must match the start/end position of KUKA|prc core component in the advanced tab.
Input Parameters
The following parameters must be provided as input to the KUKA|prc tool path optimizer in order for component to function.
KUKA|prc commands
The Tool path as set of KUKA|prc commands which contains collisions.
KUKA|prc Robot
The same Robot type which is used for the simulation.
KUKA|prc tool
The same custom tool which is used for the simulation.