In his everlasting quest to replace physical skill with technology, [Shane] of [Stuff Made Here] has taken aim at the game of eight-ball pool. Using a combination of computer vision and mechatronics, he created a robotic pool system that can allow a physical game of pool over the internet, or just beat human players. See the video after the break.
Making a good pool shot requires three discrete steps. First, you need to identify the best shot, then figure out how exactly to strike the balls to achieve the desired results, and finally physically execute the shot accurately. [Shane’s] goal was to automate all these steps. For the physical part, he built a pool cue with a robotic tip which only requires the user to place in approximately the right position, while a pneumatic piston mounted on a Stewart platform does the rest. A Stewart platform is a triangular plate mounted with six reciprocating rods, which gives it the required freedom of motion. The rods’ bases are attached to a set of cranks actuated by tension cables pulled by servos mounted at the rear-end of the cue. An adjustable air system allows the power of the shot to be adjusted as required.
A camera mounted is mounted over the table and connected to computer vision software to gather the required position information. Fiducials on the corners of the table and the cue tip allow the position of the pockets, balls, and cue to be accurately determined, and theoretically should allow the robot to take the perfect shot. Getting this to work in reality quickly turned into a very frustrating experience. After many hours of debugging, [Shane] tracked the error to a tiny forgotten test function that was introducing 5-10 mm of position error, and 2 of the six servos in the cue not performing up to spec. To determine the vertical positioning of the cue, an IMU and fixed height foot were added. [Shane] also added an overhead projector to overlay all required information directly on the table.
At this point [Shane] realized he had all the parts to allow someone to play a game of pool with him over the internet. He created a simple web-app to send a video feed to the remote player, who can then choose where [Shane] should position the pool cue, and then take the shot remotely. Although he didn’t have high hopes for this mode, it turned out to be a fun and engaging experience.
The final step was to make the computer choose the shots. First, it does a bit of pseudo ray tracing to compile a list of every possible shot and its effects across the table. It then selects the best shot based on a combination of distance, precision, and ball velocity.
This is probably [Shane]’s a most complex project to date, but only by a small margin. The fact that he can complete projects like the CNC barber, robotic basketball hoop, and explosive baseball bat quickly enough for a monthly upload schedule is nothing short of amazing.