In this project, Jeff Kerr shows us how to make a six-axis robot arm that supports multi-axis coordinated motion. The arm is a scaled version of the industrial UR3 robot and includes several complex components.
Need an extra hand for some fun, light assembly tasks around the house? Think no further than a scaled version of the UR3 robot with a gripper that conforms to the object at hand — great for picking up cups from the sink or holding a flashlight when there’s a blackout!
A word of warning: Building this arm is no simple task. It requires a set of actuators and a gripper, all of which are detailed designs that need to be printed and assembled separately. As such, you may have your entire weekend occupied if you want this baby to come alive before Monday.
Compared to most of our other Weekend Projects, this one is also a little pricier, costing somewhere between $300 and $400. That said, you needn’t worry about functionality, with both Jeff and YouTube user John Lauer having demonstrated its use.
Just make sure you follow the instructions closely and keep an eye out for changes or improvements!
Let’s get to work!
When all is said and done, you should end up with a robotic analog of a human arm (kinda), starting from the shoulder joint to the fingertips. In other words, there are three major joints — shoulder, elbow, and wrist — and the movement of these joints will be aided by actuators running code for acceleration and deceleration. The actuators, whose core components are microcontrollers and stepper motors, will be housed inside 3D printed shells.
Naturally, there’s also a gripper, which will work a bit like two human fingers. A motor aids in its movement.
Note: The actuators and gripper exist separately as standalone projects.
The actuators are a crucial part of this project, and Jeff has used a separate Thingiverse page to give all the details from printing to assembly.
In general, an actuator is a component that converts energy into motion. You can think of it as the opposite of a sensor, taking electrical signals as input and outputting movement in the physical world. Examples include electric valves, clamps, and motors.
In the context of this project, the term “actuator” is used to describe not just the relevant stepper motor but also its surrounding assembly.
The actuators for this project consist of three planetary gearboxes, each of which use 38.4:1 compound planetary gearing.
What does that mean? Well, first you should know that a planetary gear system is one where the centers of one or more gears (the “planets”) revolve around the center of another gear (the “sun”). Secondly, the ratio refers to the difference in teeth of the connecting gears.
The three actuators use NEMA 17 stepper motors and vary in size according to the joints they control. John’s YouTube video shows how to assemble the actuators, which is particularly helpful since they are the most detailed part of the build.
The robot arm is meant to be equipped with a conformal robot gripper. As with the actuators, Jeff includes all the relevant information (requirements, printing, and assembly) in a separate Thingiverse page.
The gripper’s pivoting fingertips should conform to most objects to provide a firmer grasp. Each “finger” is a rolling gear stuck between two racks, as Jeff preferred this over fixed pivots.
For the requirements, we’ll assume you’re starting the project from scratch, meaning you need to make the actuators and the gripper.
Please note that these are the recommended motors, but you are free to look purchase other equivalents.
Jeff used his own custom firmware to support the coordinated motion, and he has shared all the details — source code, docs, and programming — on Google Drive.
Screws and Nuts (approximate numbering):
He claims you’ll end up with a “mushy” gear bottom if you don’t use the raft, and it’s a pain to file the part. He also mentioned that he didn’t use Cura’s default “Sharpest Corner” but instead randomized the “Z seam alignment” to get the parts as smooth as possible.
Generally, the actuators will need some proper sanding and filing before you can break them in. According to John, a lubricant (like silicone grease lubricant) will go a long way in making sure the actuators run smoothly.
Refer to the Thingiverse page for the complete set of instructions.
Before you begin assembling and wiring the arm, lay out all the controllers and motors on a table and conduct some tests to confirm everything is working fine.
Again, Jeff has detailed the assembly process of the arm on Thingiverse.
You’ll have three main joints to worry about: the base cone joint, the shoulder joint, and the elbow joint. Once all the respective actuators are complete, you can worry about the wrists.
Jeff admits that wiring can be a little hectic, mainly because the actuators don’t have a hole at the center like their UR3 counterparts. Therefore, you will need to determine how cables will run across each joint while still having enough slack for easy joint movement.
Jeff used a serial bus (V+, GND, TX, RX) with small controller boards that were distributed throughout the arm, and each motor had its own board. This is meant to reduce the number of wires running around.
A more detailed wiring process is available on Thingiverse.
As mentioned earlier, Jeff has provided documentation on the modified firmware used for the T500 boards. The same directory contains a Windows test program and C++ source code for the test program.
Jeff acknowledges that the hardest part is getting his modified firmware flashed onto the board. You may have to contact the manufacturers (of your boards) to request if they can sell their board pre-flashed.
Otherwise, Microchip offers a video that might help you with reflashing the T500 boards, but you’ll still need to refer to Jeff’s firmware modification details to confirm how each pin should be connected.
The standard T500 board firmware can’t handle multi-axis movements that the arm requires, and this is what prompted Jeff to write his own. If you want the proper synchronization and coordinated motion, you’ll have no option but to program Jeff’s firmware into the controller boards. If you like, you can still go for the standard firmware, but you won’t get the best synchronization from all the joints.
John’s arm was a bit different:
Feature image source: John Lauer / YouTube
License: The text of "[Project] Six-Axis Robot Arm" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.
Subscribe to updates from All3DP
You are subscribed to updates from All3DP
You can’t subscribe to updates from All3DP. Learn more…