KControl version 0.4.8
 This page is about my control and monitor program for the well known
Khepera®
robot from the 
K-Team.
It can be used to evaluate algorithms developed in the fields of
robotics and artificial life in real time and on a real robot.
This page is about my control and monitor program for the well known
Khepera®
robot from the 
K-Team.
It can be used to evaluate algorithms developed in the fields of
robotics and artificial life in real time and on a real robot.  
Content
- Program Features
- Library Features
- Preview
- Download
Program Features
- controls up to 4 Khepera® robots concurrently
- provides a customizable drawing area 
- uses the 
XForms 
graphics library to provide comfortable X-programming
- the demo version is able to read a simple neuronal net for controlling 
purposes, which be created and trained by 
SNNS
- ideal tool to gain the first experiencs with your brandnew Khepera® robot
The kcontrol program evolved over time from a simple imperative controlling 
program into a full equipped testbed with numerous advantages. It can be used 
to control and monitor several learning tasks/algorithms executed by the real 
robot and incluses many new features. 
- Displays the internal state of the death reckoning algorithm
- A second view for the visual turret is provided. This view 
can display the filtered data from the visual turret. One can build up a filter 
chain with clipping, fourier transform, lowpass and highpass. The ordering of 
the filter functions can be changed.
- More than one learning algorithms can be executed or trained during a 
single run of the robot assuming that only one of them is used to control the 
robot.
- The amount of graphical data beeing displayed by an algorithm can be 
scaled down or inhibited by the user to prevent a high workload on the 
controlling host. Furthermore, the data  can be  saved  into a file 
containing an image or a sequence their of. 
- Every algorithm has its own parameter view with sliders and checkboxes.
The configuration for an algorithm can be saved and loaded from individual 
text files to resume a testrun after a break.
- The main controller includes functions for crash detection and supports a
two-way scheme to improve the granularity of control.
The functionality has been moved into several C++
objects to support not only the direct control but also the 
hybrid mode to be used in future releases.
- Runtime parameters such as the cpu load, update rate, transfer time or 
command delays over the serial line are calculated in order to help you to 
interpret the result of a testrun.
- Every algorithm can produce logdata without interfering other running
algorithms. The user has control how often a data set of logging information 
is saved to file.
- The bounds of every slider can be changed at runtime.
- Five different demos are included as programming examples
- A implementation of a simple light compass demonstrates the use of the canvas.
- A implementation of the new learning principle 
homeokinesis 
developed by Ralf Der.
- A implementation of an algorithm of competing differential equations
(german)
This algorithm can help to reduce the errors from dead reckoning and provides
additional information about the actual environment of the robot.
- The controller using a neuronal network (as in the first version of kcontrol).
- A simple demo to record the trajectory of the robot during a testrun. 
This trajectory can be used to simulate a virtual run of the robot lateron.
 
Library Features
- the interface to the real robot is represented by a single C++ object
- the vision turret and the gripper are supported
- the scanned image can be preprocessed by edge detection or fourier transformation algorithms
- the controller can get connected using sockets as well as serial ports and therefore enable the
use of a khepera simulator as well as a real robot.
- includes additional functions for turns and movement  
The library has been extended too and supports now a
message queueing scheme to reduce the used bandwidth
over the serial line  as well as 
stacked arrays for the sensory inputs to hold and retrieve
sensor data up to sixteen steps back in time.Preview
The look of the kcontrol has undergone some changes too and is now split up into
- the main window
 containing the sensor displays, the basis control menus, the "hand-operating"
section and the list of some run time parameters,
- the drawing canvas
 can display graphical data programmed by the user and
- the parameter views
 containing the sliders and checkboxes needed to fine tune the parameters of
the selected algorithms. More than one parameter view can be active at a time
for different algorithms.
Thats how kcontrol looks like
|  | The main window |   | 
|   | 
|  | 
|  | 
| and a sample desktop with all possible kinds of windows from kcontrol. | 
Documentation
might be out of date
- The kcontrol manpage 
- german documentation about libkhepera library functions 
- german documentation about the "competing differential equations algorithm"
- images from some trials with khepera an kcontrol
- my diploma thesis, kcontrol user guide and programming reference in appendix A and B
(language german)
Requirements
- installed XForms library version 0.81 or higher
- GNU gcc,tar,install and make
- khepera library written by Thomas Pantzer
The Makefile should work fine on Suns and Linux-Boxes without any 
changes. Run it twice ;-).Download and install
I guess you expect the newest version here ;-). 
Hold the shift key and press the left mousebutton on the URL to 
download these files if you are using netscape. 
kcontrol-package-0.4.8.tgz
(about 300 kBytes)
There is also a loader program for serial communications,
a serial-to-network forwarder and a simple tcp echo server included in the archive.
You have to install the supplied libraries first. Change to the 
apropriate directory and type
-  make forcedep
-  make
-  make install
After the program has been installed you can run the program within the 
bash-shell with:
-  export LD_LIBRARY_PATH=$HOME/lib
-  $HOME/bin/X11/kcontrol
You have to set the jumpers on the khepera to mode 3 (38400 Baud) in order to 
work with kcontrol. Happy driving with your khepera.

Copyright
  kcontrol,libkhepera,libtns_util,libxfgc  Copyright 1997,1998,1999 by Thomas Pantzer
  
  
  	
  Permission to use, copy, modify, and distribute this software for non-commercial and 
  non-military use and without fee is hereby granted, provided 
  that the above copyright notice  appear in all copies and that both that 
  copyright notice and this permission  notice appear in supporting 
  documentation, and that the name of the Author not be used in advertising 
  or publicity pertaining to distribution of the software without specific, 
  written prior permission. The Author makes no representations about the suitability 
  of this software for any purpose.  It is provided "as is"  without expressed 
  or implied warranty. 
   
  
  
 
 
 
 
maintained by 
Thomas Pantzer ,
 
mailto 
pantec@aix520.informatik.uni-leipzig.de,
 
PGP public key available