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.
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