I don’t think you need to ‘rig’ anything beyond parenting objects together.
The trick with these cyclic motion animations is to match lengths with rotations and the right ease in and out of the keyframe animation so the resultant circular motions create the desired straight line motion of the pivots.
If you want to rig it then Xpresso is your friend. You drive everything of a null object’s motion and derive all translations and rotations from a single controller. The benefit from this is if you want to change the frequency of motion it’s just one set of keyframes to alter. If you’re new to Xpresso this would be a good exercise to get your feet wet.
I have no experience of Scene Nodes, I’m guessing the above could be done with those too.