Detecting grass, pavement, gravel I think about building my own robotic mower, therefore I would like to detect if the surface the mower in moving on is grass, pavement, gravel ... etc.

Which sensors would be the best choice in order to achieve this?

The benefits:


no parimeter wire to bury    
possible lawn edge detection (here most mowers fail to do a good job)
You could try to use a force sensitive sensor to detect when grass blades touch it.