A robot that plays table tennis beats human beginners and entertains experts.
What’s new: David B. D’Ambrosio, Saminda Abeyruwan, Laura Graesser, Atil Iscen, Pannag R. Sanketi and colleagues at Google showed off a robot arm that challenges human players at table tennis. You can see it in action here.
Key insight: A table tennis match can be broken into individual volleys that start when an opponent hits the ball and end when the robot returns the ball to the opponent’s side of the table or the ball goes out of play. This simple scheme enables a robotic control system to learn how to return a ball without attending to strategy.
The robot: The authors mounted a robotic arm atop two linear gantries that enabled the arm to move to the left and right, and forward and backward. Two cameras captured images of the ball and fed them to a perception system that estimated ball positions. A 20-camera motion-capture system tracked the position of the opponent’s paddle.
How it works: Instead of training an end-to-end system or using a robotics foundation model, the authors broke down the gameplay into subtasks, delegated them to separate modules, and orchestrated them to work together. The robot was controlled by a high-level controller: a custom algorithm including a convolutional neural network (CNN) that classified whether to return the ball using a forehand or backhand stroke and a vanilla neural network that classified spin. The high-level controller selected among 17 low-level controllers (all CNNs). Each low-level controller executed a different skill, enabling the system to return serves or rallies, adjust for ball spin, target different spots on the table, and so on.
- The authors collected a dataset of ball positions from human-to-human play. Using the perception system, they derived the ball’s initial positions, velocities, and angular velocities. After training the system the first time, they collected similar data for human-robot play and trained their system further using those examples.
- Training took place in a simulation (except the high-level controller’s vanilla neural network, which learned to classify spin via supervision).The high-level controller’s CNN learned to choose forehand or backhand to maximize the rate at which the robot successfully returned the ball. The low-level controllers learned using blackbox gradient sensing, an evolutionary algorithm, based on several rewards, such as rewarding the controller if it successfully returned the ball and punishing it if the robot collided with itself or the table.
- Each time the opponent hit the ball, the high-level controller decided which low-level controller to use. The decision was based on factors such as whether the ball had topspin or underspin and estimated statistics such as return rate, opponent’s paddle velocity, and estimated position where the ball would land on the opponent’s side.
- Given the last 0.14 seconds of the ball’s position and velocity, as well as the robot’s joint positions and its position on the gantries, the selected low-level controller determined how fast to move the robot to return the ball.
Results: The robot played 29 three-game matches against 29 players of varying skill (beginner, intermediate, advanced, and advanced+ as rated by a professional coach).
- It won all 7 (100 percent) of its matches against beginners, 6 (55 percent) of its matches against intermediate players, and zero matches against advanced or advanced+ players.
- On a point-by-point basis, it won 72 percent of points against beginners, 50 percent against intermediate players, and 34 percent of points against advanced and advanced+ players.
- When asked if they would like to play against the robot again on a scale of 1 (definitely not) to 5 (definitely yes), the average response was 4.87.
Why it matters: Roboticists have been programming robot arms to play table tennis for at least a decade. Earlier projects enabled robots to perform various aspects of the game, like aiming at a specific target or smashing, but none tackled complete gameplay against competitive human opponents. Breaking the problem into two parts — a library of individual skills (low-level controllers) and an algorithm that chooses which to use — simplifies the task. Weaknesses in the robot’s performance (for example, difficulty returning underspin) can be addressed by adding a skill that compensates.
We’re thinking: Even expert players had enough fun playing against this robot to want to play more. That’s a successful gaming system!