kcontrol version 0.4.7
message queueing object
If more than one learning algorithm is active at a time (this could be realized with
kcontrol) the amount of data transfered from the robot to the computer can grow up
rapidly and can reduce the granularity of control. It is possible that two
algorithms need the same sensory data within a time step. To prevent the
transfer of almost the same dataset twice, a messaging object has been
implemented which maintains the presentation of the sensory data in the
computers memory. This object collects the requests for specific sensory data
and communicates with the real robot. The requests are made simply by setting a
flag. If the requested data is received by the messaging object it clears the
appropriate flag for the next interval. If no new request occurs this flag remains
zero. The sensory data is stored in a public readable field. This way only active
algorithms or processes can generate traffic on the serial link and only the
needed data is transfered. A sketch on the communication paths used by the
processing objects, the messaging object and the robot can be found
here.
It is needed often to have the actual sensory input and a older one to compare them.
Therefore all received data is stacked into an array where the oldes values are
shifted out. The algorithms can retrieve data from a prior time step simply
by increasing the index where to look for in the array. Since the update of the
array is maintained solely by the specific sensor objects no time consuming bit
shift operations takes place. All arrays are implemented as round robin buffers
with write and read pointers handled by the sensor objects itself.
back to kcontrol
maintained by
Thomas Pantzer ,
mailto
pantec@aix520.informatik.uni-leipzig.de,
PGP public key available