robo golf
Robotics Course Project – University of Pennsylvania (2011)
Objective:
Robo Golf is much like regular golf, except that it is a timed sport and uses a robot. Our objective was to program the PUMA 260 robot to autonomously move the golf ball into the three cups on the table as quickly as possible. .
Project Details:
This was a fun project to introduce computer vision, barycentric coordinate transformations, and inverse kinematics. The competition was a race to have the 6-DOF PUMA260 Industrial Robot arm find the white golf ball and move it to each of the cups on the table as quickly as possible. To do so, I programmed a MATLAB script to be constantly analyzing the webcam's view of the playing field, looking for the white ball. Meanwhile, the script is also performing thresholding and image processing techniques to determine the positions of the three fixed, colored golf balls that form the vertices of the barycentric coordinate transform triangle. This allowed me to convert the white ball's position from camera pixel coordinates to robot world-frame coordinates. Once the script recognizes the white ball on the playing field and determines its position, it commands the robotic arm to move to the ball, grip it, and move it to the designated cup on the field. In this competition, the timing starts from the moment the golf ball is placed on the field and ends when the ball is dropped into the hole.
Results
Through some clever thresholding, I was able to avoid having to use the time consuming convex hull image processing routine that most groups used for their computer vision. This resulted in a much quicker response time from the robot, so our official time of 6.99 seconds won the ROBO PGA competition by a healthy margin.