This took a bit longer than I expected. I’m running short on time, so this explanation will be short.
Here is the file: http://pasteall.org/blend/index.php?id=43211
I removed all object to object parenting. The mesh objects have their transforms applied and are now parented to bones in the armature. Also, I rotated the digger so it is face on in front perspective. This will help when the tracks are created later. Controlling the digger is done using bones in the armature, not by manipulating any objects.
Control bones are located on bone layer one. Mechanism bones are on layer two.
Root: Main bone.
Chassis: This is the main location and rotation control for the digger.
Cab: This is a rotation control. (local z axis) It will move the cab and the bucket arm.
Bucket: This will move the bucket. Rotating the control in local x will operate the bucket. Moving this control will place the bucket and all the arm movements should be automatic. It does have a limit because of the swing. I set this to -30, +30. Feel free to change this limit on this MCH.Swing bone’s IK panel if it’s too much or too little.
Any questions on how/why/what I did can be directed at Clockmender. He’s retired and only has one job, staying out of his wife’s way.
I know this is not exactly what you were asking for, but it’s a good solution. If you cannot reach what you want to dig, move the chassis or rotate the cab.