The system overall consists of 3 major stages: starting with vision through cameras to obtain 3D ball position in the robot frame, followed by algorithms to detect launch and calculate projectile motion to predict ball trajectory and determine a good strike point, and ending with the MPC controller moving the arm to strike the ball.