Skip to content

Behavior-related Modules in B-Human

The current behavioral system at B-Human already implements a recognition that specifies when the ball position is assumed to be unknown. If this is the case, it automatically switches to the behavioral part described in this report, which implements the finding of an unknown ball. Each robot uses its own local grid of the field. To ensure that the whole field is covered without communicating, the Voronoi regions are used. Each robot uses only the part of the grid that lies within its own Voronoi region. This ensures that the entire field is covered to find the ball efficiently. The cell to look at next is determined by multiplying the priority and the difference between the timestamp of the last time the cell was looked at and the current system timestamp. The grid continues to be updated by the robot. This has the effect that the robot completely searches its own Voronoi region.

During the RoboCup 2023 in Bordeaux, B-Human used this module to find the ball in case of an unknown ball position. However, the module was only used in normal play, i.e. not in any standard situations. The exception is the standard situation kickIn. Here, the implementation was also used. The ball was recovered in an average time of 2.873 seconds. This results in a success rate of 100%.

Local Field Grid

Current Problems

The ball search works quite well, but some aspects still need to be adjusted: - The runtime of the module can still be minimized. - The behavior of this ball search can also be used in standard situations, the basics are already there, it has to be checked whether the use of the grid-based search brings an advantage over the current behavior.

Field Rating

The module FieldRatingProvider provides functions to calculate a potential field for the Zweikampf and DribbleToGoal skill. Different potential fields are supported, which all use a base computation of linear scaling from a repelling or to an attracting point on the field. Weighted based on their ratings they are summed up to give a value for each point on the field for the Zweikampf skill or just the directional value for the DribbleToGoal skill.

The following potential fields are provided (see Potential Fields):

  • Field Border: the field border is a repelling field.
  • Goal: the opponent goal is an attracting field.
  • Opponent corners: the opponent corners are repelling fields, to help dribbling in an arc towards the goal from the corner instead of a direct line.
  • Obstacles: obstacles are repelling fields, no matter if it is a robot from our or the opponent team. But based on the communication the communicated teammate positions are used to reduce those repelling fields.
  • Teammates: based on the communicated positions an attracting field in front of the teammate is created.
  • Ball: an attracting field a fixed distance in the direction of the goal. Small dribble kicks are therefore always good, really short or far ones are bad.
  • Facing direction: an attracting field based on the current direction the robot is facing.

You can use the following command, to see the drawings for each potential field in the world state:

call Drawings/FieldRating

Potential Fields

FieldBorder
Goal
Opponent Corner
Field Border Goal Opponent Corner
Obstacles Base Two Obstacles Obstacles with Teammate
Obstacles Base Two Obstacles Obstacles with Teammate
Teammate Ball Facing
Teammate Ball Facing
Sum Example 1 Sum Example 2 Sum Example 3
Sum 1 Sum 2 Sum 3

Indirect Kick Rule

In case the robot is not allowed to kick at the goal yet, the goal rating is replaced by a potential field, which has the point of attraction at about the penalty mark.

Current Problems

Here we list current problems with the used FieldRating:

  • Some potentials have edges and not smooth interpolations.
  • The pass field could be larger.
  • Our jersey detection is not good enough, to distinguish between opponent and teammate.
  • Facing potential could probably be deleted.

Last update: October 4, 2024