Introduction: 3D-Printed Biologically-Inspired Robotics
I have been spending the last few months doing research into biologically inspired robotic structures. While my approach may seem formalistic in nature, these devices were simply a means for ultimately conducting social research. This desire stems from my experience building Simple Bots, and their subsequent display at multiple Maker Faires.
While displaying these robots, I observed that the thousands of people who interacted with them, projected their own social realities upon these devices which were little more than motors zip tied to plastic household utensils. The obvious shortcoming of the Simple Bots approach was that no matter what personalities people projected upon these creations, they ultimately implicitly understood that these creatures were robotic.
This led me to wonder what would happen if I built robots that were more intentionally organic-like and fluid in motion. Would people perceive them as being even more alive? Was there a threshold where people would stop perceiving them as robots and start perceiving them as living organisms? However, before I could answer these questions, I needed to figure out the mechanics that would allow these motions.
While I could have explored a number of different fabrication processes, I recently found myself with unlimited access to eight Objet Connex 500 3D printers. Aside from having an incredibly high print resolution, what makes these printers unique is their ability to print digital materials with a wide range of hardnesses and colors. These printers essentially allow the different materials to be mixed together to create a Pantone-like scale for material hardness. This was particularly compelling for this type of robotics because it would provide the ability to print highly accurate assemblies that simultaneously contained rigid and flexible materials. By printing materials with different hardness, flex, stretch, and torsion properties, I would be able to print life-like joints and musculature. With this in mind, I set out to make biologically inspired designs using 3D printing technologies.
All digital models were created using 123D Design on account of its ease of use, and ability to be downloaded and used for free. This is an intentional decision to make the project open, and modifiable. It is my hope that others will be able to download my files, iterate upon my solutions, and ultimately expand my research. All content contained herein is licensed with a Creative Commons 2.5 Share-Alike Non-Commercial Attribution license.
Step 1: A Note on Evolution
Most notably, Vogul points out:
- "nature is not only glacial in speed, but lacking in versatility"
- "most variations [mutations] are either neutral or detrimental"
- "innovation comes hard, and once achieve it disseminates entirely within a lineage"
- "diversity in nature represents superficial features of an exceedingly conservative and stereotyped character"
While it may be tempting to describe robotics in terms of evolution, I think it is better to view it as an iterative process. This process, while very similar to evolution, is noticeably different. As evolution repeatedly demonstrates, most change is detrimental, blind and slow. Iteration, on the other hand, is (ideally) beneficial, intentional, and fast. One rarely iterates if they don't think the subsequent version is going to be an improvement or will illuminate something that will help to move other iterations forward. Just as organic-like machines are similar to life, but not replicating it; so is the case that the process for making these machines should be evolution-like, but not a perfect repetition.
Step 2: Research Methodology
In doing this, it is my goal to create robotic agents that can help us better understand the relationships between ourselves and our technology. While it may seem like I got lost in a web of formalistic considerations, please bear in mind that my ultimate goal is to make abstracted biologically-inspired robots intended to capitalize on our existing mental associations, and social relationships. I am not trying to explicitly further the field of engineering, nor am I trying to exclusively understand abstract social constructs. My goal is to find a holistic approach that acknowledges both, but does not favor either.
As Simon Penny points out in Bridging Two Cultures (2005):
Hopefully some of what I share here will help contribute to and push forward 'more serious' objectivist-positivist scientific inquiry. More importantly, I hope to provide people with tools and techniques which can be used a springboard for better understanding our relationships with technological organisms. This will ideally help us to have richer social experiences with technology, and live happier and fuller lives.
Step 3: The Uncanny Valley and Social Interaction
When engaging with robots, we always bring to the table a wealth of social knowledge and history with us. This makes any interaction we have with robots tainted not only by our own preconceptions of robotics, but also by our experience of the natural world. The closer a robot mimics something else, the more associations we are able to draw from and place upon it. Since a robot is basically a mirror of our preconceptions, in some regard, any manner in which a robot behaves is correct. It should not matter whether it is flailing helplessly on the floor, or falling apart. After all, both the concept of "flailing helplessly" and "falling apart" are social constructs arrived at from our understanding of and interaction with other organisms and machinery. Regardless of what the robot does, or its own level of cognizance, we will project our social reality upon it.
Additionally, beyond our own social constructs, we bring with us a nagging meta-cognition that this being is not alive in the same sense that we are. This understanding can both enable us to accept it more readily as an autonomous creature in its own right, but also lead us to reject it as a cheap simulation. As roboticist Masahiro Mori first claimed in 1970, an "uncanny valley" in human empathy levels exists at threshold in which a robot becomes very human-like, and then disappears entirely when perfect replication is achieved. In other words, we have empathy for robots until the point at which it is very close to being human, at which point we have a strong revulsion. Should the robot continue becoming more human-like (to the point of being indistinguishable from human), our empathy levels spike up to human-to-human empathy levels. This sudden and drastic dip where our empathy levels drop dramatically before spiking up again, is the "uncanny valley"
For example, this unsettling humanoid robot falls deep within the "uncanny valley:"
While this principle is largely applied to humanoid robots, I would venture to guess the same principle can be applied - to a large extent - to zoomorphic robots. After all, regardless of whether animals have rich cognitive and emotional lives (which I personally believe some do), we project ours upon them, and in some capacity humanize them. I would venture to guess a nearly perfect robotic dog, would be just as unsettling as a nearly perfect robotic human.
Understanding that I will never achieve entirely perfect zoomorphic replicas, I have decided not to set my sights on it. It is my worry that "almost perfect" execution might actually be worse than an abstracted mimesis. Instead of direct replication, I have set out to create what Simon Penny termed a "Social Agent." These agents exist within a social environment, as a sort of reflection of the viewer. People observe them and then project their own cultural metaphors and associations upon them, creating cultural meaning where none really exists. For this reason, a toothbrush head with a battery and vibrating motor attached could be perceived to be alive - even playful - although it has no real intelligence of what to speak. Capitalizing on people's need to understand and bring meaning to the world, these devices exploit people's prior experiences with other living creatures to offer meaning.
In this circumstance, the robotic agent actually benefits from behaving like other organisms, but not actually trying to be any of them. For starters, it can capitalize on people's existing cultural association, and secondly, it does not risk falling into the "uncanny valley." Therefore, it was not my goal to recreate existing forms. There was no point. The biological organisms that I am studying already exist in a perfectly fine manner. Instead, it is my goal to capitalize on the existing social responses these forms trigger in humans. This could easily be done without perfect replication.
Rather than recreate a spider or squid, I have set out to create a new "species" which could be perceived as spider-like or squid-like. Ultimately, I am building robotic creatures which could be perceived as autonomous - perhaps even intelligent - sentient organisms, but have little to no intelligence to speak of. In other terms, I strive for the robots to be perceived as living in a social context, rather than to exist as self-aware living organisms that try to be alive. Ultimately, it is not my goal to get behavioral responses out of robots, but behavioral responses out of humans.
Step 4: Predictable Unpredictability
As I wrote previously in my Simple Bots book, I like to consider the most important property that a robot needs to posses to be "predictable unpredictability." What I mean by this is that most living creatures behave in a few fundamental ways most of the time, but have little deviations or "ticks" which deviate from this behavior. These deviations and ticks are predictable in that if the organism did not behave in this way, we would perceive them as entirely predictable and mechanical. This leads us to conclude that an organism is predictable, except when it is not. We cannot predict when it is not, but we can easily predict that it is going to have this unpredictability. Therefor, living organisms have an unpredictability which is predictable.
As we relate to most other animals that behave in this manner, so can we also relate to robots. If motorized jumbles of zip tied plastic can convince people that they are displaying life-like behaviors, then this would lead me to believe that by making them even more life-like in form, I can convince people that these organisms are even more alive. Perhaps these creatures - which exist nowhere in nature - can even inspire people to take the leap of faith required to perceive them as entirely living.
Ultimately, I am building machines to mimic attributes of living organisms in order to act upon humans associations and force emotional reactions. On some level, this is an absurd interaction in which intelligent organisms empathize with a machine that has no cognition whatsoever.
Step 5: Initial Biomechanical Models
As my point of departure, I centered my initial research around the forms of spiders, human arms, and cephalopod tentacles. I selected these three due to my initial hypothesis that they existed along a scale of fluidity; whereas the spider with its exoskeleton is the most rigid in its biomechanics, the cephalopod with no tangible skeleton of which to speak is the most fluid, and the human arm with its internal skeleton is somewhere in the middle. Additionally, all three mechanisms simply fascinated me, and I wanted to to understand how they functioned. Having this understanding would help me to decide how best to construct my social robots.
Step 6: The Arm
Whereas the part of the arm that is probably the most studied and replicated in robotics is the human hand and wrist, the part that has most fascinated me is the shoulder. This fascination stems from having torn apart the inner structure of my right shoulder and needing to have it surgically reconstructed and held together by about a dozen bolts. My injury was called "360 Degree Instability," and what is telling about the name of this injury is that the shoulder has a very large range of motion. In fact, it is undoubtedly the human joint capable of the widest range of motions.
There are 24 muscle groups that contribute to the movement and stability of the shoulder. Of these, seventeen are in some way attached to the shoulder blade, which is a free floating bone that both counterbalances and provides a suport for the arm's rotation in the ball socket. There is only one traditional bone joint connecting the shoulder to the rest of the body (from the collarbone to the breastbone). Otherwise, the shoulder is largely held in place by tendons, ligaments, cartilage and muscle. Also worth noting, many of these muscles are long muscles that stretch down the length of the back and chest.
To translate these into robotic terms would have necessitated a larger support structure than the small modular joints I intended to build. Additionally, even if I were to simplify the shoulder musculature to only include the muscles required for forceful motion, I still would have needed a significant number of artificial muscles. It was my conclusion that as a point of departure towards a generalized human joint, the shoulder was less than ideal due to its uniqueness and complexity in structure.
Fortunately, not much further down the arm, one finds the elbow. The elbow is a textbook hinge joint. It also has a relatively simple pairing of muscles, which are responsible for expanding and contracting the joint along a 140 degree arc. The other notable characteristic of this hinge joint is that it not only mirrors a number of other human joints including the knee, and finger joints, but also mirrors hinge joints in a host of other species. These include, but are no means limited to lizards, dogs, horses, turtles, and elephants. In terms of a mechanism that would be key for generalized life-like locomotion, the hinge joint seemed like a good starting point.
The joint itself is relatively basic. It consists of two bones separated by cartilage and held together by four ligaments. Muscles then attach to the bones with tendons to create a third-class lever. By contracting and releasing the muscles the forearm lifts and lowers. Beyond that, there is not too much more to understand in the way of basic functionality. It is a very simple biomechanical model, which makes it an ideal form to explore in terms of robotics.
In case you are unfamiliar with your own elbow, check this out:
Step 7: The Spider Leg
The next biomechanics model that I focused upon was the anatomy of spiders. I was surprised to discover that spiders were partially "hydraulic." By regulating pressure within its body, the spider is able to create large amounts of torque relative to its body size. Interestingly, the reasons spiders curl up when the die is because of the loss of this pressurization.
Most joints in the spider are controlled by traditional flexor and extensor muscles. However, two of the joints only have the presence of flexor muscles. By regulating the pressure in these joints and using muscles to pull against them, the spider is able to generate substantial force. These joints also have mechanical reversible properties, which means that the joints can not only stiffen to provide support, but can also aid in creating a frame for bend deformations in multiple directions. This use of muscle to create a structural frame is similar to the manner in which cephalopod tentacles operate.
Albeit my initial guesstimation was that a spider's leg consisted of 5 segments, I was surprised to learn that it actually has 7 discrete segments. Additionally, each segment has a unique and considerable range of motion. This makes the spider leg much more robust than I initially anticipated.
In terms of the type of joints that comprise its leg - aside from the two partially hydraulic joints - the structure is not very remarkable. The spider's joints consist entirely of hinge joints, like the one found in the human elbow. However, what sets them apart from human joints is the ability for a number of them to significantly bend along 2 axis.
From this basic research, it has become clear that in order to properly mimic a spider's leg, the robot is going to need a heckuva lot of segments and actuators. Alternately, if the goal is not to perfectly mimic a spider, but to build a modular joint, then it will not look remarkably different from the human elbow joint. That said, I found the partially hydraulic joints very interesting for further research. Much of my early research revolved around the attempt to create hinge joints that included hydraulic elements.
Step 8: The Tentacle
The most fascinating biomechanic that I explored was the tentacle. A tentacle is a muscular hydrostatic support system. The tentacle structure consists entirely of dense three dimensional array of muscle. Typically this consist of two groupings; one of which is a bundle of long longitudinal muscles, and the other outer group is arranged in a slanted manner around the inner bundle. Volume within the tentacles is constant. Any decrease of muscle in any given direction must result in an increase in another. The muscles are arranged such that all three dimensions can be actively controlled.
The three main ways to describe tentacle movement include:
Reach - Increase in distance between proximal and distal portions of the tentacle.
Pull - Decrease in distance between proximal and distal portions of the tentacle.
Explore - No change in distance. Laterial movements with localized sharp bending and torsion
They are also capable of four basic deformations which can occur at any point at any time. These deformations are elongation, shortening, bending, and torsion (twisting). These deformations occur at "pseudo joints," which are localized arm bends that serve as pivot points.
When underwater, Cephalopods are roughly neutrally buoyant, and are typically marginally denser than sea water. On account of their bouncy and range of motion, they are capable of a highly dynamic behavior, and are well adapted to this environment.
Here are some examples of octopi moving in water:
Since most of the research centered around these organisms focus on their movement in an aquatic environment, it only later dawned upon me that the dynamism of cephalopods was severely limited by gravity when the creature was removed from water. Albeit I could not find any research supporting this idea, I was able to find a number of videos showing how octopi move outside of water. My observations of these videos have led me to conclude that my initial hypothesis was a fairly accurate assumption.
The following videos demonstrate their movement outside of water:
As you can see from the videos, albeit the octopus can still engage in a range of movements, they are clearly having trouble supporting their own weight in relation to gravity. While one explanation may be that these motions may just be a behavioral trait that they only exhibit outside of water, a better explanation is that gravity dictates their movement by making it hard for them to support the weight of their massive bodies, and pulling them down to the ground.
What this means for robotics is that either the tentacles I am making only need to demonstrate great dynamism if they are to exist in an aqueous environment. Otherwise, if the tentacle creature is to live outside of water, it is reasonable to allow them to be limited by their own mass. Rather than being able to lift itself and dynamically move in any direction while on land, the tentacles should actually be better suited to drag themselves along the ground by curling and uncurling over each other.
Step 9: Robotic Precedents
Even though I tried to center my research exclusively around biomechanics and avoid looking at prior robots, I found looking at prior art pretty much unavoidable. All three biomechnical models have a rich history in robotics. Ultimately, I found it beneficial to examine prior work, and asses the pros and cons. Follows are some of the more interesting approaches I found.
Hydraulic Spider Prototype (2011)
The robotic spider pictured above is built by Fraunhofer. Unlike other robotic spiders, this one mirrors actual spider biomechanics by using hydraulic joints. These joints are controlled by an on-board pump, valves, and control units. It is also of interest, because it using an SLS 3D printing process (similar in ways to the Objet printing process). The amount of control and force each leg is able to apply allows it to tread uneven ground with great agility. Unfortunately, there is limited documentation currently published, and no video demonstrating its abilities.
Autonomous Walking Spider Robot (2008)
Kanal Von Tinowerner
Pros: It is a very simple mechanism, and somewhat convincing as a spider.
Cons: The legs are rigid and the movement is stiff.
Shadow Robot Company Arm with Hand C5 (2008)
Shadow Robot Company
Pros: This is very complex and pneumatic-based. Using air pressure, it is capable of a lot of force.
Cons: The movement is very mechanical and rigid.
Soft Robot Artificial Muscle Arm and Gripper (2012)
Pros: As an arm, it is not ideal. However, as a potential model for a tentacle with no rigid skeleton, this is a very interesting approach.
Cons: It is lacking structure and complex control necessary for arm movement.
Robot Tentacle (2006)
Pros: This is a strong pneumatic air-muscle based tentacle capable of a range of movements.
Cons: It is big and unwieldy, has a limited number of flex points, and seemingly limited by gravity.
Soft Robot Tentacle (2011)
The Octopus Project
Pros: Looks and seemingly acts like an actual tentacle.
Cons: I suspect this is a rigid skeleton only capable of a single deformation pivot, and is capitalizing on the silicone covering's tendency to be fluid and wrap around things when moved underwater.
Step 10: Intentional Mistakes
The first mechanism that I choose to focus on was the tentacle. There are obviously a number of ways I could have approached this. Rather than picking the most promising approach to begin my experiments, I decided on the quickest and least promising. I designed a model reminiscent of the tail mechanism from a robotic dinosaur toy called the Pleo.
From the onset, I recognized this was mechanically not the right approach. For starters, it could not expand and stretch like an actual tentacle. It also only allowed for deformation along two axis, and - at that - only along a singular pivot. This is less than ideal because an actual tentacle allows for deformation in any direction at any given point along its length. It is also rigid and not particularly suited to gripping things.
The tail is actuated by four metal cables passed through four consecutive rows of holes in each of the discs. These rows are arranged in cardinal compass positions around the center. If you pull on one cable, the tail will bend in that direction, and if you pull on the opposite cable, it will then pull in the other. By alternately pulling on different cables, the tail can be made to bend in any direction.
However, I wanted to have first hand experience to understand why this particular tentacle-like configuration was not right. I needed to physically interact with it before I could actually understand why it was a mistake. I also wanted to see if there was anything to be found of value in its design. After some initial experimentation I concluded that in spite of all of its shortcomings, it was - after all - pretty close to what I was trying to do.
This design ultimately feel short of mimicking a tentacle. However, this mechanism inspired later approaches towards hinge joints. I also think there is perhaps some value to be found in this design for land-based tentacle robots; but more on that later.
Step 11: Semi-Intentional Mistakes
In terms of spider biomechanics, my first thought was to 3D print a small abstracted spider with rubber joints, and try to get it moving as quickly as possible using an ATtiny and muscle wire. The plan was to have diagonally crossing sets of muscle wires, such that when one wire was activated it would both pull forward and lift one leg, and pull back and drop the opposite leg. It seemed sound in theory, but I wasn't sure if this was really going to work. I kind of suspected it wouldn't.
In fact, I never even got the chance to test it out. It became really apparent that the flaw in the design was the rubber connectors. Even though they were anchored firmly within the rigid plastic, they were not exposed for any significant length. Instead of bending, the rubber connectors simply snapped off where they met the plastic. Basically, the amount of force required to snap the leg off was less than the amount of force necessary to bend the rubber cylindrical connectors. The lengths of cylinder that needed to bend were ultimately less than the diameter of the cylinder. It was not going to work.
There were ways I could have refined the design to make it work. However, it became apparent to me that this design would not scale, was not modular, and not biomechanically correct (at least, how it currently stood). I quickly abandoned it, and moved towards building a modular leg instead.
Step 12: Hydraulic Bellows
After abandoning muscle wire, I decided that I needed to focus on finding an actuator that could scale across all of the assemblies. I decided that the best way to get fluid motion and power I needed was through the use of either pneumatics or hydraulics. Initially I explored air muscles. While this is a pretty well established technique, and allows for the exertion of really large forces, it also has its shortcomings for this sort of robotics. To begin, the control mechanisms or pneumatics are large and heavy. More importantly, the 3D printed material could not hold up to the high pressures required in actuating air muscles. However, the materials involved could easily withstand the pressures required for small-scale hydraulics.
Instead, I decided pneumatics were not only a more sensible approach, but also a more interesting area to explore. Very few people were working on hydraulics at this scale, leaving a lot of room for experimentation. My initial models were inspired by two works found on Instructables. The first work was a pneumatic-based soft robot arm that used expanding and contracting bellows that controlled a robotic claw . The second work was a cardboard robot arm that used syringes as both pneumatic levers and actuators. I decided to combine the two works and use a syringe as an actuator to control the bellows.
Step 13: Bellows V.1
The initial version I made used two different potential shapes and what Objet refers to as the "ABS-like" material. What made this material initially promising was that it was not only very strong, but also quite flexible when printed with a wall of less than two millimeters. However, if you print it too thinly, it will start to crack. I could never quite find that magic spot where it remains flexible, but does not start to crack from wear.
I am aware this is possible, because the only prior instance I have seen of a working 3D printed bellow was made using a thin shell of this material. However, I did not succeed at replicating these results and gave up. Ultimately, I decided to try to use a material primarily consisting of a rubber-like "Tango Black +" material.
During this first round, I explored two different designs. One was accordion-like and expanded and contracted along a linear axis. The other was clamshell-like and expanded and contracted along a pivot. It was my thinking that the clamshell bellow may simultaneously provide structure to the joint and perform the pivot.
After the initial test I concluded the material was not going to be structural enough to allow this, and decided to proceed with the accordion-like design.
Step 14: Bellows V.2
My second attempt at printing bellows was primarily rubber based on a range of "digital materials" between "Tango Black +" and "Vero White."
My initial print consisted of 4 identical files using the following digital materials:
After initial testing I concluded that only the range between DM-9870 and DM-9895 were viable options. The softer DM-9850 material tended to fall apart during the post-printing cleaning process, and the more rigid DM-8530 was much too rigid and going to snap under use.
These prints were valuable as a proof of concept, but were not practical in terms of design. Chiefly, they were open on both ends, making them less than ideal as end-points in the closed system. Excessive additional hardware would have been needed to cap one end. Further iterations were required.
On a side note - other potential materials can be achieved by using a mixture of "Vero Clear" with either "Tango Black +" or "Tango +." These materials seem potentially a little less prone to cracking in a more rigid state. However, at the time of writing this article, I have been unable to print these parts with these combinations.
Step 15: Bellows V.3
Before improving the design of the previous version, I wanted to experiment with changing the shape of the bellow. Mainly, I want to be certain that the previous design was the best possible solution. With this in mind, I designed bellows in which both the convex and concave surfaces had been rounded. I scaled this round design in a number of different variations, and then printed these using both the ABS-like material and DM-8970.
In the process of doing this, I accidentally printed both sets with the same wall thickness. What happened was that the ABS-like bellows were too rigid and snapped. On the other hand, the rubber-like bellows were too thing, and also fell apart. I did not attempt to reprint either set of bellows because the rubber-like ones (in spite of falling apart) demonstrated that when compressed or expanded, these bellows deformed poorly. They tended to bulge outward along one axis when stretched. By contrast, the jagged edge bellows from V.2 compressed neatly inward in an accordion-like manner.
This design was explored no further.
Step 16: Bellows V.4
The next version of the bellow was capped and had a connector loop. Different hardnesses of materials were tested for the connector. The thinking on this design was that a cable could be attached to this connector and used to extend and contract a hinge joint .
The obvious shortcoming of this design was that there was no easy way to mount the bellow to any surface, and as such, it was not easily constrained. This meant that it was prone to deforming and not very suitable for compressing or releasing a tensioned cable.
Step 17: Bellows V.5
The most current solution of the linear bellow-based hydraulic muscle consists of a bellow constrained in an armature. The top of the bellow is attached to a thin plate which is able to travel linearly along guide rails inside of the armature. On the top of this plate is the connector loop. The armature can be firmly attached to any assembly, and the below can then travel linearly within it without deformation. This makes it ideal for a muscular system in which a linear force needs to be applied, such as in a hinge joint of a spider.
Step 18: Spatial Deformation With Bellows
While printing the linear hydraulic bellows, it was casually brought to my attention that the bellows tessellated quite nicely. This sparked a small explosion in my brain, and from previous research, I realized that the bellows could be tessellated to potentially form segments of a tentacle.
The reason this would work is because when one is elongated, a compression force could be applied to an opposite segment, causing the stiffened segment to deform and bend. This would allow for deformation in any given direction. This design would also allow for significant compression and expansion of the printed segment. This would give it a number of properties similar to an actual tentacle.
My first design included four bellows tessellated such that each one abutted two other on either side. After spending a very long time cleaning out the support material inside the bellows, it became apparent to me that there was an entire column of support on the inside of the assembly where all three bellows met. As the design currently stood, I would have no way of removing it. This was a set back because it was preventing full compression.
I tried to print it again, but this time with a 2mm hole in each end of the cap. This was the largest hole my design would allow me to place. This hole was too small to use to remove any meaningful amount of support material, and also proved to be a failure.
Finally it occurred to me that the nice thing about tessellation was that it was infinitely repeatable. Rather than having all four bellows interlock, I put a bellow in the center and one to each side of it. Having this central bellow allowed me to place significantly larger holes in the center of the cap, and I was finally able to remove all of the support material. This also meant that I did not have to significantly compromise the design and was able to maintain the same amount of deformation, compression, and expansion. The one downside to this approach was that the diameter of the segment became slightly bigger.
This design was significantly easier to clean, and just as promising. However, I noticed that the part could not expand without cracking along the seems. It became apparent that the bellow needed to be constrained along its Z-axis to prevent it from hyper-extending. It also became apparent, that when in use, the bellow's neutral position needed to be halfway between its elongated and contracted position, to allow stretching and compression of the tentacle.
Initially, I considered constraining it along the z axis with a cable fastened along its central channel that would allow it to compress, but not expand. However, I have since decided a batter approach may be to print a series of thick rubber bands with suction cup-like nodules parallel along the Z-axis.
As of the time of publication, I have yet to try either approach. Most all of my spatial deformation bellows have leaky spots from repeated handling. Both printing and cleaning a new one takes a considerable amount of time. At some point I will revisit this.
Step 19: 3D Printed Syringes
While it may seem redundant to print a syringe, when such an item could be readily purchased, there was clear intent for doing this. Ultimately I would like to 3D print hydraulic piston controlled by rack and pinion. However, before I can get to that point, I need to make sure that printing a simple syringe would work satisfactorily.
I printed the syringe in two parts. One part was the basic body of the syringe, and the other was the plunger assembly that included rubberized O-rings as part of the printed design. The two parts snapped together when completed.
All-in-all it functioned as it should.
Step 20: Hydraulic Muscle System
Once I had the hydraulic muscle and the syringe printed, The next obvious step was to connect them together and ensure that the system worked. I fastened a standard plastic plumbing barb to the muscle's valve with a pipe clamp, primed the system with water, and then connected it to the syringe with latex tubing.
When I pulled the syringe's plunger outward, the muscle contracted. When I pushed the plunger back in, the muscle expanded.
I never got around to doing controlled weight tests, but in my initial subjective assessment, I found that it was able to lift an object of roughly a few pounds.
I was able to drive the muscle with the syringe without problem... or... well... almost without problem...
Step 21: Material Testing
After doing the initial bellow tests, it occurred to me that the material may not be water-tight. Up until that point, I had been working on the basic assumption that it was. At least - it was supposed to be. I decided to settle this matter once and for all. I printed tiny bowls in the full spectrum of materials between Vero White and Tango Black +, and tested their water absorption.
I ran the test 3 times, and concluded, without a doubt, that the material was absorbing some amount of the water. However, it was inconclusive whether some materials were better than others. Nonetheless, none of the passed the test, and this was obviously problematic because it meant that the system was not sealed. In other words, it was slowly leaking over time.
Sealing both linear and spatial deformation bellow systems would prove to be difficult because of the number of surfaces, and the difficulty in reaching all of them. Albeit I have yet to try to solve this problem, I have some ideas on how to move forwards which I will address at the end.
Step 22: New Approaches
Since the material was leaking, and not remarkably structural, I decided that the best course of action was to figure out a different approach.
After all, I came to realize that in the setup I was imagining, I would need a motor to drive each hydraulic piston. If I am translating the motor rotation through a leaking hydraulic connection to (spoiler alert) linearly pull a cable, why not just have the motor pull the cable and remove the hydraulics? Answer... There is not a good reason for just scrapping the hydraulics (at least until I solve the leaking problem).
All of the mechanisms from here on out are being controlled by high torque micro geared motors pulling on cables.
Step 23: Bendable Joints
The first step towards making a non-hydraulic solution was to come up with a satisfactory bendable joint that could be pulled by a cable. As Steven Vogel points out in "Cat's Paws and Catapults," mechanical joints tend to slide and glide, but organic joints bend. I found it very important that the robot's joint should follow suit and actually bend. Looking back at earlier models, the Pleo's tail (which I considered a failed tentacle) turned out to be a suitable model for a hinge joint.
My initial joint design was created to allow for the insertion of a PVC pipe or thin-walled aluminum tube into the joint's end caps. However, after printing it, I realized that I was unhappy with it. It was not only heavy and using a lot of materials, but I came to conclude that attaching hollow pipes is an excessive use of material. I could provide the same amount of structure with significantly less material, and decided four thin aluminum rods were a better solution than a single hollow pipe. This eliminates the majority of the bulky and heavy material used, and generally makes the robot lighter.
The initial design was beneficial in that it had about 140 degrees of flexibility, which made it equivalent to a human elbow joint. This provided a good gauge for making a smaller spider joint which only needed about +/- 70 degrees of flexibility from center.
My next design had a bend angle of +/- 90 degrees and had a drastically lighter design. On each end cap there were four sockets designed for 3/16" rods to be press fit into. I was ultimately pleased with this design as a general purpose hinge joint.
Step 24: Robotic Limb
Once I had a suitable hinge joint, my next exercise was to make a functioning limb. The initial test consisted of a limb with two hinge joints, two end caps, a motor plate, pulley, and hardware. The motor pulled a cable that passed through both joints, and was constrained on the other end with a stop sleeve. In this way, when the cable was reeled in, it would pull on the furthest hinge joint and subsequently force both joints to bend. To assist in the arm's return to a neutral position, a second cable was passed through both joints and attached to an extension spring fastened to the end cap on the opposite end. In theory the motor was to bend the arm and the spring was to help return it to horizontal (in conjunction with gravity). This worked in theory, but did not in practice. Also, the return spring was not necessary when pushing against gravity. The robot's own weight, in conjunction with gravity brought the limb back to its initial state.
The motor plate was held in place by alternating shaft collars. Two shaft collars were placed on diagonal rods in front of the motor plate and two were placed on the opposite diagonal rods behind the plate. The idea was that these would prevent the plate from sliding forwards or backwards. I later learned that placing all four shaft collars in front of the motor plate was a better idea. The plate never slides backwards, and placing them all in front prevents the plate from deforming (it turns out the plate is not as solid as I expected when put under tension).
While the initial plan was to use the limb to push up against the table, I quickly discovered that this plan was flawed. It turn out that the printed hinge joints have 45 degrees of torsion, even when constrained by the steel cables. This means that a segment with two joints has a full 90 degrees of "twist." As such, any segment with more than one of the joints (as each limb is currently designed) is going to quickly turn sideways and lose stability.
Since pushing against the table resulted in the limb twisting 90 degrees, I decided to test it by hanging it off the edge of the table. In this way, I can observe how the joint would bend under tension without worry about it twisting.
In this example, I have turned the limb upside down to pull up against gravity:
After this first test I realized that attempting to actuate two joints with a single motor changed the lever forces in each joint and resulted in non-uniform bending. This was less than ideal.
I decided to try to compensate for that by adding tension to the two joint with various rubber bands configurations. This did not seem to work. Here is one example of that:
From these tests I learned that I was going to need at least one motor per joint. I also learned that having more than one of these joints was going to result in 90 degrees of torsion and render the limb useless. With all of this in mind, I decided to build a robot with one hinge joint per segment. It was my thinking that rather than use a second motor to pull the legs side to side I can rely on its inherent torsion and instability for locomotion. Additionally, it was my plan to use gravity to return the legs once actuated.
Step 25: 3D Printed Hexapod Body
The hexapod body was printed with the intent of having six legs consisting of four hinge joints that were controlled by three motors. As it became apparent to me that the current hinge joint design was flawed, I started to suspect that this frame would not work. It also became immediately apparent that it was too heavy. In turn, I designed a lighter weight version of the frame that required less material, but never got around to printing it. Before I had the chance, I came to the realization that the legs I built to support the frame were unstable and unsuited to the task. I decided that I was going to reduce the first robot build to legs with a singular joint, and that this frame was the wrong design for this new directoin.
Additionally, I have also come to conclude that building a hexapod was perhaps a bad idea because they are notoriously unstable. This has something to do with it consisting of a dynamically shifting pair of tripods. In nature, six-legged creatures actually actually are known to flail about and tip over. While this instability may actually be beneficial in certain situations, such as during the navigation of uneven or loose terrain, it is not what I was trying to accomplish.
I wish I had seen this Laurie Anderson video before starting this design. I may have been inspired to do some more research.
Step 26: Laser Cut Octopod Body
After realizing the hexapod was a bad idea, I decided to make a laser cut octopod frame out of 1/4" plywood. The benefit of this approach is that it is more stable and very light weight, even with the 16 aluminum support rods.
Step 27: Stuff You May Need
My initial version used the following parts:
(x8) hinge joints (Materials: DM-8520 and DM-9870)
(x8) motor plates (Material: DM-8720)
(x8) spindles (Material: DM-8720)
(x8) end caps (Material: DM-8720)
(x2) wood brackets (Material: 1/4" plywood)
(x16) 6" x 3/16" aluminum rods
(x32) 4" x 3/16" aluminum rods
(x48) 3/16" shaft collars (McMaster #9946K42)
(x1) 100' x 1/32" steel cable (McMaster #3458T151)
(x100) 1/32" stop compression sleeve (McMaster #3936T33)
(x8) micro geared motors
(x8) H-bridges (removed from continuous servos)
(x1) assorted zip ties
Later the following parts were added:
(x8) TIP120 transistors
(x8) 1N4004 diodes
(x8) 5" rubber bands
The following parts were removed:
(x8) 5" rubber bands
Step 28: Insert Motors
Grab a motor plate and a micro geared motor. Make sure the motor compartment is clear of the support materials and then push in a motor until it locks in place.
Repeat for the remaining seven sets of motor assemblies.
Step 29: Slide
For my initial version, I grabbed four 6" aluminum rods. I then slid a shaft collar onto two of the aluminum rods. Motor plates were then slid onto the rods such that the motor boxes were facing outwards. Finally, I slide two more shaft collars onto the rods (one on each end). This process was then repeated three more times.
I later figured out that this particular assembly was not a good idea. Initially, I had assumed that the motor plates were solid enough that the two shaft collars would simply constrain them. However, it turns out the material deforms and bends given enough tension and time. So, the corners not constrained ended up deforming and getting pulled forwards. This was obviously no good.
I later decided that a better approach is to first slide on the motor plates, and then slide shaft collars onto each rod such that there is one on each corner of both motor plates.
Step 30: Constrain the Joints
The next step is to constrain the joints to only bend along a single axis. This is accomplished by inserting wires through two sets of parallel holes.
The end of each wire should then be clamped with a stop sleeve, and trimmed short.
Step 31: More Shaft Collars
Slide the shaft collars roughly 1/2" onto every other aluminum rod end. Make sure there is enough room left to both slide on the wooden octopod frame and press fit a bendable joint.
When all of the shaft collars are in place, slide on the octopod frames.
Step 32: Press Fit
Press fit the bendable joints onto the aluminum rods.
Reposition the shaft collars such that wooden octopod bracket is sandwiched firmly between, and lock the shaft collars into place.
Step 33: Attach Cables
Cut eight 10" steel cables. Put a stop sleeve on one end, and then pass it through the bobbin from the outside in (the stop sleeve should be on the outside of the bobbin).
Pass the cable through the octopod body, and one of the rows of joint's holes.
Press the bobbin onto the motor shaft.
Finally, clamp a stop sleeve onto the other end of the cable.
Repeat the process 7 more times.
Step 34: Retract Cables
Pick one of the motors. Apply a positive voltage to the terminal marked with a red dot. Apply a negative voltage to the other terminal.
The motor will start to spin. Let it keep spinning until all of the slack has been wound tightly onto the spool, and then remove the voltage.
By hand, spin the spool back in the opposite direction to let up some of the tension.
Step 35: Legs
Insert 4" rods into each of the bendable joint's remaining sockets.
Press fit an end cap onto the ends of each set of rods.
Step 36: Clean Up
For the sake of consistency, reposition all of the motor plates so that they are an 1-1/2" from the wooden octopod frame.
Step 37: Wire It Up
Solder a 4" red wire to the motor terminals marked with a red dot, and black wires to all of the other motor terminals.
Step 38: H-bridges
I initially soldered the red and black wires to the terminals on the servo H-bridges that the servo motors were desoldered from.
I later decided this was a mistake, as these H-bridges were never providing enough power to the motors.
Step 39: Clean It Up
I zip tied all of the H-bridges neatly to the aluminum rods.
It is good to clean stuff up, but unnecessary if you are not using the H-bridges.
Step 40: Rubber Bands
After the initial tests, I came to learn that gravity is both cruel and indifferent. In other words, pushing up against gravity is no easy task. Each leg has to be able to lift the weight of the entire assembly. This requires a fair amount of power.
Here is an example of it not working:
Rather than try to lift all of the weight and push against the forces of gravity, I decided to tension the joints and make its initial state fully bent. By changing the initial state, I have also changed the manner in which the motor needs to exert force. Rather than pull on the leg to push up against gravity, it now only needs to pull to lift the leg against gravity. In this way, the robot would only need to exceed the force of the rubber band's tension, and the leg's own weight. This is considerably easier than lifting the weight of the whole bot.
Nonetheless, initial tests of the new configuration were better, but still not very promising :
This did not seem right. For all intents and purposes, it should have worked. I concluded that the H-bridges were under-powering the motors.
I then decided to power the motor directly from the power source and cut the H-bridge out of the equation. This worked somewhat better:
From there, I decided to remove them and replace them with TIP120 transistors and 1N4004 snubber diodes.
Here is an example of the legs slowly alternating:
And by contrast, here are the legs quickly alternating:
While clearly the robot is now doing something, it is still not really doing it quite right. Lifting up one leg at a time does not create locomotion. When multiples were simultaneously lifted to create an unstable state, the robot simply sank down, and was never able to recover. Over time it found itself merely twitching on the floor.
Step 41: Getting Somewhere
It was clear that the rubber bands were not helping. Albeit they helped maintain its upright state, they offered no additional upward lift against gravity. If the robot is to remain upright, it is going to need to be able to push up against gravity.
Even though the first test of getting the robot to lift itself against gravity proved futile , I began to suspect that using the new TIP120 motor controls was going to work much better.
I removed the rubber bands and powered the motors directly using the TIP120 transistor. When all of the motors were engaged at once, the robot was able to lift itself off the ground:
This was promising because it demonstrated that the robot could not only lift itself, but also that the joints had enough torsion to move.
The next test I tried was to power the legs in alternating sets (two on each side). This did not go exceptionally well. The robot tended to lift itself on one side, and the torsion in the legs on the other side made them bend such that they were unable to do much of anything:
Next I decided to power the legs in sequentially in pairs. This sort of worked:
Finally, I decided to hold the robot off the ground when it first started up such that all of the legs would get tensioned. From this point, I let it try to move alternating sets of legs. This was the closest I got to getting it to walk in the manner intended:
As you can tell from the end of the video, it broke after this trial run. Having the motors pull against the rigid frame that was not moving tore apart the spindle's center hole. It was becoming clear to me that this 3D printing process was not suited to the type of robotics I had in mind and this seemed like as good of a stopping as any.
Step 42: A Note on 3D Printing
The Objet's photopolymer printing process used to make these robots allowed for rapid iteration. It took hours to make objects that might have otherwise taken days or even weeks to make. While the technology allowed me to work very quickly, the prints that resulted tended to fall apart. This is not entirely unexpected because the Objet is largely suited for prototyping designs, and not producing functional objects. Since I was trying to make robust and functional objects, the technology ultimately proved extremely frustrating. On numerous occasions I walked away from the robot for a few days, only to come back and find the entire thing destroyed.
I learned that if left in a tensioned state for any length of time, the materials would crack and/or deform. This proved true for flexible joints, wire spools, motor holders, and more structural elements like end caps. While this technology allows for rapid prototyping of multi-material robotic mechanisms, it is not suited as an end-product that can withstand various forces and strains for extended periods of time.
Nonetheless, as a means of rapidly prototyping, this technology is fantastic and opens up many new design possibilities by allowing me to rapidly create complex multi-material forms. While the process may only be suited for generating robot prototypes, I could foresee taking it further by finding more permanent materials and processes.
Step 43: Future Directions
- Experiment with sealing the 3D printed material to make it more watertight. Some potential sealants include acrylic spray, silicon spray, and brushed liquid latex.
- Actuate both water treated and untreated tentacles underwater. If the materials work untreated underwater, this can potentially be very promising for underwater robotics.
- Print textured skin to cover the various actuators. This is especially the case for tentacles, which I would like to cover in rubber-like suction cups. This will also serve to constrain the 4-way actuator and keep them from over-extending and cracking.
- Print semi-rigid ligaments to add structure to the bendable hinge joint and prevent torsion.
- Add a second set of motors to control bending the limbs from side to side in addition to up and down.
- Use a motor to both push and pull the hinge joint. In this way, the motor would both wind up slack in one direction and unwind slack in the opposite. By doing this, the motor will be able to both push limbs down and lift them upwards.
- Add a positioning sensor to know where the legs are in their arc. I started experimenting with this using commercial and homemade stretch sensors without positive results. This issue needs to be resolved before moving much further in the process.
- Explore new alternative materials to quickly replicate these forms without 3D printing. Cardboard seems particularly promising because it can be both rigid and flexible depending on its configuration. It is also remarkably cheaper (if not free).
- Figure out why the H-bridges were being underpowered and see if I can make them work. If not possible, design and build alternate low-cost H-bridge boards for motor control.
- Study six-legged and eight-legged walk cycles more in-depth, and better implement them.
Of course, these ideas are just possible next steps. These are really only the tip of the iceberg and there is a ton of room to go beyond what I have shared here.
Step 44: Conclusion
After three months of working on this, I have realized that I am still a long way from being able to do any significant social research with this robot in the manner originally intended, and I have gotten bored of solving prerequisite formalistic problems.
Considering that I am still unsure whether this approach will yield any better results than a Simple Bot - a social agent that could be built in thirty minutes - I have decided that this approach is needlessly complex. Moving forwards in this area, I intend to take a simpler approach and focus my attention on exploring social interaction with less complicated mechanisms.
By posting my process, I hope someone else might find my research useful, or at least inspirational.
This research was made possible with the love and support of San Francisco State University Fine Arts Department, Instructables.com and Autodesk Inc. A special thanks to Carlos Castellanos for unexpectedly agreeing to advise me through this process, and Steve Delaire for helping me out with all my 3D printing woes.
We have a be nice policy.
Please be positive and constructive.