Grasshopper

algorithmic modeling for Rhino

PRATT GAUD AUTOMATION FOR ARCHITECTURAL MANUFACTURING FALL 2015

Industrial robotic automation has become commonplace in manufacturing and has been integrated into a wide range of processes from meat-packing to Tesla’s vaunted robotic assembly line for its Model S electric car. While architectural manufacturing has more recently implemented this technology, the conventional means for programming robotic motion have proven ill-suited to the architectural design process for two primary reasons:

  1. They are better suited for mass production than mass customization

  2. They are not directly linked to the CAD model, meaning variation and iteration must be performed manually through an export/import process

Historically it’s been critical for designers to maintain open lines of communication with construction personnel and fabricators to successfully realize their collective vision. This course will seek to improve these lines of communications while rectifying the architecture-specific issues outlined above through a data-driven parametric design workflow which integrates upstream analysis, geometric modeling, and downstream robotic toolpathing into a single live definition, allowing for a direct relationship between initial data inputs and robotic motion.

A mass-customized architectural assembly will be proposed, simulated, and prototyped using HAL-generated ABB RAPID code to drive the ABB IRB 140 industrial robotic arm’s IRC5 controller. This assembly will be a series of vaulted shell structures constructed from thin plastics such as high impact polystyrene (HIPS) sheets. In order for such a thin material to span the structure, stiffness (or an improved resistance to deflection under load) must be considered at both the local level of the panel’s shape and the global level of the shell’s form and panel-to-panel connections. Stiffness will be added to the HIPS panels by testing heat-based deformation of the plastic, such as creasing and stretching to create depth along the spanning axis and induce double-curvature.

Each robotic technique may require its own end-of-arm tooling as well as custom molds and jigs, which is very costly. Clustering methods and genetic optimization algorithms will be implemented in the panel rationalization process to control variation.

 

Views: 2401

Replies to This Discussion

Hi All,

There have been a number of questions recently regarding the finalization of our robotic toolpathing files. Please find the answers (with corresponding images) below, as well as a sample file attached (Carapace_20151215.gh).

Question: How do I insert a pause between targets in a toolpath?

Answer: The HAL Post Processor component outputs motion commands as a list. Any RAPID command, such as a Wait command, can be inserted into that list at a specified index using the Insert Items component. If you are familiar with RAPID syntax, you can insert these commands as strings. However, you usually don't have to worry about this as HAL has components for the Wait command and other common commands.

Question: How do I vary target attributes such as name and speed in a toolpath?

Answer: The HAL Toolpath Creator component accepts a list of Targets as input. It can also accept matching lists for attributes such as name and speed - you simply need to ensure the list lengths and order of the list items are identical. Often this comes down to being careful with your merging!

Question: How can I control press angle and distance for the robot?

Answer: This is actually quite tricky. The first step is to split the lines representing the interior shell connections into two to separate the inner shell press vectors from the outer shell press vectors. These then need to use the transformation output from the panel orientation to place them at the origin relative to the oriented panels. Please refer to my updated panel orientation user object to complete this (you will notice there is now a flip input option to deal with some of our bizarre orientation behavior on a per-cluster basis).

From here you use the Adjust Plane component to adjust our default inverted XY target planes to the normal direction of our desired pressing vector. It's a little fussy because the Y component of the vector needs to be negated and the lines representing the inner shell press vectors have to be flipped, but once it works, it works quite consistently. Perhaps some of you can find a more efficient means to this end.

Attachments:

RSS

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service