KiKS is a Khepera Simulator

What's this?

KiKS stands for "KiKS is a Khepera Simulator". As the name implies, KiKS simulates one or more Khepera robots connected to the computer in a very realistic way, and runs under Matlab.

You control a simulated khepera using three commands (kiks_kopen, kiks_ksend, kiks_kclose) which work just like the K-team kMatlab modules (kopen.dll, ksend.dll, kclose.dll), so if you are familiar with controlling the khepera robot from Matlab you can instantly start using this simulator. Also, creating programs that can run on both simulated kheperas and real kheperas is extremely easy since the kiks_kopen/kiks_ksend/kiks_close commands work as wrappers for the kMatlab modules - calling kiks_kopen with a negative port number opens up communication with a simulated khepera, and calling kiks_kopen with a positive port number simply redirects the call to kopen.dll.

Since KiKS accurately simulates motors, proximity/light sensors and even baud rate, you can develop behaviours in the simulator (which usually runs at 200-300% of wall clock time) and expect the same behaviour once you try it on a real khepera. This makes KiKS well suited for use in AI courses, research, and for anyone interested in AI.

In order to run KiKS you need Matlab 5.3.1 (r11.1) or 6.0 (r12). No Matlab toolboxes are needed.



Simulator engine

KiKS simulates a Khepera or Khepera II robot connected via serial link to your computer in a very realistic way. The simulation is based on publically available data from K-team, and performance of all simulated robot components (motors, sensors, camera) have been fine-tuned for countless hours to match those of real Kheperas. For example, the simulated proximity sensors have been trained using over 80,000 samples of sensor data gathered from a real Khepera.
You can easily add support for your own Khepera-like (i.e. two-wheeled, cylindrical) robots.
A simulated robot is controlled using kiks_kopen, kiks_ksend and kiks_kclose which work exactly as the K-team Matlab modules (kopen/ksend/kclose). Since the kiks_k* commands also function as wrappers for the K-team modules, you can even use them to control real robots.
The simulator uses a matrix as the simulated environment, where 1=obstacle and 0=no obstacle. One matrix element corresponds to 1 square millimeter. The environment may be of any size. Realistic physics lets robots slide against objects and obstacles they collide with.


Advanced simulation of the flow of time

KiKS simulates the serial link between the computer and the robot based on the current baud rate, and uses the time that the MatLab program would have spent communicating over the serial link to do all simulation related work. This makes KiKS well suited for realtime applications.
"Wall clock time" is meant to be used for demonstrational purposes, and simply tries to run the simulation at "normal" speed while keeping the simulation realistic. "High precision" means that KiKS will run the simulation as fast as the computer can handle without sacrificing simulation realism.
If the computer running the simulator is slow, "wall clock" time mode may not work well. "High precision" time mode will however always work well, regardless of computer speed.

Pushable objects
The simulator engine is capable of handling two types of round objects (balls and cylinders) that can be pushed and kicked around.
Accurate Khepera/KheperaII motor modeling
KiKS supports both speed mode and position mode motor control, including full support of "speed profiles".
Simulate cooperative and competetive behaviors on a LAN or over the Internet using KiKSnet
Connect up to 128 KiKS instances to a KiKSnet server to simulate cooperative or competetive behaviors. KiKSnet is a TCP/IP client-server solution, so the computers running KiKS will only have to be connected over a network. KiKSnet works well over high-speed internet connections but is primarily intended for LAN use.
Advanced sensor simulation
Proximity sensors and light sensors are simulated using neural networks.
Implementation of most Khepera/KheperaII control commands
Almost all of the khepera control commands are supported.
Computer speed emulation
Allows you to examine how much the speed of the computer affects behaviours.
Open source
KiKS is completely open source. The source code for KiKSnet will most likely not be released.
K213 linear vision module simulation
KiKS accurately simulates the k213 linear vision module, including motion blur and brightness falloff.
Radio Turret
You can use the Khepera Radio turret when connected to a KiKSnet server.
Battle Turret
Let your robots, equipped with the fictional 'robot wars'-inspired Battle Turret, battle it out over KiKSnet! It's not very realistic (since energy draining laser weapons are not commercially available for the Khepera), but it is fun.


KiKS 2.2.1: (2010-04-29)

KiKS 2.2.0: