# Automatic Design of Collective Behaviors for Robots that Can Display and Perceive Colors
## 4 Experimental Set-Up
### Baseline Method: EvoColor  
No standard design method exists to address the class of missions we consider in this study. Little related work exists--see Section 2--and refers only to mission-specific methods that follow the neuro-evolutionary approach. Indeed, as no extensive comparison has ever been performed between neuro-evolutionary methods across multiple missions, a state of the art in neuro-evolutionary robotics has not been identified, yet. Together with the results obtained with TuttiFruti, in the following we will present also those obtained by EvoColor--a method based on neuro-evolution for the automatic design of swarms of e-pucks that can display and perceive colors. The results we will present should not therefore be considered as a comparison between TuttiFruti and the state of the art in neuro-evolutionary robotics. In this context, our results should rather be considered as a comparison between TuttiFruti and a reasonable instance of the neuro-evolutionary approach. EvoColor is an adaptation of EvoStick[65]--a standard neuro-evolutionary method previously used as a yardstick in studies on the automatic design of robot swarms [8, 10, 15, 53]. To the best of our knowledge, EvoStick is the only neuro-evolutionary method that has been tested via simulations and robot experiments on multiple missions without undergoing any per-mission modification. EvoColor produces control software for swarms of e-pucks that operate with RM 3--see Section 3.1. The control software has the form of a fully connected feed-forward artificial neural network with 41 input nodes \((in)\), 8 output nodes \((out)\) and no hidden layers. In this topology, the input nodes and output nodes are directly connected by synaptic connections (\(conn\)) with weights \((\omega)\) in a range of \([-5,5]\). The activation of each output node is determined by the weighted sum of all inputs nodes filtered through a standard logistic function. EvoColor selects appropriate synaptic weights using an evolutionary process based on elitism and mutation. Just as in TuttiFruti, the evolutionary process is conducted through simulations performed in ARGoS3, version beta 48, together with the argos3-epuck library. The evolution ends when an _a priori_ defined budget of simulations is exhausted. Table 3 summarizes the topology of the neural network, the novelties with respect to EvoStick and the parameters used in the evolutionary process. The readings of the proximity \((prox)\) and ground \((gnd)\) sensors are passed directly to the network. Information about the number of neighboring peers \((n)\) is provided through the function \(z^{\prime}(n)\in[0,1]\), with \(z^{\prime}(n)=1-\frac{2}{1+e^{(n)}}\). The vector \(V_{n}\) and each vector in \(V_{c\in\{R,G,B,C,M,Y\}}\) are translated into scalar projections onto four unit vectors that point at \(45^{\circ}\), \(135^{\circ}\), \(225^{\circ}\), and \(315^{\circ}\) with respect to the front of the robot. Then, each projection is passed to the network through an independent input node. The last input of the network comes from a bias node. Four output nodes encode tuples \((v^{\prime})\) of negative and positive components of the velocity of the wheels. Each tuple is obtained from two independent output nodes and is defined as \(v^{\prime}=([-12,0],[0,12])\). The velocity of a wheel \((v)\) is computed as the sum of the two elements in a tuple \((v^{\prime})\). Similarly, the color displayed by the RGB LEDs of the robot is selected by comparing the value of the output nodes that correspond to colors in the set \(\{\varnothing,C,M,Y\}\). The color displayed corresponds to the maximum value found across the four colors. EvoColor differs from EvoStick in two aspects: the reference model and how the output of the neural network is mapped to the velocity of the robots. First, EvoColor is based on RM 3 and EvoStick on RM 1.1. In accordance to RM 3, EvoColor does not integrate the capability of the e-pucks for sensing the intensity of ambiance light--originally integrated in EvoStick.