Wolf
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ý.
Flag |
version | date | source code | description | |
1.2 | 2002-10-30 | wolf_1_2.zip | patch_1_2 | added FollowWall skill |
1.1 | 2002-10-25 | wolf_1_1.zip | ||
1.0 | 2002-07-15 | wolf_1_0.zip | first version |
Skill
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).