9  Conclusion

We set out to remove a bad abstraction… but found that the assumptions it made didn’t work because hardware is fundamentally heterogeneous and GCode’s approach is too much like those used in software, where much work has gone in to homogeneity of systems - so, we need a new systems assembly approach - feedback systems assembly… where constraints from low-levels of a system are reflected against what we want to see in the world.

I am proposing to show that machine systems can be developed using modern, modular approaches to control, in contrast to the pervasive use of an antiquated format. In the course of which, I aim to show that we can use models instead of parameters to operate these machines, and that these models reduce the brainpower required to successfully operate and build them - as well as help them to out-perform older approaches.

Piranesi’s Cerceri d’Invenzione (Plate 5)

ABB Robots at Villeroy & Boch
Figure 9.1: At the dawn of the first industrial revolution in 1745 Piranesi etched his Imaginary Prisons (Piranesi (1745)), depicting a dark future where humans are indentured to machines and systems of our own making. As we look forwards and build new machines and tools, we should hope to build hardware that is enlightening and enabling, that speaks our languages, rather than black boxes containing hidden meanings available only to initiates of the dark arts.

9.1 What is Possible Now that Wasn’t Possible Before ?

This is a clarifying question that Neil poses to most CBA students when they apply to study here… so as a graduation exercise, this is my response.

Using developments from Chapter 2, Chapter 3, Chapter 4 and Chapter 5, we can build performant realtime systems using a kit of reuseable hardware and software modules. They key contribution here is a systems configuration and representation design pattern that crosses the boundary between hardware and software, extending design patterns that have a long history at the CBA.

Using controllers developed in Chapter 6, Chapter 7, and Chapter 8, we can build machine controllers that “know what they are doing” - i.e. attach real physics to our software representations, and then use those codes not only to simulate, but to control the machine.

9.2 Feedback Systems Assembly

GCode’s broken assumption is that the low-level controllers and physics in our machines are predictable and unchanging. This assumption worked when we had only a few types of machines and processes and concentrated, hierarchichal modes of production. With a proliferation of new materials and processes and an expanding set of participants in the development and use of machinery, we need new control architectures that survive contact with the reality of a messy, hetereogeneous world…

This thesis contains ideas and implementations across most levels of machine systems assembly, and at each layer I favor strategies that are based on feedback at a systems level; to make the controllers and interfaces themselves, … to make the predictive models we use to operate them, …

The central issue with most state of the art machines is that they are feed-forward devices that contain a lot of built in assumptions about what they are, what materials they will use, and how they should be controlled. Success in this thesis’ endeavour would mean that most of the world’s machines would be built and controlled using the principle of feedback.

In building with feedback I mean using systems (like those prototyped in this thesis) that can automatically generate computational representations of their real instantiations. There are two main aspects to this.

The first is to generate the very nuts-and-bolts communications interfaces that we use to connect to modular hardware (I discuss network interfaces in Chapter 2 and software interfaces in Section 3.1.1). This could prevent the laundry list of errors that arise when a programmer’s model of the hardware is mismatched to the real world, and tools for reflective programming[^REFLECTIVE-PROGRAMMING] may make it easier to write flexible software for heterogeneous hardware.

The second is the generation of models for motion (see Chapter 5, Section 5.5.1 and Chapter 6) and for process physics (see Section 7.3). This should culminate in the (mostly) automatic generation of any given machine’s digital twin.

In controlling with feedback I mean generating control algorithms that use automatically aligned models to optimize machine motion and process outputs (motor torques, heater voltages, etc). I discuss this in detail in Chapter 5 and reduce it to practice in the Rheo Printer (Chapter 7) with the key result that the use of models allow us to greatly reduce the space of input parameters that users need to provide (Section 7.4). This is effectively the outer loop pictured in Figure 1.8: we use sensor-equipped machines to fit models for process and motion, which we then use to optimize controller outputs. I have a proof-of-concept for this approach with the Rheo-Printer that I am aiming to deploy and extend for continous (layer-by-layer) learning (i.e. building and updating models as a print progresses). I am also proposing to extend this technique to a second machine and process in CNC Routing (Chapter 8), where I hope to show that the same approach can help us cut parts quickly in many materials while avoiding resonant chatter.

Taken together, these contributions will enable machine builders across lab automation, industry, STEM and in the arts to make machines that are more rapidly composable, more robust to change, and more available for hacking. Machines developed using these strategies should be easier to operate and tune, harder to break, and easier to integrate into larger workflows.

References

Piranesi, Giovanni Battista. 1745. “Carceri d’invenzione.”