Pi-powered Ping Pong Pursuit
Will Jessop is a systems administrator for 37signals and he runs the North West Ruby User Group in Manchester. I bumped in to him recently and discovered he was working on a personal project with a Raspberry Pi. The aim of the project is to solve the problem of ping pong balls on the floor at the 37signals office in Chicago. The solution is a web-enabled robot with mounted camera allowing people to collect balls in to a basket.
The original version of the robot used the Custard Pi breakout, and then I suggested he looked at the MotorPiTX motor controller developed by Jason Barnett. He ordered one and joined Manchester Hackspace and began working on building or otherwise sourcing all the parts needed for the robot.
Finding the new motor board much neater sitting on the original chassis, Will proceeded to design and 3D print motor mounts, caterpillar track mounts, a new base, a ball basket, and then added a mounted picamera with fish-eye lens.
With a neat little camera robot, Will looked at options for battery powering it so it could roam free. Looking at power requirements and testing its usage while running the motors and streaming video over wireless, Will opted for a 5000mAh 7.4V lithium battery. He also added a lifter arm to the chassis, controlled independently of the robot itself.
All the software on the Pi is written in Go, which Will sees as a great language for the Raspberry Pi as it creates small, efficient, statically compiled binaries that easily fit within the resource limits of the Pi. This runs alongside Will’s gamepad library (in C, available as a Ruby gem) on a laptop. Will also wrote a power control script to aid clean Pi shutdown via the MotorPiTX.
With the robot roaming free on its new battery, controlled by an xbox controller, the camera feed streaming over wifi, and the lifter arm functional, it was ready to present at the 16th Manchester Raspberry Jam! On a tour of the Manchester Hackspace during the Jam, Eben, Liz and Pete got to see it in action. Eben got hold of the controller and took it round picking up ping pong balls by watching the video stream on the laptop.
Will then took the robot to Miami to show it off at RubyConf, where many Rubyists got to have a play with it.
Robot picking up ping pong balls:
Robot’s eye view:
Check out the series of posts on Will’s blog. Thanks to Manchester Hackspace and Jason Barnett for helping to facilitate the project. The robot’s not been installed in the 37signals office yet, but when web access to it is available, we’ll be sure to post the link so you can all have a go!
Will also wrote a Go library for the Pimoroni Piglow: github.com/wjessop/go-piglow. Go and take a look, have a play, and let us know what you think!
19 comments
Jonathan
This is really cool. I really should start hacking my roomba before it collects more dust. **Shudders**
Douglas6
Isn’t that what it’s supposed to do?
Will Jessop
I’ll be happy to answer any questions people have here, or on twitter (@will_j).
The Raspberry Pi Guy
Woah… Cool project!
What chassis is that? Looks like a Zumo from Pimoroni? Am I correct?
The Raspberry Pi Guy
Will Jessop
It’s one I 3D printed myself.
Will Jessop
The *tracks* are the Pololu ones, available from Pimoroni.
The Raspberry Pi Guy
Ah, yes!
It looked a tad similar!
The Raspberry Pi Guy
Ben Shamsian
Would you post a complete how to in one post in order to make this one?
Will Jessop
I’ve got a few more months work on the robot before it’s “finished”. I’ll post more on how it’s made at that point.
I might post bits and pieces on my blog in the meantime.
AndrewS
Is that a common office problem?
Will Jessop
It is in the room with the ping-pong table in it!
TheRafMan
Pretty cool. I was thinking that adding some kind of a vacuum pick up system might give you more success since the ping pong balls are very light.
Will Jessop
A vacuum pick-up is planned, I need to move away from the easily destructible arm system somehow.
stick
I particularly like the two at a time trick. Maybe it’s time to resurrect Robot Wars…
liz
My own take on it is that it’d make a FANTASTIC remote-control war version of Hungry Hungry Hippos.
HKwhyIP
It would be great if it can use the image processing power of RPi to recognize the balls and pick up the ball by itself!
Will Jessop
I’ve considered OpenCV, but I think part of the charm of this project is that other people can drive a tiny robot round our office :)
AndrewS
I guess you’d need to add some kind of “basket is full” indicator, otherwise you’d just end up scattering the ‘overflow’ balls everywhere :-)
Will Jessop
I think this will go with the vacuum ball lifter. It will definitely be needed though.
Comments are closed