I'm not a very sophisticated rigger, but this looks to me like a 2-bone IK Chain, like an upper and lower arm.

This is a single armature
- B_Susp, B_Pole and B_IK_Tgt are parented to Root
- B_Grab has an IK Constraint, target B_IK_Tgt, Pole B_Pole, Length 2, so as to include its immediate parent, B_Susp.
- B_IK_Tgt has a Limit Location Bone Constraint in its Local (i.e Root's) space, so it can only move up and down Root's axis, with stops to prevent it from going too far.

- Hunks of mesh are directly (Bone-Parent) parented to the bones:
The Cylinder to Root, its Piston to B_IK_Tgt, The Suspension Arm to B_Susp, and the actual Claw to B_Grab.
Once one arm of the claw is working, B_Grab, B_Susp, and B_Pole can be duplicated and rotated 120 degrees around the Root Axis in (Armature) Edit Mode. This may throw their roll .. ShiftN Recalculate Roll on X-tangent fixed it for me. My first arm was constructed Z-up, in front view.
The meshes can be AltD instanced round to follow, and re-parented to their respective bones.
I'm sure someone knows a way of taking the bones and meshes round together.. maybe they can suggest that, or an altogether better way.

As I said, I'm no expert in the bureaucracy of locking rigs down properly, creating good interfaces for animators, etc, but perhaps this is enough for a mechanism that works.
