Modeling - OverviewΒΆ
To compute an estimate of the current world state - including the robot's own position and orientation, the ball's position and velocity, and the positions of other robots - given the noisy and incomplete data provided by the perception layer, a set of modeling modules is necessary. In this context, noise does not only mean that the measurements are imprecise, but that there may also be entirely wrong measurements (false positives) or no measurements at all (false negatives). To overcome these problems, a set of modeling modules exists, each estimating the state of one particular element (class) of the world model, such as the own position or the ball.
Most of these solutions follow the general principle of first associating measurements with object hypotheses that have been formed over time, potentially ruling out false positives in the process, and afterwards updating a probabilistic state estimator with the measurement per hypothesis. B-Human uses different kinds of combinations of Kalman Filters and particle filters for this task. This allows us to infer the values of not directly measurable states such as the robot's own position or the velocity of the ball.
Due to occlusion and a limited field of view and perception range, each robot on its own only has an incomplete model of the environment. Therefore, the robots exchange some information via WiFi, such as their last observed ball position or their own positions. This information is incorporated in some of the state estimation processes.
The image below shows an example world model of the robot number 7 during the 2023 RoboCup final against HTWK Robots. The robot's position is shown by a small robot drawing inside the own half. The assumed positions of the teammates are marked with circles and numbers. The blue boxed indicate recently observed opponent robots. The orange circle is the last estimated ball position, whilst the larger pink circle shows a ball position estimate based on communicated information of the teammates. All this information forms the basis for the decision-making algorithms within the behavior modules.
Currently, several of our modeling modules become heavily revised or reimplemented, mostly due to recent rule changes that significantly limit the amount of exchanged information among the robots. Thus, this part of the documentation has some gaps that will be closed in the future.