Design and build summary
The design of the robot arm is based on the PUMA robotic arm. This was ultimately a choice of convenience as I was familiar with this arm design from an online robotics MOOC I was doing at the time. With the robot arm fully extended vertically, which is its home pose, it’s bounding dimensions are approximately 250 mm width, 280 mm depth, 650 mm height. It’s estimated mass, from the CAD is around 6 kg. When fully extended horizontally, it’s reach is approximately 500 mm. My target payload when designing the arm was 0.5 kg. However, so far, it’s only been tested with a 0.2 kg payload at full extension, and I’d like to make some improvements (discussed later in the mechanics section) before I feel I can safely test a heavier payload.
Videos are available at the following youtube links showing an overview of the robot arm, the joints homing and sweeping routines, and some very basic pick-and-place action using some body spray cans I had lying around.
- https://youtu.be/e1OpVUF5ABY (overview)
- https://youtu.be/JPp1Qfydu3g (joints homing)
- https://youtu.be/cyedkwWNNdI (joints sweep)
- https://youtu.be/1bf_AUQ8gAU (empty body spray can pick-and-place)
- https://youtu.be/b25-hHDyTTw (full body spray can pick-and-place, 0.2 kg)
The CAD was
developed using Autodesk Fusion 360, and the CAD assembly is
available as a Fusion 360 archive file and a step file at the
following github folder link, where stl files of the 3d printed parts are
A bill of materials
is available at the following github folder link.
So far, the build cost has come to around 400 GBP (I’m based in the U.K), so roughly 550 USD. This is double what I had in mind, but with the exception of a few convenience purchases such as silent stepper drivers and using threaded heat-set inserts, I’ve tried to keep the cost down as much as practically possible. Starting off the project with a 3d printer and a cheap soldering iron in hand, the approximate breakdown of costs incurred is given below.
- Boards and drivers: ~ £65
- Motors: ~ £85
- Timing pulleys and belts: ~ £30
- Bearings: ~ £40
- Fasteners: ~ £35
- Power supplies: ~£45
- PLA filament: ~ £40
- Miscellaneous: ~ £50
- Estimated total: ~£390
Assuming all goes
smoothly, the total print time of the 3d printed parts is 157 hours,
so about a week of continuous printing time using a single printer at
conservative print settings. The 3d prints summary document in the
BoM folder in the github repository gives some information on slicer
and printer settings, print time and filament mass consumed for each
The control electronics consists of an Arduino Mega board with a RAMPS 1.6 shield attached to it to interface with the actuators and sensors. The actuators consist of 2x Nema 14, 2x Nema 17 and 2x Nema 23 steppers, and a MG996R servo actuating the gripper fingers. The joint positions are set using open loop control, which was another trade-off made in the design phase in choosing build simplicity over control precision. I plan to test the position repeatability of the gripper placement, ideally with a payload, to get an idea of whether this decision needs revisiting. The control interface is through text commands and print statements on the Arduino serial monitor. In the future, I aim to develop a GUI for easier programming of the robot arm.
The Arduino code is available at the following github folder link.
The Arduino code produced as part of this project is released under the MIT licence as described in the project’s github repository at the following link.
The mechanical design is also open source, I just need to figure which open source license to release it under, and how to do so. Any recommendations...Read more »