0% found this document useful (0 votes)
45 views29 pages

Calculus 2 Project Report HCMUT-2

Uploaded by

an.phung0411
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views29 pages

Calculus 2 Project Report HCMUT-2

Uploaded by

an.phung0411
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

VIETNAM NATIONAL UNIVERSITY HO CHI MINH CITY

HO CHI MINH CITY UNIVERSITY OF TECHNOLOGY


OFFICE FOR INTERNATIONAL STUDY PROGRAMS
ACADEMIC YEAR 2024-2025

Project Report
Topic:
ARM ROBOTS MOVE USING MATRIX OPERATIONS

Subject: Calculus 2
Instructor: Assoc. Prof. Phan Thanh An
Completion Day: March 22nd , 2025

Group Members Class Student ID


Nguyen Ngoc Minh Khue CC02 2452606
Nguyen Quang Khai CC02 2452513
Phung Thanh An CC02 2452025
Tran Khanh Nam CC02 2452801
Phan Bao Han CC08 2452322

Ho Chi Minh City - 2025


Contents
Acknowledgments 3

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.2 Current Situation


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.

Figure 1: Joints and Links of Robot

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.2 Key Concept


The Denavit-Hartenberg (DH) convention is a standardized method used in robotics to
describe the geometry and motion of serial manipulators. It assigns coordinate frames to
each link using four parameters: link length (ai ), link twist (αi ), link offset (di ), and joint
angle (θi ). These parameters define the relative position and orientation between adjacent
links through a homogeneous transformation matrix. By systematically applying the DH
parameters, complex robotic arms can be modeled efficiently, making it easier to perform
forward kinematics and simulate robot movement.

2.3 Denavit-Hartenberg Conventions


We can break down the robot into multiple links and joints, each with distinct prop-
erties, where the movement of one frame influences others according to predefined rules.
For each joint between links, we assign it a three-dimensional reference frame with three
vectors Ox, Oy, Oz, representing the component of each position throughout the process
the robot arms work. The D-H frame of a particular robotic arm can be classified as
follows:

1. Global coordinate frame

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).

Figure 2: Example robot arm and attached frames

To effectively model the movements of robot arms, the Denavit-Hartenberg method


specifies coordinate frames for each part with specific rules to ensure consistency not
only for each individual part but also for the entire robot arm. The coordinate frames
are assigned to the joint between links such that a movement is associated with the joint
[Z] and the second is associated with the link [X]. For the robot arm with many links
and joints, these conventions can describe the transformation of the entire robot from the
first part to the end effector of the robot arm. [Zn ], [Xn ] represent the movement of the
n-th joint and n-th link, respectively.
In the robot arm, we focus on understanding the motion of the end link. Assuming that
[T ] is the transformation that characterizes the location and orientation of the end-link,
[T ] is represented by:

[T ] = [Z1 ][X1 ][Z2 ][X2 ] . . . [Zn−1 ][Xn−1 ][Zn ][Xn ]


This equation shows that the movement of the end link is the result of successive co-
ordinate transformations in the robot, which gives rise to the robot’s kinematic equation.
To specify the [Z] and [X] coordinate transformations, joints and links are modeled
as offset or rotation. Each joint has a unique S line in space which forms the joint axis.
This S line also defines the relative movements of two links that the joint affects. The
number of lines is the number of independent movements that a robot can perform. The
more S lines, the more flexible the robot. A robot arm usually needs to be defined by at
least six lines to be able to move and orient itself freely in 3D space. To explain this, an
object can move in six ways in 3D space:

1. Translation along the X, Y , Z axes

2. Rotation around the X, Y , Z axes

Figure 3: Six degrees of freedom

A typical serial robot is characterized by a sequence of six lines Si (i = 1, 2, . . . , 6),


one for each joint in the robot. For each pair of lines Si and Si+1 , one or more common
normal lines Ai,i+1 can be created. The system of six joint axes Si and five common
normal lines form the kinematic skeleton of the typical robot. In fact, a robot arm can
be characterized by more or fewer lines.
The Denavit-Hartenberg conventions state that z-coordinate axes are assigned to the
joint axes Si and x-coordinate axes are assigned to the common normals Ai,i+1 . A sys-
tematic method for implementing this process uses the following key principles:

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.

Figure 4: The right-handed coordinate system

2.4 Global Coordinate Frame


The global coordinate frame is the original reference frame used to determine the
position and orientation of the entire robot in space. This is a fixed coordinate system
in space, usually located at the origin of the robot.
The global coordinate frame is the origin point to determine the end position of the
robot, supporting Forward Kinematics (FK) calculations by multiplying the Denavit-
Hartenberg transformation matrices to find the final position in the global system. For
a robot with many joints, the coordinate system of each joint will be described by the
corresponding transformations according to the Denavit-Hartenberg method. When mul-
tiplying the transformation matrices from the base to the end-effector, we get the position
and orientation of the end-effector in the global system.

[Tglobal ] = [T1 ][T2 ] . . . [Tn ]


2.5 Classical Denavit-Hartenberg Parameters – Four Parame-
ters
The Denavit-Hartenberg method uses four parameters to represent the movement of
the robot parts in space, from initial positions xi , yi , zi to later positions xi+1 , yi+1 , zi+1 ,
as follows:

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).

Figure 5: Denavit-Hartenberg Parameters

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:

[i−1 Ti ] = [Xi−1 ][Zi−1 ][Xi ][Zi ]

2.6 Denavit-Hartenberg Matrix and Application of Those Ma-


trices
2.6.1 Definition
It is common to separate a screw displacement into the product of a pure translation
along a line and a pure rotation about the line, so that:
 
cos θi − sin θi 0 0
 sin θi cos θi 0 0 
[Zi ] = 
 0

0 1 di 
0 0 0 1
 
1 0 0 ri
0 cos αi − sin αi 0 
[Xi ] = 0 sin αi cos αi 0 

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:

[Xi ][Zi ] = [Zi ][Xi ]


Therefore, we can write the transformation [i−1 Ti ] as follows:
 
cos θi − sin θi cos αi sin θi sin αi ri cos θi
 sin θi cos θi cos αi − cos θi sin αi ri sin θi 
[i−1 Ti ] = 
 0

sin αi cos αi di 
0 0 0 1

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.

2.7 Kinematics and Dynamics in Denavit-Hartenberg Matrix


2.7.1 Kinematics
Further matrices can be defined to represent velocity and acceleration of bodies. The
velocity of body i with respect to body i − 1 can be represented in frame i by the matrix:
 
ω
Vi = i
vi
where ωi is the angular velocity of body i with respect to body i − 1 and all the
components are expressed in frame i; vi is the velocity of one point of body i with respect
to body i − 1 (the pole). The pole is the point passing through the origin of frame i.
The acceleration matrix can be defined as the sum of the time derivative of the velocity
plus the velocity squared:
   
ω̇i ω̇i
Ai = =
ai v̇i + ωi × vi
The velocity and acceleration in frame i of a point of body i can be evaluated as:

vpoint = vi + ωi × r

apoint = ai + ω̇i × r + ωi × (ωi × r)


It is also possible to prove that:

vi = vi−1 + ωi−1 × ri−1,i

ai = ai−1 + ω̇i−1 × ri−1,i + ωi−1 × (ωi−1 × ri−1,i )


Velocity and acceleration matrices add up according to the following rules:

vabs = vparent + vrel

aabs = aparent + arel + aCoriolis


In other words, the absolute velocity is the sum of the parent velocity plus the relative
velocity; for the acceleration, the Coriolis term is also present.
The components of velocity and acceleration matrices are expressed in an arbitrary
frame and transform from one frame to another by the following rule:
   i
 
ωi Ri−1 0 ωi−1
= i i
vi ṙi−1,i Ri−1 Ri−1 vi−1
A Kinematic Chain is a robot manipulator in which each joint has at most two links.
Moreover, a Kinematic Chain is a serial link manipulator whose first link is connected
to the base and whose final joint is connected to just one link, leaving the remaining
end open. Thus, in a Kinematic Chain, no closed loops can be formed. There are two
types of kinematic problems: The Forward Kinematics Robotics Problem and The Inverse
Kinematics Robotics Problem.

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.

2.8 Modified Denavit-Hartenberg Parameters


Some books, such as Introduction to Robotics: Mechanics and Control (3rd Edition),
use modified (proximal) DH parameters. The difference between the classic (distal) DH
parameters and the modified DH parameters are the locations of the coordinate system
attachment to the links and the order of the performed transformations.
Compared with the classic DH parameters, the coordinates of frame i are put on axis
i − 1, not the axis i in the classic DH convention. The coordinates of i + 1 are put on the
axis i, not the axis i + 1 in the classic DH convention.
Another difference is that according to the modified convention, the transform matrix
is given by the following order of operations:

[i−1 Ti ] = [Zi ][Xi ]


Thus, the matrix of the modified DH parameters becomes:
 
cos θi − sin θi 0 ri−1
sin θi cos αi−1 cos θi cos αi−1 − sin αi−1 −di sin αi−1 
[i−1 Ti ] = 
 sin θi sin αi−1 cos θi sin αi−1 cos αi−1

di cos αi−1 
0 0 0 1
Note that some books use ri−1 and αi−1 to indicate the length and twist of link i − 1
rather than link i. Therefore, [i−1 Ti ] is formed only with parameters using the same
subscript.
Figure 6: Modified Denavit-Hartenberg Parameters

2.9 Forward and Inverse Kinematics


2.9.1 Forward Kinematics
In robot kinematics, forward kinematics refers to the exact position and orientation of
the robot hand (end effector) given a robot manipulator with specific joint angles.
The kinematics equations of the robot are used in robotics, computer games, and
animation. The reverse process, which computes the joint parameters that achieve a
specified position of the end-effector, is known as inverse kinematics. The kinematics
equations for the series chain of a robot are obtained using a rigid transformation [Z]
to characterize the relative movement allowed at each joint and a separate rigid trans-
formation [X] to define the dimensions of each link. The result is a sequence of rigid
transformations alternating joint and link transformations from the base of the chain to
its end link, which is equated to the specified position for the end link:

[T ] = [Z1 ][X1 ][Z2 ][X2 ] . . . [Zn ][Xn ]


Where [T ] is the transformation locating the end-link. These equations are called the
kinematics equations of the serial chain.
The DH method is one of the most methods used in forward kinematics, which rep-
resents the relationship of the joint coordinate between two links as shown in the figure
below.

2.9.2 Inverse Kinematics


Given an orientation and position for a robotic arm, we want to show that by finding
all possible combinations of joint settings, we can place the hand of the robot at this
exact point and orientation as shown below:
Figure 7: Forward Kinematics

Figure 8: Inverse Kinematics

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:

• The complexity of the inverse kinematic robotics problem is determined by the


geometry of the robot manipulator.
• Some calculations to solve the inverse kinematic problem cannot be computed in
real-time.
• There can be difficulty in finding all possible solutions.
• There can be difficulty in finding real solutions.

In computer animation and robotics, inverse kinematics is the mathematical process


of calculating the variable joint parameters needed to place the end of a kinematic chain,
such as a robot manipulator or animation character’s skeleton, in a given position and
orientation relative to the start of the chain. Inverse kinematics is also used to recover
the movements of an object in the world from some other data, such as a film of those
movements, or a film of the world as seen by a camera which is itself making those
movements. This occurs, for example, when a human actor’s filmed movements are
duplicated by an animated character.

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);

3.2 Example Case For 6 joints manipulator robot


Base example D-H parameters matrix of 6 jointsmanipulator robot:

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.

Figure. 9: Assignation of the coordinated systems over the link i, DHs

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.

The equations of coordinate transformation between the system 3 and 0 in matrix


notation is found by multiplying the matrices in the same sequence of the movements
(matrix post-multiplication); it’s worth saying that in this method the movements occur
first in the X axis, being different from the standard where the movements begin in the
Z axis.
Joint 1: The matrix obtained is the equation of coordinates transformation between
the systems o0 x0 y0 and the system o1 x1 y1 .
     
x0 x1 x1
 y0  = Rz,θ1  y1  = A1  y1 
1 1 1
 
cos θ1 − sin θ1 0
A1 = sin θ1 cos θ1 0

0 0 1
    
x0 cos θ1 − sin θ1 0 x1
 y0  =  sin θ1 cos θ1 0  y1 
1 0 0 1 1
Joint 2: The matrix obtained is the equation of coordinates transformation between
the systems o1 x1 y1 and o2 x2 y2 . In this system, two movements occurred: a translation
along the x-axis and a rotation around the z-axis.
     
x1 x2 x2
 y1  = TX,∆x1 Rz,θ2  y2  = A2  y2 
1 1 1
    
1 0 ∆x1 cos θ2 − sin θ2 0 cos θ2 − sin θ2 ∆x1
A2 = 0 1 0   sin θ2 cos θ2 0 =  sin θ2 cos θ2 0 
0 0 1 0 0 1 0 0 1
    
x1 cos θ2 − sin θ2 ∆x1 x2
 y1  =  sin θ2 cos θ2 0   y2 
1 0 0 1 1
Joint 3: The matrix obtained is the equation of coordinates transformation between
the systems o2 x2 y2 and the system o3 x3 y3 . In this system, just a translation occurred
along the x-axis.
       
x2 x3 x3 1 0 ∆x2
 y2  = Tx,∆x2  y3  = A3  y3  , A3 = 0 1 0 
1 1 1 0 0 1
    
x2 1 0 ∆x2 x3
 y2  = 0 1 0   y3 
1 0 0 1 1
Matrix T of the arm: Replacing the equations which obtained the matrix of trans-
formation of coordinates from the fixed coordinate system 0, to the final system 3, this
matrix is known as the arm matrix.

     
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 11. Six Degrees of Freedom from D-H parameters

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.

2. Balasubramanian, R. (2011). The Denavit Hartenberg Convention. Robotics Insti-


tute, Carnegie Mellon University.

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.

8. Ollero, A. (2001). Robótica: Manipuladores y robots móviles. MARCOMBO.

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.

12. Granja, M. (2014). Comparación entre el Método Denavit-Hartenberg Estándar y


Modificado. EPN.

13. Addison, A. How to Assign Denavit-Hartenberg Frames to Robotic Arms.

You might also like