Feasibility of Arduino based ball catching system on mobile platform?

Hi Everybody,
I am new to arduino and recently saw a project on catching a ball based on image tracking system using single camera by PRISMA lab (here is the link- Robotic Ball Catching with an Eye-In-Hand Single-Camera System - YouTube ).

I want to adopt the idea for my final year project. But instead of making whole arm for catching the ball i want to make a mobile platform for catching ball with a box on top of it.

Basically we just have to go under the ball while its in air and ball should land directly in the box.

As far as I can see the basic idea would be to track the ball and to calculate the pixel distance of ball from center of image. then this data can be used to move platform such that distance from center pixel becomes zero.

By using an omni-directional mobile platform getting under the ball after getting the distance information should not be a big problem but since I am new to image processing I am unable to track fast moving ball and to generate the required information.

Also there are some other questions of mine like -

Can an arduino process such fast trajectory?
Should I do my image processing part on a on board computer and then send the information to arduino serially for further processing ?
Does camera needs to be off board the platform or can be integrated on platform?
What type of camera I would need?
Also would one camera be sufficient for the task?

Any suggestions or ideas are welcomed. References to previous such projects would also be very useful.

Cool video. My attempts at answering your questions follow.

Can an arduino process such fast trajectory?

Maybe, but you would need to take some significant shortcuts in the math to attempt to make the problem simpler. The team in the video was running their trajectory calculation on a separate server, so scaling that down to an Arduino is likely very hard if not impossible. The more reasonable solution is to do the vision tracking and trajectory calculation off the Arduino and feed it simple movement commands.

Should I do my image processing part on a on board computer and then send the information to arduino serially for further processing ?

This sounds like a better idea, but even a single board computer may have trouble doing all the calculations you need fast enough. I might start out with a good PC and then see if you can reduce it down to an SBC. My college senior design team did some fairly basic computer vision and we found that we barely had enough CPU power on a serious engineering workstation.

Does camera needs to be off board the platform or can be integrated on platform?

I don't think it will mater greatly where you mount the camera.

What type of camera I would need?

Probably doesn't matter greatly either. I would start out with a USB webcam on a PC. Standard Arduinos aren't meant to interface directly with cameras. There are some hacks, but none with the performance you would need.

Also would one camera be sufficient for the task?

Based on your video, I would say yes. But realize that these are likely grad students working on a thesis project, so it may be well beyond the typical hobbyist. More cameras may make the calculations easier, but then you also have more video streams to deal with as well, so the overall system may be just as hard to produce.

Hi,
Thanks for the reply.... :slight_smile:
I have been working on the problem and got a software ROBOREALM software is pretty easy to follow and provides all basic functions (HERE IS THE LINK- http://www.youtube.com/watch?v=U-YJktT0OvU).

What I do want to know that the approach i am trying

As far as I can see the basic idea would be to track the ball and to calculate the pixel distance of ball from center of image. then this data can be used to move platform such that distance from center pixel becomes zero.

Is it feasible or not?

If yes this will greatly strike down the math behind the ball tracking.

With the system you proposed, if you just held the ball in the air and dropped it straight down, the robot would have enough time to see the ball and drive to center and catch it. If you want to toss the ball it gets harder, as you need to make sure the robot is fast enough to keep up with the ball, as it won't be able to predict where the ball is going to go, only follow it. That said, it is a simple way to start and in some cases it may work. Give it some thought, sketch it out, and if you still like the idea try it.