Introduction

The following project implements a platform for Behavior Based Systems (BBS). The platform achieves goals by using concurrent behaviors coupled to a voting scheme that allows each behavior to influence the output of the agent. Active behaviors access data directly from the sensors and cast their votes into the effectors. The effectors fuse the votes according to the priority of the behavior that produced it and generate a single value. This approach offers significant design freedom because several behaviors can be activated depending on the current goal. It offers increased robustness because if one behavior fails, the rest of the system keeps working. The platform was tested with an agent that navigates a canal following some buoys and finally berths at a dock.

Previous Work

The work presented here is based partially on [1]. Their motivation for using a voting scheme is the same but the implementation differs. The votes sent to the arbiter contain an integer value. For most applications this is not enough to describe the whole range of the output. The votes received by the arbiter are organized in a frequency distribution. This distribution is fitted with a parabola to find the peak with sub-pixel precision. This is the value that is sent to the controller. The problem with this approach is that slow behaviors can only participate in the voting once. Another problem is that faster behaviors generate more votes, but that does not mean that their value has more significance. There are the two key areas that we tried to improve in this work.