Abstract
The making, maintenance and use of Digital Fabrication Machines is a core competency for industrial economies. However, innovation in this domain is hampered by the pervasive use of GCode: an antiquated one-way interface that lies between machine users and machine controllers. It prevents us from smoothly crossing the boundary between high- and low-level planning and control tasks, and makes it more difficult to develop new machines and to train new machine builders and users. This thesis aims to replace GCode in two steps.
First, I develop and implement a systems interconnect architecture that re-casts machine controllers as distributed systems that are modular across hardware and software. This involves networking over heterogeneous links, developing clock synchronization routines, and writing lightweight transport and serialization layers. I develop a distributed naming service (to automatically discover configurations), code discovery services (to automatically generate software interfaces), and a distributed programming model (to assemble global controllers from modular parts). Second, I develop a series of machine control libraries and applications within this model. This involves developing a flexible motion controller that can interface with process models, developing suitable intermediate representations of motion for distributed systems, and managing distributed data flows for loop closing at multiple levels. All together, this architecture shows how we might supplant GCode with ordinary code, i.e. software defined control. This brings machines out of the grips of a static, feed-forward representation and enables us to apply modern programming and control techniques to the task.
To show the viability and promise of these contributions, I deploy them in three experimental systems. (1) A flexible motion controller that performs across a heterogeneity of mechanical architectures, automatically tuning kinematic models, (2) A 3D Printer that can autonomously learn its own control parameters by modeling material properties, and (3) a CNC Router that tunes control parameters in real-time to avoid chatter and overload conditions.
Using these experiments and other standalone tests I evaluate the systems architecture with quantitative performance metrics, and qualitatively show how it enables us to deploy new modes for control, reduce complexity in existing controls tasks, easily use new materials, and gain new insights from our hardware.
In these formulations, machine controllers are no longer black boxes; they are distributed algorithms made of recognizable design patterns familiar to most contemporary engineers, regardless of their domain. With successful industrial adoption, this paradigm will enable the next generation’s engineers and scientists to rapidly invent, modify and deploy novel machine systems as they work through the next decades’ most pressing issues.