Define
The purpose of to create a functional, extremely precise, and low cost version of an industrial 6-axis arm. In order to keep costs for this project low, I was forced to utilized cheaper and lower power stepper motors and drivers. I didn't have any extremely specific goals entering this project, and I just wanted a final project that I could be proud of producing.
Goals:
Precise Robot Arm (As precise as I would be satisfied with)
Low Cost (Minimizing Cost, Ideally Under $500)
28" operating radius (Maximum)
Inspiration
My inspiration for this project comes from one of my friends and mentors, Tyler Wee. He also built a 6-axis arm, albeit one that he was not satisfied with, and it currently lives in the shop. I thought that this could be a great learning experience, and a way to improve upon my friend's existing design
Ideation
The original actuator that I had planned to use for this project (in different forms) was a harmonic drive using a belt as a flex spline, and an upper and lower receiver. This would utilize an OnShape FeatureScript which was designed to create a low-backlash and high torque reducer, capable as being a foundational gearbox for all axis of the arm
The original basic ideation for power transmission involved the usage of belts (primarily HTD-5M) to transfer power between motors and their respective axis. Obviously, these belts would need tensioning to reduce backlash and belt stretch, and with these required design elements, the belts would act with enough of the required precision to create a robot arm with high accuracy.
The original plan for this robot was to create a universal robot (6-Axis robotic arm), which would utilize a standard strcture. It used parallel plates and differential joints to maximize the utility of each motor, combining various torque outputs in the form of differential systems.
CAD Iteration
Iteration 1
This was the first actuator that I worked on. It is a Nema-17 mounted harmonic drive, which utilizes a 5mm HTD belt to act as a flex spline, uses a built-in lower spline, and an output upper spline. The upper output has bearing side inserts, which slot in nicely and allow for smooth rotation of the output carrier.
This actuator was implemented in the differential wrist and the differential base turret. The output shaft was attached to a force threaded pulley (which had opposing cantilever support in an M6 screw). This specific design is from the base plate, and the differential turret.
While harmonics may be extremely desirable when made by professionals, it is far worse when they are created by amateurs, out of basic COTS materials. Specifically, an improperly calibrated flex spline, along with the physical characteristics of the flex spline being too bendy for handling high torque loads, meant that the resulting reduction only had a significant speed reduction, without the reciprocating increase in torque (the only reason for using a reducer in this scenerio).
These were problems that I addressed in the coming iterations of the harmonic drive actuator. However, eventually this actuator design did have to be scrapped in favor of a cycloidal.
For this first iteration, joint 0 and joint 1 were combined in a single differential actuator. It used power transmission from belts (geared by the harmonic drives) and then actuated the differential. Joint 0 had a minimum reduction, of around 6:1 (from the harmonic output to the rotational aspect). Joint 1 utilized a much higher ratio, with a maximum theoretical ouput of 75 Nm (the actual output was far lower for a multitude of reasons) - this was to accomidate for the load of actuating the entire weight of the upper arm and forearm modules.
It made heavy usage of Lazy Susans (for the larger bevel gears) and V-Groove bearings (and their negative profile) for guides for the inner turret. This was taken directly from FTC (First Tech Competition) differential drives.
Using belts for power transmission, especially those lacking proper tensioning, under high torque and high precision conditions, tend to fail to complete their required jobs. In future iterations, it would be required to undertake proper tensioning for the belts to ensure consistent and precise power transmission. This would have to be on all belts, from the harmonic transmission belts, to center carrier power transfer. Untensioned belts also have a strong tendency to ski under high torque, further deteriorating the viability of this project.
Harmonic drives, especially those made from 3D prints and HTD 5 belts, tend not to produce as much power as hoped. They tend to skip quite easily, and the wave generator has to either be clunky to house a mounting bracket, or flimsy to rely on press fits (which have a tendency to break under high loads).
Differential systems are also inherently irritating to test with mounted components, as an inexperienced programmer (such as myself) has to test both axis in tandem, and has the potential to break the mounted components, the joints, or any of the structural components involved.
Thunderhex profiles are not exactly 3/8" side to side. They have rounded corners to 10.25mm, meaning that their profile has some slip in normal 3/8" hex profiles. This allowed for greater backlash in the various pulley systems which relied on the 3/8" thunderhex, as many of the pullies did not utilize this modified profile for mounting.
Again, to maximize the utility of the available motors, I attempted to create another differential system for J2&J3. This system was to utilize a differential bevel system mounted at the elbow to act as both axis of the elbow. Additionally, this system required an offset, so it was required to implement a coaxial in the differential system, further complicating the already difficult mechanism.
J2&J3 also utilized modified versions of the base harmonic drive, primarily just being a reduced reduction (as the elbow would not have as great of a torque requirement as the base). These outputs were then geared and belted through the center of the arm (untensioned) before arriving at their pulleys on the other side of the coaxial differential mechanism.
The bevel used a through bore system with bearings, which allowed for greater stabilization of the elbow and the differing portions of the bevel. The far pulley and the far bevel were connected via a 3/8" Thunderhex shaft, while the inner pulley and the inner bevel were connected via 3/8" Thunderhex arranged in a triangular formation. Additionally, the inner control features were also fitted with bearings and alignment holes for the far connecting shaft.
Again, using untensioned belts for power transmission in what is supposed to be a precision system is not ideal, as they stretch significantly. Additionally, the harmonics proved themselves to be unreliable, skipping under high torques. However, I did appreciate the lack of backdrivability in this segment of the arm (due to the implementation of harmonic drive systems), which allowed the arm to be locked in a relatively stable position (relatively addressing the backlash present in the untensioned belts). Additionally, the usage of bevel gears introduced backlash into the J3. The gears, while meshing well, did have some backlash to them. This was something that had to be addressed/changed in future designs. The design using a set of parallel plates is also inherently unstable. It requires more reinforcement in the form of inter-plate support.
My solution to addressing J4 & J5 was admittedly an extremely lazy one. It utilized two servos, one belted and one directly connected to indepentently acutate the J4 & J5.
These two joints were mounted on a long aluminum extrusion coming out of J3. This solution was simple, and surprisingly effective.
This did however come at a significant cost (a literal one). The servos that I would ideally use would be Axons, but for my proposed sub-$500 budget, these would be non-viable options (these servos ard $100 each).
While this iteration of the arm design fell apart in prototyping before full assembly of J4 and J5, it was clear that this design was non-viable. The belt was not tensioned, and the required fastener (on 2020 aluminum extrusion) was clearly not working. This design would was too flimsy to lift significant loads, and was too loose to accomidate for precise movement. A better design, one with either higher power or higher torque, was a necessary adjustment.
Iteration 1.5
This iteration was only developed due to an unwillingness to abandon my differential turret based design. This attempted to address some of the glaring issues of J0 and J1, in the form of a post transfer (output belt side) 3:1 planetary gear reduction. This had the goal(s) of (a) increasing the torque of J1 and (b) reducing the backlash (and thus increasing the precision) generated by the belt reduction.
Sometimes the best course of action, although not the easiest on the mind, is to abandon a previous design. Yes, there are some designs that are worth iterating on and improving, but when all the signs point to this design being a dead-end, it should be a sign that there is no saving that design, regardless of the iteration or time devoted to its development. The differential turret was very clearly a design which met all of the aforementioned criterion - it simply was not meant to work.
Iteration 2
This prototype had some pretty major changes to my design philosophy and approach to this arm.
First, I really didn't like how everything was exposed in the previous design. It looked really ugly being able to see through all of the parts, and seeing the large amounts of open space, and the relatively simple "big" mechanisms was irritating. While there were many intricate parts, such as the harmonic drives, those were not visible, and were hidden behind 3D prints and wiring. For this design, I decided to move towards a much more industrial design, utilizing for the first time heat-set inserts, and incorporating as many bolts as possible. I wanted to create a sturdy and aesthetic arm.
Second, I wanted to shift high power joints (J0 and J1) away from using differential mechanisms. These mechanisms are often extremely intricate, difficult to assemble, and generally annoying to deal with. This increased complexity coupled with higher power systems I have found not necessarily to be the best match.
Third, and the biggest change, was the shift away from using harmonic reducers and drives. I found that they did not produce enough torque, and were extremely irritating to work with in general. They provided a speed reduction that was inconsistent under high torque loads, and had a tendency to be extremely unreliable for programming and testing. Obviously, I still needed a high torque reducer, which came in the form of a cycloidal drive. This drive uses an epitrochoid (generated by an OnShape feature script) in combination with 6mm stainless steel dowels to create a high reduction. In general, I found these to be much more reliable, steady, and high power.
Fourth, switching from belt to chain was an absolute must for me. After my longstanding struggles with tensioning, for all of the high power systems (looking specifically at J1 and J0), I switched using belt for chain.
The biggest and most noticeable change between this iteration and the previous one is the introduction of a separated J1 and J0. The J0 now operates as a Nema 23 with a gear reduction, which is then chained directly to a makeshift J0 bearing. This bearing consists of a messy arrangement of V-groove and radial bearings for alignment and base support, and some larger radial x-contact and thrust bearings placed in the center.
Joint 1, now as an independent joint, uses an extremely high power (3Nm) Nema 23, which is internally geared 2:1, before being chained up to the cycloidal (25:1, with a total reduction of 50:1). This cycloidal is a coaxial, which I have tuned specifically to reduce backlash. The most remarkable part of this joint in my opinion is that the backlash doesn't come from the cycloidal reduction. Rather, it comes from the chain, which has not been tensioned in this iteration.
Regardless of whether it is chain or belt, it is ALWAYS important to tension. This reduces backlash that WILL be present (guaranteed).
Additionally, when using M6 heat-set inserts, it should be made a priority to make the holes at least 8mm in diameter to avoid catastrophic eruption of melted PLA back into the insert. Removing this PLA will cause the insert to usually cross-thread (unless you really want to be precise). It destroys the quality of the insert and the quality of the internal thread.
While the overarching concept of the J2 and J3 stayed the same, the housing and structure changed significantly. I still wanted to use my coaxial differential elbow gearbox (as I thought that this wouldn't increase complexity significantly, and I was very proud of my design), but keep everything in a 3D printed enclosure. Additionally, I wanted to utilize cycloidal reductions instead of my previous harmonics.
This design still utilizes belts, which are properly tensioned using a screw adjustable tensioner. These belts are concealed on the outer edges of the inner body, which is then covered with the appropriate cover screws (with the matching heat-set inserts).
Additionally, this design utilizes miniaturized cycloidal drives, which instead of 6mm dowels, utilizes 3mm dowels. It also replaces the Nema 23 with an internally housed Nema 17.
For the elbow joint, I decided to internally house everything (a trend that seems to be emerging for this design), and swapped my bevel gears for herringbone gears (in a feeble attempt to reduce backlash without sacrificing the gears). I also significantly reduced the gear module (again to hopefully reduce the backlash).
For internal structure I decided to move away from acrylic plates, and utilized internally housed 2020 aluminum extrusion for center support, and 300mm internally housed Carbon Fiber rods for edge support.
I think the first lesson that I learned with this prototype is to NOT MAKE GIGANTIC 3D PRINTED SECTIONS. These took a week to manufacture, and one of them had an improper tolerance, and had to be reprinted. It is also completely unnecessary to design for that many heat set inserts, and it is simply wasteful. The cover plates need 2 at each end, maximum.
Cross sectional merging screws are not a viable option for heat set inserts. The inserts will NEVER go in at exactly 45 degrees. When screwing in, one of two things will happen: (a) the outer edge of the insert loses traction on the plastic and slips out, ruining both the screw and a good portion of the 3D printed part; or (b) the insert goes in crooked (guarenteed) and the screw cross threads it in the process of alignment. Neither of these are desireable.
Even Bambu Labs printers cannot hit the tolerances required to make a good cycloidal with 3mm outer pins. The pin size simply doesn't work. The cycloidal came out horribly and non-functional.
For J4 and J5, I decided to continue with the development of a system mounted on the end of a 2020 aluminum extrusion. However, to combat the previous instability, I decided that it was best to keep the power sources located at the bottom of the extrusion, and belt it up. Additionally, with this change, I believed it would be best to make use of a differential wrist system. Ironically, this would allow for a simpler combination of J4 and J5, as I would not have to do any tricky belt winding or coaxial "shenanigans".
Since I opted out of using servos for J4 and J5, I decided to use steppers with a reduction system. For this system, I decided to use a planetary 4:1 reduction, which was then connected to a 2:1 bevel reduction, which then belted power up to the differential wrist.
Prototyping
Testing