Context

This project seeks for adapting the 3D printing process to known geometries used as supports or external elements as formwork, located in the physical space to save the costs of material and time to produce non reusable ones. These elements are detected through Computer Vision to update the toolpath on the digital model.

There will be two different methodologies tested on this project:

  • Contour detection
  • ArUco marker detection

Set-up

  • ABB 140
  • ESP32CAM (fixed height: 55cm)
  • Air pump + screw extruder (3mm nozzle)
  • 500ml clay cartridge
  • 500x250x5 MDF board

Camera set-up

Programming web server through Arduino IDE

After connecting to a local IP Wifi network, the recorded video can be streamed on a local web server where we can obtain captures, modify image settings and even correct the lense distortion. However this correction is not enough, so a re-calibration of the camera will be needed to match the image 2D pixels on the 3D space reference points.

Camera calibration

A 0.0432 correction was made in the process.

Workflow 1: Contour Detection

The drawn contour would define the top layer of a geometry that grew from a regular circle on the bottom.

These were some of the results:

Workflow 2. ArUco marker detection

  • Place ArUco markers on every corner of the print bed (for calibration) and on every known physical support
  • Extract XY position and orientation of one corner of each marker
  • Send and match those values with a reference point and a plane of the digital model in Grasshopper

ArUco tagging

ArUco detection

Homography

The process of referencing the elements and place them on the printing bed would be matched through homography, becoming the bottom left corner the (0,0) point matched on the digital model.

Data implementation

The streamed data array implementation from Python OpenCV to Grasshopper was send through a local websocket UDP, connected with the GH plugin GHowl to update and match the points on the digital model as follows:

Printing process

Results