PID position control for robot

If anyone out there is particularly familiar with tuning PID controllers I have a question.

I have a small robot with an ESC and rotary encoder on the wheels, this gives me control over how fast the robots motor is going and information the robots wheel rotation.

I want the robot to move along a path that has flat sections and inclines and I want it to maintain how far along the path it should be; IE the robot will have a function in it telling it how far along the path the robot should be (a timer multiplied by a coefficient) and a function telling where it is by dead reckoning the rotary encoders

At this point I want to implement a controller that will speed up or slow down the motor depending with respect to how far the robot is from the correct point on the path.

Would a PID controller be sufficient for this and if so what advice would you give for tuning it?

A concern of mine regarding this is the following...
Most other PID guides out there are usually done for things that have an element of breaking ability (ie a servo that can move in two directions, one to move towards a set-point and another to provide damping if it is moving too fast towards the set-point); however my robot only has the ESC to control the speed moving towards the set-point and no breaking other than slowing the motor and allowing the motor gearing and the robot weight to slow the robot.

Also how to deal with maintaining a set-point that is constantly moving sounds like a possible challenge to me.

Thanks in advance for any suggestions.

Would a PID controller be sufficient for this and if so what advice would you give for tuning it?

Yes, and the tuning advice given on many web sites is appropriate.

Also how to deal with maintaining a set-point that is constantly moving sounds like a possible challenge to me.

You get around this by having the setpoint to be zero (0.0) and the PID "process variable" be the distance away from the commanded position. This only works along a one dimensional path, of course. You need two PID loops for two dimensions (for example, X and Y distances from commanded position).