1. Constructing a USB controlled 5 DOF Robot Arm and Gripper and use in
Investigating RTM Concepts
Dr Rahul Basu a
a
Mechanical Engineering Department
VTU, Sambhram Institute of Technology
MS Palya, Jalahalli E
Bangalore 560097, Karnataka, India
raulbasu@gmail.com
Abstract
The study of economy of motion in the operation of robots in
assembly lines, microelectronics, medical and space
applications has not received much attention. However, it is
as challenging and important as efficiency and ergonomics is
to human beings in the factory workplace. In this study a kit
was assembled by students and used to understand simple
robotic concepts like degree of freedom, gripper action, pick
and place, palletisation and other topics in a lab syllabus
together with online simulators like ROBOLOGIX where
factory robots are simulated. Sample outputs are illustrated
and discussed.
Keywords—Robot armt; ergonomics;RTM;PUMA; Palletization
I. INTRODUCTION
1.1 Ergonomics an essential concept in machine
design and usage
Economy of motion, is an essential factor in the workplace
and has been the topic of much study since the early 1900’s
starting with the work of Taylor[1], Gilbreth [2] and others. With
the introduction of computers and robots in the work place, many
tasks previously carried out by workers have be taken over by
assembly line robots. The speed, safety and energy consumption
of these robots in the work place will then factor into the
productive efficiency of the automated process. While many
studies have been performed on Human efficiency and incentives,
ergonomics, and productivity, far less attention has been given to
the same action done by robots. It may be because one assumes
or presumes that the machine expects no reward or incentive to do
work. This is until the mechanical device breaks down and
“refuses to cooperate”. The owner then has to invest in a large
amount of money to repair and/or replace the machine with a new
more expensive one because costs have gone up in the
intervening time. Apart from the preventive maintenance done on
the machine, a far more pressing and immediate factor is the
energy consumed and the power bill entailed. This provides an
immediate concern to the factory in the form of mothly power
bills which, if the sequence of automated operations is
ergonomically and efficiently designed, could certainly be
reduced by reducing the number of unnecessary motions
performed by, say, a robot arm with a gripper or welding
attachment, or spray painting device
1.2. Basic actions of a Robot Arm
The robot arm which was built for the project has 5 degrees of
freedom (d.o.f.) and thus 5 independent coordinate systems and
axes of rotation which can act independently of each other. A
typical PUMA robot is illustrated in Fig1.
Figure 1: 6 degree of freedom PUMA robot arm
A similar robot without wrist rotation is shown in Fig2
2. Figure 2: Robot arm with 4 dof
Basic actions consist of gripper open and close, base rotation,
shoulder arm and wrist movement. The robot in the first figure is
able to rotate the gripper wrist along with 5 dof movements.
2.KINEMATICS- GEOMETRY OF MOTION
2.1. Coordinate Systems
For the analysis of motion of this arm, one can place coordinate
systems with origins at each joint. The choice is there of using
the Euler notation or the Denavit Hartenberg system [3]. One can
also write Transformation matrices ( A matrix) at each joint and
align with x, y, z directions and get an overall transformation
matrix. Regardless of the choice, one is faced with the problem
of moving from Point A to Point B in the most “efficient”
fashion. That is to say, since there are three intervening joints
between the base azimuthal rotator motor and the gripper, there
are alternatively many ways in which the arm can move. Hence,
it is suggested by at least one authority [4] that the inverse
kinematics be looked at, i.e., go backwards from Point B to Point
A. It is at this stage that the study of RTM (Robot Time Motion)
studies comes in. In the factory, CNC workshop, or other small
workplace there would be varying effect on the energy bill. If a
software such as a CADCAM program is used, some ergonomics
may already be built in to the program at the simulation stage,
although not explicitly.
3 .Inverse Kinematics
In this particular aspect the goal coordinates are known, with
unknown intervening angles. The problem is to solve for those
angles. These are the mathematically solved coordinates for the
locations of the linked parts when the end goal is reached.
However, these may not be the most efficient or time saving
motions to reach the goal. One of the ways to perform the
inverse solution is to use the Euler angles defined in [4].
Dynamics are analysed by Lagrange Euler and Newton Euler
formulations [5]. An alternative transformation using
homogenous transform matrices is given by Groover [6], Path
control, not merely the end point is the crucial aspect in RTM
analysis. In Slew motion, each joint axis begins moving at the
same time. However this alternative leads to unnecessary wear
and unknown effects on the machine. In Joint interpolated
control, straight line interpolations are used with corresponding
effects on accuracy. It is clear that the optimum path may not be
optimum in terms of efficiency in RTM, however. Sample
programs are given in Groover [7], for picking and placing.
Fu and Gonzalez[ ] discuss the energy involved in motion of the
robot, which is also regardable as a criterion in the study of the
ergonomics of motion. However the most efficient in terms of
time may not be the least energetic in terms of force and motion
product which comes to be work.
4 Constructing assembly and running PUMA 5dof
robot
A kit supplied by a Taiwan manufacturer which has a usb
interface for linking with software on a pc was used with
Windows XPII. The kit has plastic gears, wires, complete set of
screws, usb controller and body parts. The finished assembly is
shown in Fig [3].
FIGURE 3 : TAIWAN Robot arm (5 degree of freedom)
At first, on switching on the unit, nothing happened, as the
controlled was not linked to the computer. Windows 7 did
not work because of driver incompatibility. The supplied driver
works with Windows XP2, and the hand moves under control
from the software interface, where angles, velocities and positions
can be controlled via each joint moving separately using the
3. cursor. Alternatively, each joint could be controlled
simultaneously using key control. Motions can be recorded in
program mode and played back. The machine code can be stored
as programs and looked at in Notepad. Samples are shown here.
Interpolation schemes are not available in this simple model,
however lead through programming with storage of the
movements and playback, as well as loading a prerecorded
program are possible. Additionally, a LED light can be switched
on and off in the gripper assembly.
A simple gripper program is outlined in Groover[9 ],
Step Move or Signal Comments
0 1,1 Start at home posn
1 8,1 Move to wait position
2 Wait 11 Wait for press to open
3 8 ,8 Move to Pickup Point
4 Signal 5 Signal gripper to close
5 8,1 Move to safe position
6 Signal 4 Signal press to actuate
7 1,1 Move around press column
8 1,8 Move to totepan
9 Signal 6 signal gripper to open
10 1,1 Move to safe position
It is seen that after step 4, the cycle repeats with different
actions. Call by reference is used where names are
associated with points, ie when the robot is directed to go to
a point name it proceeds to the coordinates associated with
the point name. For example SAFE, PICKUP, INTER are
names of predefined points. SAFE would be a location
where the robot would go which is presumably an open area
unaffected by other moving parts. Subroutines with
Branching commands are possible leading to complex
programs, and are given in Groover[ 7].
A sample Denavit Hartenberg Ttranform for a Puma robot
is given in MATLAB as
function [T] = DHtrans(theta, offset,
length, twist)
=[cos(theta)-sin(theta)*cos(twist)
sin(theta)*sin(twist) length*cos(theta)
sin(theta)cos(theta)*cos(twist)-
cos(theta)*sin(twist) length*sin(theta)
0 sin(twist) cos(twist) offset
0 0 0 1 ];
Where the parameters are defined in the Table
TABLE 1
link variable theta offset length twist
1 theta1 theta1 d1 0 pi/2
2 theta2 theta2 0 l2 0
3 theta3 theta3 0 l3 0
Specific values for a PUMA robot are shown in Table 2
TABLE 2
Example of PUMA 560 Parameters
5 PALLETISATION
This is a part of the curriculum for the laboratory at VTU in
the Industrial robotic course. Palletisation as is commonly
understood consists of repetitive pickup and drop from the
same point over a moving conveyor belt, and also going to
an array of objects, pickup and placing in a stack or a series
of steps, where the array can be 2D or 3D. In case of an
array the robot arm must know how to proceed in picking
up the objects, incrementing for the next location and
placing the picked up object in the correct stack or step.
This can be done by appropriate increments in a For-Do
loop or While-Do loop. The economic use of commands is
of course a programming art, and is possible for robotic
programming just as it is for other programs. The first
generation programs were replaced by second generation
programs where such programming artifices were more
feasible. For example on many CNC machines in use in
industry, machine level programs are generated through a
higher level CAD CAM program which can generate codes,
simulate it on the screen and output code in ML format.
CNC machines are also robots, although one usually
associates a locomotive walking mechanism or an arm with
a gripper with a Robot, no doubt due to the influence of the
media , and popular press.
Joint i i i ai(mm) di(mm)
1 1 -90 0 0
2 2 0 431.8 149.09
3 3 90 -20.32 0
4 4 -90 0 433.07
5 5 90 0 0
6 6 0 0 56.25
4. A sample subroutine program from the LOGICDESIGN
Robologix program is attached for pallet pickup
Program DEPAL
1 LBL 1
2 Depalletize (229)
3 LP(3) 100 c,/sec
4 Wait 2 seconds
5 Gripper close
6 Pal_end
7 AP[4] 100 deg/sec
8 Gripper open
9 JMP_LBL 1
It can be seen that this sequence returns to the first position and
can be incremented suitably by defining the LBL 1 values. The
ROBOLOGIX program has a graphic interface with several
Camera views, and numerous inputs. A simulation is displayed
of the moving conveyor belt with objects and the arm and gripper
moving to and fro.
A general program should be able to do a repetitive loop which
would apply to moving from rest to a position above a moving
conveyor belt, picking up objects and returning to the start
position and releasing and dropping the object.
A Complete example for ROBOLOGIX is given below:
Program code
Conveyor 1 FWD
WAIT 20 seconds
LBL 1
R[0] = R[0] + R[1]
Conveyor 1 FWD
AP[0] 100 deg/sec
LP [1] 100 cm/sec
WAIT 4 seconds
GRIPPER Close
LP [0] 100 cm/sec
Conveyor 1 FWD
AP[2] 100 deg/sec
PALLETIZE ( 3 3
2)
LP [3] 100 cm/sec
GRIPPER Open
WAIT 4 seconds
PAL _END
IF R[0] <= R[2]
THEN
JMP_LBL 1
Comment
Start Conveyor 1
Load workpiece
Start palletizing routine
Increment register instruction
Restart Conveyor 1
Move to 1st position point
Move to 2nd (grip) position point
Wait for workpiece to settle
Pick up workpiece
Retract to 1st position point
Restart Conveyor 1
Move towards pallet (3rd pos.
point)
Set palletize parameters
Move closer to pallet (4th pos.
point)
Release workpiece
Wait for workpiece to settle
Close palletize parameters
Compare contents of two
registers
Jump to LBL 1
FIGURE 4: stacking array for the ROBOLOGIX program
Another variation is picking up for a bin and placing on a
conveyor belt. In this variant the synchronization problem with
the moving objects to be picked up as in the first variant is not
there. It does not increment the drop off point or pick up point,
and assumes the objects fall into a bin or are available on a push
stack. A refinement would be to increment the drop off point so
that the stacked objects are ordered in some fashion. Also the
pick up of objects from the conveyor belt assumes the moving
object to be exactly in place for the pick up, as in a Push up stack.
Another refinement of the Palletisation program is to put the basic
routine into a do-while or for – do loop with appropriate
incrementing so that the pick up and drop off points are varied
across known values corresponding to the geometric array.
The palletisation can be embedded into a loop with 3 dimensions,
provided the variables are declared and defined appropriately at
the definition stage as suitable array variables.
Gripper open and close Program:
CIC TAIWAN-ROBOTARM
-10, 0, 0, 0, 0, 2, 0, 10
10, 0, 0, 0, 0, 1, 0, 10
BASE ROTATE CW and Anti CW Program
CIC TAIWAN-ROBOTARM
0, 0, 0, 0, 56, 0, 1, 56
0, 0, 0, 0,-100, 0, 2, 100
5. The parameters 1,and 2 found in both listings correspond to
open and close and Cw , Anti Cw, whilst the others
correspond to positions. The angles of rotation are different
for CW and CCW.
A program for the robot in figure 2 is shown below:
http://hackaday.io/project/2055-high-accuracy-4-dof-
palletizing-robot-arm
module barSmooth2Point(L, r1, r2, b1, b2){
/* L = bar length, center-to-center
r1 = total bar radius at one end
r2 = total bar radius at other end
b1 = bolt diameter (not radius) at one end
b2 = bolt diameter (not radius) at other end */
difference()
{
union()
{
rotate([90,0,90]) cylinder(h = L, r1 = r1, r2 = r2,
center = false, $fn = 6);
cylinder (h = 10, r=r1, center = true, $fn=100);
translate([L,0,0]) cylinder (h = 10, r=r2, center =
true, $fn=100);
}
cylinder(h=12, r=b1/2, center=true, $fn=100);
translate([L,0,0]) cylinder(h=12, r=b2/2,
center=true, $fn=100);
}
}
module barRadius2Point(L,w, r1, r2, b1, b2){
/* L = bar length, center-to-center
w = bar width
r1 = total bar radius at one end
r2 = total bar radius at other end
b1 = bolt diameter (not radius) at one end
b2 = bolt diameter (not radius) at other end */
difference()
{
union()
{
rotate([90,0,90]) cylinder(h = L, r1 = w/2, r2 = w/2,
center = false, $fn = 6);
cylinder (h = 10, r=r1, center = true, $fn=100);
translate([L,0,0]) cylinder (h = 10, r=r2, center =
true, $fn=100);
}
cylinder(h=12, r=b1/2, center=true, $fn=100);
translate([L,0,0]) cylinder(h=12, r=b2/2,
center=true, $fn=100);
}
}
module barRadius3Point(L1,w1,L2,w2,r1, r2, r3,
b1, b2, b3){
/* L1 = bar length, center-to-center of first section
w1 = bar width of first section
L1 = bar length, center-to-center of second section
w2 = bar width of second section
r1 = total bar radius at one end
r2 = total bar radius at other end
b1 = bolt diameter (not radius) at one end
b2 = bolt diameter (not radius) at other end */
difference()
{
union()
{
rotate([90,0,90]) cylinder(h = L1, r1 = w1/2, r2 =
w1/2, center = false, $fn = 6);
translate([L1,0,0]) rotate([90,0,90]) cylinder(h =
L2, r1 = w2/2, r2 = w2/2, center = false, $fn = 6);
cylinder (h = 10, r=r1, center = true, $fn=100);
translate([L1,0,0]) cylinder (h = 10, r=r2, center =
true, $fn=100);
translate([L2+L1,0,0]) cylinder (h = 10, r=r3, center
= true, $fn=100);
}
cylinder(h=12, r=b1/2, center=true, $fn=100);
translate([L1,0,0]) cylinder(h=12, r=b2/2,
center=true, $fn=100);
translate([L2+L1,0,0]) cylinder(h=12, r=b3/2,
center=true, $fn=100);
}
}
//projection(cut=false)
barSmooth2Point(100,5,8,2,3);
//projection(cut=false)
barRadius2Point(100,10,5,8,2,3);
projection(cut=false)
barRadius3Point(100,10,50,16,5,8,10,2,3,4);
6. . I
I
Speed setting
Setting the grid point 1 of pallet 1
Move above position 1
Speed setting
Moves to position 1
Grasps workpiece
Moves above position 1
Row counter +1
NO
Row is finished ?
Each motor corresponds to one degree of freedom, hence the
subroutine is called four times for one cycle using 4 motors.
Simultaneous operation would result in overshoot and slew
action.
6 RTM concepts and energy consumption
The Time and Motion Study for human workers initiated by
Gilbreth[ 2 ] listed several basic motions termed as Therbligs. In
the case of a robot arm with 5 or 6 d.o.f. corresponding units of
motion need to be considered. In the case of Therbligs,
combinations of arm, elbow, wrist and shoulder are involved.
The analogous motions for a robot would be the Slew motion,
while unit motions would correspond to the Euler angles or in the
D H representation, the elementary angles in various planes. In
either case, a trajectory and work is involved. The most efficient
trajectory in terms of time may or may not be the least energy
consuming. There are various factors to be considered like
a. Work volume
b. Obstacle avoidance
c. Loads and moments on the joints.
In the planning of the trajectory, further constraints need to be
kept in mind:
a. The motion of the hand to be directed away from the
object when picking up
b. Similarly when placing down the object, the correct
approach direction and velocity need to be considered
c. Parameters such as lift off, slow down initial and final
points must be made available to the robot
d. Initial velocities, accelerations and final velocities and
accelerations are usually zero.
e. Maximum times of the intermediate joint motions are
used for normalization.
Planning the trajectory by a translation and two rotations was
described by Paul[ 10 ], and Taylor[11 ]. Lee [12 ] developed an
algorithm to calculate trajectories based on smoothness and
torque constraints. However, the aspect of ergonomics is not
considered in light of RTM except in calculation of energies, but
not in efficiency of motion, i.e., the least number of steps to do a
task and time involved.
The study of the trajectory and force analysis of the manipulator
gets to be highly mathematical and involved with eventual resort
to interpolation and spline techniques. When many operations are
involved with multiple tasks, the power consumption has to be
balanced with time and a trade-off arrived at.
Four major groups to be considered are given by Groover [9 ] :
Motion elements, Sensing elements, End effector elements,
Delay elements.
These may be termed as Basic robot motions and called
“ROBLIGS”In the case of the two dimensional array of a pallet,
the tool can traverse row by row starting at the LHS for each row
pass. The points are numbered 1,2,3
4,5,6
7.8.9
Here two diagonal passes are required to complete the task, taking
a total length of 6 units along the rows together with 2*sqrt(5)
for the diagonals. If the numbering is done as
1,2,3
6,5,4
7,8,9
The tool would have to move only 8 units, without the
diagonal sweep.
Another numbering of the array is possible as
1,2,3
8,9,4
7,6,5
Leading to a total pass of 8 units.
This is also seen to be efficient in terms of length and assuming
the velocity to be the same for each unit, for work. The diagonal
sweep may be avoided since there is a possibility of knocking off
pieces is the height is not set properly.
Similar considerations may be applied for a 3D array of objects
which is to be palletized. Here one must make sure to start at the
top layer and work one’s way down layer by layer picking pieces
and moving to the drop off point(s) or conveyor belt.
SUBROUTINE
Moves above position 2
Speed setting
Moves to position 2
Release workpiece
Moves above position 2
Row counter +1
NO
Row is finished?
YES
Initializes row counter
Column counter +1
Return to main
program
Initializes row counter
Column counter +1
Return to main
program
7. 7 APPLICATIONS
7.1 .TO SPACE REMOTE VEHICLES
Recently a space probe was landed on a comet by European
Space Agency and was dormant for several months because of
power outage and no solar charging. It is now understood how
important RTM is in design, because if a more efficient sequence
of motions was employed, more power could have been saved.
Similar concepts must apply to Mars and Lunar rovers [ 13] first
implemented in 2001. As is evident by several expensive
failures which need be recounted, the budgeting of energy is of
vital importance. The arm with various attachments like grippers,
scoops, drills have been used by various space experiments.
7.2. EXTENSIONS to the human body
(EXOSKELETONS):
The advantage of the exoskeleton is through motion
refinement and force amplification. Immediate applications
that are feasible are those for medical work (surgery),[14],
and military use.
In the viewpoint of ROBLIGS, THERBLIGS and efficiency,
preprogrammed actions for RTM can modify the inputs given to
the arm and then produce accurate directed motions modified
through a preprogrammed control unit. For instance, the order to
move in an arc from point 1 to point 2 would be executed by a
linked arm in separate actions through separate axes and angles,
instead of a Slew action which would have errors associated with
it.
Many other uses exist for robotic arms and mechanisms in
Industry, replacing Human effort with more efficient machines
that do not get tired and make errors due to repetition, saving
time, labour and avoiding accidents, while improving efficiency .
7.3 Extension to reprogramming Automation and
Factory robotics
As a step to reduce energy consumption and improve
ergonomics in the factory workplace, the number of
effective motions of automated assemblies can be
reprogrammed so as to remove un necessary motions, in
keeping with the principles of Work Study of Gilbreth and
Therbligs. What is proposed here are equivalent key
motions for robotics here termed as ROBLIGS. Further
study of each industrial robot and the particular work it
performs would need to be done to eliminate unnecessary
movements and reduce energy consumption. This could be
done at the programming stage and also at the simulations
stage, but the proof of the pudding would be in the actual
performance in the workplace.
8. References
[1] F.W. Taylor, Principles of Scientific Management, Harper, NY,NY
,(1911)
[2] F.B. Gilbreth, Primer of Scientific Management, Hive, Easton,Md.,
(1973)
[3] J.Denavit and R S Hartenberg, “A kinetic notation for lower pair
mechanism based on matrices”, Journal of Appl. Mech,ASME,
June (1955.)
[4] S R Deb and S Deb, Robotics Technology and Flexible
Automation,McGraw Hill, N Dehi, (2014).
[5] K.S. Fu, R C Gonzalez and CS Lee , Robotics Control, Sensing
Vision and Intelligence, Mc Graw Hill Intl, NY, NY, (1987)
[6] M.P. Groover, M Weiss, R Nagel, N Odrey, Industrial Robotics,
Technology Programming and Applications, McGraw Hill Intl,
NY,NY,, p94-101., (1986)
[7] M.P. Groover, M Weiss, R Nagel, N Odrey, Industrial Robotics,
Technology Programming and Applications, McGraw Hill Intl,
NY,NY, 214-244, (1986)
[8] K.S. Fu, R C Gonzalez and CS Lee , Robotics Control, Sensing
Vision and Intelligence, Mc Graw Hill Intl, NY, NY, 89-93, (1987)
[9] M.P. Groover, M Weiss, R Nagel, N Odrey, Industrial Robotics,
Technology Programming and Applications, McGraw Hill Intl,
NY,NY, 203, (1986)
[10] R P Paul, Robot Manipulator Mathematics Planning and Control,
MIT Press, Cambridge, Ma, 1981.
[11] R H.Taylor, “Plannimng and Execution of Straight Line
Manipulator Trajectories”, IBM J. Res. Devel., V23,4, 424-46.
[12] C S G Lee and D Huang, “ A Geometric Approach to Deriving
Position/Force Trajectory in Fine Motion”, IEEE Intl Conf Robotics
automation, St Louis,MO, 691-697(1985)
[13] R G Bonitz, T T Nguyen W S Kim, “ The Mars Surveyor ’01 Rover
and Robotic arm”, Proc IEEE Conference on Robotics and
Automata, 2000
[14] R Kumar, P Berkelman, P Guptra etal, “Preliminary experiments in
Cooperative Human/Robot control fro Robot asisted Microsurgical
Manipulation”, Proc IEEE Intl Conf on Robotics, 2000
Acknowledgments: Thanks are extended to Sri Anirudh
Bhat and Vijeyaendra, MTech students Sambhram Institute
of Technology for assembly of the robot arm.