Simulation Could Help

Tom’s wish list for tensegrity design software: 3D geometrical templates that can be altered to suit the design, connection methods, informative colouration and shading. Use an experimental approach that moves back and forth between physical models and simulations.

Context: Tom Flemons Archive

Limitations in Tom’s use of SketchUp

(May 25, 2015 ) For me to do effective form finding there has to be a CAD program that I am comfortable with and that can build three-dimensional structures quickly. It turns out that Google SketchUp is pretty good for this task. It’s faster than CAD and allows me for example to rotate rapidly inside the frame and to zoom in and out. I can add and subtract features quickly and there are enough tools that allow me to negotiate 3-D space reasonably efficiently. When I build in SketchUp I am putting components into a 3-D space with no reference to how they relate to each other inside a physical universe. In other words there is no physics engine operating on them.

(Oct 14, 2015)  I still pose the question – could the NTRT software accept 3D data from any CAD program and then proceed to perform conversions to make it behave as a real tensegrity? I’ve been building so many tensegrities in Sketchup that I have hundreds of ‘sketches’ of components and body segments by now. But it’s not been standardized to size of components – i.e. for struts I choose a convenient length say 6-10″ and a diameter of 1/4″ but this varies depending on how complicated my models get (to avoid strut congestion I make them smaller diameter). Sketchup doesn’t make it easy to dimension lines but I’ve found a work around that allows me to make sense of things on screen. Also I colour code everything to make it easier to see what I’m looking at but there is no standard here either…

Make form finding explorations easier

Tom has suggestions for creating matching geometries and matching symmetries; see the section “Constraints on linkages” in Tensegral Linkages.

(Dec 5, 2014) Yes it’s very interesting to me to see the possibilities that Perry is investigating and I wish him well. I have at the moment no ability to render my work into any functional computer program beyond Sketchup or CAD and even there they are more or less approximations and not tensegral.

So if he was able to provide me a way to interact with the NTRT program I would find it immensely beneficial. Attached are several jpeg images of renderings I’ve done in Sketchup. I’ve resorted to this as it sometimes is the only way to convey to others ideas which I would find hard to make without a lot of bother… A better program would make my form finding explorations a lot easier. You will notice the tetrahedral mast is rendered such that the individual tetrahedral units are tensegrities as well as the entire mast. I’m calling the kinds of models I build where the components themselves are not tensegral but the over all mast is – hybrid forms. I can see advantages and disadvantages in both strategies. A hybrid form is easier to model, easier to control and requires less lines that may interfere with each other. But it is not as inherently resilient, can not adapt to excessive loads as completely and thus is ultimately not as strong as a pure tensegrity structure. This may not matter if the goal is to build a robotic system using very strong materials that overcome the chance they would fail under excessive loads. If on the other hand the desire is decrease to almost zero the chance of failure and to build a great deal of redundancy into the system (for example a robotic probe to another planet where a fail would be catastrophic).

Find joint compliance that results in believable motion

(Feb 23, 2014) But I would like you to explain the feasibility of accurately modelling actuated tensegrity modules connected in complex ways that can account for the resultant influences on each other. I can fudge the forms in Sketchup (which I am presently attempting as per the spine pelvis image I sent you) but would like to see a plausible account of how actuating them would affect their movement relative to each other. I know when I am building and then adjusting my models to balance them, it must be done piecemeal – there is only an approximate approach which involves making many small adjustments as each change affects the orientation of the entire structure to a greater or lesser degree (depending on the complexity, symmetry, and elasticity of the model) Depending on how closely or loosely coupled the joints are will determine how believable the motion is. If the joint of the ‘shoulder’ is too compliant with too many degrees of freedom then there is no useful correlation to anatomy and a simple marionette with floppy joints is all there is. Complete compliance means minimal influence between adjacent components but unrealistic movement. Limited compliance and degrees of freedom could demonstrate plausible kinematics but could be difficult to model. Can you answer this quandary?

Specify strut length; then software calculates the cable lengths needed to create the minimal necessary prestress

In the next paragraph, Tom wishes for software that calculates the length of tension members  to create the minimal necessary prestress. Tom defines the minimal necessary prestress in Tensegrity Levers (2015) as “contains just enough prestress to maintain its maximal possible volume.”   However, Tom is incorrect in ending his first sentence with “the only shape possible”: a unique shape is not guaranteed by fixing the connectivity  and strut length. For example, a 3-prism tensegrity (3 struts and 9 cables) can assume either a clockwise or counterclockwise chirality. As another example, the six-strut tensegrity (6 struts and 24 cables) can assume either a ball shape or a bowl-like shape. Tom suggests a workable solution on June 16, 2016: place struts approximately in 3D space and then allow the physics simulation to find the closest stable state.

(May 19, 2016) I would assume if you wire up a tensegrity system with x nodes and 0.5x struts and y tension strings and then subject it to a physics engine it will automatically assume the only shape possible. If the strut lengths are fixed and the connections between nodes (defined as occurring at the ends of struts) are determined, the tension members have to be left indeterminate so they can adjust their lengths to create the minimal necessary prestress. This is what I thought the new version of NTRT was going to accomplish.

In Sketchup I have to guess approximately where nodes will be in space. Basically I fake it and because I have real models to consult as I build a sketchup model I can get it close enough to right to fool the eye. Because a lot of the models I build have irregular forms (e.g. my pelvis models are based on tensegrity tetrahedrons but the lengths of the struts vary and the truncations of the vertices are dependent on what I require the form to look like) the geometry would require a lot of mathematical calculation. I’m hoping that YAML does away with the need for all that calculation.

(June 16, 2016) It has occurred to me that the best modification to NTRT would be if the initial state of all tension members was indeterminate or in other words elastic. This would allow a very intuitive assembly method where struts get placed approximately in 3D space and then wired together with compliant stretchy tension lines. Then somehow all the lines get tightened equally, gradually until a suitable amount of pretension is achieved. I get that turning off collisions would be necessary until it found its resting state.

At the 2009 B.I.G. conference in France I met a programmer Gerald Dejong who has written a software program that allowed him to build slack tensegrities and then subject them to what he called a ‘vulcanization’ algorithm. Suddenly they snapped into a taut structure and he could dial appropriate elasticity into the tensegrity and also alter the effect of gravity.  If something like this was possible I could imagine it would be much simpler to build complex models.

Test compliancy versus rigidity using invariant length materials

(Nov 14, 2015; This is a repeat of  text in Modular Tensegrity Design) When I am building a tensegrity using elastic cord and fixed length wooden struts, it is easy to add prestress to the structure by stretching the elastic cord as it is assembled. This works well for rapidly prototyping tensegrities using these materials but does not allow a real world test of compliancy versus rigidity using invariant length materials. With elastics I end up with a structure that is too compliant to be useful as a robot. (unless it is a small robot).

I assume the NTRT software can model structures that have a significant mass. Scaling up these models to a reasonable size say, a large dog quadruped will require a fair bit of prestress built in to handle the loads. A structure of this size and larger need to have sufficient mass to handle loads (a pack?) or external forces (an impact). This will increase the prestress necessary to hand additional weight… it’s a bit of chasing your tail but eventually the balance is made between mass and stiffness. So the software needs to be able to simulate a range of both.

Tom’s July 2015 wish list for tensegrity design software

(July 15, 2015) It occurs to me that designing a stripped down CAD package that was designed specifically to build tensegrities might be possible. Sletchup is very intuitive and easy to work with but it was never designed to do what I am trying to use it for. Building complex tensegrity geometries in Sketchup is tedious – it involves building scaffolds in 3D to ‘hang’ the tensegrity components on and then wire everything together with tension lines that all have to be the same thickness. Actually lines in Sketchup do not have 3 dimensions they are essentially 2D objects. Building a tensegrity where each line has a thickness involves extruding a circular shape along an axis to form a cylinder which isn’t practical when hundreds of lines are involved.

I envision a software package that has a series of 3D geometrical templates built in which can then be altered to suit the design. For example tensegrities are generated from some basic components and simple constructions – three, four, and five fold weave patterns in 3D are built by knitting together simple geometries. Templates of basic Platonic and Archimedean solids and their tensegrity equivalents could be included in a palette of forms that could be distorted and altered to suit the project. Tensegrity prisms are essential to many of my models and would have to be included in such a palette of shapes. Connecting separate tensegrities together would have to be a feature. So far what the NTRT software is doing is 1) altering the shape of a discrete tensegrity (Superball bot) from within or 2) linking a series of non-tensegrity fixed geometries (e.g. stellated tetrahedrons) together using simple saddle loops to create universal joints which can be manages by extra control lines. What it hasn’t done yet is to link separate tensegrities together the way my models do…

Additionally a means to determine if there is strut interference and a way to not allow tension lines to intersect solids would be necessary. As most compression members can be represented as simple cylindrical struts a lot of features in CAD programs could be dispensed with as unnecessary. Colouration and shading would be useful as well as a feature that allowed the generation of stereoscopic 2D images to be generated out of the 3D data.

I am still not clear how NTRT actually works to create a plausible tensegrity. In Sketchup I can float struts in 3D space and wire them up any way I want but it doesn’t make them representative of real tensegrities i.e. in the real world a tensegrity is a minimal most economical (geodesic) relationship between parts. If it can get smaller it will… It would help if a software package automatically allowed or disallowed geometries based upon real world tensegrity restrictions.

Another feature which would be useful for me at least would allow me to scan real tensegrities using multiple photos shot from various angles and import the structure directly into a 3D graphical domain. I could then try out various alterations on the computer before I went to build the next variation in the real world. A way to exactly measure lengths of struts and cables in the program would be extremely helpful in building out prototypes based on the computer designs.

I have no idea if any of these are feasible projects. Even a modest CAD package would have some benefits.

Tom’s Oct 2015 wish list for tensegrity design software

(Oct 17 2015) From my perspective I need to know how easy this program will be for someone like me to use. I work in two and three dimensional space on the computer but have no means to animate convincingly any of my sketch up models. I have no programming background so without a GUI I won’t be able to use the NTRT. I know CAD but actually Google Sketchup has proven to be the most useful tool so far. If I spring for the pro version I can export DXF files. Ideally I would like to see the NTRT software have the facility to import any imported cad files including Sketchup. Over 35 years I’ve come up with a very fast way to build tensegrity models that don’t fly apart in your face and are reasonably tensioned. This has allowed me to rapidly prototype many variations of anatomical structure and this has worked out pretty well so far. The downfall is that the system I use requires the use of elastic cord and wooden dowels which limits the models strength and size. Moving to stronger materials is very time-consuming and I need to be sure that I’ve figured out all of the problems before I commit to a stronger more robust model. That’s where computer simulations have an advantage. But it’s still quite tedious to build things in Sketchup and it wasn’t designed for the purpose of testing various permutations. It would be great for example if a CAD interface had a set of pre-existing modules that could be quickly and easily resized and distorted, hooked up and played with to see what range of motion and degrees of freedom result. If there are interferences between components or strut congestion at various nodes this becomes quickly apparent. I envision a GUI interface that would let me quickly rearrange and manipulate tensegrity modules to connect them together in various ways.

The basic construction would proceed from a catalog of modular shapes but rapidly morph into something unique. For example building my leg, the tensegrity prism components are altered in length and proportion on the fly. How they are hooked up to each other affects their overall proportions. Balancing all of the tension components is really done by feel and observation, A tweak here and a tweak there to get the thing looking right. In other words, an approach that allows one to approximate things quickly may be more helpful than a numerical precise methodology. This is especially true when building an asymmetrical chiral form like the foot. As I build one I don’t know what length the struts should be or what amount of tension I need to apply. What I am aiming for is four struts which contact the ground evenly and their opposite ends forming a perfect rhombus parallel to the ground at some distance from it. (which I can then more easily attach a lower leg prism to). This is not so easy. Similarly when I am putting together components to simulate a pelvis I’m faced with a number of connection problems where the angles don’t quite line up and I’m forced to alter the dimensions of the modules that make up the pelvis so that a spinal mast meet it at the right angle. These are complicated geometric spatial problems to solve and a way has to be found to make it possible to make changes quickly and easily. And this is all in aid of making the basic static model even before adding control lines to actuate it. It is still faster for me to build multiple attempts with dowels and elastics that it is for me to simulated in Sketchup. I go to Sketchup only after I have a pretty good idea of what I’m doing.

Tom’s May 2016 wish list for software to support  tensegrity robotics

(May 7, 2016) Because the ultimate goal is to use what we learn in the simulated environment to attempt to build real tensegrity robots, certain parameters and measurements will prove very useful.

It would be good to know how much tension the system is under over all, and in articulated structures how much tension different classes of tension members are under. Saddle slings which connect discrete tensegrities for example may be tighter or looser than the tension system holding the tensegrities together. The control lines are another set of tension members which will vary in tension as needed to activate joints. It would be useful if these stresses could be colour coded.

Simulating different weighted environments would also be useful. A robot on Mars will act differently than one on the moon.

Because these are difficult objects to understand – colour coding different struts and tension lines can help differentiate different functions.

It would be very helpful to be able to pull and reshape lengths of struts on the fly but maybe that is too much to ask for… I’m imagining some sort of elastic model that can be pulled into a new shape e.g. making a giraffe – like tensegrity’s neck longer… and fixing it in place with all the tension lines adjusted to fit.

It would be very interesting to substitute tensegrity masts for struts to create fractal structures (see my file on fractals on Google Drive).

Experimental approach that moves back and forth between physical models and simulations

(Oct 17, 2015) I think there is a bias towards genetic algorithms as a way forward. It seems to me that you are better off to winnow the field of possible forms first before you subject them to an iterative control finding algorithm. And I think this needs to be explored in a free form way that a GUI would make possible. Because I spend a fair bit of time building models I know pretty well which geometries fit with each other – how three-fold, four-fold and five-fold patterns with their accompanying rotations line up and how to connect them to good advantage. Building models takes time and in order to optimize the design I need to be able to rapidly expand the search space to include many variations by allowing distortions in the shape of the modules. There is no guarantee that a random walk through the search space is the best way to proceed but an experimental approach that moves back and forth from actual models to simulations may work better. Also, it would be useful to be able to scan an actual model and create a 3D file that could be imported into NTRT and further modified.