This Pi Day, March 14, in an upstairs workspace in Caltech's W. M. Keck Engineering Laboratories building, eight robotic arms were showing off their stuff. Under the watchful eye of the undergraduate students who built and programmed them, each robot performed a unique task. One arm picked up and arranged toy train tracks and another arm built tangram puzzles, while a third played backgammon, and yet another arm flicked disks across a board in a game of carrom. Meanwhile, none of the students touched a controller. The robotic arms completed the tasks all on their own.
This was the final presentation/open-house for ME/CS/EE 134 Robotic Systems, a 10-week course taught by Günter Niemeyer, a teaching professor of mechanical and civil engineering at Caltech. Niemeyer designed the course to give students a challenge that would require them to work as a team to develop a tangible fully integrated robot, relying on skills from mechanical engineering, computer science, and electrical engineering.
"The challenge really includes all of the elements. It isn't just mechanical," Niemeyer says. "It includes all of the sensing, the detection, the logic, the behaviors to make the robotic arm a fully functional system."
In this, the fourth year ME/CS/EE 134 has been offered, eight groups of three or four students worked in teams to build tabletop arms that were both interactive and reactive in terms of the tasks they were programmed to do.
"Students, especially at Caltech, are really good at solving problem sets and learning the theories. But it's important to know what the concepts actually mean and how or when to use them," says Niemeyer. "It's hard to develop such intuition until you actually play with things and get a sense of what's important."
To make the systems run autonomously, a ton of programming was needed. Senior computer science major Neil Janwani was a member of the team that programmed its robot to play carrom, a game thought to have originated on the Indian subcontinent hundreds of years ago. As the robotic arm picked up and then flicked disks toward the center of the board, he explained that this is the most complex hardware system he has worked with during his coursework at Caltech.
Janwani said that the challenge required his team to develop much more robust code than projects that are purely online or theoretical. "As a student, you don't realize that things can be much different on hardware, and things are not always what you expect," Janwani said. For example, glare in one area may change a camera's view, or shadows may be cast when people walk around. So, the programmers had to come up with code capable of handling all of those different situations. "Developing this more robust code is really great because it prepares us for actual research and jobs in industry," said Janwani.
Niemeyer emphasized to the students that the systems did not need to be perfect at executing their tasks—bouncing a ping-pong ball into a red plastic cup every time, for example. But the robots needed to be reactive, to notice when they failed or something unexpected happened, and to know how to recover or try again. Being successful at creating that kind of self-checking behavior and building a robot that is aware of certain aspects of its environment really requires the expertise of an entire team, Niemeyer says.
"Very few people can truly master all of robotics. The field is just too broad," says Niemeyer. "I challenge the students to try to teach each other and to at least appreciate what the other skill sets on their team are. I think it's very important for them to know enough about the other fields that they can communicate, that they understand why it's better to do it one way or another, and to appreciate the big picture."