3D Printing Bot: Machine Vision and Learning for 3D Printers

Vijay adjusting a 3D printer


Engineering and Applied Sciences


Assistant Professor

Project Summary

This summer I undertook research in a MEAM affiliated lab for a project titled ‘3D Printing Bot.’ The initial aim of the project was to build a mobile 3D printing platform using inexpensive robotics equipment. However, once I joined the project the aims of the project had shifted completely. Rather than build a 3D printing platform, our objective was to modify an existing one to produce an extensible 3D printer capable of using custom designed inks to print bi-stable structures. This 3D printer would also need to be equipped with some form of intelligence, in the form of smart machine vision and some form of machine learning to increase the printer’s functionality.

The first four weeks of my research were spent helping to design an extruder system that the other postdocs/PhDs in our lab could use to print structures with the inks they designed. At the same time, because I come from a Computer Science background I ended up doing a lot of research into how machine vision and machine learning worked. Part of my inquiry involved understanding and writing code, reading papers to acquaint myself with the literature, and researching open-source ways to implement techniques from these fields into our printer.

The remainder of my time in this lab was spent implementing and training a Support Vector Machine(SVM) to recognize whether our printer was extruding material or not, which has important applications in allowing our printer to diagnose faults with itself. This was an involved task as I had to work in conjunction with the other undergrads in my lab to enable multiple systems to communicate with each other. This included the camera, the printer, and the SVM. Collecting data was also a challenge in the same way.

Overall what surprised me most about the research I did was how collaborative it was. In order to make our project work, we needed expertise/knowledge from mechanical engineering, electrical engineering, and computer science and this really gave me a taste of how to find the expertise needed for a given project. The lab as a whole has many collaborations with very different departments in Penn. I also learned how to read research papers effectively, and extract meaning from an information dense paper. I was exposed to many different technologies and had the chance to develop something that had not been developed in this way before which really enriched my educational experience.