Coder12, I must warn you, what you are describing involves a lot of math. Our team has succeeded in this task, though it took a number of months to develop. None the math is terribly advanced(geometry-trig-PID), but there is be a lot of calculation involved.
First things first, we need to define a coordinate system to describe where you want your robot to go. Since the robot is driving to a point on the field and rotating, robot-centric coordinates become pretty useless autonomous programming. In this case, you need to create field-centric coordinates. For example,
In this case, the close left side is 0 inches x 0 inches y and far right is 144 inches, 144 inches. The robot can turn from 0-360 degrees, with 90 degrees facing blue side and 0 facing the head ref side. Once you have this, you need to come up with a sensing system to allow the robot to figure out where it is on this coordinate system. This is commonly done using odometry. I would start with this document by team 5225a.
After that, you finally can start to make the PID (or PD) controller to move your robot to a field position. @2775Josh has described one such way to look at the robot. Each motion, drive, strafe and turning are added together to form the final motor speed at each point in time for the move.
