Modeling soft actuators

Last summer I worked in the Insect Robotics Lab and got introduced to soft robotics via the maggot robot that is in development there. I worked on C. Elegans movement analysis which led me to the OpenWorm project but the idea of soft robots and soft actuators in particular stuck in my mind. The potential for developing better robot joints was very interesting and given that the field is still in its infancy, quite exciting!

So, just last week the idea occurred to me that it might be interesting to model soft robots. But, where to start? I contacted Adam Stokes, who once worked in the Whiteside lab at Harvard which originated the idea of soft robots, and he referred me to Dylan Ross of the Insect Robotics Lab. After brain-storming with Dylan today we came to the conclusion that it might not be a bad idea to start with modeling soft actuators.

-soft actuator illustration taken from Cornell University

A soft actuator(aka PneuNet) basically has three parts:

  • a pressure-pump that injects
  • fluid into a
  • visco-elastic container(often made of silicon)

Now, this leads to interesting questions that engineers in this field haven’t looked into much detail yet such as:

i) How does the PneuNet behave with variable pressure and/or variable number of cycles?
ii) How does the PneuNet behave with variable material properties(elasticity, viscosity…) assuming fixed pressure?
iii) Assuming a well-defined goal for the PneuNet how can we optimize the energy use and material cost?

These are not easy questions to answer and in fact it turns out that I have a lot of reading to do. Assuming that I’m going to use fine mesh models to describe the theoretical dynamics of this system I would need to read a book on elasticity like Theory of Elasticity by Landau and Lifschitz. And, in order to model the fluid I’ll have to read a book on computational fluid dynamics. Then I’ll need to take into account the fact that the material properties will change over time with the growing number of cycles. This means that I’ll need a tight feedback loop.

The ideal setup would have a webcam which would analyze the variation in the geometry of the visco-elastic container when inflated in real-time, sensors to detect variation in temperature and pressure of the fluid, and of course a supercomputer to solve numerical differential equations. This might be the most challenging project that I have yet to take on.

My goal for next week is to 3D print the visco-elastic container to begin simple experiments and finish reading half of Theory of Elasticity which isn’t a very thick book to be honest.


Behavioral Syntax v 1.1

I’ve been contributing to a Python-based behavioral Turing Test that’s part of OpenWorm for a while now and Behavioral Syntax v 1.1 is almost ready so it’s time I announced its existence. The methods are based on the ‘Behavioral Syntax’ paper of Andre Brown et al. which attempts to describe the locomotion of C. Elegans in terms of a vocabulary of ‘worm shapes’ that are determined using K-means clustering.

the green segment designates the head

90 distinct postures are sufficient to account for 82% of postural variance so we
can map worm shapes from videos to these 90 postures with minimal loss of
information. And lo and behold! We now have a problem that amounts to comparing sequences and suddenly we can use methods from natural language processing and bioinformatics.

Now, I must add that this project was never intended to merely be a Python
version of Dr Brown’s Matlab code. From the beginning I planned to design
a fast behavioral Turing Test that would serve as a first pass filter. It would
automatically generate lab reports that would make it simple to assess whether
or not a simulated worm resembled a normal C. Elegans in its behavior.

The primary method I plan to use is bayesian classification using sub-models
such as minimal description length, grammatical inference, hierarchical
Markov models, and simpler things such as computing posture heat-map
similarity. A posture heat-map might be useful in a uniform setting such as
agar petri dishes off-food. Assuming that a standard search algorithm such
as Lévy flight search is in use, I would expect a certain pattern in the
occurrence of postures. You might think that Lévy flights would be off-limits
to my project since they represent continuous-time behavior but my plan is
actually to compare ‘continuous’ and ‘discrete’ models. It would be interesting
to see what kind of ‘false’ worms can actually fool a discrete Turing test.

Speaking of which, I’m actually planning to begin work on a ‘false worm’
repository. Initially these would be simple test cases to see whether the
Behavioral Turing test can actually be fooled by a random
piece-wise harmonic path on a flat surface. I can’t think of a better way to
see whether these tests actually have any value.

Stay tuned. In less than a week it should be possible for anybody to install the repository using pip.