My team hasn't done it, but I'm SURE someone out there has:
A PID loop that controls BOTH velocity and position. Basically it allows you to say "I want to move 33 feet forward, and do it at 6 fps."
The PID loop manages both the acceleration to the target speed, keeps track of the distance travelled, and decelerates and corrects as you approach your target distance.
Surprisingly, I did a search on CD, and didn't come up with much, although I probably missed something

.
Overviews, explanations, even code snippets would be much appreciated!
-Shawn T. Lim