Can Someone explain to me what the bone driver properties do?
Drivers are basically relationships between object settings.

Let's say I have a cube and a sphere in my scene.
I want my cube to move 2 units in the x direction when my sphere is moved 1 unit in the y direction.

First, I add a driver to the x location of my cube and bring up that panel (the one on your image).
The variables below allow you to retrieve information from other objects (here, I want to grab the y location of my sphere since that's what's going to influence the x location of my cube). "var" designates the name of the variable.

Now that I have the y location of my sphere as "var," I can use that variable under "Scripted Expression" to write a Pythonic script the value of which will be assigned to the x location of my cube.
Since I want to move 2 units in x direction for each 1 unit in y direction of the sphere, my expression should be 2*var.

Now when you move the sphere by "var" in the y direction, the cube will automatically move "2*var" in the x direction.

You can add more variables to write complicated expressions. As long as it is syntactically Pythonic, it should work.


You have to enable Auto Run Python Scripts under User Preferences > File.
Try messing around with the graph and see how it affects things.
Try the Blender Manual https://www.blender.org/manual/animation/drivers/introduction.html