Cooperation applies the situations where two or more individuals obtain a net benefit by working together. Cooperation is widely spread in nature and takes several forms, ranging from behavioral coordination to sacrifice of one’s own life for the benefit of the group. This latter form of cooperation is known as “true cooperation”, or “altruism”, and is found only in few cases. Truly cooperative robots would be very useful in conditions where unpredictable events may require costly actions by individual robots for the success of the mission. However, the interactions among robots sharing the same environment can affect in unexpected ways the behavior of individual robots, making very difficult the design of rules that produce stable cooperative behavior. It is thus interesting to examine under which conditions truly cooperative behavior evolves in nature and how those conditions can be translated into evolutionary algorithms that are applicable to a wide range of robotic situations.