Enki  1.9
Enki Reference documentation

Introduction

This is the reference for the Enki simulator library. Enki is a fast 2D simulator designed to support the simulation of colonies of robots hundred times faster than real time. To achieve this, simplified 2D physics and optimised hierarchical interaction models are used.

Installation

The installation procedure is explained step by step in the Install guide.

Usage

A quick start to most important classes is given in the Cookbook.

If you want to extend Enki, do not forget to read and follow the Coding Convetions.

Design choices

The basic datatype is double. It is used everywhere excepted if another datatype specifically makes sense.

The core concept in Enki is the interaction. An interaction can be local, i.e. apply only up to a certain range, or global, i.e. apply to the whole world.

Local interactions are object <-> object and called by the inner simulation loop only when objects are below the interaction range. In objects, local interactions are sorted from long to short range so that once one is out of range, the following will be too. This is the main optimization in Enki that permits large colonies of robots. The complexity is still O(n2) so if very large colonies are required, a larger scale, grid based optimization should be used. It is currently not implemented in Enki. Physical dynamics between objects are the shortest ranged local interactions. Local interactions can also interact with walls. Physical dynamics between objects and walls are similar to local interactions with other objects, but use a different method of calculation.

Global interactions are object <-> world.

Development state

The core, the IRSensor, and the basic Khepera, EPuck, Alice and Sbot features reflect real hardware and thus won't change much.

The sound sources of Sbot does not reflect directly hardware and thus is subject to change.

Feedback

If you have any comments or suggestions, do not hesitate to send them to Stephane Magnenat (stephane at magnenat dot net).

License

This program is free software released under the GNU General Public License version 2. We ask the authors of any publication arising from research using this software to add the following reference:

Enki - an open source fast 2D robot simulator
http://home.gna.org/enki/

Stephane Magnenat <stephane at magnenat dot net>,
Markus Waibel <markus dot waibel at epfl dot ch>,
Antoine Beyeler <abeyeler at ab-ware dot com>

Laboratory of Intelligent Systems,
Mobots group - Laboratoire de Systèmes Robotiques,
École Polytechnique Fédérale de Lausanne - Switzerland