Friction slows the Robot, and the steeper the slope, the more the robot's weight slows it down. This demonstration shows the robot moving at different speeds because of such surfaces.
You can run the robot with no control, specifying the voltage applied to the motors, which should be 8 times the speed you want (by default this is 24 for a speed of 3). You will see that the robot's speed is affected by friction and hills.
You can try to control the speed - watch the speedometer and press U or D to speed up or slow down. (To help I suggest you select the slow simulation option)
You can use simple speed control, you specify the desired speed and should see the speed is close to it and less affected by the friction and surface slope.
You can use better control: here the controller gain is bigger, so the speed is nearer to the desired speed.
You can use advanced control: then there is no noticeable change in speed.
After a run, you will see a graph showing how the actual speed varies with time. You can then press Explain Robot to see the block diagram model of the system.
By default there is a simple 'landscape', but you can try some others as well.
Press L so can specify landscape; I so can enter input speed/voltage
N, Y, S, B, A select the control scheme : none, you, simple, better, advanced. In 'You' control mode, U speeds up and D slows down the motor.
R restarts a run; G redraws graph; E to explains the result, W to slow simulation.