Grasshopper

algorithmic modeling for Rhino

Hi,

Has anyone tried simulating pneumatic soft robotics in grasshopper?  If you have, I'd really appreciate some advice for my Masters project I'm working on atm.

These are the types of things I'm trying to simulate:

https://www.youtube.com/watch?v=2DsbS9cMOAE

https://www.youtube.com/watch?v=csFR52Z3T0I

I have made physcial prototypes by casting silicone in 3D printed moulds but would like to be able to simulate these digitally too.

Thanks very much for any help you can give me.

Annabel

Views: 3353

Replies to This Discussion

Hi Annabel,

I tried to simulate it using the latest version of Kangaroo. I used the tetrahedral element force to simulate the thick rubber part as an actual volume. The most complicated part is probably discretizing the shape into a set of tetrahedrons.

I used the MeshMachine component that comes with Kangaroo to generate a couple of mesh objects for the simulation plus a little of manual tweaking.

I used the triangular element force to simulate the thin films on the top and bottom of the void, I used a lower young modulus for the top part so it allows it to stretch more, this creates the bending.

I applied an inflation force to all the faces that make the interior void.

I added a floor collision and some gravity so that the shape doesn't bounce back into space.

I didn't really pay attention to the nominal values of the forces and dimensions (size, young modulus, gravity, etc.), just the relationships between them. You can use real values in SI units to simulate this properly.

Click on the image for an animation.

Attachments:

Really nice, reading "tetrahedrons" I imagined it being much more crude... until I saw the gif.

I think it's because you tend to picture regular tetrahedrons, they can be irregular.

It's the equivalent process of discretizing surfaces into a set of triangles (meshing) but for solids.

I know, I just reminded myself the discussion with tetrahedrons and barycentric coordinates.

One of the curves didn't like being internalized, was crashing Rhino.

Attachments:

wonderful

I tried applying your script to different geometries but I can't get it to work the same way.  How did you create the input mesh in the top left of your script?   I think this might be where I'm going wrong.  My rhino file and GH is attached.  Your original script is at the top and my amended one is underneath.

Thanks,

Annabel

Attachments:

Yes, generating the initial mesh from the simulation is probably the most tricky part.

I used the aid of the Meshmachine component but it's very unstable, you might have to do some manual meshing.

Essentially you need two meshes, one for the thick rubber part and one for the thin film that stretches.

You can get away with using bigger triangles for the thick rubber part, but the thin film part must have smaller triangles if you want it to create a round shape when inflating.

The problem is that the boundary where both meshes touch each other must share coincident vertices. I used the MatchMeshEdge Rhino command for this, which adds additional triangles making the simulation run slower.

An alternative is to not have coincident vertices between the two meshes and adding a point-line force to keep the pieces together.

I'll be Thursday at the GAD studio in case you want to talk about this in person.

Thanks Vicente, 

I have also been playing around with the soft robot .gh you post. 

I was trying to embed the logic to simulate a robot in a different form (a three leg robot in my case, please see attachment, zoom out a bit if you cannot see anything on the grid). I successfully locate all the information and I think GH took the data properly as well, but for some reason, it is not simulating the inflation as a result. That robot just stayed flat even when Kangaroo is running.

It will be very much appreciated if you can help to push this further.

Thank you so much !  

Attachments:

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service