Robotic Hand
Introduction
I began working on a robotic hand a while ago (8 months?), but my lack of knowledge of electronics and starting a new job caused me to drop it. A few days ago I picked up where I'd left off and finally electrified what I'd built, a single finger. My friend Sidd said I should chronicle this project, so here we are. I'll try to remember the work that I did all those months ago, and I'll update this as I make more progress.
First Steps
My first successful attempt at a finger was made from PVC pipe. There was a LOT of trial and error in cutting out each section (more or less corresponding to the distal, middle, and proximal phalange as well as a metacarpal. The distal phalange is the last bone of your finger, middle phalange is right before it, proximal phalange is the long bone above you knuckle, metacarpal is the bone that goes from your knuckle to your wrist bones), but I eventually settled on the below design:
Each section has about the same geometry, just with different lengths. I initially didn't have any marbles in the gaps, but when the finger faced resistance from objects the joints had a tendency to crumple and fall out of alignment, damaging the finger. The marbles keep the individual sections from shifting too far from each other. The "connective tissue" that holds the sections together is single-filament fishing line. There's a rubber band connecting the proximal and distal phalanges so that the finger will straighten out on its own. They might be a little hard to see, but the fishing line is passing through some black cylinders on the back of the finger. These are fishing line sleeves I was using for an earlier project to make twisted nylon muscles. Looking at this configuration, I didn't think that this would be able to pick up small, fine objects (and given the motors I can afford, I'm guessing that's all anything I build will have the power to manipulate) because the distal "phalange" (the section at the end near the green marble) has such a large radius. This (along with inspiration from the this paper, already linked above) lead me to the next iteration.
There's a Skeleton Hiding Inside You
Besides the fact that fact that the first design was pretty clunky, I didn't like how it felt like a carapace… if I wanted to add anything without increasing the size, I'd have to figure out how to fit it inside the finger. I also wasn't very excited by the idea of becoming a master PVC carver, so I decided to 3D-print some hand bones. Thankfully for me, I'm currently living in the Bay Area, and many of the San Mateo country public libraries (maybe all of them? I haven't checked) have free-to-use 3D-printers, as well as free filament. Amazing! On a side note, I think it's cool that public libraries are updating their services… you can borrow baking pans from the public library in my home town in Illinois. Okay, back to the finger.

I downloaded some .stl files from Thingiverse (specifically here), and took the bones from one of the fingers (I think it was either the index or middle finger), did a rough eye-ball scaling, and printed them at the East Palo Alto Library. Thanks East Palo Alto Library! Now the question was, how to assemble them? A major difference between the joints of these "bones" compared to the joints of my initial PVC pipe finger is that the bones slide along each other, so there's not really a "hinge". To accommodate this motion I decided to mostly use duct tape, which is cheap, strong, flexible, and pretty easy to work with if you have patience and a steady hand. In some earlier assemblages of these bones, I had noticed that the distal phalange had a tendency to bend back, so I added little bits of carved popsicle stick to the ends of the proximal and middle phalanges to prevent the finger from bending backwards too far. I also wrapped some clear scotch tape backwards around the bones (for now I'm not using the metacarpal) so that the next step of assembling the bones and their connective tissue would be easier.
Initially I was using two thin strips of duct tape sticky-side down along the edges of the bones, but I think that was gunking things up unnecessarily and creating more friction. To avoid that I placed the two strips sticky side up, so that they act like strong, flexible connective tissue that allows the finger to bend but don't allow the bones to be easily pulled away from each other. This is a tendon-based design, meaning that there are no motors in the hand itself, force is transferred to the fingers by cords (in this case, 50 lb. single-filament fishing line). I was originally using those fishing line sleeves from the PVC finger (and fishing line muscles), but they were too short and the finger's motion was kinda weird. I needed some fairly long but very thin tube, what I ended up doing was stripping some lamp cable and using the plastic sheath as tubing to hold the tendons. I cut out sections of the appropriate length and attached them to the scotch tape (much easier than trying to hold them down while also trying to hold down some thin strips of duct tape, I just don't have enough hands with small enough fingers to do that… yet).
Then I just wrap some duct tape around the middle of each phalange, which both secures the connective tissue and the tendon guides (those de-wired lamp cables). At this point I threaded some 50 lb. fishing line through the tendon guides, from the proximal phalange to the distal phalange, which powers the main motion of the finger. I duct-taped a rubber band from the back of the proximal phalange to the back distal phalange, just like in the PVC finger (the rubber band was glued down for the PVC finger, but that was a mistake because rubber bands degrade over time and need to be replaced, and glue is hard to remove). A friend of mine, Blaze, gave me some rubber fingertips left over from a robot hand he worked on, so I stuck one of those on the end. The next step was to setup the motor. I ended up not really have the pieces I wanted to attach the tendon to the motor, so I fashioned a little lever-like attachment from some paperclips and a washer. Then I just taped everything to a length of PVC pipe and clamped it to a stool.
I originally believed I would have to connect the servo I bought to an external power supply, like a battery or wall outlet. I tried connecting it a few times but all I accomplished was (I think) triggering some sort of safety mechanism on the Raspberry Pi I'm using to control the finger. I'll eventually have to figure out to do this properly, but for the time being it turns out to be sufficient to connect the motor to one of the 5V pins on the Pi. I'm currently using the pigpio package to control the servo. Below is a video of the finger in action.
I plan on doing all 3 of the above, bur order is as of yet unclear. There are many other things that need to be improved and worked out no matter what I do, such as networking multiple chips together, powering larger numbers of motors, and so forth. I'll update when I make any progress worth mentioning.
I began working on a robotic hand a while ago (8 months?), but my lack of knowledge of electronics and starting a new job caused me to drop it. A few days ago I picked up where I'd left off and finally electrified what I'd built, a single finger. My friend Sidd said I should chronicle this project, so here we are. I'll try to remember the work that I did all those months ago, and I'll update this as I make more progress.
So why am I building a robotic finger? Well, it's (a) first step to building a whole robotic arm that can use visual and proprioceptive feedback. My goal is to build a cheap, DIY embodied A.I. sandbox that I can use to try out lots of different algorithms that leverage principles of self-organization. One of the first systems I'd like to implement is Differential Extrinsic Plasticity (DEP), which I first learned about from this wonderful paper. The hardware itself is (as of right now) greatly inspired by this paper.
First Steps
My first successful attempt at a finger was made from PVC pipe. There was a LOT of trial and error in cutting out each section (more or less corresponding to the distal, middle, and proximal phalange as well as a metacarpal. The distal phalange is the last bone of your finger, middle phalange is right before it, proximal phalange is the long bone above you knuckle, metacarpal is the bone that goes from your knuckle to your wrist bones), but I eventually settled on the below design:| The fact that marbles ended up being key for this design is why I never throw anything away |
There's a Skeleton Hiding Inside You
Besides the fact that fact that the first design was pretty clunky, I didn't like how it felt like a carapace… if I wanted to add anything without increasing the size, I'd have to figure out how to fit it inside the finger. I also wasn't very excited by the idea of becoming a master PVC carver, so I decided to 3D-print some hand bones. Thankfully for me, I'm currently living in the Bay Area, and many of the San Mateo country public libraries (maybe all of them? I haven't checked) have free-to-use 3D-printers, as well as free filament. Amazing! On a side note, I think it's cool that public libraries are updating their services… you can borrow baking pans from the public library in my home town in Illinois. Okay, back to the finger.
Then I just wrap some duct tape around the middle of each phalange, which both secures the connective tissue and the tendon guides (those de-wired lamp cables). At this point I threaded some 50 lb. fishing line through the tendon guides, from the proximal phalange to the distal phalange, which powers the main motion of the finger. I duct-taped a rubber band from the back of the proximal phalange to the back distal phalange, just like in the PVC finger (the rubber band was glued down for the PVC finger, but that was a mistake because rubber bands degrade over time and need to be replaced, and glue is hard to remove). A friend of mine, Blaze, gave me some rubber fingertips left over from a robot hand he worked on, so I stuck one of those on the end. The next step was to setup the motor. I ended up not really have the pieces I wanted to attach the tendon to the motor, so I fashioned a little lever-like attachment from some paperclips and a washer. Then I just taped everything to a length of PVC pipe and clamped it to a stool.
I originally believed I would have to connect the servo I bought to an external power supply, like a battery or wall outlet. I tried connecting it a few times but all I accomplished was (I think) triggering some sort of safety mechanism on the Raspberry Pi I'm using to control the finger. I'll eventually have to figure out to do this properly, but for the time being it turns out to be sufficient to connect the motor to one of the 5V pins on the Pi. I'm currently using the pigpio package to control the servo. Below is a video of the finger in action.
There are a couple of directions I can go from here. [1] Increase the degrees of freedom of the hand. An older iteration of the PVC finger was controlled by three cables, one cable that allowed the whole finger to curl forward, one that allowed the proximal phalange to move on its own forward and backward, and one that allows the whole finger to waggle back and forth. [2] Make two more of these 1 DOF fingers and assemble them into a simple hand. [3] Attach some kind of proprioceptive sensor to the finger so that it can determine its own position. A fourth related direction is to set up a camera so the finger can SEE it's own position, as well as what's near it.
I plan on doing all 3 of the above, bur order is as of yet unclear. There are many other things that need to be improved and worked out no matter what I do, such as networking multiple chips together, powering larger numbers of motors, and so forth. I'll update when I make any progress worth mentioning.

Comments
Post a Comment