Apocalypse Nano‎ > ‎


  • identifying the purpose of a construction
  • identifying specific requirements

Researching and Designing

  • gathering information
  • identifying specific details of the design which must be satisfied
  • identifying possible and alternative design solutions
  • planning and designing a appropriate structure which includes drawings

Gathering Information
1. What is the practical function of the design? (What must my robot do?)

A design's practical functions can include:

  • movement How will the robot move within its environment? If it were put in a different environment, would it still be able to move within this new space?
  • manipulation How will the robot move or manipulate other objects within its environment? Can a single robot move or manipulate more than one kind of object?
  • energy How is the robot powered? Can it have more than one energy source?
  • intelligence How does the robot "think?" What does it mean to say that a robot "thinks?"
  • sensing How will my robot "know" or figure out what's in its environment? If it were put in a different environment, would it be able to figure out this new environment
2. What part does appearance (shape and form, surface texture, colour, etc.) play in the design's function? What does the robot look like? Is there a reason for it to look as it does?

Shape and form are important to a design's aesthetic qualities, ergonomics, strength, stability, rigidity, safety

Surface texture, finish and colour can be appropriate to a design's:aesthetic qualities, mechanical, optical and thermal properties, durability, etc.

3. What materials are suitable for the design?

The properties of a material will determine its suitability for a design. For our work with robotics we have chosen to work with LegoT™. However, there are many different types of materials that can be and are used in the construction of robots.

  • strength, hardness, toughness, density
  • durability
  • and the aesthetic qualities determined by colour, surface texture, pattern, etc.

The materials cost and availability are also important factors.

4. What construction methods are appropriate to the design?

Construction techniques fall into the categories of:

  • cutting and shaping
  • fabrication - the assembly of the parts using screws, bolts, glues, solder, etc
  • moulding - by the application of a force on the material
  • casting - using a mould to form the shape of a solidifying material

A particular material can only be worked in a limited number of ways. The method of construction therefore will be determined by the chosen material, the availability of manufacturing facilities, the skills of the work force and the production costs.

5. What are the likely social and environmental effects of the design? The manufacture, use and disposal of any product will have both beneficial and detrimental effects upon people, wildlife and the environment. The designer therefore, has an enormous responsibility to consider very carefully the potential effects of any new design. This will include: health and safety factors, noise, smell, pollution, etc.

Creating a Prototype

  • testing the design
  • troubleshooting the design

Programming and Testing your Robot

Now it is time to program your robot. This can be achieved in many different ways. Use can achieve rudimentary intelligence in your robot by using only relays, potentiometers, bump switches and some discrete components. You can increase complexity in intelligence in your robot by adding more sensors and continuing in the same vein of using hardwired logic. By introducing a more sophisticated control element, the microprocessor, you introduce a significant new tool in solving the robot control problem.

Evaluating your Robot

  • evaluate the design
  • evaluate the planning process

An evaluation needs to then be written. This should be a statement outlining the strengths and weaknesses in your design. It should describe where you have succeeded and where you have failed to achieve the aims set out in the specifications.

Here is a list of questions which will help you to prepare this statement.

  • How well does the design function?
  • Does the design look good?
  • Is the product safe to use?
  • Did I plan my work adequately?
  • Did I find the construction straightforward or difficult?
  • Were the most suitable materials used?
  • Did it cost more or less than expected?
  • How could I have improved my design?

Robot components and design features

  • Actuatormotor that translates control signals into mechanical movement. The control signals are usually electrical but may, more rarely, be pneumatic or hydraulic. The power supply may likewise be any of these. It is common for electrical control to be used to modulate a high-power pneumatic or hydraulic motor.[7][8]
  • Delta robot – tripod linkage, used to construct fast-acting manipulators with a wide range of movement.
  • Drive Power – energy source or sources for the robot actuators.[8]
  • End-effector – accessory device or tool specifically designed for attachment to the robot wrist or tool mounting plate to enable the robot to perform its intended task. (Examples may include gripper, spot-weld gun, arc-weld gun, spray- paint gun, or any other application tools.)[8]
  • Forward chaining – process in which events or received data are considered by an entity to intelligently adapt its behavior.[7]
  • Haptic – tactile feedback technology using the operator's sense of touch. Also sometimes applied to robot manipulators with their own touch sensitivity.
  • Hexapod (platform) – movable platform using six linear actuators. Often used in flight simulators and fairground rides, they also have applications as a robotic manipulator.
See Stewart platform
  • Hydraulics – control of mechanical force and movement, generated by the application of liquid under pressure. c.f. pneumatics.
  • Kalman filter – mathematical technique to estimate the value of a sensor measurement, from a series of intermittent and noisy values.
  • Klann linkage – simple linkage for walking robots.
  • Manipulatorgripper. A robotic 'hand'.
  • Muting – deactivation of a presence-sensing safeguarding device during a portion of the robot cycle.[8]
  • Pendant – Any portable control device that permits an operator to control the robot from within the restricted envelope (space) of the robot.[8]
  • Pneumatics – control of mechanical force and movement, generated by the application of compressed gas. c.f. hydraulics.
  • Servo – motor that moves to and maintains a set position under command, rather than continuously moving.
  • Servomechanism – automatic device that uses error-sensing negative feedback to correct the performance of a mechanism.
  • Single Point of Control – ability to operate the robot such that initiation or robot motion from one source of control is possible only from that source and cannot be overridden from another source.[8]
  • Slow Speed Control – mode of robot motion control where the velocity of the robot is limited to allow persons sufficient time either to withdraw the hazardous motion or stop the robot.[8]
  • Stepper motor
  • Stewart platform – movable platform using six linear actuators, hence also known as a Hexapod.
  • Subsumption architecture – robot architecture that uses a modular, bottom-up design beginning with the least complex behavioral tasks.
  • Teach Mode – control state that allows the generation and storage of positional data points effected by moving the robot arm through a path of intended motions.

Evolutionary computation

In computer scienceevolutionary computation is a subfield of artificial intelligence (more particularly computational intelligence) that involves continuous optimization and combinatorial optimization problems. Its algorithms can be consideredglobal optimization methods with a metaheuristic or stochastic optimization character and are mostly applied for black box problems (no derivatives known), often in the context of expensive optimization.

Evolutionary computation uses iterative progress, such as growth or development in a population. This population is thenselected in a guided random search using parallel processing to achieve the desired end. Such processes are often inspired by biological mechanisms of evolution.

As evolution can produce highly optimised processes and networks, it has many applications in computer science.


Evolutionary computing techniques mostly involve metaheuristic optimization algorithms. Broadly speaking, the field includes:

Evolutionary algorithms

Evolutionary algorithms form a subset of evolutionary computation in that they generally only involve techniques implementing mechanisms inspired by biological evolution such as reproductionmutationrecombinationnatural selection and survival of the fittestCandidate solutions to the optimization problem play the role of individuals in a population, and the cost function determines the environment within which the solutions "live" (see also fitness function). Evolution of the population then takes place after the repeated application of the above operators.

In this process, there are two main forces that form the basis of evolutionary systems: Recombination and mutation create the necessary diversity and thereby facilitate novelty, while selection acts as a force increasing quality.

Many aspects of such an evolutionary process are stochastic. Changed pieces of information due to recombination and mutation are randomly chosen. On the other hand, selection operators can be either deterministic, or stochastic. In the latter case, individuals with a higher fitness have a higher chance to be selected than individuals with a lower fitness, but typically even the weak individuals have a chance to become a parent or to survive.

Evolutionary robotics (ER) is a methodology that uses evolutionary computation to develop controllers for autonomous robotsAlgorithms in ER frequently operate on populations of candidate controllers, initially selected from some distribution. This population is then repeatedly modified according to a fitness function. In the case of genetic algorithms (or "GAs"), a common method in evolutionary computation, the population of candidate controllers is repeatedly grown according to crossover, mutation and other GA operators and then culled according to the fitness function. The candidate controllers used in ER applications may be drawn from some subset of the set of artificial neural networks, although some applications (including SAMUEL, developed at the Naval Center for Applied Research in Artificial Intelligence) use collections of "IF THEN ELSE" rules as the constituent parts of an individual controller. It is theoretically possible to use any set of symbolic formulations of a control laws (sometimes called a policies in the machine learning community) as the space of possible candidate controllers. Artificial neural networks can also be used for robot learning outside of the context of evolutionary robotics. In particular, other forms of reinforcement learning can be used for learning robot controllers.

Developmental robotics is related to, but differs from, evolutionary robotics. ER uses populations of robots that evolve over time, whereas DevRob is interested in how the organization of a single robot's control system develops through experience, over time.

Motivation for evolutionary robotics

Many of the commonly used machine learning algorithms require a set of training examples consisting of both a hypothetical input and a desired answer. In many robot learning applications the desired answer is an action for the robot to take. These actions are usually not known explicitly a priori, instead the robot can, at best, receive a value indicating the success or failure of a given action taken. Evolutionary algorithms are natural solutions to this sort of problem framework, as the fitness function need only encode the success or failure of a given controller, rather than the precise actions the controller should have taken. An alternative to the use of evolutionary computation in robot learning is the use of other forms of reinforcement learning, such as q-learning, to learn the fitness of any particular action, and then use predicted fitness values indirectly to create a controller.

Developmental robotics

Developmental Robotics (DevRob), sometimes called epigenetic robotics, is a scientific field which aims at studying the developmental mechanisms, architectures and constraints that allow lifelong and open-ended learning of new skills and new knowledge in embodied machines. As in human children, learning is expected to be cumulative and of progressively increasing complexity, and to result from self-exploration of the world in combination with social interaction. The typical methodological approach consists in starting from theories of human and animal development elaborated in fields such as developmental psychology, neuroscience, developmental and evolutionary biology, and linguistics, then to formalize and implement them in robots, sometimes exploring extensions or variants of them. The experimentation of those models in robots allows researchers to confront them with reality, and as a consequence developmental robotics also provides feedback and novel hypothesis on theories of human and animal development.


Can a robot learn like a child? Can it learn a variety of new skills and new knowledge unspecified at design time and in a partially unknown and changing environment? How can it discover its body and its relationships with the physical and social environment? How can its cognitive capacities continuously develop without the intervention of an engineer once it is "out of the factory"? What can it learn through natural social interactions with humans? These are the questions at the centre of developmental robotics. Alan Turing, as well as a number of other pioneers of cybernetics, already formulated those questions and the general approach in 1950,[1] but it is only since the end of the 20th century that they began to be investigated systematically.

Because the concept of adaptive intelligent machine is central to developmental robotics, is has relationships with fields such as artificial intelligence, machine learning, cognitive robotics or computational neuroscience. Yet, while it may reuse some of the techniques elaborated in these fields, it differs from them from many perspectives. It differs from classical artificial intelligence because it does not assume the capability of advanced symbolic reasoning and focuses on embodied and situated sensorimotor and social skills rather than on abstract symbolic problems. It differs from traditional machine learning because it targets task- independent self-determined learning rather than task-specific inference over "spoon fed human-edited sensori data" (Weng et al., 2001). It differs from cognitive robotics because it focuses on the processes that allow the formation of cognitive capabilities rather than these capabilities themselves. It differs from computational neuroscience because it focuses on functional modeling of integrated architectures of development and learning. More generally, developmental robotics is uniquely characterized by the following three features:

  1. It targets task-independent architectures and learning mechanisms, i.e. the machine/robot has to be able to learn new tasks that are unknown by the engineer;
  2. It emphasizes open-ended development and lifelong learning, i.e. the capacity of an organism to acquire continuously novel skills. This should not be understood as a capacity for learning "anything" or even “everything”, but just that the set of skills that is acquired can be infinitely extended at least in some (not all) directions;
  3. The complexity of acquired knowledge and skills shall increase (and the increase be controlled) progressively.

Developmental robotics emerged at the crossroads of several research communities including embodied artificial intelligence, enactive and dynamical systems cognitive science, connectionism. Starting from the essential idea that learning and development happen as the self-organized result of the dynamical interactions among brains, bodies and their physical and social environment, and trying to understand how this self- organization can be harnessed to provide task-independent lifelong learning of skills of increasing complexity, developmental robotics strongly interacts with fields such as developmental psychology, developmental and cognitive neuroscience, developmental biology (embryology), evolutionary biology, and cognitive linguistics. As many of the theories coming from these sciences are verbal and/or descriptive, this implies a crucial formalization and computational modeling activity in developmental robotics. These computational models are then not only used as ways to explore how to build more versatile and adaptive machines, but also as a way to evaluate their coherence and possibly explore alternative explanations for understanding biological development.