Due to the need of extensive CPU resources of the Evolutionary Robotics experi- ments, we ought to design a simulator or use an existing one. Unfortunately, none of the existing simulators satisfied our needs, and we chose to implement our own. The following goals need to be maintained regarding simulation:
• All parts of the environment that are relevant for the simulation should be included.
• Simulation should be as accurate as possible.
• Simulation should be as fast as possible, in order to speed-up the evolutionary run.
• Simulator must provide means of quantitative feedback that can be used by the objective function to compute fitness.
• The simulator must be configurable in order to perform experiments with different:
– environments,
– robot starting locations, – robot morphologies,
– sensory capabilities of the robots,
– active elements that are also part of the environment (such as changing lights).
Based on these requirements, we have designed a simulator as described in the later chapters.
3.10 Chapter Summary 71
3.10
Chapter Summary
• The ultimate goal of our work is to automatically generate controllers for mo- bile robots performing in unstructured, changing, non-deterministic, dynamic, unpredictable environments.
• The method we work with are Evolutionary Algorithms, thus we work in the field of Evolutionary Robotics.
• Instead of evolving complete robot controllers, we focus on evolving the specific task functionality given the set of pre-designed behavioral modules.
• Evolutionary Robotics, if it should be successful, needs some guidance, because one evolutionary run would have to deal with too large search space.
• Our method for reducing the search space size is the Incremental Evolution. • The use of Incremental Evolution is not straight-forward and requires careful
preparation and investigation of issues, in particular: organization of the incre- mental scenario, understanding the different incremental fronts: environment, task, morphology, sensors/actuators, and controller.
• We attempt to evolve the arbitration mechanism for existing behaviors, ideal arbitration should be: fast and reactive, provide priorities and other confidence mechanisms, take temporal aspect into account, provide feedback to behaviors, allow easy modification, be amenable to analysis and verification, easy to implement and evolve.
• The chosen formalism for the arbitration representation are finite-state au- tomata.
• The chosen controller architecture consists of simultaneously executing behav- ioral modules that communicate with robot hardware and with each other using message passing.
• The method of studying the Incremental Evolution is by performing several re- alistic experiments with the chosen representation and controller architecture. These form the main focus of this thesis work.
Chapter 4
Supporting Technologies
In this chapter, we describe the technological domains which laid on the path to our experiments in Evolutionary Robotics. Let us look at the background technical work that was part of our efforts. In order to perform the evolutionary robotics experiments, we had to master distributed computing and RCX hardware platform. We have contributed to these fields with research work, and we gently touch these issues in this chapter.
4.1
RCX as a Research Hardware Platform
With the aim of entertainment and education, LEGO company has released a construction set containing a tiny autonomous programmable computer with sensor and motor ports and infrared serial communication port - RCX. The computer is built into a LEGO brick and thus can become a part of creative designs of various kinds that contain some degree of autonomous control. These include mobile robots that perceive their environment and decide on their actions using more or less advanced programmed controller. Software included in the set is suitable for simple programs, however, third-party programming systems allow to fully utilize the potential of the embedded CPU running on 16 MHz, and having 32KB RAM available for program and data.
Stretching the original concept of the construction set a little bit, it becomes a suitable simple platform for a researcher who attempts to verify the results of the robot-simulation experiments on real hardware without extra cost and investment into particular tailor-made mechanics, hardware, or high-cost research robotic platforms. High flexibility grounded by several hundreds construction pieces allows building prototypes of virtually any robotic system. In addition, combining the set with third-party sensors and parts (compass, IR-proximity, bend-sensor, sonar, sensor multiplexer, motor-multiplexer, photo-cell, IR-light sensor) results in a sufficient set of basic parts for robot building. Low cost and the communication capabilities allow building multiple-robot systems, and trying out simple multi-robot emergent algorithms.
We have designed several simple tools (programmable finite-state-automata, IR- communication for C, Java, and original RIS software) as well as communication
Figure 4.1: Reliable communication protocol between PC and RCX over an unreliable IR communication link based on confirmation, and packet-numbering as used in [Soerby, 2003]. The tokens are permanently exchanged between the communicating peers. When any side needs to send a message, it is bundled together with the next outgoing token.
protocol in a student project, where RCX was integrated together with Aibo robotics platform for a prototype for a plant safety and security analysis [Soerby, 2003], Figure 4.1.
As part of another student master project, we have designed, built, and pro- grammed a converter of IR-communication signal to radio signal transmitted over BlueTooth radio protocol, [Petroviˇc and Balogh, 2006], Figure 4.2. This allows communicating with the RCX brick in longer-range and without the requirement of visibility with the IR-tower connected to the workstation. For the reasons of unreliable IR communication of Lejos, we have designed and implemented a simple error- and erasures- correcting protocol [Petroviˇc, 2006].
Four times, we attempted to organize a nation-wide robotics soccer contest for primary and secondary schools, and sent a team or two to participate at world championship, [URL - RoboCup].
The RCX has been used in our institute as well for studies of the human-natural interfaces and for introducing the technology to pre-school children.
We have done research on how RCX can interact with other entertainment robots, in particular several different robots of the WowWee family: RoboSapien, RoboPet, RoboRaptor, and others. We have designed several unique tools that allow interaction of the two robots [URL - Sapien]. These can be useful also in the educational or research contexts (for example, we used the RCX in combination with RoboSapien, web camera, and OpenCV computer vision library for target locating and chasing application [URL - CyberCamp]).
4.1 RCX as a Research Hardware Platform 75
Figure 4.2: Infra-red / Bluetooth bi-directional conversion module. The signals from the RCX are transmitted over virtual serial Bluetooth connection to PC, and vice- versa. The module at the figure is connected with BlueSmirf module from SparkFun, and 9V battery (upper-left), it is shown in detail (upper-right), and the schematic designed in cooperation with Ing. Richard Balogh is shown below.
We believe, that the potential of RCX has not yet been fully discovered. The embedded CPU provides a fantastic educational platform for learning about the principles of embedded devices programming – it facilitates all usual concepts – A/D, D/A converters, timers, watchdogs, interrupts, oscillators, serial port programming, control register, rich instruction set, etc. Once present in many college and university laboratories, it can provide an excellent platform for practical exercises in embedded devices and control.
Recently, we have designed a prototype of a Logo programming language (dialect of Lisp) for the new NXT programmable brick [Petroviˇc, 2007]. This moves the LEGO robotics technology to higher level, allowing interactive applications that interface Logo applications running on a PC with LEGO robotics projects.