czech english


controller based on skills

Wolf is s simple controller based on skills. A skill is a simple behavior, that can be easily debugged. The original intention was to have a three-level-architecture, but currently it seems that two levels will be sufficient. The source code is available for download. Author Martin Dlouhý.

version date source code description
1.2 2002-10-30 patch_1_2 added FollowWall skill
1.1 2002-10-25  
1.0 2002-07-15 first version


A skill is a simple behavior. In Java it is anything inherited from class Skill. A simple example is to rotate 360° until you see a green feeder. Each skill has member function run() that accepts current status of all sensors and returns commands for motors. Function run() can also throw exception CannotHandleSituationException, which means what it says. In our example the failure is if there is no green feeder during whole rotation.

Skill Manager

Currently there is a simple sequencer rather than a manager. Scheduled skills are:
  • LocateFeeder
  • TrackFeeder
  • TouchFeeder
Whenever one is successfully finished next one is executed. Finally there is "an exception handler", which is a skill FollowWall. LocateFeeder is exactly our example – turn 360° and when you find a green feeder, you are successfully finished. TrackFeeder starts with feeder in camera view, which is Wolf tracking until the robot is very close to the feeder. Finally TouchFeeder gets even closer until the robot start rechargning. And FollowWall is just wall following until robot sees some feeder.
I you have any questions regarding the controller or this site in general we would be more than happy to answer them. Please feel free to use our feedback form (you can use either czech or english).