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