You are on page 1of 34

instructables

MOTUS - Open-Source 3D Printed Robotic Arm

by alatorre

This is my entry for the Digital Fabrication Student Design Challenge. As a nal degree project of my Mechanical
Engineering undergraduate degree at ELISAVA, I worked on a fully 3D Printed Open-Source robotic arm.
Using ELISAVA's methodology, the project has been developed following an inspiration phase, an ideation phase and
nally an implementation phase. These phases include research and User-Centred Design, the speci cation of a value
proposal, and the technical solution pertaining to the 3D modelling, material selection, FEA analysis and business model,
among others.
The nal result is MOTUS: a fully 3D printed robotic arm that has a reach of 600 mm and a payload of 0.5 kg,
conceptualised and designed for use in academic settings. These results are supported by all the calculus and processes
involved in the development part of the project.
The outcome is an a ordable and exible solution that can be enjoyed out by anyone interested in this eld. It has been
designed to give access to the academic and educational aspects robotics can support, fostering a creative environment
in which users can learn-by-doing.
Supplies:

Arduino Mega 2560 R3 (x1)


17HS4401 (x2)
23HS41-1804S (x2)
35HT36-1004A (x1)
17HS19-1684S-PG19 (x2)
TB6560 Stepper Driver (x7)
51120-2RS Bearing (x1)
6816-2RS Bearing (x1)
688-2Rs (x3)
6810ZZ (x2)
AS5600 (x7)
TCA9548A (x1)
F322DM 10x1 Radial Magnet (x7)
Pulley Wheel GT2 60T (x1)
6060/6082 T6 8x100 (x2)
Belt GT2 400 mm (x1)
Miscellaneous M3/M4/M5 DIN912 Bolts and Nuts

MOTUS - Open-Source 3D Printed Robotic Arm: Page 1


MOTUS - Open-Source 3D Printed Robotic Arm: Page 2
MOTUS - Open-Source 3D Printed Robotic Arm: Page 3
MOTUS - Open-Source 3D Printed Robotic Arm: Page 4
https://youtu.be/MUy4GPBfbmM

Step 1: Design the Parts!

First and foremost, all the parts must be designed. Knowing that part of the goal of the project is to make it Open-Source
and free for anyone to access, I decided to use Fusion360 as the selected software. Fusion360 works great for this
project, as it allows not only for the actual product design aspects, but also simulations and animations.
Additionally, part of the challenge of this project is to design all the parts knowing that the manufacturing technology
that will be mostly used is 3D printing. This is known as DfAM (Design for Additive Manufacturing). It is important think
of the limitations that 3D printing has and design around them.
Taken from the gen3D website: " Design for Additive Manufacturing is the practice of designing a part or product that
exploits the freedoms of additive manufacturing whilst adhering to the process limitations. The aim for all designers should be
to minimise the production time, cost and risk of in-build failure, whilst maximising the functionality and quality of the
components. We deliver our training and consultancy based on 4 key principles of design for additive manufacturing. An
understanding of these principles will allow designers to create new designs that fully exploit the bene ts of additive
manufacturing and give the part the best opportunity of being a commercial success."
To learn more about this type of manufacturing mentality, here are some links:
Gen3D
Cati
Jabil

MOTUS - Open-Source 3D Printed Robotic Arm: Page 5


MOTUS - Open-Source 3D Printed Robotic Arm: Page 6
Step 2: Calculations

The rst technical requirement is to know exactly which torques each motor will have to generate in order to move the
di erent parts. To do so, di erent calculation (ranging from regular torque equations to moment of inertias) can be done.
This section essentially revolves around all the calculations that will have to be done in order to ensure that the materials
and components selected will hold up to the forces and strains they will be exposed to.

MOTUS - Open-Source 3D Printed Robotic Arm: Page 7


MOTUS - Open-Source 3D Printed Robotic Arm: Page 8
Step 3: Print the Parts!

To get all the necessary parts to make the robot, these have to be 3D printed. I designed all the parts knowing that I
would be using the printer I have at home: Anycubic Vyper. This means that some of the parts are very big. In the case of
you having a smaller printer, some parts would need to be split and then glued together.
To print the parts, the parameters are as follows:
Material
PLA
Layer height
0.2 mm
In ll
> 10%
Shell thickness
> 1.2 mm
Nozzle size
0.4 mm

As of now, the les are being uploaded to the projects' GitHub. Please have some patience as this project is still in
development and the GitHub will be updated almost daily in the coming months.

MOTUS - Open-Source 3D Printed Robotic Arm: Page 9


MOTUS - Open-Source 3D Printed Robotic Arm: Page 10
MOTUS - Open-Source 3D Printed Robotic Arm: Page 11
MOTUS - Open-Source 3D Printed Robotic Arm: Page 12
Step 4: General Assembly

So as to make assembly easier, included in this Instructable are the assembly blueprints. These will aid in showing exactly
how each part assembles together. The assembly breakdown looks like this:
MOTUS
J0
J0_Insert
J0_BottomCover
J0_Bottom
J0_120T Pulley
J0_Base
J0_PulleyTop
J0_MotorLid
J0_Lid
Tensor
Tensor_Bottom
Tensor_Center
Tensor_Top
J1
J1_Base
J1_BaseMiddle
J1_BaseSide
J1_Connector
J1_J2Connector
J1_MotorCover
Planetary Gearbox
Planetary_Bottom
Planetary_Sun
Planetary_Planet
Planetary_Lid
J2
J2_Bottom
J2_Sides
J2_Gearbox
J3
J3_Bottom
J3_Side01
J3_Side02
J3_Top
J4
J4_Bottom
J4_Side
J4_Pivot
J4_Top
J5
MOTUS - Open-Source 3D Printed Robotic Arm: Page 13
J5_P03
J5_P02
J5_P01
J5_Lid
Quick-Change
QC_P1
QC_01
QC_02
QC_P2
QC_03
QC_04

MOTUS - Open-Source 3D Printed Robotic Arm: Page 14


MOTUS - Open-Source 3D Printed Robotic Arm: Page 15
MOTUS - Open-Source 3D Printed Robotic Arm: Page 16
MOTUS - Open-Source 3D Printed Robotic Arm: Page 17
Download

https://www.instructables.com/ORIG/F03/5SD4/L5I6Q2US/F035SD4L5I6Q2US.pdf

Step 5: Reductions

What are reductions?

Knowing the stepper motors for each of the joints, some of them don't have enough torque to successfully move. This
was known when selecting them, as the larger their torque output the more expensive they are. As such, it was decided
to try to develop mechanical solutions that could be 3D printed to increase this torque. These solutions are called torque
MOTUS - Open-Source 3D Printed Robotic Arm: Page 18
multipliers or reductions. A reduction reduces the speed and increases the torque of the output shaft of a motor.
Planetary reductions

The selected type of reduction is a planetary reduction. A planetary reduction is a compact way of transmitting high
levels of torque using few parts. The way it works is by having a driving sun gear (where the motor is attached) which
gears with a series of planets. These in turn gear, which gears with an internal gear: causing them to move concentric to
the sun gear.
Planetary reductions form the basis of the most common type of automatic transmission, known as the hydraulic
planetary automatic transmission. Most modern automatic transmissions in the automotive industry use planetary
gears. Planetary gears are also used in industrial machinery too: where guided robots, laser cutting machines, and even
hospital operating tables use them.
Advantages of a planetary gearbox:
Can transmit high levels of torque in a very small space
Simple to design and calculate
Small backlash
Relatively light

Disadvantages of a planetary gearbox:


More parts means higher chance of mechanical failure
Di cult to assemble
When 3D printed, gear pro le prone to warping

3D printed gearbox

The 3D printed gearbox has a 10:1 reduction. The motor attached outputs 0.5 Nm, which means that the output shafts
(the three protruding screws) have a theoretical output of 5 Nm. The truth is that in reality there are losses in this torque
due to the friction between printed gears. This means that most likely between 30 to 50% of the theoretical output
torque is actually lost to these factors. As such, we can assume that this gearbox actually produces a peak holding
torque of 2.5 Nm and more optimistically of 3.5 Nm.

https://youtu.be/XS_aRYflE9Q

MOTUS - Open-Source 3D Printed Robotic Arm: Page 19


MOTUS - Open-Source 3D Printed Robotic Arm: Page 20
MOTUS - Open-Source 3D Printed Robotic Arm: Page 21
Step 6: Bearings

What are bearings?

Smooth operation and movement will be extremely important in the design of a robotic arm. To achieve smooth
rotations, di erent bearings will be used. There are many types of bearings, including but no limited to:
Ball bearings
Roller bearings
Linear bearings
Plain bearings
Flexure bearings
Radial bearings

Out of all these types of bearings, the one selected to experiment 3D printing on is the Ball bearing.
Ball bearings are a device with a a collection of balls (usually steel) in a sleeve. The top and bottom of the sleeve are not
connected, as the top moves one way, the bottom moves the other, and the balls roll, reducing friction. They are
essentially very good at reducing friction. They do this by reducing the amount of surface area that is in contact between
two moving surfaces. The balls inside the ball bearing reduce friction by rolling, which produces a lower frictional force
than sliding.
The issue with bearings (of any kind) is that their price dramatically increases with their size. A bearing with an outer
MOTUS - Open-Source 3D Printed Robotic Arm: Page 22
diameter of 80 mm can be over 30 euros. As such, part of the challenge is to be able to design a bearing of any size
parametrically to be 3D printed. Of course, this bearing won't be as good as an all metal one but it will for sure be
cheaper and easier to replace.
3D Printed Bearings

To design a parametric print-in-place bearing, the rst step is to decide the dimension of the balls themselves. In this
case, I chose ø5 mm balls. Next, one of the parameters that is also very important is the clearance or tolerance between
the balls and the walls of the two halves of the bearings. Knowing the capabilities of the FDM printer I have at home, I
went with 0.1 mm tolerance on each side. Finally, the spheres themselves can't be completely spherical. This is because
the part of a 3D print that touches the build-plate needs to be at. As such, the spheres are given a at top and bottom.
What is very interesting of this nal model is that everything prints directly. This means that there is no assembly
required: the part is loaded into the printer and it is able to print a fully functional bearings straight out of the build-
plate.

https://youtube.com/shorts/hipa8CVwfwI

MOTUS - Open-Source 3D Printed Robotic Arm: Page 23


Step 7: Quick-Change System

With all the actual motorised parts designed and manufactured, a Quick Change system was developed. The issue found
was that if a gripper was attached to the robot arm at a given time, it couldn't be changed without disassembling a large
part of the robot.
Having worked at a robotics start-up from 2020 to 2022, I had been exposed to various tools relating to robot arm end-
e ectors. Danish company OnRobot has solution which uses a combination of magnets and a spring-loaded latch. A
design like that would be too complex to get working with 3D printed parts. Therefore, based on the idea of using
magnets a simpli ed system was developed.
The system is essentially a rudimentary lock which can be actioned with a twist and is held in the locked position using
magnets. This means that the axial movement is constrained with the actual geometry and rotation is constrained with
magnets.
With the parts printed and assembled, everything worked out on the rst try. The action was very smooth and the hold
was quite good too. When a load was applied (of 1.5 kg), the hold was also very good. However, when this prototype was
shown to Xavi Riudor he brought a very good point: if enough load is applied to one of the ends, the torque of one of
the parts might be stronger than the magnetic force that holds the halves together. This would mean that parts
would separate. To solve this issue, the parts were modi ed to use stronger magnets.

MOTUS - Open-Source 3D Printed Robotic Arm: Page 24


MOTUS - Open-Source 3D Printed Robotic Arm: Page 25
MOTUS - Open-Source 3D Printed Robotic Arm: Page 26
MOTUS - Open-Source 3D Printed Robotic Arm: Page 27
Step 8: Electronics

The required electronics for the robot arm must solve di erent problems such as: how to get the motors to know their
positions, how to actually move the motors, how to control the movements etc. As such, these can be divided into:
Stepper Motor Drivers

To power the stepper motors, the simplest way is to use a speci c integrated device such as the TB6560 stepper driver.
This integrated driver is capable of powering motors up to 35 V and up to 3 A. This simpli es the assembly and allows for
a fast recovery in case of overheating. The most important factory, however, is that it allows for micro-stepping. A driver
is capable of being programmed by ipping a series of switches integrated on the board. These change the running
current that goes into the motor as well as the steps that it will take per revolution.
Position encoders

To control the position of the motors, an encoder is needed. There are some very good options which are very simple to
integrate (such as the 600P/R rotary encoder). The issue with such solutions is that they are quite expensive (over 30€
each encoder), which is an issue as there are 6 motors that will need it. Something like a small rotary encoder or a

MOTUS - Open-Source 3D Printed Robotic Arm: Page 28


potentiometer would also work but their angular accuracy is quite limited. This is because they work on the basis of an
actual switch changing binary states, meaning that there are only so many incremental angular degrees can be achieved.
It is important to have the largest range of angles (even to the hundreds in decimals).
As such, the selected encoder is a magnetic AS5600. This is a contactless system which measures the absolute angle of a
diametric magnetised on-axis magnet. This encoder is designed for contactless potentiometer applications as well as
applications that demand a high degree of accuracy. To integrate this encoder on a stepper motor, two small plastic
pieces are designed to act as holders for the encoder itself. Additionally, a diametrically polarised magnet has to be blued
to the shaft of the motor. Finally, the encoder+holder assembly can be slid on the back of the motor.
Furthermore, there are only 1 SDA and SCL port on an Arduino, and there are 6 encoders (each needing to connect to an
individual SDA and SCL port). This means than I2C board has to be added to this set-up. In this case, the selected board is
the TCA9548A. This board allows for up to 8 di erent I2C modules.
Fan

Seeing how the motor drivers can produce quite a bit of heat, a fan must be integrated into the electronics box. The
selected fan is the HA60151V41000UA99. This fan can produce an air ow of 12.7 CFM, which is more than enough for
this application.
Arduino

Knowing that each stepper motor driver outputs two wires that must be connected the Arduino, as well as each encoder
outputting 4 wires each, there are more than 20 wires that must be connected at a time. As such, the only Arduino that
can handle that many connections is an Arduino Mega 2560 R3.
E-Stop

A robotic installation like the one that is being worked on in this project requires fail-safes. In this case, an emergency
stop button.
Power Supply

220 V (which is what is outputted by regular wall-sockets is too much for the drivers that are being used. As such, a power
supply that can convert the 220 V to 24 V is needed. The selected one is the PS1-100W-SF, mostly due to its availability
and low price.
So as to contain all the electronics, an electrical box can be used. This will be further explored in the coming chapters, but
knowing the exact dimensions of the components yields an electrical box that is 130x210x280 mm. Conceptually, the use
of an electrical box goes against the idea of Open-Source. The pragmatic truth, however, is that it is cheaper and safer to
buy a ready-made box.
With the electronics box complete, every cable that has to be outputted to the motors of the robot or the encoders was
soldered together to a three 24 pin female extension power. The male end of this extension power was soldered to
the cables leaving the robot. This means that the robot arm and the electronics box don't have to be connected at all
time: giving more freedom of movement and transportation.

MOTUS - Open-Source 3D Printed Robotic Arm: Page 29


MOTUS - Open-Source 3D Printed Robotic Arm: Page 30
MOTUS - Open-Source 3D Printed Robotic Arm: Page 31
Step 9: Coding

This part remains in development, with the forwards kinematics developed and the inverse kinematics still a WIP.
Forwards Kinematics

The idea of forward kinematics is very straighforward: it is a way to move each joint independently of each other to reach
a nal desired position. This is the simplest way to move a robot, as all it is basic step commands to move each motor
forwards and backwards. It was decided that the best way to actually create this control mechanically would be to have a
small dedicated PCB which could be easily and directly plugged into an Arduino Mega.
This controller would have 3 buttons and 6 LEDs. With the left-most button, the joint that is being moved would be
selected. Each LED would correspond to a joint. As such, with each button press, a di erent LED would sequentially light
up. The other two buttons would allow for the selected joint to move backwards (middle button) and forwards (right-
most button).
Using the AccelStepper library, each stepper was declared separately. Using an array for the LEDs and the steppers, with
each button press a di erent void function would be activated for each stepper/LED.
By creating a very rudimentary plug-and-play PCB that goes right on the Arduino, we are essentially empowering a less
tech-savvy user to be able to at the very least control and be able to nd exact x, y and z coordinates.
Inverse Kinematics

The rst thing that would need to be done would be to write an inverse kinematics. Contrary to direct kinematics (which
is what the dedicated PCB was created for: being able to control the joint angles, thus giving Cartesian coordinates),
inverse kinematics allows for the software to receive a Cartesian coordinate (in 6 degrees of freedom) and calculate the
exact rotation that must take place in joint for a speci ed point of the robot to reach those coordinates. This involves
some relatively simple maths, mostly revolving around trigonometry.
In the case of this project, this software didn't end up being written due to time constraints.
Download

https://www.instructables.com/ORIG/FH1/G73T/L5I6Q811/FH1G73TL5I6Q811.ino

Step 10: MOTUS

MOTUS is a 6 DoF Open-Source robot arm that is almost completely 3D printed. It is controllable through software or
using a remote control. In its extended position, MOTUS has a 600 mm reach and can lift loads up to 500 grams.
The robot's structure is fully printed using additive manufacturing technologies and its electronics are controlled with
Arduino IDE. Furthermore, standardised components are de ned on the bill of materials to enable and simplify the
sourcing of components as well as overall assembly of the arm.
MOTUS has been developed by Elisava fourth year students of the Industrial Design Engineering degree. The goal is to
give access to the acedemic and educational aspects that robotics can accomodate. Having a robot that is cheap,
repairable and customizable fosters a creative university or school ecosystem in which users can acces and learn by
doing. MOTUS brings digital manufactuing technology and Industry 4.0 to everyone.

MOTUS - Open-Source 3D Printed Robotic Arm: Page 32


Step 11: PLAY!

Give a shot and let me know if you end up building it! This all still a very work in progress, and if anyone has any
suggestions I am more than open to listen and work on it :)

MOTUS - Open-Source 3D Printed Robotic Arm: Page 33


Super project! You put together a complex set of mechanical and electrical elements together into
an easy to understand set of instructions.

MOTUS - Open-Source 3D Printed Robotic Arm: Page 34

You might also like