Offset on driver via scripted expression
Use self and a custom property


Offsets L to R, -pi / 2, -pi / 4, 0, pi / 4, pi / 2

Using a simple example with 5 cubes as feet and another as the wheel.



Add a custom property to foot, if you are driving a pose bone add a custom property to the bone.

Helper script to add a custom property named "offset" (edit to suit) to all selected pose bones.

import bpy
from bpy import context

propname = "offset"

for pb in context.selected_pose_bones:
    pb[propname] = 0.0 # set a float proprty




Drivers have a use self option. When on self in an expression refers to the object being driven.  The custom property on the object can be added to an expression as self["prop"] Pick a better name than prop.

'rot' is a variable set up as usual getting the local rotation of the spinning cube.  We offset that rotation by adding the value of the property to it.

abs(sin(rot + self["prop"]))