Calculate sphere's rotation for rolling
Simple driver

For constant rotation of a sphere / circle


Think I used a poor choice of frame rate for gif

The distance a rolling circle travels is radius * angle  with angle in radians. 
Circumference is special case of arc length. Gives the distance traveled for one full revolution, or 360 degrees or 2 * pi radians.

The angle theta rolled for a distance d

theta = d / radius


Set up a simple driver on the y rotation of a sphere based on its x location, and half a dimension as radius.  Using self on drivers rather than a more traditional driver variable approach (Which removes warning)


Drivers Editior


Properties panel

2 * self.location.x /  self.dimensions.x  


any dimension (diameter) could be used, or hardcoded

Using this our ball rolls about y as it travels along x.

To change the direction, possibly the simplest is to parent the whole setup to an empty.  Or use angle axis rotation