Tutorial Artificial Life 2023: Evolving Robot Bodies and Brains with Unity


 

The evolution of robot bodies and brains allows researchers to investigate which building blocks are interesting for evolving artificial life. Agnostic to the evolutionary approach used, the supplied building blocks influence how artificial organisms will behave. What should these building blocks look like? How should we associate control units with these building blocks? How should we represent the genomes of these robots? In this tutorial we discuss (1) previous approaches to evolving robots and virtual creatures, (2) outline how Unity simulations and Unity's ML-agents package can be used as an interface, and (3) our approach to evolving bodies and brains using Unity.

There are many existing solutions that are tailored to experimenting with body brain co-optimization and we have been using several simulation approaches to evolve modular robots that are represented by directed trees (directed acyclic graphs). Since evolving bodies can be relatively complex, we give participants an overview of existing methods and invite the participants to get some guided hands-on experience using the Unity ML-Agents for evolving robots.  The Unity ML-Agents toolkit is an open-source toolkit for game developers, AI researchers, and hobbyists that can be used to train agents using various AI methods. Similar to OpenAI gym, it supplies a Python API through which one can optimize agents in a variety of environments. The Unity ML-Agents toolkit provides an easy-to-use interface that is flexible enough to allow for quick design iterations for evolving robot bodies and brains.

This tutorial is aimed at researchers that are interested in simulating the evolution of bodies and brains of robots. The tutorial will provide an overview of existing approaches to evolving bodies and brains of robots, and demonstrate how to design and incorporate control units, morphological components, environments and objectives. Participants will learn how to use Unity ML-Agents as a tool with evolutionary algorithms and learn how they can create incorporate their own robotic modules for evolving robots.

For an example of a master student's work with this approach, see: https://www.youtube.com/watch?v=qaAJ8SJDAIs.

 

The tutorial will use source code that can be found on https://github.com/FrankVeenstra/EvolvingModularRobots_Unity

 

 

 

Published Mar. 15, 2023 2:47 PM - Last modified July 21, 2023 8:52 PM