Skip to content

UnionEvoRobo/TensCode

Repository files navigation

Tensegrity Locomotion Research Code

Overview

Tensegrity Robots

Tensegrity robots are robots made from solid, rigid struts and springs or springy wires which connect the struts together. The connecting springs attach to the struts at the ends of the struts. A NASA tensegrity robot can be seen below:

NASA's SUPERball tensegrity robot

Tensegrities are interesting for a variety of reasons, but most prominently because they are highly mechanically dynamic. Their construction means that they can be expanded or compressed to a significant degree without harming the structural integrity of effectiveness of the robot. This means that they can be used in odd and unpredictable spaces which would be a challenge for normal robots. NASA has also identified tensegrities as being useful as a landing vehicle in planetary exploration. Below you can see the small, 5-bar tensegrity our team is using.

Union College's own Vibrationally Actuated Limbless Tensegrity Robot, VALTR

The Problem

Unfortunately, the same attribute which makes tensegrities interesting also makes them difficult to work with. The inherent "squishiness" of tensegrities means they tend to vibrate constantly and at the slighest provocation. This makes locomotion particularly difficult, since vibration adds an element of uncontrolability to moving systems. The problem, then, is how to effectively move tensegrities in a predictable way. That's what we are trying to solve with this research. In the process, we hope to make tensegrities and other soft robots more effective and useful.

The Goal

The Tensegrity Locomotion Research program aims to implement various ways of providing locomotive capabilities to tensegrity robots by using vibrational motors as the means of movement. The highly vibrationally active nature of tensegrities means that the vibrations induced by these motors can do some pretty funky, unpredictable things. This unpredictability makes it difficult to hard-code functions which are guaranteed to move the robot in the direction or at the speed expected. In order to utilize the tensegrity's high vibrational activity effectively, Prof. John Rieffel and his student assistants have been working to create a program which lets the tensegrity "learn" to move. Whereas one set of movement commands would work for most robots (e.g. motorForward(Motor m) will always move the given motor forward at a set speed), each tensegrity is slightly different, and therefore the effects a certain vibrational frequency has on one is not guaranteed or even expected to have similar effects on another.

The Method

We accomplish this by using a genetic algorithm and implementing a behavioral repertoire, which allow each tensegrity to "learn to walk," so to speak. Initially, each tensegrity must test different combinations of motor frequencies to determine what movement that combination effects. The combination of the set of frequencies used, the movement vector it results in, and the time it takes to traverse that vector for a Beehavior. Once the tensegrity has learned some basic behaviors, it can cpmbine them into more complex behaviors to reach locations the regular behaviors cant. Then we can implement a goal-oriented movement algorithm which selects the most effective behaviors to reach a given location.

Code Details

Code Overview

Code Examples

About

Repo for the code to make the tensegrity work.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published