Distributed neural control for complex autonomous robots


Chapter 3: Modularity in robot controllers

Overview

This chapter analyzes which type of modularization should be used for our architecture. First an introduction to the concept of modularization as well as a justification of the benefits of using modularity in neural controllers is provided. Then a taxonomy of neural modular architectures is provided. Final part concludes that while some modularization applications serve as a point of departure, none of the architectures available nowadays will completely be general enough to be applied to any robot for any task.

modular versu non-modular

Figure 1: Differences between controlling a humanoid robot with monolithic
(left) or with modular (right) controller: in the monolithic case, a single module
takes care of all aspects of the robot, while with a modular approach a module
can be designed for each activity, as well as a coordination mechanism between
modules. When the robot to control is complex a modular controller is simpler
than a monolothic one in terms of number of connections to train.


Definitions

  • Modularity: the property that has some complex computational tasks divided into simpler subtasks. In such cases, the resolution of the complex task will be tackled by first solving the easier subtasks with the use of specialized computational systems, referred to as modules. When modularity is applicable to the resolution of a problem the problem is said to be modular, which implies the existence of a structure within the problem to be solved that the modules are able to capture.
  • Module: a domain specific processing element, which is autonomous and not capable of influencing the internal working of other the modules. The only way a module can influence another is by its output, this is, the result of its computation.

Taxonomy of modular neural architectures

This section provides a classification of modular structures:

  1. Hierarchical architectures: neural modules are implemented in a layered cascade of modules, with the main role of the structure being to determine which module will finally generate the answer to the task
  2. Parallel architectures: several modules treat input information in parallel, and modules can use either all the same information, or different subsets of it.
  3. Serial architectures: serial architectures are composed of several modules, each one handling a few inputs and producing an intermediate result that is fed into another module until the final module produces the system answer.
  4. Distributed architectures: are those without a central controller coordinating how each module works. Instead, each module is responsible for its own behaviour and must coordinate with the rest of the modules in order to generate a global behaviour; achieved through the use of a distributed coordination mechanism.
  5. Learning-aid architectures: Learning-aid modules are used to train neural modules during the training phase. Those learning-aid modules are also made up of neural networks, but their work was reduced to the training phase.
  6. Automatically generated architectures: those include all the methods that automatically generate the neural structure of a modular controller. The methods described here do not present a predetermined distribution of modules, but rather an algorithmic description of how to generate them.

The selected modularity type

For the resolution of the problem depicted in chapter 1, a modular architecture which reduces complexity there where it is is required. Then, in complex robots, the first source of complexity is the number of devices to control for any task. Any simple task will have to manage a high number of devices to control, hence, the evolutionary search space will be very large for even the simplest of tasks.

This is more in the line of a distributed architecture, where modules are created based on the number of the devices to control (indicating the complexity of the robot), instead of modularizing tasks. For this purpose, the introduction of a new way of performing modularity is proposed, which can in turn lead to more general and scalable modular controllers. Instead of performing modularization at the task level, that is, a global task is divided into sub-tasks, we propose to perform a modularization at the device level, that is, a global controller is divided into sub-controllers; one per each device.


Related published papers


R. Téllez and C. Angulo, Modularity in artificial neural networks, Encyclopedia of Artificial Intelligence, Information Science Reference, 2008

Web page by R. Téllez using rubric css by Hadley Wickham
Don't undertake a project unless it is manifestly important and nearly impossible (Edwin Land)