Our walking control consists of a walking method based on the ZMP norm and posture stabilization using the gyro sensor. The walking control receives the target strides (x, y, z, and theta components) as a command parameter which is passed on to the reference table. The reference table is defined as the gain vector calculated using the ZMP norm in advance. The reference table adjusts the amplitude and the time of the trajectories based on the target strides and generates the x, y, z, and theta foot trajectories. The foot trajectories are generated every 10 ms control cycle. The inverse kinematics are calculated in real-time and convert the foot trajectories to the joint angles for both legs. The obtained joint angles are further corrected by the posture stabilization control using the gyro sensor.
Our robot uses YOLO to detect the ball, goal posts, and ally robots. We also implemented a segmentation method for detecting white lines and field-area in our system. We designed a Fully Connected Network model using the Chainer framework for the segmentation method.
Our robot uses a particle filter for localization. We use the white lines and the goalposts for the landmarks. During field entry, our robot searches the closest goalposts to determine which side of the field it is on and distributes the initial particles along the touchlines within its own field. A detailed description of the algorithm is given in CIT Brains KidSize Robot: RoboCup 2014 Best Humanoid Award Winner. RoboCup 2014 in section 5.3 Localization attached in the file below.Attached file →
Our robot uses the Hierarchical Task Network (HTN) planner in its soccer strategy. The HTN planner is a planning architecture that expresses problems as a higher-level task (behavior). Tasks are decomposed through a planning process which ultimately leaves with a series of atomic tasks. We also developed a field search algorithm based on Frontier-Based Exploration for the robots to efficiently search lost ball. The ball search behavior is executed when none of our robots can find the ball to avoid the Dropped Ball game state. Our robot has 3 distinct roles: Attacker, Defender, and Keeper. With the exception of the Keeper, the roles are determined dynamically depending on the situation. The role of the Attacker is to score a goal by approaching the ball and kicking the ball toward the goal. The role of the Defender is to prevent the ball from scoring its own goal by aligning itself between the ball and the goal. The role the Keeper is to defend its goal against an oncoming ball.
Our main contributions to the RoboCup community are translating the RoboCup rule to Japanese (https://github.com/citbrains/RoboCupRule) and release open-source humanoid robot hardware at https://github.com/citbrains/OpenPlatform.
T. Nakajima, S. Shimada, Y. Hayashibara. "Development of an Open Platform Humanoid Robot for the RoboCup (2nd report, Hardware evaluation and improvement." Annual Conference of the Robotics Society of Japan 2019. The Robotics Society of Japan 2019. (in japanese)