Introduction: Crafting a Compliant Humanoid Robot
Update & Page:
Nerves & Skin - touch sensors & diy foam rubber
Base & Mobility - Locomotion!
Muscles & Tendons - notes about TCP actuators
Head, Face, Etc. - webcam added
Tendons & Muscles - PTFE additions
Nerves & Skin - conductive rubber results
"What is that thing in the picture?"
That is part of a robotic body - specifically a prototype spine, shoulders, arm & hand.
My creation will need a body and that is what this project is all about.
I'm working on general intelligence - my team uses the term 'machine neuroscience' technology, MiNT, for short.
I'm hoping that building one or more bodies will help inspire me to progress in programming.
What's in the Name
"Crafted" - yup, this robotic body is hand crafted.
3D print if you prefer to. I have both FDM & resin printers but I prefer hand craft for prototyping like this.
"Compliant" - it just means flexible. The idea is that the body is flexible enough to be human safe, meaning, it's more likely to bend around a human or bounce off, rather than pinch or crush or do serious harm.
Compliant robotics is an important field of development for making our future friends and co-workers (or servants) safe to be around.
Robot - self explanatory. This notebook will not delve into MiNT but if you are interested in learning more or participating in the non-profit work, contact me.
Humanoid - there's no reason that you couldn't adapt alot of these design notes to non-humanoid robots. It's just what I'm going for. Even after the mind is complete, I'm still planning on a quadruped design, simply for stability.
Step 1: Bones
It's great for robotics up to around human-size and weight.
It's light weight, durable, strong, and easy to craft.
Plus, it kinda looks like bone, if that's what you're after.
The wide variety of fittings make it easy to prototype modestly complex designs quickly and easily.
The hollow interior of pipe and fittings makes hiding wires easy.
With some heating (heat gun or torch [fast but tricky]), PVC will soften enough to warp, reshape, and will keep it's new form if kept in that shape until it cools.
Just be sure to use good ventilation.
Don't breath the fumes!
Burning PVC releases dangerous gases!
- PEX - 1/4in
For smaller bones, like the forearms, I've used this softer pipe.
My first hand design used PEX for the finger bones but for this smaller machine, I needed smaller finger bones.
- Coffee Stirrers
I'd like a stronger material but for now this works ok.
When one isn't strong enough, I find that hot-gluing 3 in a stack seems to work.
I haven't really begun to look for metal solutions, but having now discovered the simplicity of aluminum 'soldering' with a mere torch, I feel that aluminum may be an option worth looking at in the future.
The real key is going to be availability of convenient fittings and materials that require minimal craftwork to make functional. I'm sure it's out there but what is it going to cost and is it worth it?
Should we even look at an all-metal skeleton? Are other metals and alloys worth considering and for what applications?
Step 2: Muscles & Tendons
7/26/2021 : I've begun practicing crafting TCP actuators, read below for info.
1/17/2021 : It was necessary to add PTFE / Teflon tubing to help guide some of the tendons around hardware that they became stuck on during actuation.
At this time, fingers work about 75%, but they need a return-spring kind of addition. I'm planning on silicone rubber, in addition to the skin coating.
Right now the only 'muscles' currently attached are some SG90 servos, which are held in place via zip-ties.
I have attached MG996R for the upper arms and shoulders for the time being but I don't know if that will be sufficient or not.
Zip-ties seem to hold the forearm SG90s in place and seem to allow almost 180 degrees of rotation based on the current wrist joint configuration. The wrist will certainly have to change eventually but for now it at least holds the hand in place.
I am currently using flex filament for tendons rather than fishing line because the larger surface area doesn't wear on the tendon sheaths like the fishing wire does.
I'll add more servos for the other joints before too long. The upper arm is simple but the shoulders are challenging.
The spine servos will almost certainly be clustered in the hip area.
Use those large cheapo servos for the hips.
MG996r for the shoulders or forearms? - done, we'll see how it goes...
Muscles options :
- EM linear actuator
- PEANO HASSEL actuator
These actuators are relatively easy to make but I don't have a good solution for the high voltage power supply they need and I'm not sure how to keep them from leaking.
- TCP - Twisted Coiled Polymer - Actuator
Crafted from polymer line, these actuators are lightweight and easy to power with heat.
The most common material I've come across in use currently is nylon 6/6.
Frequently, a conductive silver-plated version of nylon 6/6 is used since the silver plating provides the means for heating the actuator.
According to the following article, when twisting the line, it is beneficial to weight the line at a rate of 11-12 grams per maximum test lbs.
Post coiling, it is useful to separate the coils a bit to allow for greater actuation.
The article recommends adding another 50-100% of the initial weight.
Might need a return spring on the fingers but the tendons might be able to do both pull and push.
Step 3: The Spine
PVC pipe adapters, stacked, serve as vertebrae.
Keeping them together until I have actuators and tendons in place was a problem but some creative arrangement of a length of flex filament threaded down the interior of the disks solved it, keeping the discs in stack.
Use whatever you want for a base. I already had the parts in the image stuck together from an earlier 'bot and just re-used them since they were already available..
The discs may be unnecessarily large but that's ok for now.
The excess space leaves plenty of room to run wire through them.
The current spine makes some noise when it moves and isn't as smooth as I'd like.
These might be worth 3D printing but I'd prefer not to for this build.
Step 4: Torso / Ribcage / Shoulders
I originally built a ribcage contraption out of smaller pvc parts but it wasn't flexible at all, which is a bad thing.
Since I don't particularly need it right now, I'm skipping that part.
The cross fitting that's in use right now was originally just a topper to the spine to attach the flex filament strand that holds the discs together but it worked well for the shoulder solution so it's staying as is for now.
Shoulders were a real problem.
I kept picturing a universal joint and tried to use an available PVC pipe-compatible hinge device work but it didn't have quite the range of motion needed for a shoulder.
Then I stumbled across a poseable PVC skeleton-dummy project somewhere online that used a golf ball for the ball part of ball and socket joints - problem (nearly) solved!
Instead of clamping in the golf balls as that other project did, I simply held them in with elastic bands - hair bands, specifically, that I had leftover from a different project.
That only left one issue.
Since the golf balls are not attached in an ideal configuration (I'll come up with a better one later,) they can get stuck rotated too far forward or backward.
Placing a spare 'vertebrae' (pipe adapter fitting) over the shoulder socket of the cross fitting restricted the shoulder-bone's position in a way that prevents over travel from being a serious issue.
- where to place shoulder servos? Same question for the neck. Might need a larger torso assembly just to host the muscles.
Step 5: Arms & Elbows
Upper arms are, I think, 1/2in PVC, with a golf ball attached to a straight pipe fitting.
Forearms are PEX, and for a very special reason.
I wanted to emulate the human forearm configuration with the two bones rotating over each other.
I tried a few different solutions but ended up with just crafting a fitting for the upper arm end that the forearm bones could be screwed onto as a hinge joint at the elbow.
Thankfully, that seems to leave the wrist with roughly 90 degrees of rotation because the two bones are only secured at the elbow, leaving the wrist connection able to flex.
With the hand design being a bit overly flexible, it seems to mostly make up for the loss of rotation in the forearm.
Again, not perfect but it works well enough.
Step 6: Hands
Eye-screws, joined through the eye with a nut and short screw, and attached somehow to the 'bone'.
Currently the attachment solution is hot glue - I'd like something better but haven't settled on anything yet.
At the time of building these hands, I've found that it is useful to use 2 eye-screws on each end of each bone to keep the screw from rotating and getting the finger out of alignment.
Finger Joint Rev. A:
Rather than conventional screws and nuts, I found that I could get 1/4in wide Chicago screws which look alot better and give more uniform joint shape. Wish I could get 1/8in but I haven't found any yet.
Problem: Chicago screws need 5mm size eyes - that's the size of the 'shaft' - and the common eye screws seem to be 4mm. I'm having to stretch the eye open manually. I used a tapered small punch which did ok but I'd much rather find uniform 5mm eye-screws.
Coffee stirrers are not sturdy enough but they'll do for now.
The finger tendons, especially, need a routing sheath that keeps them in places.
I just hot-glued on more coffee stirrer straw - a bit excessive on the glue to make sure that it holds up.
Initially, I tried fishing wire but it immediately cut into the sheath so I tried 1.75mm flex filament and that seems to work ok.
Note: I would prefer to use PTFE tube segments, which I have, for routing the tendons. However, PTFE probably wont bond with hot glue. I'll have to experiment I guess. Might be able to use a tiny ziptie to hold ptfe tubing in place.
Step 7: Head, Face, Etc.
1/17: At this time simple, older, USB webcam w/microphone currently serves as a placeholder for the head.
I have not yet implemented vision of any kind, however, remotely accessing the camera is not a challenge.
Although it is not a desired feature in the final project, I can currently see *through* the camera - and could receive audio as well if I was using an access method which made that possible.
Planning on an initial monocular design - dealing with binocular vision is an extra issue that I can tackle after I get the visual cortex to do it's basic job.
Vocal output will of course be a standard speaker. Anything more advanced will have to wait.
Muscle control of a mouth and a few facial features for expression would not be hard to implement.
Brain probably won't fit in the head unless I can do it all from a few Raspberry Pies.
Wherever the brain fits, it need protection, especially the memory. Something like a black box system.
Step 8: Nerves & Skin
1/17/2021 - I attempted to craft conductive silicone rubber by incorporating carbon powder. I should have take the advice of James Hobson (read the Hackaday article below); he was mostly right.
Note, I *did* get the rubber to be conductive but I had to use so much carbon powder that when the rubber dried it was crumbly to the touch. Not useful for this application, as far as I can tell. I'll have to get carbon filament to try, as was recommended, or maybe platinum-cure silicone.
Note (8/8/2022) - After looking into the cabon filament solution, I have determined that it is *not* going to be a GOOD solution, if it works at all.
FLESH - Robots fall down sometimes and, like us, having some padding on their sensitive or fragile parts may help protect them (or, y'know, us) from damage.
What comes to mind as an impact dampening protective layer? Why, rubber of course! But as you're probably already considering : rubber isn't light weight. Now foam of some kind might work right? Well, I tried pool noodle foam and it was, ... we might come back to that in the future but for now, it's not a great solution. The most ideal thing would be a foam silicone rubber but that's kinda pricey and specialized and do I really wanna have to figure out another kind of gooey material? Not really. SO, I did some digging and stumbled across a great solution : DIY foam silicone rubber.
It's similar to DIY Oogoo, in preparation. Seems to take longer to cure, but I made a test batch and it definitely looks promising. The end product is an expanding, closed-cell rubber. Right now, I'm thinking of casting it in sheets and cutting them to fit where needed. The entire body doesn't have to be coated in this stuff necessarily, though, I have to admit that a full body dip seems like it would be awesome. Here's a couple of links:
Haven't actually done any work on this part yet, just research.
I want a pressure sensitive skin layer, not just touch sensitive.
Electric Field Tomography looked like a promising solution for touch, but does not appear to offer pressure sensation.
I thought, what if I read a signal through a resistive layer of rubber, combined with the multiple sensor points?
Could I get a decent approximation of human nerve touch and pressure sensation?
Other silicone users confirm that reading resistance through rubber can sense pressure so I'm hoping it's a good solution.
Plan to try to do this via an Arduino Nano or Micro - probably 1 per limb, then route an output signal from there to the brain.
For sensing heat and other things, I have no clue, but that's less of a concern than the much more common touch and pressure sensations that the body needs to provide to it's brain.
As far as protective / soft skin layers go, I considered at several plastics/rubber applications but right now the best one is looking like silicone rubber with, maybe, a tougher outer surface.
- Silicone Self-Fusing Tape
Tried using this on the hand prototype. Didn't go so well.
The main issue is that I had to apply too much pressure activating the tape during application and ended up twisting the fingers a bit. Plus it was too resistant to allow the fingers to bend freely. Maybe if I just don't wrap the joints and wait until I find a strong finger bone material...
Other than those factors, I DID like seeing a semi-uniform layer of 'skin' over the hand.
On the up side the stuff was really easy to cut free.
Try silicone plumbers tape? Let's see what that stuff does.
- Silicon Rubber
Sugru alternative Oogoo or similar looks promising.
For a thin dipping rubber, try liquid silicon rubber - the mold making kind.
For resistance based sensing, an additive (carbon) may not be needed.
For voltage sensing / conductivity based sensing, adding carbon (carbon black specifically) may do the trick.
Involuntary reflexes could be designed by programming a response coordinated to touch or pressure associated with nearby muscles. This might be useful in helping the machine to learn about it's body faster. I.E, if nerves correspond to nearby muscles and trigger automatically in response to a threshold, the machine may learn to associate them faster.
Do some research. Read through the comments on this article.
. . Refer to this website for info on storing unused liquid rubber.
. . Short version - uncured rubber should remain uncured and useable when stored between 0 and 40° F, for up to 6 months.
Step 9: Brain / Mind
1/17/2021 - I've been working with an RPi3B+ in combination with an Arduino Nano for motor control. Motor actuation has been successful. I've also tested and confirmed communication between Python scripts on the RPi & the Arduino, bouncing a simple message back and forth.
Alright, this is the big important part.
"Igor, fetch me the brain!"
My machines will use an in-development general intelligence technology.
There's no telling how long it'll take to finish that so for now, maybe go with something running on one or more Raspberry Pi computers.
In general, I'd recommend getting familiar with and utilizing the Robot Operating System (ROS) - which will run on the Raspberry Pi computers.
I haven't not yet implemented ROS and am debating it's value to my machines.
Step 10: Base / Mobility
Options to consider :
- Modified utility plastic wheel. Only real problem is mounting it on a smaller D shaft.
Try filling the hub with resin (or something similar), then drilling a new smaller hub and a set screw hole?
- Easy to find online, not a bad idea but...
Passive - Dynamics (Locomotion!)
- Yes! Simple bipedal walking! Ok, so, it needs some development, however, look it up. A simple mechanical contraption (*very* simple) can do a pretty good imitation of human bipedal gait down a slight incline running on nothing more than gravity. So, theoretically (actually, it's been done) you could probably get it to walk on a level surface. With nothing more than servos in the ankles. Addition sensors can help. Look up 'passive active walker' there's a few videos Cornell university featuring a particularly good example and somewhere they have a (if I recall correctly) video showing a powered version of their walker.
- For a less theoretical example, try finding video and photos by 'The Android Man' (Mark Miller). I've had no success finding video but found several photos of his creations. It is apparent that they amble by actuating the ankles.
Step 11: Power, Charging +
Original guidance I had on the design requirements that this project is intended to satisfy simply said 'use a lawnmower battery', but that guidance was issued prior to 2015, at least. It might be just as cost effective to use a lighter weight solution now. Cost effectiveness is the highest priority after 'meets requirements', so cost will probably be one of the largest considerations.
Participated in the