Ubichip, Ubidule, and MarXbot: a hardware platform for the simulation ...

3 downloads 91979 Views 7MB Size Report
are driven by dedicated electronic boards situated on each side of the battery. (one for each .... hosting the ubichip, allowing it to interact with the world in a flexible manner. ... Affordable SLAM through the Co-Design of Hardware and Method-.
Ubichip, Ubidule, and MarXbot: a hardware platform for the simulation of complex systems Andres Upegui1 , Yann Thoma1 , H´ector F. Satiz´abal1 , Francesco Mondada2 , Philippe R´etornaz2 , Yoan Graf1 , Andres Perez-Uribe1 , and Eduardo Sanchez1 1

REDS, HEIG-VD, HES-SO Yverdon, Switzerland [email protected]

2

MOBOTS, EPFL Lausanne, Switzerland [email protected]

Abstract. This paper presents the final hardware platform developed in the Perplexus project. This platform is composed of a reconfigurable device called the ubichip, which is embedded on a pervasive platform called the ubidule, and can also be integrated on the marXbot robotic platform. The whole platform is intended to provide a hardware platform for the simulation of complex systems, and some examples of them are presented at the end of the paper. Keywords: Reconfigurable computing, bio-inspired systems, collective robotics, pervasive systems, complex systems

1

Introduction

The simulation of complex systems has gained an increasing importance during the last years. These simulations are generally bounded by the initial constraints artificially imposed by the programmer (e.g., the modeller). These artificial constraints are aimed at mimicking the physical constraints that real complex systems are exposed to. Our approach relies on the principle that for modelling real complex systems like biological systems or social systems, models must not be artificially constrained but must be physically constrained by the environment. Biological systems, for instance, evolve in dynamic physical environments which are constantly changing because of their intrinsic properties and their interaction with the system. For instance, the number of parts and their interconnection in a real complex system is neither random nor regular, but follows a set of implicit building rules imposed by physical constraints and the environment in which they evolve. These constraints are a key element for the emergence of behaviours that are unpredictable by analytical methods. Such emergence has a direct impact on the self-organising properties of complex systems and vice versa, given that there is not clear causality relation between these two properties. Within the framework of the Perplexus project1 , our main goal has been to develop a scalable pervasive platform made of custom reconfigurable devices 1

PERvasive computing framework for modeling comPLEX virtually-Unbounded Systems FP6 european project. (http://www.perplexus.org)

2

Andres Upegui et al.

endowed with bio-inspired capabilities. This platform will enable the simulation of large-scale complex systems and the study of emergent complex behaviours in a virtually unbounded wireless network of computing modules. Such hardware platform was aimed at being able to model complex systems in a more realistic manner thanks to two main aspects: (1) a rich interaction with the environment thanks to sensory elements, and (2) the replacement of artificial constraints imposed by the programmer - by physical constraints - imposed by the hardware platform and its interaction with the environment. The network of modules is composed of a set of ubiquitous computing modules called (ubidules), which contain two ubidule bio-inspired chip (ubichips) capable of implementing bio-inspired mechanisms such as growth, learning, and evolution. The ubichip constitute thus the core of the Perplexus modelling platform and can be integrated on the ubidule or on the marXbot robotic platform, which has been also developed on the framework of this project. This paper presents the complete Perplexus modelling hardware platform. Sections 2, 3, and 4 describe the main hardware components of the project, respectively, the ubichip, the ubidule, and the marXbot robot. Then, section 5 gives an overview of several applications where the platform has been used for modelling different types of complex systems with applications to engineering. And finally, section 6 summarises the opportunities offered by the platform.

2

Ubichip

The ubichip is the core device of the whole hardware platform, which provides the reconfigurability support for implementing dynamic hardware architectures. Real complex systems are dynamic, their internal components and interactions are constantly changing according to the interaction of the world with its intrinsic dynamics. This dynamic aspect is precisely the main feature of the ubichip. The ubichip is a reconfigurable digital circuit that allows the implementation of complex systems with dynamic topologies. A fine-grained dynamic partial reconfiguration permits to easily modify the system from an external processor, but built-in self reconfiguration mechanisms permits also to modify it internally in a completely autonomous and distributed way. Moreover, dynamic routing allows also to create and destroy internal connections in the circuit. Previous work in this field is the POEtic tissue [11], a reconfigurable hardware platform for rapidly prototyping bio-inspired systems, which has been developed in the framework of the European project POEtic. The limitations exhibited by the POEtic tissue suggested several architectural and configurability improvements that lead us to the ubichip architecture, better suited for supporting the complex systems that we want to model with our devices. The reconfigurable array of the ubichip consists in a bi-dimensional regular array of reconfigurable cells called macrocells. A macrocell is composed of a selfreplication (SR) unit, a dynamic routing (DR) unit, and four ubicells, this last one being the basic computing unit of the ubichip. Figure 1 depicts a top level

Ubichip, Ubidule, and MarXbot

3

Reconfigurable Array MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC

Ubicell

Ubicell

MC MC MC MC MC MC MC MC MC MC

SR unit

MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC

DR unit

MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC MC

Ubicell

Ubicell

Fig. 1. Composition of a Macrocell

view of a macrocell, which is composed of three layers: a ubicell array layer, a dynamic routing layer, and a self-reconfiguration layer. General Purpose Inputs-Outputs (GPIOs) of the reconfigurable array are implemented in the form of dynamic routing units that, instead of being connected to ubicells, are directly connected to input and output pins of the circuit. These GPIOs allow thus to extend the array to form a multi-chip array, connected through dynamically created paths. The next subsections will briefly describe the functionality of each layer. 2.1

Ubicell layer

A ubicell is the basic computing unit of the ubichip, which contains four 4-input LUTs and four flip-flops. The ubicell has two basic operating modes: native mode and SIMD mode. In native mode, a ubicell can be configured in different basic “classical“ modes like counter, FSM, shift-register, 4 independent registered and combinatorial LUTs, adder, subtracter, etc. There is a particular configuration mode of a ubicell, very useful in the modelling of complex systems, the 64-bit LFSR mode. In this mode one can use use the 64 configuration flip-flops used for storing the four 4-input LUTs configuration as a reasonable quality pseudo-random number generator. This novel feature, very useful on complex systems modelling, allows to include processes as probabilistic functions and pseudo-random event trigger at a very low resources cost, in terms of reconfigurable computing. This configuration mode has been used in different models implemented on the architecture, such as ontogenetic neural networks [14] and evolutionary games [7]. In SIMD mode (single instruction multiple data), the ubicell layer can be configured as an array of processing elements in order to perform vectorised parallel computation. In this mode, each ubicell can be configured as a minimal 4 bits processor, and 4 ubicells can be put together to form a 16-bit processor. A centralised sequencer can read a program and send instructions to be executed in parallel by processing units. This configuration mode has been used in modelling complex systems as neural networks [2] and culture dissemination models.

4

2.2

Andres Upegui et al.

Self-reconfiguration layer

Our self-reconfiguration layer allows a given macrocell to access the configuration bit-string of a neighbour macrocell. In this way, a macrocell can either read the configuration of its neighbour, modify it, and reinsert it for modifying the neighbour’s functionality. Another possibility is to recover the configuration bitstring of its neighbour and send it to another (remote) macrocell that will use it to configure its neighbour. This is what we call replication. Now let’s consider the case of two neighbouring initial macrocells 𝐴0 and 𝐵0 . Lets permit 𝐴0 to read the configuration of 𝐵0 for copying it and creating 𝐵1 , and then lets do the same with 𝐵0 reading 𝐴0 and copying it to 𝐴1 . If we consider the tuple [𝐴𝐵] as a cell, we have an initial cell [𝐴0 𝐵0 ] that has created an exact copy of itself [𝐴1 𝐵1 ]; that’s self-replication. Replicating a single macrocell is not very practical, since the functionality implemented on a single macrocell may be very limited. For overcoming this limitation, we propose the THESEUS mechanism (standing for THeseus-inspired Embedded SElf-replication Using Self-reconfiguration) [13]. THESEUS includes a set of building flags that allow to replicate a larger functional block composed of several macrocells. The building flags describe how to build the complete block. In this manner, a macrocell can access its neighbor’s configuration, and through it, it can also access a chain of other macrocells’ configurations described by a predefined building path by means of the building flags. This reconfigurability feature is one of the firsts step towards the modelling of more realistic complex systems. Following our approach, the implemented complex system size can grow and prune through self-replication and self-destruction. In parallel, the system building blocks can be dynamically connected and disconnected driven by processes executed internally to each block, all this thanks to the dynamic routing mechanism that will be decribed in the next subsection. 2.3

Dynamic routing layer

As explained before, real complex systems are constantly modifying its topology. The brain, ecological systems, and social networks, are just some examples where neurons, species, or people are constantly modifying their interaction channels. From complex systems theory, it can be represented as graph links that are being created and destroyed. Dynamic routing offers the possibility of implementing such dynamic-topology systems on a hardware substrate in order to model such changing interactions in a more direct way. The basic idea of the algorithm is to construct paths between sources and targets by dynamically configuring multiplexers, and by letting the data follow the same path for each pair of source and target. A phase of path creation executes a breadth-first search distributed algorithm, looking for the shortest path. Sources and targets can decide to connect to their corresponding unit at any time by launching a routing process. If we consider the high silicon overhead due to routing matrices on reconfigurable circuits, specially high for dynamic routing, we adopted a solution

Ubichip, Ubidule, and MarXbot

5

requiring a small silicon overhead, while being flexible enough to deal with the changing topology of our complex networks. Our dynamic routing algorithm is an improvement of the one implemented in the POEtic chip [10]. The risk of congestion has been be reduced by means of three features: (1) the new algorithm will exploit the existing paths by reusing them, (2) an 8-neighborhood (instead of the 4-neigborhood of POEtic) will allow a dramatic reduction of congestion risk compared to the amount of logic required, and (3) we allow to destruct paths in order to remove unused connections and reuse them later. Finally, while in POEtic the circuit execution was frozen during a routing process, in the ubichip the creation of a new path lets the system run without interruption.

3

Ubidule

The ubidule platform is composed of two electronic boards mainly featuring two ubichips, an ARM processor running Linux, a 3.4 Mgates FPGA, and support for several peripherals. One of the major features of the ubidule platform is its modularity and flexibility. It is easily customizable for each one of the target applications, and so is a complete and efficient modelling platform. For the sake of modularity the ubidule has been decomposed into two boards: a mother board containing the CPU, the FPGA, and peripheral support, and a daughter board containing two ubichips, which can also be integrated on the marXbot robot. 3.1

Ubidule’s mother-board

USB Conn

USB Conn

microSD

USB HUB

USB USB

Colibri Module

Ubichip daughter board 0

Jtag PC IV

Jtag

Ubichip

AER con

AER

Par conf

3

6 5

4

ctrl

Ubichip

SRAM

Fig. 2. Schematic of the Ubidule platform

SRAM

Jtag

LCD Touchscreen

Spartan 3A XC3SD3400A

SelectMAP Prog Flash

ctrl

2

SRAM bus

Jtag

1

7

GPIOs

UART

SRAM

SDcard bus

VLIO Memory bus

UART

USB Conn

USB Conn

USB Conn

Wifi

Ethernet

Figure 2 depicts the schematic of the ubidule platform. A mini-PCI socket supports a ubichip daughter board including two ubichips and their respective resources required for running on native and SIMD mode. Even if the current board contains two ubichips, it can be scaled up to contain up to four ubichips without modifing the current addressing scheme.

6

Andres Upegui et al.

Fig. 3. Ubidule platform (top view)

Fig. 4. Ubichip daughter board

A second mini-PCI socket supports a CPU board containing an ARM processor, that can be either an Xscale PXA270 or PXA320, and enough memory resources for running a GNU-Linux operating system. This CPU board constitutes the first step toward the desired flexibility and modularity of our ubidules, by providing the advantages of a performant processor, a well supported operating system, gcc tools, and a number of software resources as application programs, services, and drivers. Figure 3 shows the ubidule board. 3.2

Ubichip daughter board

The ubichip daughter board mainly contains 2 ubichips with their respective SRAM external memories. Figure 4 shows a top view of the board. When using the ubichips in native mode, both ubichips can be used as an extended configurable array. GPIOs can be configured in both chips in order to connect dynamic routing units from one ubichip to the other. The ubichip daughter board can also be directly inserted in the marXbot robot and both ubichips can be configured from the robot iMX microcontroller through the serial configuration interface. Nevertheless, concerned about the ubichip power consumption from the marXbot power supply, the ubichip daughter board provides the possibility of powering a single ubichip.

4

The marXbot robotic platform

To extend the exploration of complex systems in real-world applications we decided to embed the ubichip in a robotic platform. We therefore designed the marXbot mobile robot, taking care of several specific aspects: large number of robots (more than 20), facility of experimentation, ability to embed the ubidule as one module, and possibility to run long experiments. Because this design effort was not feasible within the perplexus project alone, we designed the marXbot

Ubichip, Ubidule, and MarXbot

Fig. 5. A complete marXbot robot in production (Photo Basilio Noris).

7

Fig. 6. A group of marXbots during experimentation.

robot in synergy with the swarmanoid project2 . This section presents the particular features of the marXbot (Figures 5 and 6). 4.1

Modularity

The marXbot robot is a flexible mobile robotic platform. It is made of stacked modules of a diameter of about 17 cm. The modularity of the marXbot robot is based on a common CAN bus and a LiION battery based power supply, both shared by all modules. In the examples presented in this paper, three main modules have been used: – The base module includes the wheels, the tracks (together called Treels), proximity sensors, RFID reader/writer, accelerometers and gyros and battery connection. The Treels provide mobility to the marXbot. They consist of two 2 W motors, each associated with a rubber track and a wheel. Motors are driven by dedicated electronic boards situated on each side of the battery (one for each motor). The maximum speed of the marXbot is 30 cm/s. The base of the marXbot includes infrared sensors to act as virtual bumpers and ground detectors. Those sensors have a range of some centimeters and are distributed around the robot: 24 are directed outside and 8 are directed to the ground. In addition, 4 contact ground sensors are placed under the lowest part of the robot. The base of the marXbot also embed a RFID reader and writer with an antenna situated on the bottom of the robot, close to the ground. – The scanner module allows to build a distance map of the obstacles surrounding the robot [3]. Our design is based on 4 infrared Sharp distance sensors mounted on a rotating platform. These sensors have a limited range and a dead zone close to the device, so we couple two sensors of different ranges (40–300 mm and 200–1500 mm) to cover distances up to 1500 mm. The platform rotates continuously to make 360∘ scans. To maximize the life 2

http://www.swarmanoid.org

8

Andres Upegui et al.

time of the scanner, the fix part transfers energy by induction to the rotating part. They exchange data using infrared light. – The top module includes the cameras, a RGB LED beacon, the imx.31 processor and its peripherals such as WiFi board and SD card reader. Two cameras can be mounted: a front camera and an omnidirectional camera on top. Both are equipped with imagers of 3 Mpixels. The RGB LED beacon allows to display a high intensity (1W) color light. Combined with the cameras, this is a localized and well understandable communication system. The imx.31 processor runs LINUX and access standard peripherals such as WiFi, USB or flash storage. 4.2

Ubichip compatibility

An ubidule extension module has been designed to ensure the embodiment of the ubidule in the marXbot. It ensures the following functionalities: – Mechanical adaptation between the four screws of the marXbot extension system and the four screws of fixation of the ubidule. – A step-up power supply generating 7.5V, 12W for the ubidule. – A microcontroller ensuring the transparent translation of messages between USB (ubidule) and CAN (marXbot). Therefore the final solution has been to develop an ubichip extension module, without screen and user interface, to be placed within the marXbot robot as a sandwich module. From a control point of view, all microcontrollers within the marXbot robot can be controlled using the ASEBA framework [4]. This framework transmits event messages over the CAN bus to exchange commands, to read sensors etc. We have implemented an ASEBA node in the ubidule making it compatible with the software architecture of the marXbot. This allows full control of the marXbot from the ubidule. 4.3

Battery management

The exploration of complex systems requires the use of groups of robots during long periods, for instance under the control of genetic algorithms. Because of the battery-based power supply of the robots, long experiments are problematic. Therefore the marXbot is powered by a 3.7 V, 10 Ah Lithium-Polymer battery which is hot-swappable. The hot-swapping capability is provided by a supercapacitor which maintains the power supply of the robot for 10 s during battery exchange. A battery exchanger (figure 7) has been designed to automatically extract the battery from a running marXbot and replace it by a charged one in a delay below 10 seconds.

Ubichip, Ubidule, and MarXbot

9

Fig. 7. The battery station able to exchange the battery of the marXbot during operation in 10 seconds.

5

Complex systems simulations

In this section we briefly describe two examples of complex systems models, that exploit different aspects of the Perplexus hardware platform. Subsection 5.1 describes an ontogenetic neural network that exploits the ubichip’s self-reconfiguration and dynamic routing mechanisms, and subsection 5.2 describes a collective foraging task set up on the marXbots. 5.1

Neurogenetic and synaptogenic networks on the ubichip

Given its dynamic routing mechanisms, the ubichip results in a promising digital hardware platform for implementing connective systems with dynamic topologies, more precisely in our case, developmental artificial neural networks. The current implementation of the model considers the initial existence of a set of unconnected 4-input neurons, where dendrites (inputs) and axons (outputs) are connected to dynamic routing units which are previously configured to act as targets and sources respectively. The connectivity pattern is further generated during the neural network life-time. We use a simplified neuron model whose implementation on the ubichip requires only six macrocells. Each dendrite includes the required logic for creating and destroying a synapse in a probabilistic way, and is implemented in a single macrocell. Two more macrocells are used for implementing the soma (cell body of a neuron), the axon (the computation of the activation function and the neuron output), and the management of the dynamic routing address modification. Figure 8 illustrates the complete ontogenetic process with a series of screenshots obtained from the ubimanager tool. Initially, a single neuron is configured on the ubichip(top left screen-shot). A replication process can be triggered on this neuron which can be copied somewhere else in the circuit. A first step is to

10

Andres Upegui et al.

Fig. 8. Sequence of screen-shots of the dynamic routing layer during the development of a neurogenetic and synaptogenic network with 16 4-inputs neurons

select where will it be copied, and create a dynamic routing unit to that location (top centre). Then the configuration is sent serially from the initial location to the destination, in order to use this information for creating an exact copy of the initial neuron after a certain number of clock cycles (top right). Now we have two neurons that can again replicate both of them simultaneously, so new target locations are selected (bottom left) for obtaining 2 newly created neurons (bottom centre). At the end, we obtain a circuit fully populated of neurons (bottom right), which in parallel had also performed a probabilistic synaptogenic process that permitted them to interconnect their dendrites and axons. We have experienced two types of developmental processes: random and ambient-driven networks. During the development of random networks, neurogenetic and synaptogenic processes are triggered randomly. The development of ambient-driven networks considers the existence of a set of input stimuli that increase the probability of most active neurons for getting connected. Moreover, existing unused synapses can be removed. At the end, our resulting networks exhibit similarities with topologies observed on biological neural networks [14]. 5.2

Collective robotics for target localization

We have used the marXbot platform for testing a novel approach for the localization of targets in a population of foragers. The control of the population of robots is performed in a distributed way. In this implementation, our robots have two possible states which are “work” and “search”. In the “work” state, robots perform a certain foraging task and are distributed on the arena. In the

Ubichip, Ubidule, and MarXbot

11

case of the work presented in this chapter, we have a dummy foraging task consisting on navigating on the arena avoiding obstacles. The main interest is in the “search” state, in which a robot will try to arrive to a specific target region on the arena. This target region could be a battery charging station, an area for garbage disposal, or the output of a maze. Whatever the robot may search, the goal is to exploit the collective knowledge, given that there are other robots that can estimate how far they are from the target region, and will somehow help the searching robot to achieve its goal. The proposed target localization avoids the use of global positioning systems, that might be difficult to deploy in unknown or hostile environments, and avoids also the use of odometry, which is sensitive to cumulated errors after large running periods. Our approach uses colour LEDs and omnidirectional cameras in order to indicate to other robots the shortest path to a desired target, based on a principle of disseminating the information gathered by the robots through the population. The proposed coordination scheme is completely distributed and uses state communication [1] in a intrinsic way, i.e. robots transmit some information about their internal state, but they are not aware of whether other robots receive this information or not. This fact simplifies the communication and endows the system with an intrinsic robustness. The application runs in both real marXbots robots and in the Enki simulator [5]. Figure 9 show a simulation window and figure 10 shows a set of robots on an arena running the foraging task. The rich sensory elements present in the marXbot robots represent an excellent modelling platform for the simulation of complex systems that interact with the environment.

Fig. 9. Simulated arena where the experiments evolve running the foraging task.

Fig. 10. Set of marXbots running a foraging task and searching for specific zones of the arena

We performed a series of five experiments with increasing information about the target position [8]. Each of the five experiments adopt a different strategy for finding the target, and the whole set of robots were constantly searching targets. The strategies were:(1) random search, (2) the use of static landmarks, (3) the use of static landmarks and the robots as landmarks, (4) the use of only

12

Andres Upegui et al.

the robots as landmarks, and (5) the use of a gradient of colours, by landmark propagation, mimicking a social localization. This incremental comparison has shown that the “social” approach, whereby the navigation of the population is guided by a gradient of colours, improved the performance in finding a target. We have also compared our social localization approach with a global positioning system (similar to a GPS system) in which a robot knows its position and the position of the target area. The social approach performs slightly worse without the presence of obstacles. However, when including obstacles between the robot and the target area, the social approach largely outperforms the global knowledge system, since the colour gradient formed by the colony of robots does not indicate the direction of the target but, more useful, they point the path to follow in order to find the target.

6

Conclusions

In this paper we presented the complete hardware platform resulting from the Perplexus project. The goal of the hardware is to serve as modelling platform for more realistic complex systems able to interact with the environment, and able to mimic and/or deal with physical constraints. The complete platform is composed of a reconfigurable digital device - the ubichip -, an ubiquitous computing module - the ubidule -, and a robotic platform - the marXbot -. In every case, we have also provided the possibility of simulating the systems in a transparent manner. The ubimanager tool allows to configure a real chip or to simulate a circuit from its own VHDL description [12]. The ASEBA framework [4], allows to write program for the marXbot being possible to be run on the real robot, or on the enki simulator [5]. We have also shown two examples were the platform has been successfully used for the simulation of complex systems. The first one, an ontogenetic neural network, uses the ubichip as substrate for implementing dynamic topology mechanism such as neurogenesis and synaptogenesis. The second one, a social localization task, uses the marXbot in order to implement a foraging task where robots must eventually find specific areas. There are other examples of complex systems implemented on the Perplexus hardware platform: incremental learning on the ubichip for a marXbot controller [9], artificial neural networks in SIMD mode [2], optimizer swarms of self-replicating particles, protein based computation [6], and social networks for activity recognition based on wearable systems. All these applications use of one or several parts of the Perplexus hardware platform for their implementation. The platform has shown to be an interesting alternative for complex systems modelling. The ubichip’s architectural features have provided the required flexibility for modelling the complex processes involved in the formation and evolution of dynamic networks. The sensing and actuating capabilities of the marXbot robot have provided an enhanced interaction with the environment and with other robots. And the ubidule has constituted the base platform for hosting the ubichip, allowing it to interact with the world in a flexible manner.

Ubichip, Ubidule, and MarXbot

13

Acknowledgment The authors would like to thank all the members of the Perplexus project for their valuable work, and their colleagues at the REDS and the MOBOTS groups for their support. This work is funded by the FET programme IST-STREP of the European Community, under grant IST-034632 (PERPLEXUS).

References 1. T. Balch and R. C. Arkin. Communication in reactive multiagent robotic systems. Auton. Robots, 1(1):27–52, 1994. 2. M. Hauptvogel, J. Madrenas, and Moreno J.M. SpiNDeK: An integrated design tool for the multiprocessor emulation of complex bioinspired spiking neuronal networks. Proceedings of the IEEE Congress on Evolutionary Computation - CEC 2009, Haddow et al. (Eds.), pages 142–149, 2009. 3. S. Magnenat, V. Longchamp, M. Bonani, P. R´etornaz, P. Germano, H. Bleuler, and F. Mondada. Affordable SLAM through the Co-Design of Hardware and Methodology. In Proceedings of the 2010 IEEE International Conference on Robotics and Automation. IEEE Press, 2010. 4. S. Magnenat, P. R´etornaz, M. Bonani, V. Longchamp, and F. Mondada. ASEBA: A Modular Architecture for Event-Based Control of Complex Robots. IEEE/ASME Transactions on Mechatronics, 2010. 5. S. Magnenat, M. Waibel, and A. Beyeler. Enki - an open source fast 2d robot simulator. http://home.gna.org/enki/. 6. J. Parra, A. Upegui, and J. Velasco. Cytocomputation in a biologically inspired and dynamically reconfigurable hardware platform. Proc. of IEEE Congress on Evolutionary Computation - CEC 2009, Haddow et al. (Eds.), pages 150–157, 2009. 7. J. C. Pena, J. Pena, and A. Upegui. Evolutionary graph models with dynamic topologies on the ubichip. Evolvable Systems: From Biology to Hardware: 8th International Conference Proceedings, ICES 2008, LNCS 5216, pages 59—-70, 2008. 8. H. F. Satiz´ abal, A. Upegui, and A. P´erez-Uribe. Social target localization in a population of foragers. In NICSO, pages 13–24, 2010. 9. Hector F. Satiz´ abal and Andres Upegui. Dynamic partial reconfiguration of the ubichip for implementing adaptive size incremental topologies. Proceedings of the IEEE Congress on Evolutionary Computation - CEC 2009, Haddow et al. (Eds.), pages 131–141, 2009. 10. Y. Thoma, E. Sanchez, J. M. M. Arostegui, and G. Tempesti. A dynamic routing algorithm for a bio-inspired reconfigurable circuit. In Field-Programmable Logic and Applications, LNCS, volume 2778, pages 681–690. Springer-Verlag, 2003. 11. Y. Thoma, G. Tempesti, E. Sanchez, and J. M. Moreno. POEtic: an electronic tissue for bio-inspired cellular applications. Biosystems, 76(1-3):191–200, 2004. 12. Y. Thoma and A. Upegui. Ubimanager: a software tool for managing ubichips. Adaptive Hardware and Systems, NASA/ESA Conference on, pages 213–219, 2008. 13. Y. Thoma, A. Upegui, A. Perez-Uribe, and E. Sanchez. Self-replication mechanism by means of self-reconfiguration. In Workshop Proc. of the Conference on Architecture of Computing Systems 2007 (ARCS’07). VDE Verlag, Berlin, 2007. 14. A. Upegui, A. Perez-Uribe, Y. Thoma, and E. Sanchez. Neural development on the ubichip by means of dynamic routing mechanisms. Evolvable Systems: From Biology to Hardware: 8th International Conference Proceedings, ICES 2008, LNCS 5216, pages 392—-401, 2008.

Suggest Documents