3WD omni robot controls

I am doing a 3WD omni robot for my robot soccer project. I understand that there are open sources code available for the Arduino IDE. However, a vision system (Optitrack) will be use for inputs instead of a R/C.

I am using a Arduino leonardo board with a motor shield expansion. I have manage to code simple movement like moving forward/backward, sideways and also turning on the spot.

My question is, my vision system will be able to return me coordinates of the robot and the ball in X and Y. But what can I do with that information so that it can give me the correct motor speed output and direction for the robot to move to the ball? This have to include both linear and angular movement.

P/S: I am also facing a problem where my motor 3 which is connected to the motor shield is having some noise (most probably from the motor 2 output) which cause it to either turn at a wrong speed or direction. Where might go wrong which cause this problem?