Intro: Walking / Crawling Soft Robot
tldr: This is an example of a DIY walking/crawling soft robot.
The Morphology (Form) of this Soft robot is greatly inspired by the research from Wyss Institute for Biologically Inspired Engineering at Harvard University. For more detail please check out theirpaper.
Soft Robotic has been a growing topic among many disciplines. Its potential ranges from medical assistive devices to industrial production facilities, from rescue robots to Mars Landers, there are many applications of Soft Robotics that could affect and improve our daily life. Many researchers, engineers, artists around the world are working on different aspects for these new type of robot (Material, Morphology, Energy Source, Application ... etc). Instead of using traditional mechanical gears and motors, soft robotics utilize pneumatic/fluidic force or shape changing material to achieve the desired actuation.
The goal of this tutorial is to provide a read-to-go example for those who have some experience with Arduino. It is derived from a series of iterations (different forms, materials combination, and fabrication processes) and it's proofed to be "walking". It can certainly be improved and optimized and I encourage you to do so to create your own bot.
The tutorial needs some basic understanding of Physical Computing and confidence of playing with scales (Experience in baking or cooking is a plus +++)
I highly recommend check out this amazing PneuNets Actuator Tutorial on SoftRoboticsToolKits.com first before diving to this one.
More Soft Robotics Resources:
Special thanks to friends in Keio University Yasuaki Kakehi Lab, who not only provided materials and facilities for this tutorial, but also gave many good advices and tips. If you are into soft robotics research, definitely check out their projects (or lab)!
Step 1: Preperation
There are many types of soft robotics, the one introduced in this tutorial is called Pneumatic Networks, originally developed by the Whitesides Research Group at Harvard University. This class of soft robotics utilizes air to inflate or deflate a network of chambers in a elastomer structure, causing structure to deform, to bend or even to move.
There are all kinds of elastomers, some are extremely flexible and some can endure high heat. (scientists are also exploring bio-degradable or edible elastomer). We chose *Smooth-On's EcoFlex 00-30 and Dragon Skin 10 medium as our 2 types of elastomer.
*EcoFlex® is a series of silicon rubber product line from Smooth-On, it comes in different numbers, 00-50 is probably the hardest and 00-10 is opposite. (feels like a slug). Dragon Skin is another product line from Smooth-On, it tends to be less flexible comparing to EcoFlex.
- 3D Printer
- Smooth-On EcoFlex 00-30
- Smooth-On DragonSkin 10 medium
- Electric Scale
- Mixer (Optional)
- Clear Film Sheet
- 3mm Silicone Tubes
- Electrical Pumps
- Solenoid Valves
Step 2: Make Casting Molds
At the beginning, we want to make the body of our soft robot.
In order to cast silicon rubber, we need to prepare the casting molds.
In our example, we use 2 molds (Body and Base), and the Body mold consists of 2 parts (Top and Bottom).
The STL files for 3D printing the Body mold (top and bottom part) are attached. (I used Stratasys uPrint SE)
As for the Base, you have 2 choices:
Option 1: 3d print the base STL file.
Option 2: laser cut the parts in base pdf file in 2mm acrylic sheet and glue them together using super glue.
After all the molds are ready, we are ready to cast the elastomer.
(If you have any de-mold release agent, apply a thin layer to the mold now )
Step 3: Cast the Body - Part A
The logic behind our soft robot is that if we combine two types of elastomers, one is softer and more flexible and the other one harder and less flexible, when the air is pumped into the chamber, the thiner and softer side will inflate more than the thicker or harder side, which cause the thing to bend. In our example we use EcoFlex 0030 as our soft elastomer and Dragon Skin plus a layer of transparent film as our hard elastomer. Let's do the work:
- First, assemble the 2 part body mold and make sure it's tight so that later on the liquid rubber wont leak out.
- Secondly, mix 75g of EcoFlex 00-30. If you have a Conditioning mixer, mix it for 2 min and degas for 1.5 min. Don't worry if you don't have a mixer, stirring it manually and make sure it's evenly mixed.
- You can add some silicon pigment (only a teeny tiny bit will do the job) to stylize your bot.
- Carefully pour the liquid rubber into the mold, you need to be patient and slow. Wait for the air bubbles to float to the surface and use a sharp tool to pop them.
Let it sit in room temperature for 2-3 hour to cure. You can put it on a heated bed (50 degree celsius) to speed up. However, if the temperature is too high, you might end up having too many big bubbles which might cause air leak later on.
Tip: if you have any leftover EcoFlex or DragonSkin, you can put them in the freezer to extend the curation time.
Step 4: Cast the Body - Part B
- After the body is cured, carefully de-mold the silicon.
- Trim the edge of the body so that it has a clean edge.
- Mix 15-18g of EcoFlex 0030 and cast it to the base mold to create Base #1 (See Layer Detail - Base 1 Diagram) with EcoFlex 00-30.
- Before the Base #1 part is cured, insert the body part (air channel side down) to the wet Base #1 part. The idea is to seal the Body part with a layer of EcoFlex 00-30. (I have tried using Dragon Skin for the Base #1 and it works, too) When combining Body part and Base #1, be careful not to have the air channel of Body part filled, otherwise it will block the air flow! Wait for an hour until it's cured.
Step 5: Cast the Base
While we are waiting for the body part to cured, we can cast the base .
Remember we talked about the logic of how this pneumatic soft robot work? We combine two different types of elastomers, and when the air is pumped, the less flexible elastomer will act as a constrain which force the softer elastomer to inflate, in which cause the actuator to bend. Here in our example we choose Smooth-On's dragon skin 10 to be our less flexible elastomer.
In addition to the material itself, you can also add a piece of paper, a transparent film, or mixing some fibers to the liquid rubber to increase the rigidness.
After both the body (Body, Base#1) and the base (Base#2, film, Base#3) are finished, we can apply a thin layer of elastomer (either EcoFlex 0030 or Dragon Skin) to glue the body part and base part.
Step 6: Add the Silicon Tubes
In order to pump the air into the chambers of soft robot, we need some tube to connect the air pump and the robot. In my experience silicon tubes are great because they are soft and flexible.
As you can see there are five air channels in the Body part, four goes through the legs and one goes through the middle chambers.
Insert 5x 3mm diameter tubes into the openings of the air channels. Seal any gap with some EcoFlex0030. Test the airflow with a syringe to make sure there is no air leak or blocking chambers.
Step 7: Connect Pumps and Solenoid Valves
To programmatically control the robot movement, we use pairs of pumps and solenoid valves to generate airflow in opposite direction.
For the pumps we use RFP32B03R rolling pump from OKENSEIKO CO. (It has two valves, one for intake and one for outlet.) We will only use the outlet one (middle). The solenoid valves we use are PS-1015W pinch valve from Takasago Fulidics System.
Connect the pump and solenoid valve with silicon tubes and Y-shape connector, then to the robot's air channels. When pumping the air, we turn on the pump and close the valve so the air is pushed by the pump and goes into the robot. When releasing the air, we turn off the pump and open the valve, air will then be pushed by the elasticity force from the material, like a balloon tends to go back to it's original shape.
Considering the length of this tutorial, I am not going to elaborate too much on the electrical wiring of the pumps and solenoid valve. You can take a look at @jts3k's Controlling Solenoids With Arduino's instruction for detail. In my example I too use transistors to control both pump and solenoid valve.
Step 8: Programing Arduino
Finally the last step - using arduino to move the robot.
You can download this softRoboticDemo code and run it.
In this arduino demo code, I made a couple handy functions: individually bring up and down each legs, the middle body, and all of them at once. There are also functions for crawling, walking, and dancing as shown in the video in the beginning of this tutorial.
You can adjust the delay time, order of each moves and design your own choreography. Be aware to keep enough time for the air to release otherwise if there is always more air pumping in than going out, eventually the air channel or chamber will break and create air leak. Sometime it's easy to fix but sometimes it takes more time to do the surgery than building a new one.
So... This is the end of the tutorial, but the begin of your soft robotic journey. Feel free to comment if you have any questions or suggestions.
One application I did for this type of soft robot is to grow grass on it.
Check this website or the video attached if you are interested