Skip to content

KICKin-Rolling Challenge

The KICKin-Rolling Challenge (see here, section 2) was a challenge at the RoboCup 2025. The goal was to kick a rolling ball, which started rolling from a ramp from an unknown distance, but from either the right or the left in a 90 degree angle of the robot.

Concept Idea

Our approach makes use of our motion capabilities. Our robots are able to kick a ball during walking and adjust its kick based on the ball position. Also our walk is stable enough to prevent most falls even for extreme kicks. Additionally, we already have a concept of delaying walking steps, our WalkDelayPhase.

Therefore, for this challenge our approach is as follows:

  • The robot starts as close to the defined ball roll path as described in the rules.
  • With the head sensors we tell the robot whether the ramp is on the left or right.
    • The ramp distance can be told too, but is only used for the head to make sure the robot can see the ball.
  • Once in playing, the robot will rotate itself slightly torwards the ramp.
    • The rules state the robot must do such adjustment by itself.
    • It prevents the ball being concealed from the shoulders.
    • It allows for a simple straight forward kick. The combination of the forward kick with the ball momentum will kick the ball towards the goal and not out to the sides.
  • Once the ball rolls we start a WalkDelayPhase.
    • In every motion cycle we check for when the ball will intersect the x-axis of our kicking sole.
    • Based on the expected x-axis distance of the ball when intersecting, a delay time to start the kick is determined.
    • With this the timing is done to start the kick in the best moment.
    • The ensure our WalkKickEngine execute a correct kick, we give it the information when the ball will reach the intercetion axis. This ensures the kick is constructed with an expected ball position directly in front of the kicking sole.

Additional Features

Originally we developed our approach with the idea in mind, that the ball could deviate a lot from its intended rolling path. The main concern was that the ball would roll too far away or directly into the robot, in both cases making a successful kick impossible from a standing position. Correspondingly, we added additional planing to allow the robot to walk around while the ball is rolling. Side movement is limited and mostly only small forward and backward movement is allowed. Also based on the last swing foot it is also allowed to use both legs to kick the ball, as it is better to kick the ball badly than not kicking at all in the challenge.

This planing was deactivated for the actual challenge, as testing at the competition showed that the ball did not deviate much in its direction.

Code

The challenge uses the scenario RollingBallChallenge. The behavior uses the option HandleRollingBallChallenge to handle the state during playing, e.g. standing and looking at the ramp or telling motion to intercept and kick the ball. The motion part is done in the module InterceptBallProvider. This module normally handles the interception of the ball by walking into its rolling path. For the challenge we added the option to also kick the ball. Originally we planned to use both features in competition games, but due to inaccuracys in real games we decided against it.

Additionally, we adjusted our kick walkForwardsLeftLong and walkForwardsRightLong to be as strong as possible in the challenge. Otherwise the kicked ball would not reach the goal.

SimRobot Scene

We provide two scenes, which can be found under Config/Scenes/OtherScenes: RollingBallChallenge.ros2 and RollingBallChallengeFast.ros2.


Last update: October 7, 2025