A 3D-Printed Biomimetic Compliant Gripper for Desktop Use (With Touchless Hand-Control!)

by alexboniske1 in Workshop > 3D Printing

5238 Views, 52 Favorites, 0 Comments

A 3D-Printed Biomimetic Compliant Gripper for Desktop Use (With Touchless Hand-Control!)

IMG_4109.JPG

Hi! My name is Alex and I am a Senior at Asheville High School in North Carolina.

In this Instructable I will cover my engineering process behind designing and creating a miniature biomimetic gripper using Fusion 360 and 3D-printing. I created this project with focuses on two different applications for the gripper; one that is purely mechanical for a quickly printable project and one that is controlled with computer vision hand tracking as a desktop aid.

This project took a lot of time and this Instructable reflects it. I have included all aspects of my design process so that you can follow along with me in designing a gripper to match your needs while also hopefully learning something new about using Fusion 360 effectively. If you would prefer to just create a print of my project, you can skip to Step 9: Printing And Fabricating Components where the printing process begins.

Supplies

IMG_4110.JPG

All items and steps that are underlined are only required for the purely mechanical gripper build, italicized items are only needed for the hand-controlled build.

Parts:

  • Steel Hex Nut, 5/16"-24 Thread Size
  • Hex Head Screw, 5/16"-24 Thread Size, 2-1/2" Long, Fully Threaded
  • SG-90 Servo Motor
  • Arduino Uno
  • Paperclip
  • Optional: Adjustable clamping phone stand

Materials:

  • PLA Filament
  • TPU Filament

Tools:

  • 3D-Printer (I used an ENDER-3 and my neighbors Prusa i3)
  • Needle nose pliers
  • A computer

Software:

  • Fusion 360 (If you want to follow along with the design)
  • Ultimaker CURA (Or an equivalent slicer)
  • Arduino IDE

Defining the Problem

IMG_4081.JPG

My desk is cluttered.

All workable surfaces of my room often find themselves covered in half-finished projects that sit waiting for a rainy day or not-yet-ordered replacement parts. Finding available space amidst recycled lamps and reclaimed electronics feels like a Herculean challenge, in fact, it's reached the point that if an impulsive spur-of-the-moment project requires me to put something down within reach there just won't be room.

Additionally, as a maker who enjoys working on projects involving easily-breakable electrical components interfacing with dense and often unwieldy mechanical ones, having only two hands has begun to feel like a restriction. Getting help with a traditional third-hand tool would help me use the area above my two-dimensional desk space, but I can't find any that are big enough for large bolts and printed parts, gentle enough for breakable integrated circuits, and tactile enough to hold slim items like envelopes.

I need a solution which will make my desk more usable by offering primitive assistance during a variety of assemblies and ordinary work while also creating more available space to temporarily put things down. This project should be able to hold a variety of items with different shapes and sizes, gently grasp small components, and firmly clasp anti-static bags and flat materials.

Gathering Information and Research

After defining my problem I went online and looked at off-the-shelf solutions. I identified soft finger robots like this gripper from Aliexpress as an ideal solution to base my extra hand's design around. These mechanisms are very compliant and capable of holding large objects. However, most of the soft robotic hands I found were expensive and struggled with handling tiny items. Additionally, these grippers were mostly made from rubber which requires custom molds (it is also more expensive than I am comfortable with). I decided to use the strong linkage structure employed in these grippers, as well as the triangular pincher shape since it should be relatively straightforward to print.

To hold the smaller items that the larger designs struggled with I researched the different ways smaller animals hold twigs and leaves firmly while still being gentle enough not to damage them. After initially looking at ant mandibles I turned to birds. Many grain birds have a clever beak structure that helps them firmly clasp flimsy items thanks to a tiny overlap in their maxilla and mandible (upper and lower beak sections). This slight overlap would be valuable in my design as a means of holding flat objects

After settling on stricter goals for my project I finally moved on to my materials. Because of the difficulty and cost associated with custom rubber components I chose to work with Thermoplastic Polyurethane (TPU) which is both more affordable and printable on an unmodified 3D printer. The linkages and main housing of the gripper would use PLA plastic since it was what I had on hand.

TPU does not act as a 1:1 substitute for rubber, however. Because TPU is less compliant, my design would need to incorporate flexible geometry to compensate for the increased rigidity. Fusion 360 has a built-in tool to create volumetric lattices automatically with an extension, however, I did not have the extension on my account and instead chose to rely on a simpler 2D lattice created with a diamond pattern.

Lastly, I decided that for my specific use case I would create a gripper capable of mounting in a bendable phone stand which I could mount to the back of my monitor, thus suspending it completely off of my desk without using up any more of my workable space.

Sketching a Solution

IMG_4080.JPG

After deciding on the important features my design would use I set out to sketch a simple mock-up of the gripper. This sketch allowed me to verify that plans for the grippers linkages would work in real life and also allowed me to plan for how my mandibles would look in Fusion 360. Once I was happy with my ideas on the whiteboard I moved to my computer.

Creating Dimensioned Geometry

Screenshot 2023-07-04 155216.png
ezgif.com-gif-maker.gif

As a basis for my design, I created a jointed geometric sketch of the gripper. This sketch utilizes Fusion 360's sketch constraint tool in a way that allows me to test my linkages with different specific dimensions. By constraining the lines in the sketch as well as the central point that the gripper closes around I can create a movable model of my linkages. This method is not ideal for creating bodies and components but acts perfectly as a way to test different lengths and angles before designing any 3D parts.

This sketch served as the basis for the rest of my design process, allowing me to design all of my components with accurate dimensions independently before finally creating one main assembly at the end. By doing this I was able to keep my timelines clean while also maintaining best CAD practices.

It was during this step that I decided on my peg and hole diameters for the project. I chose to use .25" holes with .24" printed pegs for my design's linkages. I also decided that all of my pieces would be made .25" thick to make the final gripper assembly more straightforward.

Creating the Mandibles

Screenshot 2023-07-04 160811.png
Screenshot 2023-07-04 160902.png
Screenshot 2023-07-04 162650.png

The first 3D part of the gripper I created was the mandible. To begin, I sketched a basic outline for the mechanism with peg holes in the locations I had planned out earlier in my geometry sketches. After extruding the basic profile I created a second sketch for the 2D diamond lattice structure. I generated the feature using two rhombuses and a rectangular pattern. For a more in-depth look at this method I would recommend watching this video (it focuses on creating a honeycomb pattern which is fundamentally the same). This lattice creates an increased amount of compliance in the main body of the mandible, compensating for the rigidity of the TPU.

By this point, the mandible was nearly done. However, the triangular cutouts created by the lattice seemed insufficient for holding textured objects due to their flat faces. To fix this I used Fusion's emboss tool to add textured bumps onto the gripper's inner surface, creating a rougher surface for holding large objects. After a few final filets, the mandible was finished.

Designing the Control Mechanisms

Screenshot 2023-07-04 171547.png
Screenshot 2023-07-04 171914.png
Screenshot 2023-07-04 171718.png
Screenshot 2023-07-04 174956.png
Screenshot 2023-07-04 171109.png
Screenshot 2023-07-04 172451.png
Screenshot 2023-07-04 171713.png

After designing the mandibles I was ready to move on to my linkages and control mechanisms. The geometry from Step 4: Creating Dimensioned Geometry gave me a simple outline for my linkages's lengths which I was able to quickly model. For the mechanical build, all of the linkage pieces are identical. However, in the hand-controlled build, the middle linkage piece has a slot cut into it where the servo control arm can connect to it with a bent paper clip section.

The linkages interface with .24" diameter pins. The pins are all .94" long and chamfered. The central fixed pin is slightly different however, it is designed with a bump and cutout on the top of it, is 1.5" long, and has a wedge-shaped base. These modifications allow for it to hold the gripper together by wedging into the bottom plate and securing the top plate onto the linkages and mandible pieces.

The mechanical gripper build is closed using the 5/16" Screw and Nut. It was designed this way to act like a workshop vice; the user can turn the screw to tighten the grip and can release it easily by hand turning it in the other direction. To create this mechanism I used a single component that has profiles to slot into the top and bottom plates of the gripper during assembly. The component includes a hole for the screw to pass through along with a one-sided cutout for the nut to fit into.

The hand-controlled gripper is driven by an SG-90 servo. The servo is mounted to the bottom plate (Step 7) and drives the gripper by moving the same pin that the mechanical gripper does. The middle linkage piece has a specific cutout in it which a paper clip can slide into. The paper clip is used to connect the end of the servo horn to the pin by wrapping around it. This slot was designed into the linkage by creating a sketch with Fusion 360s construction mid-plane tool in the center of the part, then symmetrically extruding a circular cut.

Designing the Top and Bottom Plates

Screenshot 2023-07-04 175831.png
Screenshot 2023-07-04 180041.png
Screenshot 2023-07-04 175838.png
Screenshot 2023-07-04 180008.png

The top and bottom plates for the gripper were modeled using the geometry from Step 4. After sketching the hole for the central fixed peg I used Fusion 360s Center Point Arc Slot tool to create slot shapes for the moving pegs to slide through. Without a 3D printer, these slots would need to be CNC milled and would have been rendered impossible for a hobbyist like myself. I next added a straight slot for the back most pin to slide through (the one driven by the servo or the bolt). Next, I added lines for the outside edge of the plate and mirrored the slots and external edges so that they appeared on both sides of the sketch. Finally, I extruded the plate and its slots (.1" deep), made copies to act as the top and bottom, and chamfered the bottom edge of the central peg hole on the bottom plate (this allows for the wedged bottom of the central peg to secure the assembly).

For the mechanical version the top and bottom plates are nearly identical. Both plates contain a rectangular cutout for the nut and bolt control sub-assembly to slot into.

The hand-controlled gripper's plates are slightly different, the bottom plate has a sunken cut out for the SG-90 servo to fit into. This cut-out was created using Fusion 360s join tool and lets the servo motor press fit into place (I would recommend adding extra tolerance to this feature and shimming it with paper if you try to replicate this project). Additionally, the hand-controlled design uses a second central fixed pin at the back to hold the top plate in place (there is no "bolt control assembly" to slot into the rectangular cutouts). Lastly, the rectangular cutouts are slightly larger on the hand-controlled version of the gripper to allow for servo horn clearance. 

Final Fusion 360 Assembly

Screenshot 2023-07-04 181017.png
Screenshot 2023-07-04 180456.png
Screenshot 2023-07-04 180709.png
Gripper Assembly (No Servo) v2.png

Once all of the components were finished I was ready to check that everything was ready for printing. Using Fusion 360's joint, rigid group, motion link, and ground tools all of the individual parts can be assembled and prepared as a fully functional project. In the final assembly, I was able to check that all of my parts had the clearances they were supposed to (I had to make some small edits to the hand-controlled gripper top plate to allow for the servo horn to properly clear). Because I designed all of my parts separately, this final assembly is still very straightforward to edit and has a short timeline.

As a final step in the design process I chose to render my final assemblies using Fusion's cloud renderer, this process was free with my educational license of the application and took only a few minutes.

Printing and Fabricating Components

Screenshot 2023-07-05 174200.png
PrintigCropped.gif

After double-checking that all of the components are compatible the gripper is ready to print! Printing the gripper is fairly straightforward since all of the parts are relatively flat and pre-toleranced in Fusion 360. All parts aside from the Gripper Mandibles can be printed in a rigid material like PLA or ABS, the mandibles must be printed in TPU. I printed my parts with a 20% gyroid infill. If this is your first time 3D-Printing, I'd recommend this tutorial before getting started.

To make the Mechanical Gripper you will need to print:

  • 1 x Gripper Top Plate (No Servo)
  • 1 x Gripper Bottom Plate (No Servo)
  • 1 x Adjustment Piece for Nut and Screw
  • 3 x .94" Pins
  • 1 x Central Through Peg
  • 3 x Linkage Pieces
  • 3 x Gripper Mandibles

To Make the Hand / Servo Controlled Gripper you will need to print:

  • 1 x Gripper Top Plate (Servo)
  • 1 x Gripper Bottom Plate (Servo)
  • 3 x .94" Pins
  • 2 x Central Through Peg
  • 2 x Linkage Pieces
  • 1 x Middle Linkage Piece (For Servo)
  • 3 x Gripper Mandibles

*The .f3z files occasionally load with broken joints, if they don't work in the 3D viewer I would recommend relying on the assembly images in Step 10

Assembling the Gripper

IMG_4107.JPG
Screenshot 2023-07-04 195926.png
Screenshot 2023-07-04 195239.png
IMG_4106[1].JPG

Assembling the gripper is very straightforward but to make the process easier I have included exploded views of the assembly process above as well as .f3z files of the finished assemblies below. All of the pieces should fit together with a slight press fit. If a part is too loose it can be shimmed using a small piece of paper or tape.

The mechanical gripper should now be all finished!

To connect the hand-controlled grippers servo to the actual mechanism you will need to use a pair of pliers (or your hands) to bend a paper clip into a .25" diameter loop with a long rod protruding from it (a pushrod). This can be accomplished quite easily with the help of a wooden dowel or pencil. Once you have your loop you should slot it into the hole on the Middle Linkage Piece (the linkage piece with a cutout in it). Next, the peg is slid back through the linkage, and the loop and the gripper are reassembled. Lastly, the servo is placed and the pushrod is clipped and shaped to fit into the servo horn (this tutorial allows for a nice visualization).

The gripper has been designed to fit snugly into most adjustable clamping phone stands, it is highly recommended that you mount the gripper to a stand to make it more usable and out of the way. I mounted my personal gripper off of the back of my monitor so that it protrudes just enough to be easily usable while also not being intrusive.

*The .f3z files occasionally load with broken joints, if they don't work in the 3D viewer I would recommend relying on the assembly images.

Programming and Wiring the Gripper

IMG_4126

This step is only needed for the Hand-Controlled Gripper design.

To make the gripper more useful I wanted it to seamlessly integrate into my ordinary workflow. To achieve this, I decided that the best solution would be to control it with my hand. To make that process more straightforward, I focused on creating a control system that would allow me to open and close the gripper while using my desk like normal.

For the foundation of my hand control system I used Python and Google's MediaPipe model to generate cartesian coordinates for my hand's joint locations. I then created a function that judges the proximity of my fingertips to my palm, allowing my computer to recognize a closed fist and an opened hand. Finally, I programmed an Arduino Uno to adjust the servo on the gripper when my computer sends serial instructions via USB. 

My computer's camera is set at an angle where it only sees my hands when I raise them, so to control the gripper I can lift a hand to signal what it should do. 

Outside of the code the system needs to be wired, connect the servo motor's red and brown wires to the Arduino's 5V and Ground pins respectively, then connect the orange PWM wire to pin 2. Next, plug the Arduino into your computer on COM3 (or you can identify which port it is connected to the computer on and can edit the GripperHandControl.py code to match your serial channel). Editing the GripperHandControl.py is a fairly straightforward process as the code is fully commented. 

This tutorial does not go in depth on the code controlling the gripper, if you'd like to learn more I'd recommend reading the comments and documentation I added to the GripperHandControl.py file. The functions are fairly straightforward mathematically and could be easily replicated in other projects to add an extra layer of integration. (I've made hand controlled nerf guns and passwords in the past)

To run the Python program you will need to install Google's MediaPipe module, this can be done by following the steps on their Website. Lastly, you will have to install OpenCV and PySerialNow you can run the GripperHandControl.py script on your PC while your Arduino is connected and you should be able to open and close the gripper with your hand using your webcam!

If your gripper does not fully open or close you should disconnect the servo horn from the servo, close your hand in front of your webcam (putting the servo to its closed position), close the gripper manually, then reconnect the horn to the servo (thus resetting the closed position).

Final Thoughts and Conclusion

IMG_4130

This project was a lot of fun for me to work on, and documenting my CAD and design practices taught me a lot. I'm ecstatic with how the gripper turned out; it can handle markers, bags, circuit boards, and almost anything I can throw at it!

Is there anything I'd change about the final design? Of course! As you can see in the testing video above, the gripper has enough friction and compliance to hold many items, but it lacks that signature adaptive flex when it clamps down (I'm not sure if that's a benefit or harm on the value it provides me, but it certainly looks cool). In the future, I'd like to design a gripper with thinner walls and a stronger servo (or lead screw) to make it even more compliant.

Even if you don't choose to build this project, I hope that you found my documentation helpful. Whether you enjoyed watching my design process or learned something new about avoiding that mile-long timeline that seems to throw errors every time you need to edit it, I'm grateful you took the time to read through to the end.