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.
KiKS 2.2.1: http://www.theodorstorm.se/webbdisk/612/kiks2.2.1.zip (2010-04-29)
KiKS 2.2.0: http://www.theodorstorm.se/webbdisk/612/kiks2.2.0.zip
KiKS is flattrware. If you find this software useful, please show your appreciation by clicking the Flattr icon!