Kinematic Modeling and Control of the PUMA 560
Robot Arm using MATLAB
Liam Goss
ECE Dept., LCOE
California State University, Fresno
Course: ECE 173
Professor: Dr. Wu
Luigi Santiago-Villa
ECE Dept., LCOE
California State University, Fresno
Course: ECE 173
Professor: Dr. Wu
Abstract—This report presents the comprehensive modeling
and control of the PUMA 560 robot arm using MATLAB,
focusing on both forward and inverse kinematics. The project
utilizes the Robotics System Toolbox and Simscape to develop
a detailed 3D model of the robot, enabling accurate simula-
tions of the arm’s kinematic behavior and control strategies.
Forward kinematics were employed to determine the position
and orientation of the robot’s end-effector from given joint
angles, while inverse kinematics were used to calculate nec-
essary joint angles to achieve desired end-effector positions.
The project successfully demonstrates the robot’s capability to
perform precise movements, crucial for applications in industries
such as manufacturing and medical assistance. Through the
integration of MATLAB’s computational tools, this study not
only enhances the understanding of robotic motion and control
but also provides a valuable educational resource for advanced
robotics research. The outcomes show significant potential for
improving the efficiency and functionality of automated systems,
emphasizing the importance of kinematic analyses in developing
effective robotic solutions.
Index Terms—Robotics, Kinematic Modeling, PUMA 560
Robot Arm, MATLAB Simulation, Forward Kinematics, Inverse
Kinematics, Robotics System Toolbox, Control Systems, Engi-
neering Education, Industrial Automation
I. INTRODUCTION
The objective of this project is to model a PUMA 560 arm
in MATLAB and calculate the necessary forward and inverse
kinematics. The Robotics System Toolbox and Simscape [1]
will allow for the creation of a PUMA 560 model by lever-
aging the Denavit-Hartenberg parameters; this model will be
controlled by the forward and inverse kinematics and dynamics
calculation functions designed specifically for this project.
II. BACKGROUND
A. Kinematics
Forward kinematics is the mathematical process in which
a robot’s joint angles are used to calculate the location of its
end effector in space (the position and orientation). Forward
kinematics’ application to engineering is the prediction of the
gripper/tool/end effector position and orientation to help facil-
itate motion planning. Inverse kinematics is used to calculate
the joint angles needed to move the robot’s end effector to a
specific position. Inverse kinematics is essential for problems
where the end goal is known but the required joint movements
are unknown.
B. PUMA 560
The PUMA (Programmable Universal Machine for Assem-
bly) 560 is a 6-axis robotic arm developed by Unimation in
the late 1970s. The arm can deliver a 2.5 kg package within a
reach of 864mm. The device is typically utilized in industrial
applications, such as the automotive industry and electronics
manufacturing. In order to program the PUMA 560, the
user can design a specific task through the use of various
programming languages and even possess the ability to be
programmed through each pendant, which involves manually
moving the arm through the desired path.
C. DH Parameters
The Denavit-Hartenberg (DH) parameters are the four pa-
rameters used to perform the necessary transformations to
move from one frame to another. These parameters include
the twist angle (α), the link length (a), the offset (d), and the
joint angle (θ). The DH parameters are essential for defining
the orientation and position of each link relative to its previous
link. Using these definitions, forward and inverse kinematics
calculations can be performed.
Fig. 1: PUMA 560 Schematic Structure [12]
III. LITERATURE REVIEW
The current state of publications regarding the PUMA
560 and MATLAB provides a comprehensive overview of
the advancements in robotic arm kinematics, dynamics, and
control. For instance, the paper by Elgazzar [4] focuses on
efficient kinematic transformations for the PUMA 560 robot,
highlighting the importance of computational efficiency in