algorithmic modeling for Rhino
Remember that the HAL Mode Switch component controls both robotic simulation as well as initiating the code generation process. Please see below for how the sample file would look in the three possible modes (code generation, simulation by interpolated curve parameter space (t), and simulation by specified target (i)).
The orange robot is a static model for representation, whereas the gray/blue model is an animated model for simulation.
To operate the robot relative to the global origin and robot base (in our case these are coincident at the 0,0,0 origin XY plane), simply replace the user and object frame inputs of the HAL work object component with the robot base plane or a default XY plane at the global origin. Alternatively, you may omit placing any data into the coordinate system input of the HAL post processor component as this will default to a default XY plane at the global origin.
Refer to the image below and the attached file to see how one might toggle between any number of relative coordinate systems when writing programs for an ABB robot in HAL.
Basically, my preference is to define a workobject at 0,0,0 rather than omit a workobject entirely.
While most of the time we tend to generate target locations and orientations from upstream Grasshopper geometry, there are situations where it's nice to be able to "teach" targets by jogging the robot into position. This is possible to do in HAL using the forward kinematics solver and feeding it the six axes or join locations as a list of rotation values in degrees. Check your robot's data sheet to ensure that you're setting realistic ranges of motion with your joint sliders. The tool frame output can then be captured as a target location (point) and/or orientation (plane/frame) for downstream robotic toolpathing operations.
Sometimes you need the robot to take a breather. The HAL Wait component can be used to generate any number of pauses in the program for any variety of durations. While these can be inserted as commands in a toolpathing workflow, they can also be conveniently inserted into your list of motion operations following the post-processing routine. Use a List Insert component to place the pause in between motion operations at a specified index (I typically specify based on input data coming out of one or multiple List Length components measuring my target count for various subroutines). Thanks to Thibault Schwartz for giving me a hand on this one!
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by