EVAAA : Essential Variables in Autonomous and Adaptive Agents

EVAAA will provide a mechanism to freely choose a goal across different surrounding conditions and keep a more stable reward function, which are the key to build and test autonomous and adaptive RL agents. We provide a 3D virtual environment platform that requires RL agents in the Unity environment. It is designed to facilitate testing RL agent.

agent

Install and Setting

See here for a more detailed installation guide. The setting process required to run this project is as follows.

  1. Clone this repository
  2. Download interoceptive AI environment from below environment link
  3. Unzip environment files in the Example folder of this repository
  4. Install ml-agents
  5. Follow example python code ("python_code_example.py") in Example folder of this repository
OS Enviornment
Linux Link
Mac Link
Windows Link

Requirements

Software Version
python 3.10.12
Unity editor (optional) 2022.3.16f1
Package Version
mlagents 1.0.0
mlagents-envs 1.0.0

Manual Control

When you run this project on Unity, it will proceed with an agent view (a first-person perspective). Here you can control the agent with the following:

|

Unity Environment

We have a dynamically changing environment, and there are 5 levels in total.

Level 1. Basic setup: Food, water, and temperature.

스크린샷 2023-07-24 오후 5 19 27

At level 1, the environment is simple, featuring only the fundamental resources, that is, food, water (i.e., a pond), and temperature

  • The food is organized into cubes and possesses the ability to undergo color changes over time.
  • The water is arranged in the form of a pond.
  • The temperature is randomized based on the specified parameters and is regenerated whenever the agent dies.
    • The temperature can be directly modified through the "Field Temperature parameters".

Level 2. Obstacles.

스크린샷 2023-07-24 오후 5 19 08

The agent needs to leverage the knowledge acquired from the previous level to successfully adapt to a more complex environmental setting. At level 2, we adds natural objects, such as trees, rocks, and bushes, which act as obstacles that hinder the agent’s vision

Level 3. Day/night cycle.

level3

In level 3, we implemented the day/night cycle using a sun game object that rotates at a predefined degree over time.

At night, the overall temperature is lower and the agent's vision is darker, so it receives less visual input.

Level 4. Weather changes.

level4

In level 4, we implemented the weather changes. We incorporated two weather variations into EVAAA: rain and snow, drawing inspiration from nature.

Weather options can be selected as a parameter in Unity itself, and can be applied to any scene. You can also set temperature changes based on the weather, with rain or snow obstructing the agent's view.

Level 5. Four seasons.

level5

In level 5, we combine all challenges from lower level environments, e.g., day/night cycle and weather changes, with seasonal variations– spring, summer, fall, and winter. Each season is characterized by a number of unique features with varying colors, which can disrupt the agent’s vision for navigating and detecting resources.

Unity Script Overview

EVAAA environment consists of four large categories of scripts.

Unity Assets Sources

EVAAA environments are built using the following assets. (All assets are free assets from Unity Asset Store.)