Subsumption architecture (>= v.1.4.6.5)

This web-site has often been used as a reference concerning graphical implementation of a subsumption architecture to the RCX. It is evident that Ultimate needs such an implemenation too.

Remember that this programming style is characterized by a robot behaviour control that doesn't allow single tasks to access actuators (here : RCX motors) themselves, but rather to request a certain actuator action. Only the arbitration task analyzes all the requests and selects the one with the highest priority. The important advantage of the architecture is that task requests are never lost, they are only overridden. For example, a bumper-event or course adjusting could make it necessary to replace a path following action. But once the interruption action (obstacle avoiding or course correction) ready, the program should continue its path following.

Here the Ultimate function palette :

On the left there is a set of "set_command_" sub.vis that tell the arbitrate task (special Begin icon with the little man) the task-specific request. In the midst there is a list of priority modifiers. On the right you have different commands that correspond to the "set_command_" sub.vis.

Note the important set_command_none sub.vi that should always be used to tell the arbitrate that the task doesn't request any actuator action anymore.

A typical subsumption architecture program might look like:

The test-device may be helpful to demonstrate the functionality.

Note the very important "Command definitions" control that is found in the front panel of the program. This control allows the user to individually define the single command. In the shown example, "Forward" means : On fwd motor A / On rev motor B at 100% power both motors; "Reverse" stands for : On rev motor A at 97% -this might be useful with a asymmetric mobile robot frame causing the robot to deviate, if both motors run at the same power- / On fwd motor B at 100%...

These definitions may be fixed in your program, if you right-click on the red-marked section and select :


RetourMain Page