A tennis racket. A carton. A plastic bottle of water. You can lob all of these things at a newly developed robotic arm, and it will catch them. Witness:

The robotic arm was developed by researchers from École Polytechnique Fédérale de Lausanne (EPFL) in Switzerland, who “taught” the device how to catch by throwing objects at it, and then manually guiding the arm toward them. This allowed the robot to develop its own models of objects’ trajectories and how to catch them, a type of “programming by demonstration.” Both the robotic arm’s hardware and learning abilities are new, although they have been in development for the past couple years. Here’s a video of the arm catching a bottle, from 2012.

It works like this: several cameras allow the robot to see what is coming its way, and based on its “experience” the arm’s onboard computer produces a mathematical model to represent the objects course. The bot then changes position extremely quickly–it can move positions in five hundredths of a second, according to an EPFL release–and uses its “experience” to decide where to grasp the object. Scientists have trained it to catch all the things you see in the video, plus a ball and a hammer(!).

For more on robot arms/hands, here’s one that can tie a shoe.