Skip to content
Reza Mahjourian edited this page Dec 29, 2015 · 6 revisions

Roomba Environment

The Roomba environment is a virtual computer lab with crumbs distributed on the floor. The agents collect the crumbs and receive reward for doing so.

The Roomba environment demonstrates a decentralized homogeneous multi-agent system. It is multi-agent since multiple Roomba agents need to cooperate to collect the crumbs on the floor. It is decentralized since there is no central commander to schedule the moving plan of each individual agents and no agent possesses the authority to supervise other agents. Each agent makes its decisions based on the outputs of its own neural network. Finally, it is homogeneous because all agents use the same settings.

Controls

  • Esc - exit the Maze and return to the Hub
  • F1 - get help by opening the web browser and navigating to this page
  • A - move camera left
  • D - move camera right
  • W - move camera forward
  • S - move camera back
  • Q - pan camera left
  • E - pan camera right
  • space bar - recenter camera to origin

What the display means

  • Blue cubes: bread crumbs (or pieces of trash) on the floor, which the vacuum cleaners must pick up
  • Grey cylinders: vacuum cleaner agents
  • Walls: the limits of the environment
  • Tables, Chairs, Computers: at the moment these are only decorations

User Interface

The control panel allows you to select the number of agents to run, as well as the policy used to control them. You can select a scripted agent that greedily selects the closest crumb and moves to collect it, or an evolving agent that improves with time.

Some functionality provided by the scripting language

Changing Blue cube distribution:
  • world_config.txt can hold all information needed to distribute the Blue cubes. You can think of this file as a very rudimentary "map" or "scenario," as the term is used in strategy games.
    • The first few lines under Dimensions list the sizes of the room. However, these are only filler at the moment.
    • Each line under "Pellets" hold information about one Blue cube. A typical line may look like this:
      1 cluster 86.8597775308 20.5101799601 7.31971084367 7.31971084367
    • The first number ("1") is the amount of reward the robot gets for picking up this particular Blue cube
    • "cluster" specify the kind of distribution that this Blue cube belong to. In the case of "cluster", this cube will be placed randomly but close to a certain point. If we have bunch of cubes with identical information, they will "cluster" together, thus the name. The other options for this field are "manual" and "random" (uniform randomization).
    • The numbers that follow are other pieces of information used to generate the position of this Blue cube. Here, from left to right, we have the x and y coordinate of the cluster center, and about 1/3 of the x and y spread, respectively.
Clone this wiki locally