Wednesday, January 16, 2013

Mission Statement

Yes, you read the title correctly. I'm talking about robots. Robots that play ping pong.

Do I have such a robot? Of course not. But that's the point of this chronicle. I'm going to give it a shot. I'm going to see how far I get. I'm going to see how long it takes to get bored of the project.

So, ideally, what am I trying to accomplish? Well, I want a robot to play ping pong against. I am motivated to build this robot because I like ping pong, but I don't like people. If I want to play ping pong, I'm going to have to build an opponent who will play when I want, at my home, for as long as I want, and then not hassle me about it when I don't want to play. I imagine this robot would have some commercial value, if it plays well enough, but that is not my motivation.

You might wonder about my qualifications. Simple: I have none. Well, not true. I have a ping pong table (which happens to be an outdoor table for the moment) and I have played ping pong (not terribly well). I have no engineering experience, let alone robotics experience. I can do some decent computer programming, but have no experience in anything that applies specifically to this problem. So this is not a tutorial on how to approach such a project. It is a record of how I approached it, as an amateur.

I know that robot ping pong is not an original field of study. In my first hour of investigating prior art, I found this Chinese team at Zhejiang University. Here is their impressive video:


You might think it would discourage me to learn that someone has already accomplished my goal. But I look at it as inspiration: it can be done! It took a group of graduate students who already knew something about robotics, a bunch of money, and a bunch of time. So I'm at a slight disadvantage... but it can be done! There are very few details of their project available, from what I can find, so I don't think there will be much I can borrow. I know their robots are enormous and humanoid (30 motors each, I believe I read), they don't seem to rely on external hardware (like a ceiling mounted camera or an accelerometer in the ball), and they use 120fps video as their main input. They seem to be using standard ping pong equipment, except for the 6 green dots on the table (which may or may not be used by the robots to make their jobs easier).

I see this project as having three barely-related problems: how to observe the game, how to think about the game, and how to take action. Since there is only one of me, I will probably tackle these problems in series, rather than in parallel.

I've chosen to focus on the first problem: observing the game. That means building a computer representation of the physical game in real-time. If I can draw a 3D model of the table and the ball in real-time, and perhaps the paddle of the opponent, I will consider this step a success. It has to be accurate enough to (in later project phases) decide where and how to swing my robot's paddle. And it has to be fast enough -- close enough to real-time -- such that the ball hasn't passed my robot before it acts.

Looking ahead to the "think about the game" phase of the project, I expect to do something minimal at first, as the robots at Zhejiang have. If I can hit simple shots back to the center of the table, that will be good enough. So I don't think there is all that much to the thinking.

The "take action" phase is going to be the most difficult, given my lack of robotics experience and the high cost I expect for the hardware. That's why I'm not doing this phase first. But if I happen to finish the "observe" phase successfully, I should be willing to invest the money and time into finishing the project. I've been meaning to experiment with robotics anyway, so this will be a nice way to get into it.

That's it for an introduction. I've already tried a few things before deciding to retroactively start this blog, so in theory I will post something new about it soon.

No comments:

Post a Comment

Be nice, remember I'm an amateur, but by all means please give me feedback!