Students in Stanford’s Experimental Robotics class learn some basic concepts in robot control from Professor (and IEEE Fellow) Oussama Khatib. Khatib then divides the 25 or so students into small groups and gives them three and a half weeks and to program the robots to do something. Khatib’s preference is that they do something demonstrating a dynamic skill and making use of vision and force sensing. This spring, the latest group of students programmed their robots to play ping pong, land drones, do physical therapy, insert a plug into a slot, catch a ball, and play the classic cup-in-ball game. They unveiled their projects in June (see video, above).
The students had a few robots and robot arms to choose from—a Kuka LWR, a Kuka IIWA, a WAM, a Puma 500, and a Novint Falcon.
Lecturer Samir Menon pointed out that this year’s class differed slightly from classes in the past: students had an opportunity to run their code on simulators before working with the actual robots.
“A lot of the difficulty of the class comes from the difficulty of dealing with hardware failure,” Menon told IEEE Spectrum. “It is easy to break robots while testing beta code on them. This time, we adopted a different approach. We have, over the years, been developing very realistic simulation and robot-agnostic controllers allowing students to develop their project and compile it on to any one of the available robots.” This way, he added, they could identify which robot would be best for them in advance. And in the event of a failure, they could also transition to a new robot in about a day or two. This, flexibility, Menon said, helped to improve the quality of the projects this year.
Not all of the projects reached their ultimate goals, says Khatib. But all at least reached an important intermediate milestone. The Ping-Pong-playing robot, for example, was able to hit a ball with a paddle, but wasn’t quick enough to play a game at full speed. (In the past, Khatib recalls, an air-hockey playing robot turned out to be hard to beat.) Menon explained:
The ping-pong project was indeed very challenging since it combined vision, manipulation and required fast real-time responses. Robots also lack the human ability to jerk their wrists and provide a ball with sufficient momentum. So returns were not easy. We hadn't anticipated this since there seemed to be a few YouTube videos of robots playing ping-pong, but we learned that most of the videos were faked or staged.
Vikram Chauhan, one of the students in the class, says he initially thought about programming a small mobile robot to track a drone helicopter carrying a balloon and then pop the balloon by hitting it with a laser. Shooting a laser in a lab environment wasn’t going to be exactly safe, Chauhan says, so the group dropped that plan, but still wanted to do something with drones. In the end, they programmed a KUKA robot to follow a drone around with a landing pad—keeping the landing pad parallel to the ground—and then catch the drone, whether a helicopter or a quadrotor, on the pad. Khatib says Chauhan’s team wasn’t the first one to attempt to land a drone. Students in other years had tried, but their drones tended to bounce off their pads. Chauhan’s team succeeded by compensating for the bounce; their robot arm moved the pad as the drone landed, dampening the impact.
But the project that really blew Khatib away was the ball-in-cup game, sometimes called kendama, balero, or bilboquet. “I was amazed, because I can’t catch the ball in the cup properly myself, and the robot managed to do it repeatedly 97 percent of the time,” he said.