Tensegrities in Bullet Physics

What are tensegrities?

Tensegrities are structures which are very lightweight and have very strong structural properties. They are created by connecting rigid bars with tensile elements. Below is an example of a standard 3-bar tensegrity with the green being rigid bars and the red representing some tensile element. In the real world, this could be something like rods of hard plastic connected by rubber bands or springs.

Because tensegrities are connected by tensile elements, they have some interesting properties. Tensegrities are stable by definition but they can wobble and resonate, which is the property that Union’s physical tensegrity is examining most closely. They can also be deformed by shortening and lengthening their tensile elements. Real world tensegrity robots have been made such that the tensile elements can change their lengths to move, so this has been proven to work.

Bullet Physics is physics simulation software. Imagine in a video game when the an object interacts with the environment like a ball being dropped on the ground and bouncing. The movement of the ball is determined by a physics simulator, like Bullet. we will be programming using Bullet as a C++ library to model a tensegrity then we will be trying to give the tensegrity locomotion by altering the forces connecting the rigid bars. More on that later though.

 

How will this be done?

The first step is to get Bullet up and running and at the moment, that is where we stand. we am admittedly quite new with make, Cmake and generally installing libraries to be used by C++. However, after we have Bullet installed we will model a tensegrity in it. One important thing to note is that Bullet does not do visualization natively. If we model a ball bouncing up and down, the only thing Bullet does is keep track of all of the information related to the ball bouncing. Things like its place in space, velocity and other values. This means that we will also have to learn some of the basics of OpenGL to visualize my simulations. OpenGL is a graphics library which will allow me to turn the 3D simulations into a 2D image that is shown on the screen.

The tensegrity we will model will initially be the shape on the one pictured above, meaning we will be connecting 3 rods together with 9 tensile elements. In Bullet, this will be modeled with 3 btCylinderShapes and the tensile elements will be modeled with 9 forces between the bars. Once the tensegrity is successfully modeled, the next step will be to make the tensegrity move. This will be accomplished by changing the values of the forces connecting the rods.

Once that is successfully accomplished we will start getting into the most complicated things. This will include running the simulations of Union’s supercomputer, using Neural Networks to decide on force values and on the shape of the tensegrity and also decoupling the simulation from the visualization. The last one will be particularly important when moving to the supercomputer because we will only have a terminal when interacting with it. There will be more details on the steps that we will take to accomplish these more lofty goals in a future blog post and also once we’ve gotten the ball rolling with Bullet.

Leave a Reply