|Industrial robots have been around since the 70s, with massive rates of adoption in the manufacturing industry. Additionally, during the last decade, there has been an increasing interest in the potential of robotic making in non-engineering fields, such as digital fabrication, architecture and art installations, with designers, researchers and artists experimenting with creative applications of these technologies. However, the typical tools used to program and control robots usually fail to address the needs of these groups.
Most robots can only be controlled by writing routines through their own graphical user interfaces or vendor-specific programming languages, which often require significant knowledge of spatial transformations, forward and inverse kinematics, mechanical engineering and computer science. These requirements make robots notoriously hard to program, and pose a great entry barrier, especially for novice and non-technical users. Moreover, and similarly to 3D printers, robot programming tools are biased towards the offline control style, one where all the planning and decision making are pre-generated on a digital environment and, upon execution of the compiled instruction file, the programmer becomes completely detached from it. This model is suitable for highly calibrated and predictable environments, but can hardly accommodate more complex forms of control such as responding to feedback from the context, adapting to changing conditions on a construction site or on-the-fly decision making by a controller agent.
This research introduces Enactive Robotics, a conceptual model for the design of concurrent control systems for mechanical actuators. The main goal of this model is to blur the distinction between creating and executing a robotic program, integrating them into a process where behavior can be enacted on the machine during the design phase. Drawing inspiration from developmental and cognitive theories, the model is grounded on the capacity of a central decision-making agent to interface in real time with the control system via a set of high-level, universal and platform-agnostic requests named actions. These actions conform the atomic units of cognitive interaction with the robot, and their effect on a particular device is dependent on its nature and state. This paradigm crucially involves considering the large-scale shift between mechanical and computational run times, and proposes the centrality of a state representation as the core mediator between them. The action-state model seeks to break from the unidirectional offline control paradigm, and favor programming styles that are reactive to changes in the dynamic execution of the robot, rather than prescriptive about it.
The main thesis in this dissertation is that applications built following the principles of the Enactive Robotics model provide an easier and more immediate entry point to robotics for novel users, since they provide an enactive, rather than symbolic representation of the system, hence aiding the cognitive processes that lead to understanding motion planning and control. Additionally, it provides a framework with greater depth of possibilities for advanced users, in which its real-time nature and immediate feedback facilitates experimentation, flow of thought and creative inquiry. While the work presented in this dissertation focuses mainly on industrial robotic arms, it will be shown how this model can be extended to any programmable machine that performs spatial motion.
In this dissertation the general architecture of the model is presented, as well as two sample technical implementations following these principles. The first implementation is a pure .NET library designed for power-users and tech-savvy individuals, while the second is an ecosystem of UI-based applications and utility libraries geared towards novice and entry-level users. A collection of projects built with these implementations is presented as case studies, to showcase the capacity of the model to systematically enable richer interaction paradigms with robotic systems. Furthermore, the results of a controlled user study are presented, in order to evidence the capacity of the model to provide an easier and more accessible entry point to robot programming for novice users.