What is Flat?

Flat is a 2D robot simulator with high-quality simulated sonar and laser rangefinder sensors. You can define "worlds" in which the robot travels, including multi-level worlds where the robot travels from one floor or room to another. The sensors include optional noise models, which simulate real world sensors.

Your program connects to Flat to control the robot's movement. Flat simulates the robot's movement in the virtual world and supplies your controller with sensor input. Your controller makes decisions about the robot's speed and direction. The LISP program Flat Client provides all the necessary low-level commands to control the robot, get sensor input, and display output.

The Flat Display not only shows the robot world and sensor output, but also allows your controller (or any program) to draw on the display in order to display output or robot information.

The three programs communicate with each other via TCP connections, so they can run on the same machine, or on different machines.