BaseBall Batting

Robot BaseBall Batting by Ball Cognition


We have chosen a batting as one demonstrative example of our project: “Create a Robot, and Understand Human Beings”. This skill represents extreme human motor control and includes the following: 1) control, 2) perception, and 3) learning. Each subtask is subject to severe constraints (time, power, computation, etc). Therefore, finding a plausible solution is difficult and warrants long-term exploration.

In the initial stage of the ICORP Project, we focused on how to make the robot hit the ball. Although successful robotic implementations already exist for table tennis, we newly introduce full-body motion control into the overall framework because our robot is a biped humanoid robot, not a customized batting robot. The primary task is to estimate the arrival time and position of a ball thrown by a human (or humanoid) pitcher while the robot swings a bat toward the presumed position with a specified momentum and attitude.

1. Recognition and learning

In contrast to previous studies, we don’t use any external cameras. Instead we use the robot’s own eyes, so that it must balance with its legs while swinging the bat – as humans do.This strong constraint is necessary to actually study what is required to perform the same task as humans.

The robot must estimate where and when the ball arrives before it swings the bat. The robot has wide and foveal cameras for each eye(see IMG1), and both are 30 fps. We started with color-based recognition. So far, the robot can roughly estimate the position, but not precise timing to the initial motion of the ball.

2. Fast swinging control

To stably estimate the ball’s trajectory, the robot head should stay as still as possible. However, active balancing control causes the robot to wobble due to the perturbation of the estimated center of mass.

We therefore introduced a passive balancer with gravity compensation and joint stiffness based on the fact that some joints do not move very much during a quick swing. As a result, a relatively stable swing has been achieved (see the movie).

3. Motion teaching

The above idea can be extended to the case where time-varying joint patterns are prescribed. Since our robot has joint redundancy, we can directly teach some motions by graving and moving the arm and legs while the robot is simply balanced (see the movie).

4. Swinging at the ball

The robot finally managed to hit a ball thrown by humans (see the movie).

We are improving the robot’s “batting average” by modifying the estimation algorithm.We will explore problems in human sensory-motor control and learning by implementing different kinds of skillful motions on our full-body humanoid robot.