Calculus 2 Project Report HCMUT-2
Calculus 2 Project Report HCMUT-2
Project Report
Topic:
ARM ROBOTS MOVE USING MATRIX OPERATIONS
Subject: Calculus 2
Instructor: Assoc. Prof. Phan Thanh An
Completion Day: March 22nd , 2025
Abstract 4
1 Introduction 5
1.1 Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Current Situation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Significance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Theoretical Basis 6
2.1 Overview of the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Key Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Denavit-Hartenberg Conventions . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Global Coordinate Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 Classical Denavit-Hartenberg Parameters – Four Parameters . . . . . . . 10
2.6 Denavit-Hartenberg Matrix and Application of Those Matrices . . . . . . 11
2.6.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6.2 Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.7 Kinematics and Dynamics in Denavit-Hartenberg Matrix . . . . . . . . . 13
2.7.1 Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.7.2 Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.8 Modified Denavit-Hartenberg Parameters . . . . . . . . . . . . . . . . . . 15
2.9 Forward and Inverse Kinematics . . . . . . . . . . . . . . . . . . . . . . . 16
2.9.1 Forward Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.9.2 Inverse Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Experiment 18
3.1 MATLAB Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Example Case For 6 joints manipulator robot . . . . . . . . . . . . . . . 21
4 Conclusion 22
4.1 Strengths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2 Weaknesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3.1 Standard Denavit – Hartenberg and modified Denavit – Hartenberg
methods in robotics modeling and robotic arms . . . . . . . . . . 23
5 Potential Growth 27
6 Key Takeaway 27
6.1 Applications of D-H Parameters . . . . . . . . . . . . . . . . . . . . . . . 27
7 References 29
Acknowledgments
We would like to express our sincere gratitude to all those who supported and guided us
throughout the completion of this project. First and foremost, we are deeply thankful to
our lecturer, Assoc. Prof. Phan Thanh An, whose invaluable guidance, encouragement,
and insight were crucial in shaping this work. We would also like to extend our thanks to
the Ho Chi Minh City University of Technology, Faculty of Applied Science, for providing
a conducive environment and the resources necessary for this project. Finally, we would
like to appreciate the contributions of our fellow classmates, whose collaboration and
discussions greatly enriched our understanding of robotics and matrix operations. This
project has been a significant learning experience, and we are truly thankful to everyone
who made it possible.
Abstract
The precise control and movement of robotic manipulators are underpinned by funda-
mental mathematical frameworks, with matrix operations playing a central role in their
kinematic and dynamic modeling. This study investigates the application of transfor-
mation matrices to systematically represent and compute spatial movements, including
translation, rotation, and scaling. By employing forward and inverse kinematic models,
the relationship between joint parameters and the end-effector’s position and orienta-
tion is rigorously established. Through simulation and analytical evaluation, the project
demonstrates the effectiveness of matrix-based methodologies in achieving accurate, effi-
cient, and reliable robotic arm control. The findings underscore the critical importance
of linear algebraic approaches in the advancement of robotic systems and contribute to
the integration of theoretical mathematical models into practical, real-world robotic ap-
plications.
1 Introduction
1.1 Rationale
The integration of robotics into various sectors has created a growing demand for
precise, efficient, and intelligent control mechanisms. Among these, robotic arms are
extensively utilized for tasks requiring high accuracy and consistency. Understanding
the mathematical principles that govern their movement is essential for both academic
research and practical implementation.
1.3 Solution
Matrix operations, particularly in the context of transformation and kinematic equa-
tions, provide a systematic and scalable method for modeling and controlling robotic
motion. These operations allow for precise manipulation of the robotic arm’s position
and orientation in three-dimensional space, making them fundamental to the development
of advanced robotic systems.
1.4 Objective
Robotic manipulators are integral to contemporary automation, manufacturing, and
high-precision technological applications due to their capacity for executing complex and
repetitive tasks with high accuracy. The control and articulation of these systems are
grounded in mathematical frameworks, particularly through the application of matrix
operations within linear algebra. Transformation matrices serve as essential tools for
modeling spatial operations, such as rotation, translation, and scaling, thereby facilitating
the precise calculation of a robotic arm’s position and orientation. Techniques such
as forward and inverse kinematics, expressed through matrix formulations, enable the
determination of joint configurations and end-effector trajectories. This study aims to
explore the pivotal role of matrix operations in robotic arm control, emphasizing their
relevance in both theoretical modeling and practical implementation.
1.5 Significance
The project endeavors to enhance comprehension of kinematic structures, simulate
robotic movement through computational methods, and assess the performance of matrix-
driven control systems in applied contexts. Through this investigation, the work con-
tributes to the advancement of intelligent and mathematically robust robotic technolo-
gies.
2 Theoretical Basis
2.1 Overview of the Model
A typical robot arm will have many complex movements that are formed by the coordi-
nation of various parts, creating flexibility and diversity in the way the robot reacts to the
environment. To model the kinematics of robotic manipulators, especially arm robots,
a structured approach to describe the movement and position of each component in a
simple way is essential. The Denavit-Hartenberg technique (also called D-H technique)
is a fundamental approach for this purpose, as it systematically represents the kinematic
motion of robotic parts through mathematical parameters, which shorten the time to
calculate and easily manage.
We simplify the structure of a robot arm as a series of links (rigid parts) and joints
(moving parts). These parts are connected to each other in a systematic way: In the
initial situation, each link has a specific position and orientation in space that can be
recognized in the Oxyz reference frame, and when a joint moves, it changes the position
and orientation of the subsequent links. As the robot arm has more joints, describing its
movements becomes more challenging. The Denavit-Hartenberg method helps to describe
the movements in a precise and systematic way by using four parameters (d, θ, r, α) to
describe the spatial relationships that influence each other between the robot parts.
This technique solves the problem by defining a consistent set of rules and parameters,
simplifying the robot’s movements into manageable mathematical expressions, regardless
of the complexity of the robot. Therefore, the Denavit-Hartenberg method is widely used
in robotic arms such as industrial robots or surgical robots.
2. Joint frames
3. End-effector frame: Coordinate frames for the end effector of the robot arm (i.e.,
the gripper, hand, etc., that piece of the robot that has a direct effect on the
environment).
1. Each joint has a local coordinate frame: Assigning each joint and link to its own
coordinate system instead of using one overall coordinate system for the entire robot
arm.
2. The z-axis is the axis of motion: For a revolute joint, the z-axis is the axis of
rotation. For a joint that moves in a straight line, the z-axis represents the direction
of movement.
3. To ensure the frames in the entire robot arm are assigned consistently, the x-axis is
defined along the common perpendicular between consecutive z-axes. This can be
represented by: xn = zn × zn−1 (or away from zn−1 ). (If there is no unique common
normal (parallel z axes), then d (will be mentioned below) is a free parameter. The
direction of xn is from zn−1 to zn .)
4. The y-axis follows from the x- and z-axes by choosing it to be a right-handed
coordinate system.
1. Link offset d: Offset along the previous z-axis to the common normal (The dis-
placement along the z-axis from a link to the next link. This value is variable if the
joint is prismatic since it moves in a straight line).
2. Joint angle θ: Angle about the previous z-axis from old x-axis to new x-axis (The
rotation around the z-axis that aligns a link’s x-axis with the next. This value is
variable if the joint is revolute).
3. Link length r: Length of the common normal (Measuring along the x-axis of the
current coordinate frame, this is the distance between two consecutive joint axes.
If this is a revolute joint, this is the radius about the previous z-axis).
4. Link twist α: Angle about the common normal, from old z-axis to new z-axis
(Measuring around the x-axis, this is the angle that rotates a joint’s z-axis to align
with the next joint’s z-axis, measured around the x-axis).
With these parameters, we can determine the motion of the links around the joint axis
Si by the matrix:
cos θi − sin θi 0 0
sin θi cos θi 0 0
[Zi ] =
0
0 1 di
0 0 0 1
Additionally, the dimensions of each link are defined by the screw displacement around
the common normal Ai,i+1 from the joint Si to Si+1 . This is given by the matrix:
1 0 0 ri
0 cos αi − sin αi 0
[Xi ] =
0 sin αi cos αi 0
0 0 0 1
Then, we can define the transition from one frame to the next, represented as follows:
0 0 0 1
Using this notation, each link can be described by a coordinate transformation from
the previous coordinate system to the next coordinate system.
The matrices associated with these operations are:
1 0 0 0
0 1 0 0
Transzn−1 (dn ) = 0 0 1 dn
0 0 0 1
cos θn − sin θn 0 0
sin θn cos θn 0 0
Rotzn−1 (θn ) =
0
0 1 0
0 0 0 1
1 0 0 rn
0 1 0 0
Transxn (rn ) =
0 0
1 0
0 0 0 1
1 0 0 0
0 cos αn − sin αn 0
Rotxn (αn ) =
0 sin αn
cos αn 0
0 0 0 1
This gives:
cos θn − sin θn cos αn sin θn sin αn rn cos θn
n−1
sin θn cos θn cos αn − cos θn sin αn rn sin θn R T
Tn =
= 000 1
0 sin αn cos αn dn
0 0 0 1
Where R is the 3×3 submatrix describing rotation and T is the 3×1 submatrix de-
scribing translation.
In some books, the order of transformation for a pair of consecutive rotation and
translation (such as [Zi ] and [Xi ]) is reversed. This is possible (despite the fact that in
general, matrix multiplication is not commutative) since translations and rotations are
concerned with the same axes zi and xi , respectively. As matrix multiplication order for
these pairs does not matter, the result is the same. For example:
2.6.2 Application
The use of Denavit-Hartenberg matrices gives a standard (distal) methodology to write
the kinematic equations of a manipulator. This is especially useful for serial manipulators
where a matrix is used to represent the pose (position and orientation) of one body with
respect to another.
The position of body i with respect to i − 1 may be represented by a position matrix
indicated with the symbol [i−1 Ti ].
This matrix is also used to transform a point from frame i to i − 1:
xi−1 xi
yi−1
= [i−1 Ti ] yi
zi−1 zi
1 1
The position of body n with respect to body 0 can be obtained as the product of the
matrices representing the pose of i with respect to i − 1 and that of i − 1 with respect to
i − 2:
[0 Tn ] = [0 T1 ][1 T2 ] . . . [n−1 Tn ]
An important property of Denavit-Hartenberg matrices is that the inverse is:
T
i−1 −1 Ri −RiT pi
[ Ti ] =
0 1
Where RiT is both the transpose and the inverse of the orthogonal matrix Ri , i.e.,
RiT Ri
= I.
vpoint = vi + ωi × r
2.7.2 Dynamics
For dynamics, three further matrices are necessary to describe the inertia, the linear
and angular momentum, and the forces and torques applied to a body.
Physics foundation:
Inertia, the property of a body by virtue of which it opposes any agency that attempts
to put it in motion or, if it is moving, to change the magnitude or direction of its velocity.
Inertia is a passive property and does not enable a body to do anything except oppose
such active agents as forces and torques. Newton’s first law of motion is also known as
the law of inertia. Inertia is the tendency for the mass to remain at rest or in motion in
the same direction unless acted upon by an unbalanced force.
The linear momentum of a particle (or an object, a system) can be explained as a
particle of mass m moving with a velocity v, which can be expressed as a product of mass
and velocity:
p = mv
Angular momentum is a vector quantity (more precisely, a pseudovector) that repre-
sents the product of a body’s rotational inertia and rotational velocity (in radians/sec)
about a particular axis. It is proportional to the moment of inertia I and the angular
speed ω measured in radians per second:
L = Iω
A force applied perpendicularly to a lever multiplied by its distance from the lever’s
fulcrum (the length of the lever arm) is its torque. Therefore, torque is defined as the
product of the magnitude of the perpendicular component of the force and the distance
of the line of action of a force from the point around which it is determined.
Calculus and Linear Algebra:
Inertia:
Ixx Ixy Ixz xg m
Iyx Iyy Iyz yg m
Izx Izy Izz zg m
xg m y g m z g m m
Where mi is the mass, rc,i represents the position of the center of mass, and the terms
Ixx , Ixy , . . . represent inertia and are defined as:
Z Z
2 2
Ixx = (y + z ) dm, Ixy = − xy dm, . . .
Action matrix containing force and torque: Momentum matrix containing linear and
angular momentum:
l
Pi = i
pi
All the matrices are represented with the vector components in a certain frame. Trans-
formation of the components from frame to frame follows the rule:
i
li Ri−1 0 li−1
= i i
pi ṙi−1,i Ri−1 Ri−1 pi−1
The matrices described allow the writing of the dynamic equations in a concise way.
Newton’s law:
l˙i + ωi × li
ni
=
fi ṗi
Momentum:
li Ii ωi
=
pi mi vi
The first of these equations expresses Newton’s law and is the equivalent of the vector
equation f = ma (force equals mass times acceleration) plus τ = I ω̇ + ω × Iω (angular
acceleration in function of inertia and angular velocity); the second equation permits the
evaluation of the linear and angular momentum when velocity and inertia are known.
The inverse kinematic robotics problem has been the focus of kinematic analysis for
robot manipulators. In order to determine all possible formations to place the end effector
of a robot manipulator at a particular point in space, we must compute the movements
associated with each joint variable. In doing so, over the span of several decades, authors
have faced the following difficulties:
3 Experiment
3.1 MATLAB Code
MATLAB Code: Robot Arm Simulation Using D-H Parameters
1 clc; clear; close all;
2
3 % D-H parameters
4 %- is 4x4 matrix
5 % - The last row is always [0, 0, 0, 1] (used to stabilize the result in
6 % matrix multiplication)
7 % - The first three columns of the three rows above are the rotation matrix
R(3x3) where each column represents the direction vector of the axes.
8 % - The three rows of the last column represent the origin coordinates of
the coordinate frame, where the joint starts to move
9
10 %"The D-H parameters, in practice, are usually constant, with only theta
and d changing according to the specific requirements
11 PI = pi;
12 d1 = 0.5; a1 = 0.2; alpha1 = PI/2;
13 d2 = 0.3; a2 = 0.4; alpha2 = 0;
14 d3 = 0.6; a3 = 0.3; alpha3 = -PI/2;
15 d4 = 0.4; a4 = 0.2; alpha4 = PI/2;
16 d5 = 0.55; a5 = 0.6; alpha5 = -PI/2;
17 d6 = 0; a6 = 0.1; alpha6 = 0;
18
19
20
21 % Final angle of motion (input from the user).
22 t1 = input(’Nhap theta1 : ’);
23 t2 = input(’Nhap theta2 : ’);
24 t3 = input(’Nhap theta3 : ’);
25 t4 = input(’Nhap theta4 : ’);
26 t5 = input(’Nhap theta5 : ’);
27 t6 = input(’Nhap theta6 : ’);
28
29 % Convert to radians.
30 theta1_end = deg2rad(t1);
31 theta2_end = deg2rad(t2);
32 theta3_end = deg2rad(t3);
33 theta4_end = deg2rad(t4);
34 theta5_end = deg2rad(t5);
35 theta6_end = deg2rad(t6);
36
37 % Create a motion time interval.
38 steps = 50;
39 theta1_values = linspace(0, theta1_end, steps);
40 %Return an array with evenly spaced values, calculated from the two values
(end - start) divided by the number of elements (steps).
41 theta2_values = linspace(0, theta2_end, steps);
42 theta3_values = linspace(0, theta3_end, steps);
43 theta4_values = linspace(0, theta4_end, steps);
44 theta5_values = linspace(0, theta5_end, steps);
45 theta6_values = linspace(0, theta6_end, steps);
46
47 % Initialize the plot.
48 figure; %Create a new graphical window.
49 ax = axes(); %Create a coordinate system and save it to the variable ax (
the main coordinate system).
50 hold on; %Keep the previous plots and add the new plot without removing the
old one.
51 grid on;%Display the grid on the coordinate system.
52 view(3);%Set the 3D view angle.
53 axis equal; %Set equal scaling on all axes.
54 axis([-2, 2, -2, 2, -1, 2]);
55 % Set display limits for all three axes, where the x-axis is defined by the
first two elements (from -1 to 1), and similarly for the other axes
56
57 xlabel(’X’); ylabel(’Y’); zlabel(’Z’); % Assign labels to the axes.
58 light(ax, ’Position’, [1, 1, 1], ’Style’, ’infinite’);
59 light(ax, ’Position’, [-1, -1, 1], ’Style’, ’infinite’);
60 % Loop to simulate the motion.
61 for num = 1:steps
62 cla; % Clear the old content, and create a new image for each movement
.
63
64 theta1 = theta1_values(num);
65 %Get the value of theta from the array theta_values above, with the
index corresponding to each step.
66 theta2 = theta2_values(num);
67 theta3 = theta3_values(num);
68 theta4 = theta4_values(num);
69 theta5 = theta5_values(num);
70 theta6 = theta6_values(num);
71
72 % Calculate the D-H transformation matrix for the joints.
73 T1 = dh_matrix(a1, alpha1, d1, theta1);
74 % accept parameters as the following parameters:
75 % angle theta is the rotational angle of the main axis (the Z-axis of
the joint)
76 % alpha angle is the angle between z(i) and z(i-1), typically 0, 90,
-90 degrees (it will be different from 0 if z(i) and z(i-1) are not
parallel).
77 % a is the length along the x-axis between the z(i) and z(i-1) axes.
78 % d is the distance between the two origins along the z(i) axis.
79 T2 = dh_matrix(a2, alpha2, d2, theta2);
80 T3 = dh_matrix(a3, alpha3, d3, theta3);
81 T4 = dh_matrix(a4, alpha4, d4, theta4);
82 T5 = dh_matrix(a5, alpha5, d5, theta5);
83 T6 = dh_matrix(a6, alpha6, d6, theta6);
84
85 T_total = T1 * T2 * T3 * T4 * T5 * T6;
86 if num == 1
87 disp([’T1’, ’:’]);
88 disp(T1);
89 disp([’T2’, ’:’]);
90 disp(T2);
91 disp([’T3’,’:’]);
92 disp(T3);
93 disp([’T4’, ’:’]);
94 disp(T4);
95 disp([’T5’, ’:’]);
96 disp(T5);
97 disp([’T6’,’:’]);
98 disp(T6);
99 end
100 %Multiply the matrices to get the composite D-H matrix.
101 %this is end-effector
102
103 plot_frame(ax,T1, ’K1’);
104 %Function to draw the coordinate frames of the joints.
105 %accept 3 parameters
106 % - Axis name, base frame variable
107 % - D-H transformation matrix, then extract the direction vectors of x,
y, z, and the origin vector of the joint’s coordinate frame, and
then use quiver3 to plot the axes - ax (explained above).
108 plot_frame(ax,T2, ’K2’);
109 plot_frame(ax,T3, ’K3’);
110 plot_frame(ax,T4, ’K4’);
111 plot_frame(ax,T5, ’K5’);
112 plot_frame(ax,T6, ’K6’);
113 plot_frame(ax,T_total, ’Obj’);
114
115 plot_link(ax,T1, T2);
116 %- T1,T2 is two D-H matrix of the joints needed connecting
117 radius_joint = 0.05; % Radius of the sphere representing the joint
118 radius_link = 0.01; % Radius of the cylinder representing the link
119 plot_link(ax,T2, T3);
120 plot_link(ax,T3, T4);
121 plot_link(ax,T4, T5);
122 plot_link(ax,T5, T6);
123 create_joint(ax, T1(1:3,4), radius_joint,’blue’);
124 %function to create a spherical solid of the joint, taking three
parameters: ax, the origin vector of the joint’s coordinate frame,
and the radius of the solid sphere.
125 create_joint(ax, T2(1:3,4), radius_joint,’red’);
126 create_joint(ax, T3(1:3,4), radius_joint,’cyan’);
127 create_joint(ax, T4(1:3,4), radius_joint,’red’);
128 create_joint(ax, T5(1:3,4), radius_joint,’magenta’);
129 create_joint(ax, T6(1:3,4), radius_joint,’white’);
130 create_joint(ax, T_total(1:3,4), radius_joint,’green’);
131 create_link(ax,T1(1:3,4), T2(1:3,4), radius_link,’green’);
132 %Function to create a cylindrical solid of the links between joints,
taking four parameters: ax, the origin vectors of the two connected
joints, and the cylinder radius.
133 create_link(ax,T2(1:3,4), T3(1:3,4), radius_link,’red’);
134 create_link(ax,T3(1:3,4), T4(1:3,4), radius_link,’blue’);
135 create_link(ax,T4(1:3,4), T5(1:3,4), radius_link,’magenta’);
136 create_link(ax,T5(1:3,4), T6(1:3,4), radius_link,’cyan’);
137 create_link(ax,T6(1:3,4), T_total(1:3,4), radius_link,’blue’);
138 pause(0.1); % Time interval between frames (in seconds).
139 end
140 disp([’T1’, ’:’]);
141 disp(T1);
142 disp([’T2’, ’:’]);
143 disp(T2);
144 disp([’T3’,’:’]);
145 disp(T3);
146 disp([’T4’, ’:’]);
147 disp(T4);
148 disp([’T5’, ’:’]);
149 disp(T5);
150 disp([’T6’,’:’]);
151 disp(T6);
With all the base theta = 0, and in this matlab program will take the theta(degree) at
next state( as input to illustrate the forward kinetic base on the movement of the robot
joints. At the start:
The K1,K2,..K6 is the joints of robot, and the object named “Obj” is the end-effector
of the robot. These are the D-H matrix of the 6 joints at start(K1 is T1)
4 Conclusion
4.1 Strengths
Robotics involve modeling different types of mechanisms, without Denavit–Hartenberg
convention, every robot could be functioned inconsistently. Since Denavit–Hartenberg
parameter method is simpler than the exponential formula of Screw-based theory, we can
easily put robotic arms using less than or equal to 6 degrees of freedom into practice.
Denavit–Hartenberg (D-H) parameters offer a standardized, intuitive method for mod-
eling the kinematics of serial robotic arms by representing each joint with just four param-
eters—making complex transformations between links systematic and easy to compute.
Widely used in industrial robotics and supported by many software tools, the D-H con-
vention simplifies forward kinematics through repeatable transformation matrices. More-
over, this modular structure also supports inverse kinematics approximations, making it
ideal for serial chains. Its simplicity and clear geometric meaning make it accessible for
beginners, easy to implement in code, and efficient for typical manipulator designs. It’s
also well-integrated with tools like MATLAB and Robot Operating System. Making it
especially useful in both robot engineering and academic fields, its links and joints can
be defined independently and added sequentially, which is great for modifying existing
kinematics of the robotic arms.
4.2 Weaknesses
Even though Denavit–Hartenberg parameters method is one of the most effective and
simple way to derive the kinematics of a robot mechanisms, but due to the relatively
complicated modeling processes of robotic arms nowadays, D-H parameters method is
quite out of place. For example, it assumes links and joints are ideal and rigid. It cannot
capture flexibility, compliance, or joint coupling, which are common in real robots, there
values may not be accurate due to errors such as manufacturing inaccuracies or joints
offsets. This leads to unwanted positioning inaccuracies of the robot. There are several
degrees of freedom to establish several coordinates. The latter coordinate must be able
to be transformed to the previous one. In addition, the attitude of the mechanism will
also make modeling more difficult. One of the biggest disadvantages is that except for
the standard Stanford robot, the DH parameter method cannot truly represent the initial
coordinate position of each joint of the robot. Another weakness is that they can become
ill-conditioned. For instance, when two nearby joints axes are nearly parallel, the common
normal between the joint axes can vary wildly with small changes in the axes’ orienta-
tion. This ill-conditioned state of the D-H parameters makes their accurate measurement
and identification difficult, since robots typically have manufacturing and other errors,
a group of joint axes may deviate from being exactly parallel or from intersecting at a
single common point. The Denavit–Hartenberg (D-H) method is limited to kinematic
modeling, which defines the geometric relationships between links but lacks the ability to
represent physical properties like mass, inertia, and force. As a result, it cannot model
dynamics directly, which are essential for simulating or controlling motion under external
forces or torques. To perform dynamic analysis, D-H must be supplemented with other
frameworks such as Newton-Euler or Lagrangian formulations, which require additional
physical parameters not covered by D-H.
4.3 Comparison
4.3.1 Standard Denavit – Hartenberg and modified Denavit – Hartenberg
methods in robotics modeling and robotic arms
The standard and modified Denavit–Hartenberg (D-H) methods are both widely used
for representing the kinematics of serial robotic manipulators, but they differ in the way
coordinate frames are assigned and how the transformation matrices are constructed,
leading to notable differences in flexibility, clarity, and ease of implementation.
In the standard D-H method, coordinate frames are assigned such that the z-axis
lies along the axis of motion of joint i, and the x-axis is perpendicular to both zi−1 and zi ,
pointing along the common normal between these axes. The transformation from frame
i−1 to frame i is defined using four parameters: θi , di , ai , and αi . This convention ensures
consistency, but it introduces a reliance on aligning axes between adjacent frames, which
can make modeling robots with offset joints or intersecting axes more cumbersome and
unintuitive. It also places the rotation around the previous frame’s axis before translation
to the current frame, which sometimes leads to awkward parameter choices to satisfy the
conventions.
By contrast, the modified D-H method reorders the transformations to reflect a
different sequence: rotation around zi , then translation along zi , followed by translation
along xi and rotation about xi . This subtle change—assigning the joint rotation and
translation to the current joint’s axis rather than the previous—eliminates the need to
compute a common normal between two consecutive axes and generally simplifies frame
assignments. As a result, the modified D-H method is often more straightforward when
dealing with robots that have joint axes intersecting or offset in space, such as anthropo-
morphic or redundant manipulators. It also tends to align better with CAD models and
joint definitions from manufacturers, making it more intuitive in practice.
Another key difference lies in implementation. In the standard D-H method, the trans-
formation matrix applies from frame i − 1 to frame i, which sometimes requires users to
backtrack and reference earlier frames during modeling. In contrast, the modified D-H
convention typically defines each transformation from frame i to i + 1, making it easier to
build and debug sequentially, especially in software. Despite this, the standard method
remains dominant in many textbooks and legacy systems, particularly in industrial con-
texts where its conventions are already deeply integrated into design tools.
However, the choice between the two often depends on the application and the com-
plexity of the robot. For simple 6-DOF industrial arms with parallel or orthogonal joint
axes, the standard D-H method is often sufficient and well-supported. But for robots with
more complex or non-conventional kinematics, such as humanoid arms, surgical robots,
or manipulators with intersecting axes, the modified D-H method can reduce confusion,
errors, and implementation time.
Ultimately, both methods provide equivalent functionality in computing forward kine-
matics, and the preference between them typically comes down to ease of frame assign-
ment, alignment with physical hardware, and software compatibility. Understanding the
distinction is essential for roboticists to choose the most practical and error-resistant
approach for a given system.
a) Standard DH
Mechanisms with multiple degrees of freedom (DOF) are considered, where the two
coordinate systems—the fixed and the mobile—are initially aligned (overlapped). Using
the standard Denavit–Hartenberg (DHs) method, we begin by applying a rotation of
angle θ1 around the z-axis. This is followed by a translation along the new x-axis by a
distance a1 . The resulting coordinate frame at joint 1 is denoted as frame 1.
Similarly, for the next link, we apply a rotation of angle θ2 around its respective z-axis,
followed by a translation along the new x-axis by a value a2 . The resulting coordinate
frame at joint 2 is called frame 2.
All of these transformations are performed relative to the axes of the mobile coordinate
systems. This sequential transformation process simplifies modeling of multi-joint robotic
manipulators.
The equations of coordinate transformation between the system 2 and 0, are in matrix
notation, it is found by multiplying the matrices in the same sequence of the movements,
rotations and translation in each part of the link, like it is shown next.
Movements over link 1: the equations of coordinate’s transformations between the
fixed systems o0 x0 y0 .
The system o, x, y, after the rotation is represented by:
x0 cos θ1 − sin θ1 0 0 ∆x1 cos θ1 x1
y0 = sin θ1 cos θ1 0 1 ∆x1 sin θ1 y1
1 0 0 1 0 1 1
cos θ1 − sin θ1 ∆x1 cos θ1
A1 = sin θ1 cos θ1 ∆x1 sin θ1
0 0 1
Movements over link 2: Being the same base movements, the equation obtained to
transform coordinate systems from link 1 to link 2 using matrix notation we have:
x1 cos θ2 − sin θ2 0 1 0 ∆x2 x2 cos θ2 − sin θ2 ∆x2 cos θ2 x2
y1 = sin θ2 cos θ2 0 0 1 0 y2 = sin θ2 cos θ2 ∆x2 sin θ2 y2
1 0 0 1 0 0 1 1 0 0 1 1
cos θ2 − sin θ2 ∆x2 cos θ2 x0 x1
A2 = sin θ2 cos θ2 ∆x2 sin θ2
y0 = A2 y1
0 0 1 1 1
Matrix T of the arms: Replacing the two equations from movements over link 2,
to obtain the matrix of transformation of coordinates from the fixed coordinate system
0, to the final system 2, this matrix is known as the arm matrix.
Also, it is important to clarify that in most robotics books, to easily write the large
trigonometrical expressions, the use of subindex to represent the articular variables is
common. In that case, for example, cos θ1 is equivalent to writing c1 .
b) Modified DH method
Using the same mechanisms as figure 1, the fixed system has the coordinate system
called o1 x1 y1 . First, the mobile is rotated around Z at an angle θ1 , followed by a transla-
tion around the new axis x with a value of ∆x1 . This rotated and translated coordinate
system is called o2 x2 y2 , where the subscripts 1 indicate that the movements were around
joint 1.
Similarly, over link 2, a rotation θ2 is made around the z-axis; after that, a translation
is made with the new x-axis with value ∆x2 . To this rotated and translated coordinate
system is assigned the name o3 x3 y3 .
x0 x2
y0 = A1 A2 y2
1 1
c12 −s12 ∆x2 c12 + ∆x1 c1
T20 = A1 A2 = s12 c12 ∆x2 s12 + ∆x1 c1
0 0 1
x0 c12 −s12 ∆x2 c12 + ∆x1 c1 x2
y0 = s12 c12 ∆x2 s12 + ∆x1 c1 y2
1 0 0 1 1
Where: c12 = cos(θ1 + θ2 ); s12 = sin(θ1 + θ2 ); c1 = cos(θ1 ); s1 = sin(θ1 )
Fig. 10: assignation of the coordinated systems over the joints i, DH.
x0 x3 c12 −s12 ∆x2 c12 + ∆x1 c1
y0 = A1 A2 A3 y3 ⇒ T30 = A1 A2 A3 = s12 c12 ∆x2 s12 + ∆x1 c1
1 1 0 0 1
x0 c12 −s12 ∆x2 c12 + ∆x1 c1 x3
y0 = s12 c12 ∆x2 s12 + ∆x1 c1 y3
1 0 0 1 1
Explanation:
The present investigations confirm the principle of post and pre matrix multiplication
that is the fundamental base of matrix methods in robotics.
Post-multiplication principle said: if the movements of the coordinates system are with
respect to the axis of the last mobile coordinate system, then the matrix product should
be done in the same sequence of those movements.
Pre-multiplication principle said: if the movements of the coordinates system are with
respect to the fixed link, then the matrix product should be done in reverse sequence of
those movements.
The terms screw X or Z means that it has two movements: one of rotation and one
of translation, going forward along the corresponding axis.
The Denavit-Hartenberg method standard assigns coordinate systems to the link i
over the axis line that joins the link and the articulation i + 1, while the modified method
assigns coordinate systems to the joint i over the line that joins the articulation with the
link i + 1.
5 Potential Growth
The potential growth of robotic arms using matrix-based modeling via Denavit-Hartenberg
(D-H) parameters remains significant, particularly in industrial automation, collabora-
tive robotics, and emerging cost-sensitive applications. The D-H method enables fast,
modular computation of forward kinematics using homogeneous transformation matri-
ces, which makes it ideal for scalable control architectures, low-latency real-time systems,
and model-based trajectory planning. As demand for high-speed pick-and-place, welding,
and assembly robots grows in manufacturing, the D-H framework supports the integration
of multi-axis arms with minimal computational overhead. Moreover, the rise of low-cost,
open-source robotics platforms and educational kits often relies on D-H due to its sim-
plicity and ease of implementation. While advanced methods like Screw Theory and PoE
are growing in high-complexity research, the D-H matrix approach continues to evolve
through enhanced symbolic computation, optimization-assisted inverse kinematics, and
hybrid use with sensor feedback for calibration. Its compatibility with modern simula-
tion tools (e.g., MATLAB, ROS, Gazebo) ensures that matrix-based D-H modeling will
remain a backbone for fast-deploying, structured robotic arm solutions in both industry
and academia.
6 Key Takeaway
6.1 Applications of D-H Parameters
The kinematic chains of robotic arms can be systematically represented using Denavit-
Hartenberg (DH) characteristics. By offering a common notation for describing the rela-
tive positions and orientations of neighboring links, they make mathematical modeling of
robots easier. By precisely describing each joint in terms of a shared coordinate system,
the four DH parameters link length, link twist, link offset, and joint angle make it simpler
to construct the kinematic equations required to control the robot’s movement.
Industrial Robot Arms
Denavit – Hartenberg parameters are widely used to model kinematics of 6 degrees
of freedom manipulators in factories for wielding, packaging and assembling. A notable
example is the application of D-H parameters in calibrating industrial robots to enhance
their positional accuracy. The forward kinematics calibration process involves refining the
D-H parameters to improve the robot’s forward kinematics model; therefore, achieving
better precision in tasks such as wielding, packaging, assembling and material handling
as mentioned before. Furthermore, robotic arms are assigned coordinate frames accord-
ing to the D-H convention, which facilitates the development of equations required for
operating these systems. This approach is thoroughly discussed in tutorials and educa-
tional materials, giving engineers and programmers who deal with industrial robots a
solid understanding of the subject.
Figure 12. Denavit-Hartenberg parameters of the KUKA KR 210 R2700 EXTRA robot
Source: S. Yildiz, ”Modeling and Simulation of an Industrial Robot,” ResearchGate,
2021.
7 References
1. Denavit, J., & Hartenberg, R. S. (1955). A kinematic notation for lower-pair mech-
anisms based on matrices. ASME Journal of Applied Mechanisms, 23, 215–221.
3. Barrientos, A., Peñin, L., Balaguer, C., & Aracil, R. (2007). Fundamentos de
Robótica. McGraw-Hill.
4. Craig, J. (2005). Introduction to Robotics Mechanics and Control (3rd ed.). Pearson
Prentice Hall.
5. Fu, K., Gonzalez, R., & Lee, C. Robótica: Control, Detección, Visión e Inteligencia.
McGraw Hill.
6. Jochheim, A., Gerke, M., & Bischoff, A. (1999). Modeling and Simulation of Kine-
matic Systems. University of Hagen.
7. Mabie, H. (1987). Mechanism and Dynamics of Machinery. John Wiley & Son.
9. Shigley, J., & Uicker, J. (1988). Teorı́a De Maquinas Y Mecanismos. McGraw Hill.
10. Spong, M., Hutchinson, S., & Vidyasagar, M. (2004). Robot Dynamics and Control.
John Wiley & Sons, Inc.
11. Corke, P. I. (1996). A Robotics Toolbox for MATLAB. IEEE Robotics & Automa-
tion Magazine, 3(1), 24–32.