top of page

2D Skee Ball with a Robotic Arm

Language: MATLAB

Tossing an object is a very intuitive and basic task humans learn how to do at a young age. However, teaching a robot how to throw a ball is not quite as simple. With this project, I modeled a n-DOF robotic arm in 2D, to investigate how the robot parameters of joint length, joint angles, and joint velocities affect the throwing performance in the context of maximizing the points won in Skee-Ball.

​

Though Skee-Ball does take place in 3D, when considering the use of a robot arm, with n revolute joints, we can assure that the trajectory of the ball is completely planar. This reduces the Skee-Ball problem to something that can be completely solved in 2 dimensions, since we could physically translate the robot in the third dimension, if we wanted to have a robot play skee ball.

​

The code is implemented in a way that allows for any number of joints, but my experiments with the parameters were conducted entirely with n = 3 joints. This is because I believed this was the best way to model a human arm with planar joints.  

​

I used the following convention when defining the kinematics. 

​

​

​

​

​

Screen Shot 2023-01-26 at 10.46.18 AM.png

With this convention, when simulating the movement of the robot, we can find the homogenous transformation matrix between frames to be: 

Screen Shot 2023-01-26 at 11.04.39 AM.png

Similarly, we can find the end effector location at the release point with: 

Screen Shot 2023-01-26 at 11.04.52 AM.png

We can then define the velocity of the end effector at the release point by taking the derivative, yielding:  

Screen Shot 2023-01-26 at 11.05.02 AM.png

This final end effector velocity will be the same as the launch velocity of the ball when the robot releases it in the air. With this velocity, we can model the projectile motion of the ball. 

​

​

In the video above, the right side tick marks that appear with the ball trajectory, indicate collection buckets for the skee ball. Higher buckets indicate higher point values, meaning that this trajectory shown above is an ideal ball trajectory. This trajectory was found by experimenting with the different parameters: joint velocities, joint angles, and joint lengths. 

​

In the most general sense, if we are only changing one parameter at a time, my experiments showed that increasing the height of the release point, increasing the joint velocities, and increasing the link lengths will result in higher trajectories, and likely higher point scores. However, when considering how to get the best result, it does not work to simply increase all the parameters at once. If the initial trajectory of the ball completely is too high or too fast, the ball will fail to reach the highest goal bucket, resulting in a worse trajectory. 

​

For more details on all the experiments conducted, please see the full report here

​

​

  • LinkedIn

©2021 by Erin Wong. Proudly created with Wix.com

bottom of page