Processing behaviours are a special type of behaviours which are applied for different use cases. So we decided to classify every behaviour which works significantly different to steering as processing behaviour. Steering behaviours generate magnitudes based on percept positions and other related information, as against the intension of processing behaviours is to modify or to process these values afterwards. Thus, processing behaviours have a default order of 1000 or even 2000 (in the case of the Planar Interpolation). It simply would have no effect to execute, for instance, Planar Convolution before Seek. However, it is possible to have an interleaved setup like the following (although the example does not make much sense for a real use case).
Seek -> PlanarConvolution -> Seek -> Planar Convolution
For most cases, it is recommended to stick to the default order values. steering behaviours should be processed first (0 - 999), then, the processing behaviours are executed (1000 - 1999). At last but not least, the Interpolation is executed (2000 - xxxx) if there is any.
The following table lists all current processing behaviours.
Behaviour | Task |
---|---|
Planar Convolution | A 1D filter that can be applied on objective values. |
Planar Interpolation | Attempts to find possible better solutions in between receptor directions. Thus, it increases the accuracy without increasing the receptor count (which saves you a lot of performance). |
Reduction | Is intended to decrease objective values based on the proximity and the direction towards other objects. |
Retention | Includes information of the last time-step into the current time-step by blending both old and current objective values. |
Stabilization | Modifies an objective based on an agent's movement direction. It is intended to prioritize the former movement direction of an agent in order to avoid small and sudden changes so that the overall movement appears to be much smoother. |
Interpolation behaviours are classified as processing behaviours (note that Planar Interpolation is the only available interpolation behaviour at the moment). However, they needs to be called after the Context executed the MCO solver because these behaviours work with the values of an already made decision. Thus, it is impossible to assign an Order
equal to or greater than 2000. This way it is ensured that the interpolator is called after the MCO solver has done its work.
In contrast, all other processing behaviours besides interpolators are intended to be executed before the MCO solver.