# EyeSim - EyeBot Simulator

The EyeBot simulator EyeSim is a multiple mobile robot simulator that allows experimenting with the same unchanged EyeBot programs that run on the real robots. EyeSim includes simulation of the robot's driving actuators (differential steering), as well as all robot sensors, including:

- On-board vision (synthetic generated images)
- Infra-red sensors
- Bumpers
- Odometry

A 3D scene representation of the environment and all robots in it is being shown, together with a list of active robots. Clicking on a robot from this list will identify the robot in the environment and also open a window to show its control panel (equivalent to the LCD display and buttons on the EyeBot controller) for communicationg via the robot's user interface.

See EyeSim example programs.

The simulation implementation differs from most other approaches, since we wanted to be able to re-compile EyeBot programs for simulation without having to change their source code in any way. Since you will compile any EyeBot program with the RoBIOS library for use on the robot, we created another version of this library with idendical headers, which serves as the simulation engine (see Libraries.

#### EyeSim Features

- Compilation for simulation and linking with simulation libarary
  gccsim myfile.c
- Simulation of all EyeBot RoBIOS functions
- Adjustable error models for sensing, driving, image quality
- KEY input and LCD output
- Synthetic (generated) color camera images for each robot (from point of view of respective robot)
- Multiple robot simulation
- Allows mobile robot to navigate in simulated environment
- Simulated sensors: bumper, PSD, IR-proxy
  sensor configuration names and values are displayed
- Simulated actuators: v-omega differential driving
- Concurrency
  - Multiple robots can be simulated in real time in the same environment (do not use global variables in this case!)
  - Each robot program may itself have an arbitrary number of concurrent threads
- Parameter files
  - myfile.sim
    Main simulation parameter file, links to environment and robot files
  - myrobot.robi
    Robot description file, physical dimensions, location of sensors
  - myrobot.iv file
    OpenInventor 3D graphics description of robot shape
  - eyesim.ini file
    Simulation initialization file, timing parameters, error settings, etc.
  - myenv.maz or myenv.wld
    Environment files, see below
- Environments files
  - World format (Saphira), see example
  - Maze format (Micromouse) see example

EyeSim V5 has been implemented by Axel Waggershauser under the direction of Thomas Bräunl. EyeSim V5 runs under Linux and requires the libraries OpenGL, Qt, and commoncpp. More details on EyeSim can be found at:

- Book: Bräunl, Embedded Robotics, Springer, Berlin, 2003
- Thesis: Axel Waggershauser
- Download area