... | ... | @@ -108,5 +108,17 @@ In the DetectWall class a value of either 50 or 100 is returned (see fig. 6 belo |
|
|
##### Fig. 6: the takeControl() method from DetectWall class. Dependant on sensor readings or the boolean value ‘active’ the behavior is prioritised differently.
|
|
|
>
|
|
|
|
|
|
#### Initial research conclusion
|
|
|
From these initial experiments we gained experience and knowledge from implementing different behaviors and prioritise them accordingly. Through the exercise we have an idea of how the Sumo Wrestler Robot can be implemented using the same code architecture. |
|
|
\ No newline at end of file |
|
|
### Initial research conclusion
|
|
|
From these initial experiments we gained experience and knowledge from implementing different behaviors and prioritise them accordingly. Through the exercise we have an idea of how the Sumo Wrestler Robot can be implemented using the same code architecture.
|
|
|
|
|
|
## A Behavior-based Control Program for the Sumo Wrestler Robot
|
|
|
|
|
|
### Task
|
|
|
In this task, we have to use the behavior-based control paradigm from "Mobile Robots, Inspiration to Implementation" [3], to program a sumo wrestling robot, based on the express-bot basic building instructions [2].
|
|
|
Our implementation was based on the classes from the previous task with the integer for determining the “motivation value”, meaning the priority of the possible behaviours of the robot. We intended to use the advice from the leJOS behavior-based architecture [1].
|
|
|
“The concepts of Behavior Programming as implemented in leJOS NXJ are very simple:
|
|
|
Only one behavior can be active and in control of the robot at any time.
|
|
|
Each behavior has a fixed priority.
|
|
|
Each behavior can determine if it should take control.
|
|
|
The active behavior has higher priority than any other behavior that should take control.”
|
|
|
This meant that we also implemented the takeControl(), action() and suppress() methods in each behaviour class to keep a structure to the behaviours. takeControl() determines when each behaviour is supposed to take over, action() determines what the behaviour should do, and suppress() terminates the code running in the action() of the behaviour. |
|
|
\ No newline at end of file |