2017HackadayPrize Final Video

Introduction

The rationale behind this project is based upon a radical theory of how all living systems, including humans, operate in dynamic, unpredictable environments. Instead of responding to stimuli we purposefully control and maintain the way we perceive the world at desired values. For example, when talking face to face with someone we control our perception of the space between us at a level that is comfortable to us, and move back or forward accordingly. The difference between this and the stimulus-response approach may seem subtle at first, but actually is fundamental in terms of the resulting architecture.

The stimulus-response approach actually requires a great deal of complexity and precision within the mapping between the stimulus and the response, as it needs to model the correct response for every instance of the stimulus. It would also need to deal with environmental disturbances which are generally unpredictable and unknown. This is not the case with the perceptual control approach as it is the perceptual input that is controlled not the action response. To put it another way it is not action that is controlled but the consequences of action. The perceptual control approach works by varying the action output to maintain the desired perception. 

In this way it does not need a mapping between input and output (stimulus and response) and also is able to compensate for unpredictable environmental effects. In contrast to conventional approaches to behaviour and robotics, purpose (goals) is inherently embodied within the architecture of the closed-loop control system as the perceptual variable that is under control.

To give another example, when driving we control our perception of the car between the white lines (the goal). We don’t turn the wheel to a specific angle or by a specific amount, but until the perception is as desired. Many factors can affect the heading of the car; wheel balance, tyre pressures, rain, road surface and especially wind. But we don’t need to know anything about them as we simply counteract their combined effects on the perceived position of the car.

In principle, this approach, of a hierarchy of simple feedback control systems, can explain behaviour at all levels of complexity.

RAPTA is a system that embodies this goal-directed methodology, by way of a software platform for designing and implementing the hierarchical control system architecture on robotic hardware systems.

I am an independent researcher and am the sole designer and implementer of the software platform and hardware configuration associated with this project.

Robotics

The foundation, of a hierarchy of control systems, represents an ideal and relatively simple architecture to apply to general robotics, which I have described further in my recent paper in the Artificial Life journal, "A General Architecture for Robotics Systems: A Perception-Based Approach to Artificial Life.

Essentially, the architecture makes it possible to build up a hierarchy of perceptual control systems for increasingly complex behaviour. At the lowest level is the interface with the environment, comprising sensory inputs and actuator outputs. At each subsequent level the perception being controlled may be a more complex perception such as a combination of lower level perceptions or a derivative of a lower level perception.

So, this architecture enables a complex, goal-oriented robotic system to be constructed in a modular fashion just from the basic building block of a perceptual control feedback system. This avoids the complexities and inflexibilities of the conventional approaches of kinematics and intricate mathematical models of the physics of the world and the dynamics of motion.

The application of this methodology to artificial systems has significant implications for the world of robotics. It indicates that complex systems can be developed from simple principles that everyone can understand. These systems are inherently adaptive, protecting vital goals from unknown disturbances, opening up the prospect of robots, at last, bursting out from the factory floor into the real world.

As the methodology is a general approach to behavioural controls systems it is applicable to any area of robotic and autonomous systems. Here is one example of the methodology previously implemented on Baxter robot arm system:

And here it is on a robot that can stand up by itself, and balance. 


Application

For the purposes of this project the methodology and accompanying software platform is demonstrated in a physical model of a humanoid-type leg that stands up and balances by itself. The principles displayed would be similar for a complete humanoid robot.


The Hardware

The hardware for this demonstration is built using Lego Mindstorms EV3 components. There are two motorised joints, a balance sensor (accelerometer) and an ultrasonic sensor. There is also one manual joint for introducing disturbances to the balance of the system. The motorised joints use worm gears so as not to put undue exertion on the motors, which otherwise would not be powerful enough to maintain position.

The Lego Technic system is very useful for putting together quick prototypes, but it is not precision engineering. The pieces are bendy and compliant, the positioning of the parts via the motors is very rough and the friction in the gear systems is unpredictable.

These would be severe drawbacks with a traditional approach to robotics, where the components are moved to positions that are computed up front. However, with the perceptual control methodology these issues are not a hindrance to successful operation. This is because it is the perceptions that are being controlled not actions; which does not require predictive computation. Action is just the means to an end (of perception).

All the supposed adverse effects of the above drawbacks are just combined as disturbances to the perceptual goals of the system. Those disturbances are overcome as part of the inherent adaptive characteristic of perceptual control systems.

The significance for robotics is profound, in many ways, but particularly that robotic systems do not necessarily need to be expensive pieces of high-precision engineering. The perceptual control systems described here automatically overcome many of the unknowns that may usually be regarded as a hindrance to successful control.

The Software

For the purposes of implementing perceptual control systems I have developed a software framework and platform. The image below shows the main components of the platform:

Designing perceptual control hierarchies requires a different way of thinking about the systems to be implemented compared to the traditional computational approach. Rather than thinking about the algorithms to be formulated the designer thinks in terms of the perceptual goals that need to be controlled and the corresponding control systems required.

The software platform enables this way of thinking in that it is designed in such a way that it is not actually necessary to write any code at all. Instead you can design and configure a system with the configuration GUI by dragging and dropping perceptual control system components and functions.

The configuration GUI actually uses the Open Source LibreOffice application to form ODG drawing files. These are read in by the software platform and converted into executable control systems.


This image shows an example of a control system design for one of the versions of the leg system. Each triangle is a perceptual control feedback system indicating the reference goal, the perceptual input and the output. Each black circle is a function (e.g. smoothing function, or sensory input) linked to its particular configuration. So, a robot control system is formed with these graphical components rather than writing algorithms.

An example of a running system visualised via the software platform GUIs will be shown in the project logs.

Open Source

All the designs, images, videos and texts included in this Hackaday project are licensed under the CC BY-SA 4.0 license. (http://creativecommons.org/licenses/by-sa/4.0/legalcode)

The tool for designing and configuring the control hierarchies is the Open Source application LibreOffice https://www.libreoffice.org/.

The software platform for running and visualising the control system hierarchies is available at https://github.com/ruperty/PCTMonitor.

The free application for constructing and viewing the Lego designs is the Lego Digital Designer available at http://ldd.lego.com.