Rigging an umbrella-like object I'm trying to figure out the best way to rig this setup. I have several pipes arranged vertically, right next to each other. I want a rig where I can use a single controller to have them spread out at the base, similar to opening an umbrella.

Here's an example object showing how it should look when opened:



I want the rig to work by scaling a controller at the base of the pipes (like the circle in the image.) I also want to be able to translate the controller, and have the individual pipes stay locked to it, but not have their lengths change.

I know I can do the rotation by putting a bone down every pipe, then using constraints to have them rotate on their local axis based on the scale of the controller. But this doesn't handle the translation. I could also do it by IKing each one to a point on the circle, but then it starts getting very complicated and can have Roll problems.

The actual object I'm trying to rig will have a lot more pieces than this example, so I'm trying to find a way to NOT need to make and position a ton of bones or constraints.

Is there any simpler way to solve this problem?
Not sure if this helps or not but here is what I could come up with using only constraints  to simulate an umbrella like opening mechanism.

If you actually need an armature (for exporting purposes, linking, or otherwise) you could probably construct a similar setup with bone constraints on an armature object.



Make a three rod system with a $Post$ (blue), the $Arm$ (white) and the "muscle" or $Piston$ (red) object.



After that add two empties, one at the base will be the $Master$ controlling object, and should lie somewhere along the blue post, the other $Pivot$ will act as a hinge point and should lie somewhere along the arm length.



Then it is all based on a system of parents and constraints. 
The red piston should be parented to the $Master$ controller empty, and constrained with a Track To to the Pivot empty along the $Arm$.



The white $Arm$ should have a Track To constraint to the $Pivot$ empty; 



And lastly the $Pivot$ empty should have a Limit Distance constraint set to the $Master$.



The distance value should exactly match the total length of the "Piston" object (red). You can optionally constrain angles and movements of different parts, like say, constrain the master to move only in $Z$ axis no more than the height of the blue $Post$ rod.



Lastly duplicate the whole system around, making sure you leave the $Post$ and $Master$ out of selection so they remain as single objects



You can then probably use drivers to link the positioning of the $Master$ control object to the scale of any other object, thus achieving what you need.