Team Description of OPU hana 3D 2006
Tomoharu Nakashima, Masahiro Takatani, Naoki Namikawa, Satoshi Yokoyama, Genki Ono, Hisao Ishibuchi
Department of Computer Science and Intelligent Systems, Osaka Prefecture University Gakuen-cho 1-1, Sakai, Osaka, 599-8531
Abstract This paper describes the implementation of low-level skills for 3D legged soccer agents, including turn behavior and walking behavior.
1 Introduction
This paper describes the implementation of low-level skills for 3D legged soccer agents.
2 Legged Agent
The legged agent in rcssserver3d-0.4 is shown in Fig. 1. As shown in Fig. 1, an agent consists of seven parts: a body, two thighs, two shins, and two feet. Each part is described in detail in Table 1.
Table 1. Legged agent configuration
| Part Density | Description | |
|---|---|---|
| Body | 1 | Sphere with the radius 1.2 |
| Thigh | 1 | Cuboid of 0.5 × 0.5 × 1.0 |
| Shin | 1 | Cuboid of 0.5 × 0.5 × 1.0 |
| Foot | 1 | Cuboid of 1.0 × 1.25 × 0.25 |
3 Basic Idea: Decomposing the Skills
This section describes the idea of developing low-level skills for the legged agent. We decompose a complicated problem into multiple simpler ones. Let us consider the way of walking. We just reiterate four simple primitive actions in our implementation:
- Put the left leg forward and the right leg backward.
- Spread the left leg and bend the right leg.
- Put the left leg backward and the right leg forward.
- Bend the left leg and spread the right leg.
Turn behavior is also decomposed into the following primitive actions:
- Bend the left and right knees
- Spread the knees straight
- Jump right above
- Land on the ground
Those primitive actions could be viewed as a simple sequence of motions: Change gradually the angle of each joint over a given range. By completing a series of primitive actions step by step, the desired behavior is accomplished. Let Ti be the time spent for completing the i-th primitive action. For example, It will take
X 4 i=1 Ti for the agent to move one step with the above walking behavior. If we
change Ti , we can adjust the speed (i.e. completion time) of walking without changing the actions themselves.
The concept suggests two things. One is that any complicated behavior can be divided into a number of primitive actions. It enables us to easily analyze problems at hand in developing such a behavior. The other is that once a set of suitable motion ranges of all the hinges for each primitive actions, the desired behavior can be performed with any speed. Of course, that is in the case where the range of speed is not extreme. If we make agents' action faster, inertia and some other effects should be considered more carefully. However, each behavior naturally has its own reasonable range. Walking is essentially different from running no matter how much the walking speed would be increased.
Each hinge, which is a joint between the adjacent parts, has one degree of freedom (DOF) (see Fig. 1). That is, the DOF of an agent is six. The hinges can change their angles only parallel to the direction of the agent. This restriction forces the agent to make the full use of the two legs in order to turn and walk.
4 Turn Behavior
We implemented a turn skill. The turn skill is formed by a series of primitive skills. First, the legs are bent and spread for the preparation of the next jumping skill. Then the agent jumps right above. A landing skill is used so that the agent does not fall down. The following subsections explain each of the above primitive skills.
4.1 Bending and Spreading
This skill is to gain the impetus for jumping. Let an angle between the body and the thigh be hipAngle, between the thigh and the shin be kneeAngle, and between the shin and the foot be ankleAngle.
In order to avoid falling down, the angles of all the hinges must be taken care. To bend the legs, kneeAngle is increased, and accordingly hipAngle and ankleAngle are determined by the following constraints:
$$hipAngle + kneeAngle + ankleAngle = 0.$$ (1)
$$hipAngle = ankleAngle.$$ (2)
The constraint (2) is necessary to prevent from falling down. ankleAngle is decreased to spread the legs while the equations (1) and (2) hold.
4.2 Jumping
In order to jump right above, ankleAngle is changed when the legs are spread straight in the bending and spreading skill. In our implementation, a positive force is applied to the right ankle and a negative force to the left one. The degree of rotation depends on the power of the force applied to the ankles.
4.3 Landing
Landing skill is performed so that the agent does not fall down after jumping. The angles of all the hinges are changed gradually towards 0 degree.
5 Walking Behavior
The walking behavior involves the iteration of the following situations:
- Put the left leg forward and the right leg backward.
- Spread the left leg and bend the right leg.
- Put the left leg backward and the right leg forward.
- Bend the left leg and spread the right leg.
For each situation, we specify the target angles of hipAngle, kneeAngle, and ankleAngle. When the three angles meet the target angles, the target angles of the next situation are used.
6 Conclusions
In this paper we explained two low-level skills for 3D legged agents: Turn behavior and walking behavior. The turn behavior is successfully implemented in our agent. However currently the walking behavior is not successfully implemented. We are working on finding the optimal target angles of the four situations and also finding the appropriate force degree to efficiently establish each situation.