Controlling the Soft Robot

Testing Soft Robot Gaits

Unless otherwise indicated, all testing described in this section was conducted on a smooth plastic substrate surface on level ground. The rationale for this choice was to provide a surface that allowed for repeated experiments and may be easily marked to more readily evaluate gait performance.

For the five-legged soft robots, an undulating gait was used to test to move the robot forward. This gait was achieved by inflating the back three legs, then the front two, then deflating the back three legs, then the front two. The legs would inflate sharply and move the contact points with the ground forward, and deflate slowly so the contact points with the ground would not move back to their initial positions. We also developed a turning gait in which one leg was used as a pivot and the other four legs inflated and deflated in sequence. Using these two gaits, the soft robot can move to any point in a plane, with any orientation. By observing how much each gait cause the soft robot to drift while translating or rotating, an open-loop control motion sequence was created to keep the soft robot moving in a near-perfect straight line by correcting for drift, maintaining a heading along the line as well. However, with the turning gait, any change in angle occurred very slowly.

Since the four-legged designs were symmetric, a turning gait was not needed to allow the robot to move to any point in a plane. Instead, by composing the backward/forward motions with side-to-side motions, the soft robot could move to any point in a plane much faster than it would if it needed to rotate. To develop a translating gait, we used a paddling motion motivated by a soft robot gait previously used by Stokes, et. al., 2014.

In this scheme, the four-legged design independently actuated two channels per leg. The back channel would inflate first, increasing the curvature of the leg and pushing the leg forward. Then the front channel would inflate, increasing the curvature of the leg again while pushing the leg back. The back channel would then deflate, pushing the leg even further back and decreasing the curvature of the leg. And finally, the front channel would deflate, decreasing the curvature of the leg and ending the cycle. This sequence could be performed synchronously by diametrically opposed legs to move the soft robot perpendicular to the axis between both legs provided that the deflate times were longer than the inflate times (by the same reason as the undulating gait for the five-legged soft robots). By interleaving the inflation and deflation of opposite pairs of diametrically opposed legs, the soft robot could move quickly in a theoretically straight line while remaining raised up off the ground. To compensate for drift, a simple control system was implemented.

The Arduino code used for the quadruped robot in this project is provided below.

Testing the Grasping Function

The grasping command used for the five-legged soft robot was primarily motivated by the design with one channel servicing all five legs (a design used for gripping). By actuating all five legs at once, the soft robot could grasp items placed below it. Since the five-legged soft robot could not achieve a paddling motion and instead used an undulating gait, it could not raise itself over any objects without external help. This, along with speed, was a main motivator for moving to a four-legged design.

With the quadruped design, we initially attempted to inflate each of the eight channels to grasp objects once the robot had raised itself over them. However, the pressure in the manifold needed to translate the soft robot was too high for the grasping sequence, and while testing the sequence, a channel burst on one of the test robots.

We then attempted to pulse the valves in order to maintain a lower average pressure in each of the channels. With this method, the valves needed to open and close at a high frequency for the legs to hold onto an object (otherwise the pressure in the legs would vary too much around a mean value, and the object being grasped would be dropped). However, with all eight solenoid valves opening and closing at the necessary frequency, dangerous amounts of current were drawn from the Arduino.

To mitigate this problem, the same method was attempted but for only one channel per leg. This solved the problems with current drawn, but introduced new problems with excess strain on the legs now that each leg would twist as well as inflate. We resolved this issue by only actuating four channels on two diametrically opposed legs. This method grasped objects successfully and was used in our final demonstration.

gaits.pdf84 KB