SpiderBot

A robotic hexapod and final project for the Yale course MENG 400: Computer Aided Design

How it Began

For this CAD project, I aimed to design and prototype a robotic hexapod using Solidworks, 9g micro-servo motors, and 3D printed parts. The objective of this project was to appropriately model the anatomy and range of motion of a spider’s legs and successfully simulate locomotion and analyze its structural stability.

Project Overview

A key element of my entire design focused around the use of pre-bought 9g micro-servos. The first thing I did in my design was to take precise measurements of all aspects of the motors so that I could model it in Solidworks and use them in my hexapod assembly. For every connection between a motor and a hexapod body part, I planned to use the white, plastic servo wings that came with all the motors, as well as the two 10mm screws that were included. I dimensioned and modeled the wing as well, and generated a subassembly of the motor with the arm that I would then use for future leg subassemblies. Although the motors are structurally very rigid and wouldn’t be a key part of necessary stress analysis (I would use a large mesh on them or exclude them altogether), I still applied the ABS plastic material, which gave it weight that was approximately 9g, as appropriate.

For all other materials, I wanted to use the material properties of PLA plastic, which is the material used in the CEID 3D printers. Solidworks did not have this preset material, so I created a custom material using PLA material properties data found in the Farah MIT literature review. This custom material was applied to all other parts. spent a lot of time planning and sketching how the hexapod’s legs would generally be structured, given that I wanted 3 degrees of freedom in each. I generated a very rough, simple CAD mockup to help me imagine what each of the parts would look like, and hand sketched my thought process to lay out how each leg would fit together on the body.

The main chassis was first made to be a generic block with slots to hold the motors, but I ended up cutting out a lot of material from the inside (both in embellished features and holes for electronics attachments) for two purposes: first, the lighter the main chassis was, the less load that each leg had to bear. Secondly, I knew that trying to print a long, wide flat piece of PLA on the Makerbot 3D printer would cause bowing in the part, so I cut out material to prevent that. In general, I wanted to strive for symmetry across each side of the hexapod as well as a balanced center of mass for each of the legs. This way, almost all the leg parts could be identical regardless of which side of the hexapod they were on. For this reason, the Metatarsus parts of each leg are mirror images of each other, corresponding to a left and right leg. I originally created this using a configuration, but due to unforeseen changes and edits to the legs during the later parts of the design process, I ended up using 2 different parts (metatarsus right and metatarsus left).

The tibia part was designed to attach to the metatarsi motor at one axis and allow another motor to fit in and spin the femur part on another axis. This part was expected to bear a small load but was filleted on all edges to lower changes of a break or shear. I expected the femur part to bear the most load, since they would be the ‘feet’ that held up the rest of the hexapod. I designed this part with this load in mind but also with the intent of forward motion, so there is a forward bend as it catches the ground. This would be one of the critical parts that I would investigate during stress analysis. The main subassemblies of my project were the left and right leg, which was the combination of metatarsus, femur, tibia, and all corresponding motors. Each motor wing could rotate, such that when I used 3 of each leg in the full assembly, they are all able to rotate with 3 degrees of freedom.

The full assembly includes all 6 legs mounted on the chassis. With this assembly, the hexapod is complete, and I was able to begin motion analysis. To align the spiders legs, I used a series of parallel and coincident mates between corresponding legs that I would later suppress when I conducted any stress of motion analysis. First, I wanted to be sure that the hexapod would be able to support its own weight, so I ran a simple static analysis on the assembly. I knew that a realistic analysis would involve mates with no penetration rather than bonds, as well as a virtual wall acting as the ‘floor’ underneath the legs. However, I had to greatly simplify this to get any analysis to run without Solidworks crashing for the full assembly. On the full assembly, I ran a static analysis using gravity and 2lbs load on the main chassis to account for the weight of the Arduino and extra batteries. I used rigid fixtures under the tip of each femur part to simulate the ‘ground’, and the resulting simulation showed a factor of safety of 10 with low deformation. Of course, this result will be high, and would have been more realistic with screws in place of concentric mates, a virtual wall rather than fixed feet, and no penetration mates rather than bonded contact.

I certainly did not anticipate the many extra hours of labor it would take to prototype the hexapod. After 3D printing all the parts I had to assemble, bolt together, wire, create a modified PCB, and write code to manipulate all of the servos. It was a ton of fun for me, but it did consume a lot of the time that I wish I could have used to run more thorough analysis on the assembly. I dedicated a lot of thought to this project, and I will likely continue to work on it next semester and make both the physical prototype and the CAD model better. More considerations that I would take into account earlier would be more realistic physical contacts, the application of limited ranged angle mates in the motor subassembly (a big issue with my analysis failings were that the motors were technically free to rotate a full 360 degrees, which is unrealistic) and more look at the stress results for the individual parts, so that I may redesign and optimize the parts as appropriate.