Robot Control with HAL/Grasshopper : General Logic

HAL Basic Definition

The plugin on a general level follows the following logic for Robotic Programming:

1. Brep -

brep

The geometry you want.  If this is a milling job, it is the finished milled part, for a hot wire cutting job it is the finished cut piece of foam.  Etc…

2. Robot Definition -

robot definition

What robot (selected from presets or custom created) are you using? Where is it mounted? The robot data extractor component in this step feeds information to just about every other part of the definition.

3. Create Surface IsoCurves for Toolpaths -

links

The Plugin will use these iso curves as a base for the robot tool paths.  They will be broken down and rebuilt as toolpaths, but essentially what you have here as curves will be the movement of the robot.

4. Link Iso Curve Segments -

isocurves

Essentially you need one long curve for a basic robot program.  The machine then follows this curve start to finish as you specify in the definition.  Similar to a CNC machine running on basic GCode.  This step takes the many independent surface isocurves and links them together into one curve.  This step is where you could add leads and links depending upon how you wanted the tool/effector to engage your material or approach the work objects.

5. Create Oriented Targets on Toolpath Curves -

subdivide curvetarget points

This is where the iso curves are broken down into subdivision points.  These points each must have a planar orientation that defines all 3 axes… Each point must have a defined X, Y, and Z axis direction.  The reason for this is because the machine (in this case) is a six axis device, it needs coordinates as well as rotational information (X, Y, Z, A, B, C) to properly position the tool at each point.

The program creates tool paths and simulations essentially through key frame animation.  you specify a series of points, each with orientation data along your intended tool path, and the software interpolates the tool positions between the points.

6. Tooling/Effector Definition -

end effectors

What tool are you using? and what is its geometry?  This is where, you define, in similar fashion to the robot in step 2, the tool that is attached to the robot.  You provide the mesh for the simulation, as well as fixture planes of both the tool’s mounting plate to the sixth axis flange, and the tool fixture plane itself (the tip of the end mill in the case of a spindle, as well as it’s orientation.)  This information tells the software how to move the robot in order to properly position the tool at each specific target point.

7. Toolpath Simulation and Inverse Kinematics Data Export -

simulationsingularity

This is where you are able to simulate through the use of a number slider, the position of the robot and effector (tool) at any position you choose along the defined tool path.  The software has a handy feature to notify you if the toolpath is outside of the robots reach envelope.  Once everything is satisfactory, you can animate the slider to produce animations, as well as export the actual data into an inverse Kinematic Solver that provides a program to the robot itself.

Comments are closed.