Next Article in Journal
YOLO-PGC: A Tomato Maturity Detection Algorithm Based on Improved YOLOv11
Previous Article in Journal
Task-Oriented Structural Health Monitoring of Dynamically Loaded Components by Means of SLDV-Based Full-Field Mobilities and Fatigue Spectral Methods
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Algorithmic Modified Denavit–Hartenberg Modeling for Robotic Manipulators Using Line Geometry

1
Department of Electrical and Electronic Engineering, Hanyang University, Ansan 15588, Republic of Korea
2
Department of Robotics, Hanyang University, Ansan 15588, Republic of Korea
*
Author to whom correspondence should be addressed.
Appl. Sci. 2025, 15(9), 4999; https://doi.org/10.3390/app15094999
Submission received: 27 March 2025 / Revised: 25 April 2025 / Accepted: 28 April 2025 / Published: 30 April 2025
(This article belongs to the Special Issue Advances in Industrial Robotics and Control Systems)

Abstract

:
This paper proposes a kinematic modeling method for robotic manipulators by extracting the modified Denavit–Hartenberg (MDH) parameters using line geometry. For single-branched manipulators, various joint axes can be represented as lines using Plücker coordinates. The forward kinematics is derived by performing the product of matrices which are the exponential maps lifted from two kinds of exponential coordinates using the MDH parameters. For extracting MDH parameters, line geometry systematically analyzes the following: (1) the closest point between a point and line, (2) the closest distance and twist angle between two lines, (3) the common perpendicular line and its intersection points, and (4) classifies line relationships into collinear, distant parallel, intersected, and skewed cases. For each case, five parameters including twist angle, closest distance, common perpendicular direction vector, and both feet on a common perpendicular line are sequentially computed as results of the line geometry block. Finally, the aforementioned line geometry blocks are utilized to extract the four MDH parameters according to their definitions. The effectiveness of the proposed algorithm is verified by four examples including a typical Selective Compliance Assembly Robot Arm (SCARA) robot and three different commercial manipulators.

1. Introduction

Kinematic modeling of articulated robots is commonly categorized into two approaches according to the number of parameters required to describe the relative motion between adjacent joint axes: screw-based and line-based formulations. The screw-based formulation employs six parameters, whereas the line-based counterpart needs four. Owing to its theoretical completeness, the screw framework has been widely adopted in robotics research [1,2,3,4]. In a screw-based model, the transformation of one link with respect to its predecessor is represented by an exponential map constructed from six exponential coordinates—three rotational and three linear components. Multiplying these exponential maps sequentially produces the forward kinematics of a single-branched manipulator and extends naturally to branched or closed-loop mechanisms.
When each joint axis is regarded as an infinite line, only four independent quantities—Plücker coordinates—are sufficient to describe its pose, because a line is invariant under self-rotation and self-translation. Consequently, line-based formulations require four parameters per axis. Although screw coordinates offer superior numerical robustness for calibration, the modified Denavit–Hartenberg (MDH) notation remains the interface in industrial robot controllers. Direct identification in the MDH, however, often suffers from convergence issues caused by the coupling inherent in its parameter structure [5]. To alleviate this limitation, the present study proposes a post-processing algorithm that converts screw-identified parameters into the MDH format. A concise comparison among the standard Product-of-Exponential (PoE) form, MDH notation, and the classical DH convention—including differences in parameter count, transformation dependencies, frame consistency, and automation suitability—is provided in Table A1 in Appendix A.
Among traditional kinematic conventions, the Denavit–Hartenberg (DH) notation remains the most widely adopted. Originally introduced by Denavit and Hartenberg, it expresses the relative transformation between successive frames with four scalar parameters [6,7]. Two variants have since emerged: the distal form [8] and the proximal form—also called the Modified DH (MDH) notation—[1,9,10]. This work adopts the proximal form because every parameter is referenced to the same coordinate frame, which simplifies implementation and numerical treatment [11,12,13,14]. Deriving MDH parameters, however, requires locating the common perpendicular between consecutive joint axes; line geometry therefore becomes an essential computational tool in our framework.
The studies most closely related to this work are those of Faria et al. [15] and Liu et al. [16]. Faria et al. extract line parameters by commanding axis-specific rotations and subsequently convert them to DH parameters, but their procedure requires user-defined joint-excitation trajectories for each axis during data acquisition and manual assignment of each frame’s x-axis. Liu et al. automate the extraction of conventional DH parameters, yet their method handles only revolute joints and is incompatible with the MDH formulation. The algorithm proposed in the present study overcomes all of these limitations: it requires no constrained excitation, supports both revolute and prismatic joints, and outputs parameters directly in the MDH notation.
Recent studies [17,18,19,20] have focused on kinematic parameter identification based on screw theory, typically performed with a robot equipped with sensors attached to a TCF for calibration. Although direct identification is not performed in this study, the proposed method can be subsequently applied to convert the identified screw-based parameters into an MDH representation. This allows for seamless integration with MDH-based kinematic modeling frameworks commonly used in industrial and simulation environments.
The paper is organized as follows: Section 2 introduces the exponential map using MDH parameters, the exponential coordinates using MDH, the joint twist, and the joint matrix. Section 3 analyzes the relationships between line and point and between two lines, finds the common perpendicular line and its feet, and finally lists up the important contents into the line geometry block. Section 4 proposes how to extract the MDH parameters using two consecutive line geometry blocks. Several examples are employed to verify the proposed method in Section 5, and finally we draw conclusions.

2. Exponential Map Using MDH

Since a joint connects the adjacent links, a single branched articulated robotic manipulator having N joints has N + 1 links and an adjacent transformation is defined between a pair of adjacent links or joints. This adjacent transformation, a homogeneous transformation matrix, is described in terms of four MDH parameters. The last frame of the robot is called the tool coordinate frame (TCF) where robotic tasks are assigned. The forward kinematics of the robotic manipulator is expressed as:
T t c f 0 = T 1 0 ( θ 1 , d 1 ) T 2 1 ( θ 2 , d 2 ) T N N 1 ( θ N , d N ) T t c f N ,
where θ i and d i denote ith generalized joint variables which can be one or two degrees-of-freedom (dof) according to the joint type, the prefixed superscript and postfixed subscript of the homogeneous transformation stand for the reference frame and target frame, respectively, e.g., T t c f N represents the constant adjacent transformation from frame { N } to { t c f } .

2.1. MDH Parameters

The MDH notation describes the relationship between adjacent joint axes at zero-configuration which represents when every joint variable is zero. To define the four MDH parameters, the coordinate frames are determined according to the following procedures:
1.
Set the z ^ -axis in the direction of the joint axis.
2.
Define the x ^ -axis as the common perpendicular direction to the adjacent joint axes. In cases where adjacent axes are collinear, the previous x ^ -axis is retained as the current x ^ -axis.
3.
Determine the y ^ -axis using the right-hand rule.
Figure 1 illustrates how to set up two coordinate frames { i 1 } and { i } from three consecutive joint axes i 1 , i and i + 1 . After setting up both coordinate frames, four MDH parameters are defined as follows:
1.
Link twist ( α i ): this parameter represents the angle from z ^ i 1 to z ^ i about the x ^ i 1 -axis
2.
Link length ( a i ): this denotes a distance from z ^ i 1 to z ^ i along the x ^ i 1 -axis
3.
Joint offset distance ( d i 0 ): this is the distance from x ^ i 1 to x ^ i along the z ^ i -axis
4.
Joint offset angle ( θ i 0 ): this expresses the angle from x ^ i 1 to x ^ i about the z ^ i -axis.
It is noted that three consecutive joint axes are required to define four MDH parameters, which are used to obtain the adjacent transformation between the frame { i 1 } and the frame { i } . Figure 1 shows a typical example of MDH parameters. Note that the terms “joint offset distance” and “joint offset angle” correspond to the standard MDH parameters d i and θ i , respectively. The subscript “0” is introduced to distinguish between constant geometric parameters and variable joint inputs (e.g., q i , θ , q i , d ) and to clarify their role in generating the transformation matrix. Using the four constant MDH parameters, the adjacent transformation can be represented by adding joint variables q i , θ for the revolute joint type and q i , d for the prismatic joint type. For this purpose, ith generalized joint variables θ i and d i are defined differently according to the joint types as follows: where h implies a pitch to denote a moving distance along the joint axis per one revolution for the helical joint. It is noted that three consecutive joint axes are required to define four MDH parameters, which are used to obtain the adjacent transformation between the frame i 1 and the frame i, as summarized in Table 1.

2.2. Exponential Map Using MDH

In this work, Lie group methods are employed to establish a connection between the Modified Denavit–Hartenberg (MDH) parameters and Lie algebra in the context of robot forward kinematics. For readers unfamiliar with the fundamentals of Lie groups and Lie algebras in robotic modeling, we recommend [3,4] as accessible introductions. For a more advanced treatment of Lie group integration and numerical methods, refer to [21]. In addition, screw theory, which underpins many geometric interpretations used here, is thoroughly discussed in [2]. The adjacent transformation from the coordinate frame { i 1 } to the frame { i } in Figure 1 can be decomposed into two exponential maps because the link twist α i and the link length a i are represented with respect to the x ^ i 1 -axis and the generalized joint variables d i and θ i with respect to the z ^ i axis as follows:
T i i 1 ( θ i , d i ) = expm ( λ x i 1 ) expm ( λ z i ) ,
where the matrix exponential, belonging to the Lie group S E ( 3 ) , is defined by using the matrix λ , belonging to Lie algebra se ( 3 ) , as follows:
expm ( λ ) = k = 0 λ k k !
λ x i 1 = 0 0 0 a i 0 0 α i 0 0 α i 0 0 0 0 0 0
λ z i = 0 θ i 0 0 θ i 0 0 0 0 0 0 d i 0 0 0 0 .
In other words, λ implies Lie algebra se ( 3 ) and expm ( λ ) is a Lie group S E ( 3 ) lifted from the Lie algebra λ , where λ R 6 means the exponential coordinate vector. The series expansion of expm ( λ ) using Equation (2a) results in:
expm ( λ x i 1 ) = 1 0 0 a i 0 cos α i sin α i 0 0 sin α i cos α i 0 0 0 0 1
expm ( λ z i ) = cos θ i sin θ i 0 0 sin θ i cos θ i 0 0 0 0 1 d i 0 0 0 1 .
Since Lie algebra se ( 3 ) is isomorphic to a six-dimensional real vector R 6 , we can use it interchangeably
λ = η ξ R 6 λ = 0 ξ z ξ y η x ξ z 0 ξ x η y ξ y ξ x 0 η z 0 0 0 0 se ( 3 ) ,
where η = [ η x , η y , η z ] T R 3 and ξ = [ ξ x , ξ y , ξ z ] T R 3 imply the linear and angular components of the exponential coordinate vector λ R 6 , respectively. Thus, we can find the exponential coordinates of MDH from Equations (2b) and (2c), respectively, as follows:
λ x i 1 = a i 0 0 α i 0 0 and λ z i = 0 0 d i 0 0 θ i .

2.3. Joint Twist Using MDH

Since the exponential map (or adjacent transformation) of Equation (1) using MDH is obtained by the matrix product of Equations (3a) and (3b), the joint twist is derived from the left multiplication rule [21,22] as follows:
V i i 1 = T i 1 i 1 ( θ i , d i ) T ˙ i i 1 ( θ i , d i )
= λ ˙ z i
V i i 1 = λ ˙ z i ,
where V i i 1 = λ ˙ z i R 6 implies the ith joint twist relative to the frame { i 1 } represented in the frame { i } . It is noted that ith joint twist V i i 1 is represented in the frame { i } . Now, we can define ith joint matrix E i by separating the time-derivative of joint variable q ˙ i from the joint twist as follows:
V i i 1 = λ ˙ z i : = E i q ˙ i ,
where λ ˙ z i = [ 0 , 0 , d ˙ i , 0 , 0 , θ ˙ i ] T = [ 0 , 0 , q ˙ i , d , 0 , 0 , q ˙ i , θ ] T because the joint offset distance d i 0 and the joint offset angle θ i 0 as MDH parameters are constants. For given four joint types { R , P , H , R P } , each joint has its own joint matrix E i and time-derivative of joint variable q ˙ i = { q ˙ i , θ , q ˙ i , d } as follows:
R : E i q ˙ i = 0 0 0 0 0 1 q ˙ i , θ P : E i q ˙ i = 0 0 1 0 0 0 q ˙ i , d H : E i q ˙ i = 0 0 h 0 0 1 q ˙ i , θ R P : E i q ˙ i = 0 0 0 0 0 1 0 0 0 0 1 0 q ˙ i , θ q ˙ i , d .
The joint matrix E i represented in the frame { i } can be transformed into either the base frame { 0 } or the tool coordinate frame { t c f } ; for this purpose, the adjoint transformation is introduced as follows:
E i 0 = Ad i 0 E i a n d E i t c f = Ad i t c f E i ,
where E i 0 and E i t c f are called spatial screw and body screw in [4], respectively, and the adjoint transformation is defined by
Ad b a = R b a r b a R b a 0 3 R b a R 6 × 6 ,
using the homogeneous transformation T b a ( R b a , r b a ) , in which R b a S O ( 3 ) implies a three-dimensional rotation matrix, r b a represents three-dimensional skew-symmetric matrix obtained from a three-dimensional displacement vector r b a R 3 , and 0 3 implies three-dimensional zero matrix. Till now, we have revealed how the MDH parameters influence the exponential map, the exponential coordinate vector, the joint twist, and the joint matrix. The next section will discuss the relationships between the joint axes using the line geometry, ultimately, to find the MDH parameters.

3. Line Geometry

A line L ( z ^ , v ) can be represented by a set of three-dimensional direction vector z ^ and three-dimensional moment vector v, where z ^ and v are called the Plücker coordinate after Julius Plücker [23,24]. The Plücker coordinate to express the line has four independent elements because the line has two constraints that it remains the same line when rotated about itself and translated in its direction [25]. To improve readability and reduce the complexity of the main text, detailed derivations of the equations are provided in Appendix B.
Here, z ^ R 3 is a unit vector to denote any direction in a three-dimensional space and v R 3 is the moment of the line described from an arbitrary point p on the line represented in the frame { 0 } as shown in Figure 2, which can be expressed as follows:
v = p × z ^ .

3.1. Relationships Between Line and Points

Since the moment vector v is orthogonal to z ^ by Equation (10), it provides information about the closest point from the origin of frame { 0 } as shown in Figure 2. Namely, the closest point p on the line L from the origin of frame { 0 } is computed by
p = z ^ × v ,
where the closest distance from the origin of frame { 0 } to the line L is p = z ^ × v . Furthermore, the moment v t of the line L about an arbitrary point t out of the line in Figure 2 is defined by
v t = v t × z ^ ,
and the closest point t on the line L from a point t out of the line in Figure 2 is computed by
t = t + z ^ × v t ,
where it is represented in the frame { 0 } , and the closest distance from an arbitrary point t out of the line to the line L is t t = z ^ × v t . It is interesting that the closest point t on the line from a point t out of the line is obtained by taking the cross-product of the direction vector z ^ and the moment v t .

3.2. Relationships Between Two Lines

Another important property of the Plücker coordinate is the reciprocal product between two lines. When two lines are denoted as L 1 ( z ^ 1 , v 1 = p 1 × z ^ 1 ) and L 2 ( z ^ 2 , v 2 = p 2 × z ^ 2 ) , as shown in Figure 3, it is defined as follows:
L 1 L 2 : = z ^ 1 · v 2 + z ^ 2 · v 1 ,
where the reciprocal product implies the moment of line L 1 about line L 2 or the moment of L 2 about L 1 . It is interesting that the reciprocal product is independent of the location of p 1 on L 1 or p 2 on L 2 , and it is only dependent on the direction vectors z ^ 1 and z ^ 2 . In addition, the reciprocal product is scalar, not a vector. Let us denote the moment v 21 of the line L 2 ( z ^ 2 , v 2 ) about the point t 1 using Equation (12):
v 21 = v 2 t 1 × z ^ 2 = ( t 2 t 1 ) × z ^ 2 ,
where t 1 and t 2 are feet of the common perpendicular line to the two lines L 1 and L 2 as shown in Figure 3.
Let us define the plane Π containing z ^ 2 and v 21 as shown in Figure 4, which is orthogonal to the common perpendicular line and parallel to z ^ 1 . Consequently, the plane Π contains z ^ 1 as shown in Figure 4. Using the fact that the link twist α is the angle of rotation from z ^ 1 to z ^ 2 about the common perpendicular line, the reciprocal product can be recomputed as follows:
L 1 L 2 = v 21 sin α ,
where v 21 implies the distance between L 1 and L 2 . Thus, it provides the information on the link length a in Figure 1 as follows:
a = v 21 = L 1 L 2 sin α = z ^ 1 · v 2 + z ^ 2 · v 1 z ^ 1 × z ^ 2 .
As a matter of fact, the reciprocal product becomes zero either when the two lines are intersected ( a = 0 ) or when the two lines are parallel ( α = 0 ), where the link twist α in Figure 1 is defined by the angle of rotation from z ^ 1 to z ^ 2 about the common perpendicular line, which is calculated as follows:
α = atan 2 ( sin α , cos α ) = atan 2 ( z ^ 1 × z ^ 2 , z ^ 1 · z ^ 2 ) ,
where it is effective for a positive range of 0 α π . To cover its negative range of π α 0 , the sign variable denoted by s x will be considered later.

3.3. Common Perpendicular Line

Let us find the common perpendicular line denoted by L ( z ^ , v ) in Figure 4. Then, its direction vector z ^ emanating from t 1 is obtained as follows:
z ^ = n ^ = z ^ 1 × z ^ 2 z ^ 1 × z ^ 2 ,
in fact, it is corresponding to the x ^ -axis required to express the MDH parameters in Figure 1, and the moment vector v is computed by:
v = t 2 × z ^ .
Since we have obtained the common perpendicular line, we are ready to derive two intersection points t 1 and t 2 in Figure 4, which are called feet of common perpendicular line, where the former is obtained as an intersection between L 1 and L and the latter between L 2 and L .

3.4. Feet of Common Perpendicular Line

The aforementioned intersection points (or feet) t 1 and t 2 in Figure 4 can be found through the following procedures. In fact, the related proof can be found in [25] as well. To begin with, let us set up a coordinate frame z ^ 1 - u ^ - n ^ at the origin { 0 } as shown in Figure 5, which is composed of three perpendicular unit vectors z ^ 1 , n ^ = z 1 × z 2 z 1 × z 2 , and u ^ = n ^ × z ^ 1 . The basic idea in [25] is to project the point t 2 onto the coordinate frames z ^ 1 - u ^ - n ^ in Figure 5 as follows:
t 2 = ( t 2 · z ^ 1 ) z ^ 1 + ( t 2 · u ^ ) u ^ + ( t 2 · n ^ ) n ^ .
For the third term ( t 2 · n ^ ) of the right-hand side of Equation (21), we can observe the following:
t 2 · n ^ = v 2 · z ^ 1 z ^ 1 × z ^ 2 .
For the second term ( t 2 · u ^ ), the definitions of u ^ and n ^ are used as follows:
t 2 · u ^ = v 1 · n ^ .
For the first term ( t 2 · z ^ 1 ) , the direction vector z ^ 2 lies in the plane spanned by z ^ 1 and u ^ as shown in Figure 5, such that
z ^ 2 = ( cos α ) z ^ 1 + ( sin α ) u ^ = ( z ^ 1 · z ^ 2 ) z ^ 1 + z ^ 1 × z ^ 2 u ^ .
then, using Equation (23), we have:
t 2 · z ^ 2 = ( z ^ 1 · z ^ 2 ) ( t 2 · z ^ 1 ) v 1 · ( z ^ 1 × z ^ 2 ) .
Also, from the following:
z ^ 2 × v 2 = t 2 ( z ^ 2 · t 2 ) z ^ 2 ,
t 2 is obtained as:
t 2 = z ^ 2 × v 2 + ( z ^ 2 · t 2 ) z ^ 2 .
Then using Equation (24), ( t 2 · z ^ 1 ) is derived using ( t 2 · z ^ 2 ) :
t 2 · z ^ 1 = v 2 · ( z ^ 1 × z ^ 2 ) + ( z ^ 1 · z ^ 2 ) 2 ( t 2 · z ^ 1 ) ( z ^ 1 · z ^ 2 ) ( v 1 · ( z ^ 1 × z ^ 2 ) ) ,
since ( t 2 · z ^ 1 ) appears in both sides of the above equation, rearranging it yields
t 2 · z ^ 1 = ( v 2 ( z ^ 1 · z ^ 2 ) v 1 ) · n ^ z ^ 1 × z ^ 2 .
By inserting the three terms of Equations (22), (23), and (25) into Equation (21), finally, we have t 2 , using a × ( b × c ) = ( a · c ) b ( a · b ) c and n ^ = z ^ 1 × z ^ 2 z ^ 1 × z ^ 2 , as following form:
t 2 = v 2 × ( z ^ 1 × ( z ^ 1 × z ^ 2 ) ) ( v 1 · ( z ^ 1 × z ^ 2 ) ) z ^ 2 z ^ 1 × z ^ 2 2 .
On the other hand, t 1 is obtained from Equation (26) for t 2 by switching subscripts 1 and 2, as follows:
t 1 = v 1 × ( z ^ 2 × ( z ^ 2 × z ^ 1 ) ) ( v 2 · ( z ^ 2 × z ^ 1 ) ) z ^ 1 z ^ 1 × z ^ 2 2 .
It is noted that the derived t 1 and t 2 are computed by using the information only on two lines L 1 ( z ^ 1 , v 1 ) and L 2 ( z ^ 2 , v 2 ) . The next section summarizes the five results of line geometry such as link length a (17), link twist α (18), x ^ -axis n ^ (19), and feet of common perpendicular line t 2 (26) and t 1 (27).

3.5. Line Geometry Block, LG ( L 1 ( z ^ 1 , v 1 ) , L 2 ( z ^ 2 , v 2 ) )

The method to express how two adjacent lines (or joint axes) are located each other can be classified into four cases: collinear, distant parallel, intersected, and skewed. To begin with, criterion 1 is defined to check whether two lines are parallel or not, which is performed using the two direction vectors:
z ^ 1 × z ^ 2 = 0 z ^ 1 × z ^ 2 < sin ( ϵ θ ) ,
where ϵ θ R + denotes a small positive constant with units of radians, introduced to handle numerical issues when comparing angular values. If criterion 1 of Equation (25) is satisfied, the two lines are parallel to each other. The parallel lines can be further classified into two cases: collinear (parallel) and distant (parallel). For this purpose, criterion 2-1 is defined as the distance between the closest points from the origin of the coordinate frame to the lines using Equation (Section 3.1) as follows:
p 1 p 2 = 0 p 1 p 2 < ϵ d ,
where
p 1 = z ^ 1 × v 1 = z ^ 1 × ( p 1 × z ^ 1 ) p 2 = z ^ 2 × v 2 = z ^ 2 × ( p 2 × z ^ 2 ) .
where ϵ d R + is a small positive threshold with units of meters, introduced to ensure numerical robustness when comparing distances between points. If criterion 2-1 is satisfied, the two lines are collinear (parallel); otherwise, they are distant (parallel). These parallel cases are summarized in Figure 6.
On the other hand, if criterion 1 of Equation (27) is not satisfied, the two lines are not parallel to each other. The non-parallel lines can be further classified into two cases: intersected and skewed. For this purpose, criterion 2-2 is defined as the existence of the intersection point, which is conducted using the reciprocal product (Section 3.2):
| L 1 L 2 | = 0 | L 1 L 2 | < ϵ L .
where ϵ L R + is a small positive threshold used to evaluate the reciprocal product. Note that unlike ϵ θ (in radians) and ϵ d (in meters), the reciprocal product is inherently dimensionless. If criterion 2-2 of Equation (30) is satisfied, two lines are intersected at one point, otherwise, they are skewed.
The line geometry block LG ( L 1 , L 2 ) to be designed in this section receives two lines ( L 1 , L 2 ) as inputs, selects one from the four cases using the criteria, and yields five parameters ( α , a , n ^ , t 1 , t 2 ) as outputs, where it is noted that two lines as the inputs consist of the direction vectors z ^ 1 , z ^ 2 of joint axes and the points p 1 , p 2 on joint axes as follows:
L 1 ( z ^ 1 , v 1 = p 1 × z ^ 1 ) a n d L 1 ( z ^ 2 , v 2 = p 2 × z ^ 2 ) .

3.5.1. Collinear

If z ^ 1 × z ^ 2 < sin ( ϵ θ ) and | | p 1 p 2 | | < ϵ d are satisfied, the two lines are collinear with the following five parameter descriptions:
α = atan 2 ( z ^ 1 × z ^ 2 , z ^ 1 · z ^ 2 ) ,
a = 0 ,
n ^ = 0 3 × 1 ,
t 1 = t 2 = p 1 ,
where link twist α can be either 0 or 180 . In fact, the two lines are either in the same direction ( α = 0 ) or in the opposite direction ( α = 180 ) according to the link twist value. In the collinear case, the common perpendicular direction x ^ -axis is not defined, and thus the x ^ -axis of the previous frame is identically assigned to the new frame.

3.5.2. Distant (Parallel)

If z ^ 1 × z ^ 2 < sin ( ϵ θ ) and | | p 1 p 2 | | ϵ d are satisfied, the two lines are distant parallel to each other with the following five parameter descriptions:
α = atan 2 ( z ^ 1 × z ^ 2 , z ^ 1 · z ^ 2 ) ,
a = z ^ 1 × ( v 2 cos α v 1 ) ,
n ^ = z ^ 1 × ( v 2 cos α v 1 ) z ^ 1 × ( v 2 cos α v 1 ) ,
t 1 = p 1 ,
t 2 = p 1 + z ^ 1 × ( v 2 cos α v 1 ) ,
where it is noted that cos α = 1 when the two parallel lines are in the same direction and cos α = 1 in the opposite direction. Additionally, the closest points p 1 on line L 1 and p 2 on line L 2 yield the link length a and the common perpendicular direction n ^ as follows:
a n ^ = p 2 p 1 = ( z ^ 2 × v 2 ) ( z ^ 1 × v 1 ) = ( z ^ 1 cos α × v 2 ) ( z ^ 1 × v 1 ) = z ^ 1 × ( v 2 cos α v 1 ) .
In fact, t 1 is an arbitrary point on line L 1 ( z ^ 1 , v 1 ) , but we choose t 1 equal to p 1 for practical use. Then, t 2 = p 1 + z ^ 1 × ( v 2 cos α v 1 ) since a n ^ = t 2 t 1 .

3.5.3. Intersected

If z ^ 1 × z ^ 2 sin ( ϵ θ ) and | L 1 L 2 | < ϵ d are satisfied, the two lines are intersected at one point t 1 = t 2 with the following five parameter descriptions:
α = atan 2 ( z ^ 1 × z ^ 2 , z ^ 1 · z ^ 2 ) ,
a = 0 ,
n ^ = z ^ 1 × z ^ 2 z ^ 1 × z ^ 2 ,
t 1 = ( ( v 1 · z ^ 2 ) I 3 + z ^ 1 v 2 T z ^ 2 v 1 T ) z ^ 1 × z ^ 2 z ^ 1 × z ^ 2 2 ,
t 2 = t 1 ,
where I 3 is a three-dimensional identity matrix. To find the intersection point, let us rearrange the second term of t 1 (27) using ( a · c ) b = a × ( b × c ) + ( a · b ) c as follows:
( v 2 · ( z ^ 2 × z ^ 1 ) ) z ^ 1 = v 2 × ( z ^ 1 × c ) + ( v 2 · z ^ 1 ) c ,
where c : = z ^ 2 × z ^ 1 , then t 2 of Equation (27) is rewritten as follows:
t 2 = ( v 1 × ( z ^ 2 × c ) ) ( v 2 × ( z ^ 1 × c ) ) ( v 2 · z ^ 1 ) c z ^ 1 × z ^ 2 2 .
Also, by using the property of cross-product operator, e.g., a × ( b × c ) = ( b a T ( a · b ) I 3 ) c , we have
t 2 = ( z ^ 2 v 1 T ( v 1 · z ^ 2 ) I 3 z ^ 1 v 2 T ) z 2 × z 1 z 1 × z 2 2 = ( ( v 1 · z ^ 2 ) I 3 + z ^ 1 v 2 T z ^ 2 v 1 T ) z 1 × z 2 z 1 × z 2 2 ,
where the moments of the intersected lines are the same with each other, e.g., v 1 = v 2 = v because t 1 = t 2 .

3.5.4. Skewed

If z ^ 1 × z ^ 2 sin ( ϵ θ ) and | L 1 L 2 | ϵ d are satisfied, the two lines are skewed (not co-planar) with following the five parameters descriptions:
α = atan 2 ( z ^ 1 × z ^ 2 , z ^ 1 · z ^ 2 ) ,
a = L 1 L 2 z ^ 1 × z ^ 2 ,
n ^ = z ^ 1 × z ^ 2 z ^ 1 × z ^ 2 ,
t 1 = v 1 × ( z ^ 2 × ( z ^ 2 × z ^ 1 ) ) + ( v 2 · ( z ^ 1 × z ^ 2 ) ) z ^ 1 z ^ 1 × z ^ 2 2 ,
t 2 = v 2 × ( z ^ 1 × ( z ^ 1 × z ^ 2 ) ) + ( v 1 · ( z ^ 2 × z ^ 1 ) ) z ^ 2 z ^ 2 × z ^ 1 2 ,
where the five results of line geometry such as link length a (17), link twist α (18), x ^ -axis n ^ (19), and feet of common perpendicular line t 2 (26) and t 1 (27) are fully exploited for the skewed case.
The line geometry block denoted by LG summarizes the five parameters chosen according to criteria as shown in Figure 6, where the line geometry block is described by
{ α i i 1 , a i i 1 , n ^ i i 1 , t i 1 i 1 , t i i 1 } = LG ( L i 1 , L i ) ,
where the inputs are two lines and the outputs are five parameters yielded from one of the four cases, which is selected using two criteria. As suggested in Figure 1, three joint axes (a set of three consecutive lines L i 1 , L i , and L i + 1 ) are required to extract four MDH parameters and thus two line geometry blocks are needed to describe four MDH parameters for ith joint.

4. Algorithmic MDH Parameter Extraction

This section describes how to algorithmically extract MDH parameters using the line geometry blocks suggested in the previous Section 3.5. This method can be directly applied to the single-branched articulated robotic manipulators. To extract a set of four MDH parameters for each joint, three consecutive lines (joint axes) are needed. Thus, N + 2 line information is required with respect to the base frame { 0 } including tcf denoted by { N + 1 } for N-joint manipulators. Three coordinate axes of the base frame are defined by x ^ 0 = [ 1 , 0 , 0 ] T , y ^ 0 = [ 0 , 1 , 0 ] T and z ^ 0 = [ 0 , 0 , 1 ] T , respectively. Algorithm 1 summarizes the inputs and the outputs through the computations of intermediate variables. The inputs are listed as follows:
b a s e   f r a m e   ( l i n e ) : { z ^ 0 , p 0 } , x ^ 0 , 1 s t   j o i n t   ( l i n e ) : { z ^ 1 , p 1 } , N t h   j o i n t   ( l i n e ) : { z ^ N , p N } , t c f   ( l i n e ) : { z ^ N + 1 , p N + 1 } ,
where p 0 = [ 0 , 0 , 0 ] T . The adjacent two lines are applied consecutively to the line geometry blocks for ith joint as follows:
{ α i i 1 , a i i 1 , n ^ i i 1 , t i 1 i 1 , t i i 1 } LG ( L i 1 , L i ) , { α i + 1 i , a i + 1 i , n ^ i + 1 i , t i i , t i + 1 i } LG ( L i , L i + 1 ) ,
for i = 1 , 2 , , N .
To extract four MDH parameters, we need to define x ^ i -axis to be the common perpendicular direction denoted by n ^ i + 1 i as shown in Figure 1. As a special case, the common perpendicular direction is not defined in the collinear case as suggested in Equations (32a)–(32d), and thus we assign the previous x ^ i 1 -axis to x ^ i as follows:
x ^ i = x ^ i 1 i f   L i   a n d   L i + 1   i s   c o l l i n e a r n ^ i + 1 i o t h e r w i s e ,
where it is noted that the origin of frame { i } is specified as t i i . Once defining x ^ i -axis through Equation (37), the sign of link twist α i and link length a i can be determined by using the dot-product between x ^ i 1 and n ^ i i 1 . To begin with, the sign is assigned into + 1 when two lines are parallel. Subsequently, if x ^ i 1 · n ^ i i 1 > 0 , then the sign will be + 1 , and if x ^ i 1 · n ^ i i 1 < 0 , then the sign will be 1 . As a summary, the sign is determined as follows:
s i x = 1 i f z ^ i 1 × z ^ i   < sin ( ϵ θ ) x ^ i 1 · n ^ i i 1 | x ^ i 1 · n ^ i i 1 | o t h e r w i s e .
The sign of the joint offset angle θ i 0 can be also determined by using the dot-product between z ^ i and ( x ^ i 1 × x ^ i ) as follows:
s i z = 1 i f x ^ i 1 × x ^ i < sin ( ϵ θ ) z ^ i · ( x ^ i 1 × x ^ i ) | z ^ i · ( x ^ i 1 × x ^ i ) | o t h e r w i s e ,
where it is noted that the sign of joint offset distance d i 0 does not have to be considered because it is obtained already by dot-product implying the projection onto the z ^ i -axis. Using the signs of s i x (38) and s i z (39), four MDH parameters are determined in the following sections.
Algorithm 1 Algorithmic MDH parameter extraction.
Require: 
{ z ^ 0 , p 0 } , { z ^ 1 , p 1 } , ⋯, { z ^ N , p N } , { z ^ N + 1 , p N + 1 } , x ^ 0 = [ 1 , 0 , 0 ] T .
Ensure: 
{ x ^ 1 , α 1 , a 1 , d 10 , θ 10 } , ⋯, { x ^ N , α N , a N , d N 0 , θ N 0 }
1:
for  i = 1 to N do
2:
   for  j = i 1 to i + 1  do
3:
      v j p j × z ^ j
4:
      L j ( z ^ j , v j )
5:
   end for
6:
    { α i i 1 , a i i 1 , n ^ i i 1 , t i 1 i 1 , t i i 1 } LG ( L i 1 , L i )
7:
    { α i + 1 i , a i + 1 i , n ^ i + 1 i , t i i , t i + 1 i } LG ( L i , L i + 1 )
8:
   if  L i and L i + 1 are collinear then
9:
       x ^ i x ^ i 1
10:
   else
11:
      x ^ i n ^ i + 1 i
12:
   end if
13:
   if  z ^ i 1 × z ^ i < sin ( ϵ θ )  then
14:
      s i x 1
15:
   else
16:
      s i x ( x ^ i 1 · n ^ i i 1 ) / | ( x ^ i 1 · n ^ i i 1 ) |
17:
   end if
18:
   if  x ^ i 1 × x ^ i < sin ( ϵ θ )  then
19:
      s i z 1
20:
   else
21:
      s i z z ^ i · ( x ^ i 1 × x ^ i ) / | z ^ i · ( x ^ i 1 × x ^ i ) |
22:
   end if
23:
    α i s i x α i i 1
24:
    a i s i x a i i 1
25:
    d i 0 z ^ i · ( t i i t i i 1 )
26:
    θ i 0 s i z atan 2 ( x ^ i 1 × x ^ i , x ^ i 1 · x ^ i )
27:
end for

4.1. Twist Angle α i

It is defined as the angle from z ^ i 1 to z ^ i about x ^ i 1 -axis as shown in Figure 1. Since the twist angle α i i 1 provided from LG ( L i 1 , L i ) is in the range of 0 α i i 1 π , the sign s i x should be reflected in the following form:
α i = s i x α i i 1 .

4.2. Link Length a i

It is defined as the distance from z ^ i 1 to z ^ i along x ^ i 1 -axis as shown in Figure 1. Since the distance a i i 1 is positive, the sign s i x is also reflected in the following form:
a i = s i x a i i 1 .

4.3. Joint Offset Distance d i 0

It is defined as the distance from x ^ i 1 to x ^ i along the z ^ i -axis as shown in Figure 1. The distance projected into z ^ i -axis is defined as follows:
d i 0 = z ^ i · ( t i i t i i 1 ) .

4.4. Joint Offset Angle θ i 0

It is defined as the angle from x ^ i 1 to x ^ i about the z ^ i -axis as shown in Figure 1. Since the x ^ i -axis is determined by Equation (37), the sign s i z should be reflected as follows:
θ i 0 = s i z atan 2 ( x ^ i 1 × x ^ i , x ^ i 1 · x ^ i ) .
The outputs of Algorithm 1 are consecutively arranged into:
1 s t   j o i n t : { x ^ 1 , α 1 , a 1 , d 10 , θ 10 } f r o m L 0 , L 1 , L 2 , x ^ 0 , 2 n d   j o i n t : { x ^ 2 , α 2 , a 2 , d 20 , θ 20 } f r o m L 1 , L 2 , L 3 , N t h   j o i n t : { x ^ N , α N , a N , d N 0 θ N 0 } f r o m L N 1 , L N , L N + 1 ,
where it is noted that the x ^ 0 -axis is required in advance and it is commonly chosen as [ 1 , 0 , 0 ] T . To verify the completeness of Algorithm 1, several examples are suggested in the following section.
The algorithm does not include any iterative procedures and is composed of fixed geometric operations such as dot products and cross products. The line geometry block contains no loops, and Algorithm 1 uses a single for-loop over N joints. The overall computational complexity is O ( N ) .

5. Verification

Algorithm 1 was implemented in both Python and MATLAB (The implementation for algorithmic DH parameter extraction is available at https://github.com/MinchangSung0223/AlgorithmicMDH (accessed on 27 April 2025)) and is also referenced in [26]. The algorithm was tested using PyBullet [27] and MATLAB simulations. For each joint i, the joint axis z ^ i and a point p i on the axis were extracted from the URDF (Unified Robot Description Format) model [28]. The verification was first conducted on a simple SCARA robot, followed by testing on three commercial robotic manipulators, as described in the following sections. All verifications were conducted entirely in simulation without using the experimental hardware.

5.1. SCARA

A typical SCARA robot consists of three revolute joints and one prismatic joint, where the left side of Figure 7 shows the line information as inputs and the right side shows the extraction results of MDH parameters. For the first joint, the following three consecutive lines are applied to the Algorithm 1:
0 t h   l i n e : z ^ 0 = [ 0 , 0 , 1 ] T , p 0 = [ 0 , 0 , 0 ] T , x ^ 0 = [ 1 , 0 , 0 ] T , 1 s t   l i n e : z ^ 1 = [ 0 , 0 , 1 ] T , p 1 = [ 0 , 0 , 0.375 ] T , 2 n d   l i n e : z ^ 2 = [ 0 , 0 , 1 ] T , p 2 = [ 0 , 0.5 , 0.4 ] T ,
where v i = p i × z ^ i for i = 0 , 1 , 2 . The zeroth line and first line have a collinear relation, and the first line and second line have a distant parallel relation by the proposed criteria in Section 3.5 regarding the line geometry block LG ( L i 1 , L i ) . And finally, the outputs of Algorithm 1 regarding the first joint are listed as follows:
x ^ 1 = [ 0 , 1 , 0 ] T f o r   { 1 }   f r a m e , t 1 0 = [ 0 , 0 , 0 ] T , t 1 1 = [ 0 , 0 , 0.375 ] T o n   z ^ 1 a x i s , α 1 = 0 a b o u t   x ^ 0 a x i s , a 1 = 0 a l o n g   x ^ 0 a x i s , d 10 = 0.375 a l o n g   z ^ 1 a x i s , θ 10 = 90 a b o u t   z ^ 1 a x i s ,
where these results make us to denote the frame { 1 } in the right side of Figure 7. The aforementioned processes are repeated until the fourth joint. As a result, a pair of input and output data for all joints are listed in Table 2 and denoted on the right side of Figure 7. During the processes, the relations between the lines are found in Table 3.
Using the constant MDH parameters suggested in Table 2, the adjacent transformation can be represented by adding joint variables q 1 , θ , q 2 , θ , q 3 , θ for the first, second, and third revolute joints and q 4 , d for the fourth prismatic joint. The generalized joint variables ( θ i , d i ) for each joint are summarized in Table 4.
The forward kinematics can be obtained using the MDH parameters ( α i , a i ) about/along the x ^ i 1 -axis and the generalized joint variables ( θ i , d i ) about/along the z ^ i -axis as follows:
T t c f 0 = T 1 0 ( θ 1 , d 1 ) T 2 1 ( θ 2 , d 2 ) T 3 2 ( θ 3 , d 3 ) T 4 3 ( θ 4 , d 4 ) T t c f 4 ,
where t c f implies { 5 } and ith adjacent transformation belonging to S E ( 3 ) is obtained as, for i = 1 , 2 , 3 , 4 ,
T i i 1 ( θ i , d i ) = expm ( λ x i 1 ) expm ( λ z i ) ,
in which the exponential coordinates λ x i 1 R 6 and λ z i R 6 isomorphic to the Lie algebras λ x i 1 se ( 3 ) and λ z i se ( 3 ) are described using Equation (4) and summarized in Table 5.
Additionally, we can derive the joint twist represented by V i i 1 = λ ˙ z i = E i q ˙ i and the joint matrix E i as suggested in Section 2.3. Furthermore, the joint matrix represented in the base frame { 0 } ( E i 0 = Ad i 0 E i ) and the joint matrix represented in the tool coordinate frame { t c f } ( E i t c f = Ad i t c f E i ) can be obtained using the corresponding adjoint transformations Ad i 0 and Ad i t c f , respectively. Two types of joint matrices denoted by E i 0 and E i t c f are called spatial screw axes and body screw axes in [4], respectively.

5.2. SCARA with Modeling Uncertainties

In practical robotic systems, modeling uncertainties often lead to deviations in the direction and displacement vectors from their ideal values. Despite such deviations, the proposed algorithm is capable of robustly computing the MDH parameters from non-ideal inputs, provided that the joint axes are correctly defined as lines, as described in Section 3. In conventional approaches to kinematic modeling using MDH or DH parameterizations, the transformations from the base frame to the first joint frame and from the last joint frame to the tool coordinate frame are typically treated as known rigid transformations. If needed, they may be modeled with additional parameters and identified separately. In our method, it is also possible to estimate the MDH parameters associated with such rigid transformations by allocating additional virtual lines to represent them. However, because these transformations are typically fixed and known with high accuracy (e.g., derived from CAD models or mechanical assembly), our algorithm assumes them to be given and instead focuses on calibrating the internal joint transformations between successive links using the line geometry-based approach (see Algorithm 1). To evaluate the robustness of the proposed method, we introduced synthetic modeling uncertainties into a simple SCARA robot. Table 6 compares the nominal and perturbed (“actual”) joint parameters encoded in the URDF. Perturbations were applied to each joint with approximately 1 deviation in orientation and 0.01 m deviation in displacement, mimicking realistic sensor or modeling noise. Based on the perturbed URDF data in Table 6, the MDH parameters extracted using the proposed algorithm are listed in Table 7. Compared to the ideal case, the modeling uncertainties caused several joint axis pairs, previously identified as “distant” in line geometry, to be reclassified as “skewed”. As a result, the joint offset distances d i 0 increased noticeably. The updated relationships between adjacent joint axes under perturbation are summarized in Table 8.

5.3. Indy7

Let us consider the MDH parameters of Indy7 manufactured by Neuromeka, which has six revolute joints based on electrical current-based control. The left side of Figure 8 shows line information denoted by ( z ^ i , p i ) including the base frame and TCF, where the line information was extracted from the z ^ -axis and the origin of the joint frame written in the URDF in [29]. The right side of Figure 8 illustrates the coordinate frames defined by MDH parameters, which were extracted from Algorithm 1. Indeed, the MDH parameters of Indy7 have been discussed in [30], but the results are different from ours. The differences between the proposed method and the reference [30] happen because the proposed method makes use of the line geometry and [30] uses the user-defined x ^ -axis, respectively. Specifically, d 20 = 0 in [30] while d 20 = 0.109 in Table 9, and x ^ 5 -axis of [30], have opposite directions with the x ^ 5 -axis shown in Figure 8.
For Indy7, when the input data suggested in Table 9 are applied to Algorithm 1, the line geometry blocks are called by the algorithm, and the spatial relationships between the joint axes are determined as summarized in Table 10.
The aforementioned selections yield the MDH parameters for Indy7 in the Algorithm 1. As a result, a pair of input and output data for all joints are listed in Table 9 and denoted on the right side of Figure 8. Note that any point p i can be arbitrarily chosen along the line L i ( z ^ i , v i ) (i.e., the joint axis) since the MDH parameterization only requires that p i lies on the axis direction z ^ i . For example, if p 2 = [ 0 , 0 , 0.2995 ] T is selected as the intersection point between L 1 and L 2 , then the resulting value of d 20 becomes zero.

5.4. KUKA LBR Iiwa

The KUKA LBR iiwa is one of the widely used seven-dof robotic manipulators, which has seven revolute joints. The left side of Figure 9 shows line information denoted by ( z ^ i , p i ) including the base frame and TCF, where the line information was extracted from the z ^ -axis and the origin of the joint frame written in the URDF in [31]. The right side of Figure 9 illustrates the coordinate frames defined by MDH parameters extracted from Algorithm 1. When the input data suggested in Table 11 are applied to Algorithm 1, the line geometry blocks are called by the algorithm, and the spatial relationships between the joint axes are determined as summarized in Table 12.
According to the above selection, the MDH parameters for KUKA LBR iiwa are obtained by the Algorithm 1. As a result, a pair of input and output data for all joints are listed in Table 11 and denoted on the right side of Figure 9.

5.5. UR5

The UR-5 is one of the widely used six-dof robotic manipulators, which has six revolute joints. The left side of Figure 10 shows line information denoted by ( z ^ i , p i ) including the base frame and TCF, where the line information was extracted from the z ^ -axis and the origin of the joint frame written in the URDF [32]. The right side of Figure 10 illustrates the coordinate frames defined by MDH parameters extracted from Algorithm 1. When the input data suggested in Table 13 are applied to Algorithm 1, the line geometry blocks are called by the algorithm, and the spatial relationships between the joint axes are determined as shown in Table 14.
According to the above selection, the MDH can be obtained. As a result, a pair of input and output data for all joints are listed in Table 13 and denoted on the right side of Figure 10.

6. Conclusions

This paper has presented how to extract the MDH parameters of single-branched robotic manipulators using the line geometry, ultimately, for kinematic modeling. The extracted MDH parameters could be used to define the adjacent transformation between the coordinate frames while finding out the exponential coordinates, joint twists, and joint matrices derived from the MDH parameters. The line geometry played core roles in extracting the MDH parameters based on the relation between line and points, the relation between two lines, a common perpendicular line, and the feet of a common perpendicular line, which are concatenated into the line geometry block. Also, it was important to classify how two adjacent lines are located relative to each other such as collinear, distant parallel, intersected, and skewed. Finally, the MDH extraction method was summarized in the algorithm to yield four parameters such as link twist, link length, joint offset distance, and joint offset angle. By combining parts of MDH parameters into the generalized joint variables, forward kinematics could be completed. The completeness of the proposed algorithm was verified through the conventional SCARA robot and three different commercial Indy7, KUKA LBR iiwa, and UR5 robots. Although the kinematic modeling using the MDH parameters was not new, the proposed algorithm was able to overcome the disadvantage that the MDH parameters are differently defined by user-defined coordinate frames, because the line geometry provides a unique and systematic method.

Author Contributions

Conceptualization, M.S.; Methodology, M.S.; Software, M.S.; Validation, M.S.; Formal analysis, M.S.; Investigation, M.S.; Data curation, M.S.; Writing—original draft, M.S.; Writing—review & editing, M.S. and Y.C.; Supervision, Y.C.; Project administration, Y.C.; Funding acquisition, Y.C. All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported in part by the Institute of Civil-Military Technology Cooperation funded by the Defense Acquisition Program Administration and the Ministry of Trade, Industry, and Energy of the Korean government under grant No. 22-CM-EC-36, and in part by the Industrial Strategic Technology Development Program funded by the Ministry of Trade, Industry, and Energy, under grant No. 20023257, South Korea.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The source code and sample data used for the algorithmic MDH parameter extraction are openly available at https://github.com/MinchangSung0223/AlgorithmicMDH (accessed on 27 April 2025). Additional simulation results are available from the corresponding author upon reasonable request.

Acknowledgments

The authors thank the organizations that provided data and simulation models used in this study.

Conflicts of Interest

The authors declare no conflicts of interest. The sponsors had no role in the design, execution, interpretation, or writing of the study.

Abbreviations

  • DH—Denavit–Hartenberg
  • MDH—Modified Denavit–Hartenberg
  • PoE—Product of Exponentials
  • SCARA—Selective Compliance Assembly Robot Arm
  • URDF—Unified Robot Description Format
  • TCF—Tool Coordinate Frame

Appendix A. Comparison of Kinematic Parameterizations

Table A1. Comparison of PoE, MDH, and DH formulations for n-DOF serial manipulators.
Table A1. Comparison of PoE, MDH, and DH formulations for n-DOF serial manipulators.
CategoryPoEMDHDH
# of parameters 6 × n 4 × n 4 × n
T tcf 0 required
T tcf n required
Frame consistencygloballocallocal
x-axis assignmentunnecessarysystematicmanual and ambiguous
Multi-DOF joint support
Note: ✓ = supported; ✗ = not supported.

Appendix B. Derivation of Line Geometry Formulas

In this appendix, detailed derivations of the equations presented in the main text are provided.

Appendix B.1. Deviation of Equation (11)

This derivation shows the step-by-step procedure to obtain the closest point p :
p = p ( p · z ^ ) z ^
= ( z ^ · z ^ ) p ( z ^ · p )   z ^   s i n c e   z ^   i s a u n i t v e c t o r = z ^ × ( p × z ^ )   u s i n g   a × ( b × c ) = ( a · c ) b ( a · b ) c
= z ^ × v ,

Appendix B.2. Deviation of Equation (13)

This derivation shows the step-by-step procedure to obtain the closest point t from an arbitrary point t:
t = p ( ( p t ) · z ^ ) z ^
= t + ( z ^ · z ^ ) ( p t ) ( ( p t ) · z ^ ) z ^
= t + z ^ × ( ( p t ) × z ^ )
= t + z ^ × v t ,

Appendix B.3. Deviation of Equation (16)

This derivation shows the procedure to calculate the moment vector v of the common perpendicular line connecting two lines L 1 and L 2 :
L 1 L 2 = z ^ 1 · v 2 + z ^ 2 · v 1 = z ^ 1 · ( v 21 + t 1 × z ^ 2 ) + z ^ 2 · v 1   u s i n g   a · ( b × c ) = ( a × b ) · c
= z ^ 1 · v 21 + ( z ^ 1 × ( t 1 p 1 ) ) · z ^ 2
= z ^ 1 · v 21
= z ^ 1 v 21 cos α + π 2
= v 21 sin α ,

Appendix B.4. Deviation of Equation (20)

This derivation shows the procedure to calculate the moment vector v of the common perpendicular line connecting two lines L 1 and L 2 :
v = t 2 × z ^ = t 2 × z ^ 1 × z ^ 2 z ^ 1 × z ^ 2 using   a × ( b × c ) = ( a · c ) b ( a · b ) c = t 2 · z ^ 2 z ^ 1 t 2 · z ^ 1 z ^ 2 z ^ 1 × z ^ 2 = t 1 + t 2 t 1 · z ^ 2 z ^ 1 t 2 · z ^ 1 z ^ 2 z ^ 1 × z ^ 2 t 2 t 1 z ^ 2 = z ^ 2 · t 1 z ^ 1 z ^ 1 · t 2 z ^ 2 z ^ 1 × z ^ 2 using   ( a · b ) c = ( a · c ) b a × ( b × c ) = z ^ 1 × v 2 z ^ 2 × v 1 z ^ 1 × z ^ 2 + z ^ 1 · z ^ 2 z ^ 1 × z ^ 2 t 1 t 2 using   t 2 t 1 = a n ^ = z ^ 1 · v 2 + z ^ 2 · v 1 z ^ 1 × z ^ 2 n ^ = z ^ 1 × v 2 z ^ 2 × v 1 z ^ 1 × z ^ 2 + z ^ 1 · z ^ 2 ( z ^ 1 · v 2 + z ^ 2 · v 1 ) z ^ 1 × z ^ 2 2 n ^ .

Appendix B.5. Deviation of Equation (22)

This derivation shows how the scalar projection t 2 · n ^ of the intersection point t 2 onto the vector n ^ is computed:
t 2 = ( t 2 · z ^ 1 ) z ^ 1 + ( t 2 · u ^ ) u ^ + ( t 2 · n ^ ) n ^ .
For the third term ( t 2 · n ^ ) of the right-hand side of Equation (21), since we can observe the following
v 2 · z ^ 1 = ( t 2 × z ^ 2 ) · z ^ 1   u s i n g   ( a × b ) · c = a · ( b × c ) = t 2 · ( z ^ 1 × z ^ 2 )   u s i n g   n ^ = z ^ 1 × z ^ 2 z ^ 1 × z ^ 2 = ( t 2 · n ^ ) z ^ 1 × z ^ 2 ,
then we have
t 2 · n ^ = v 2 · z ^ 1 z ^ 1 × z ^ 2 .

Appendix B.6. Deviation of Equation (23)

This derivation shows the procedure to calculate the projection of the intersection point t 2 onto the vector u ^ :
t 2 · u ^ = t 2 · ( n ^ × z ^ 1 )   u s i n g   a · ( b × c ) = ( a × b ) · c = ( t 2 × n ^ ) · z ^ 1   u s i n g   n ^ = z ^ = z ^ 1 × z ^ 2 z ^ 1 × z ^ 2 = ( t 2 × z ^ ) · z ^ 1   u s i n g   v = t 2 × z ^ = v · z ^ 1 u s i n g   E q u a t i o n   ( 20 ) = ( z ^ 2 × v 1 ) · z ^ 1 z ^ 1 × z ^ 2 = v 1 · ( z ^ 1 × z ^ 2 ) z ^ 1 × z ^ 2 = v 1 · n ^ .

Appendix B.7. Deviation of Equation (25)

This derivation shows the procedure to calculate the scalar projection t 2 · z ^ 1 :
t 2 · z ^ 1 = ( v 2 · ( z ^ 1 × z ^ 2 ) ) ( z ^ 1 · z ^ 2 ) ( v 1 · ( z ^ 1 × z ^ 2 ) ) 1 ( z ^ 1 · z ^ 2 ) 2 = ( v 2 · ( z ^ 1 × z ^ 2 ) ) ( z ^ 1 · z ^ 2 ) ( v 1 · ( z ^ 1 × z ^ 2 ) ) z ^ 1 × z ^ 2 2 = ( v 2 ( z ^ 1 · z ^ 2 ) v 1 ) · n ^ z ^ 1 × z ^ 2 .

Appendix B.8. Deviation of Equation (26)

This derivation shows the procedure to obtain the explicit expression for intersection point t 2 :
t 2 = ( t 2 · z ^ 1 ) z ^ 1 + ( t 2 · u ^ ) u ^ + ( t 2 · n ^ ) n ^ = ( v 2 ( z ^ 1 · z ^ 2 ) v 1 ) · n ^ z ^ 1 × z ^ 2 z ^ 1 ( v 1 · n ^ ) u ^ v 2 · z ^ 1 z ^ 1 × z ^ 2 n ^ = ( v 2 · n ^ ) z ^ 1 ( v 2 · z ^ 1 ) n ^ z ^ 1 × z ^ 2 ( v 1 · n ^ ) ( z ^ 1 · z ^ 2 ) z ^ 1 z ^ 1 × z ^ 2 + ( n ^ × z ^ 1 ) = v 2 × ( z ^ 1 × n ^ ) z ^ 1 × z ^ 2 ( v 1 · n ^ ) ( z ^ 1 · z ^ 2 ) z ^ 1 + ( z ^ 1 × z ^ 2 ) × z ^ 1 z ^ 1 × z ^ 2 = v 2 × ( z ^ 1 × ( z ^ 1 × z ^ 2 ) ) ( v 1 · ( z ^ 1 × z ^ 2 ) ) z ^ 2 z ^ 1 × z ^ 2 2 .

References

  1. Featherstone, R. Robot Dynamics Algorithms. Ph.D. Thesis, University of Edinburgh, Edinburgh, UK, 1984. [Google Scholar]
  2. Davidson, J.K.; Hunt, K.H.; Pennock, G.R. Robots and screw theory: Applications of kinematics and statics to robotics. J. Mech. Des. 2004, 126, 763–764. [Google Scholar] [CrossRef]
  3. Murray, R.M.; Li, Z.; Sastry, S.S. A Mathematical Introduction to Robotic Manipulation; CRC Press: Boca Raton, FL, USA, 2017. [Google Scholar]
  4. Lynch, K.M.; Park, F.C. Modern Robotics; Cambridge University Press: Cambridge, UK, 2017. [Google Scholar]
  5. Hayati, S.; Mirmirani, M. Improving the absolute positioning accuracy of robot manipulators. J. Robot. Syst. 1985, 2, 397–413. [Google Scholar] [CrossRef]
  6. Denavit, J.; Hartenberg, R.S. A kinematic notation for lower-pair mechanisms based on matrices. J. Appl. Mech. 1955, 22, 215–221. [Google Scholar] [CrossRef]
  7. Hartenberg, R.; Danavit, J. Kinematic Synthesis of Linkages; McGraw-Hill: New York, NY, USA, 1964. [Google Scholar]
  8. Kahn, M.E.; Roth, B. The near-minimum-time control of open-loop articulated kinematic chains. J. Dyn. Sys. Meas. Control 1971, 93, 164–172. [Google Scholar] [CrossRef]
  9. Featherstone, R. A Program for Simulating Robot Dynamics; Working Paper 155; Department of Artificial Intelligence, University of Edinburgh: Edinburgh, UK, 1982. [Google Scholar]
  10. Craig, J.J. Introduction to Robotics; Pearson Educacion: London, UK, 2006. [Google Scholar]
  11. Lipkin, H. A note on Denavit-Hartenberg notation in robotics. In Proceedings of the International Design Engineering Technical Conferences and Computers and Information in Engineering Conference, Long Beach, CA, USA, 24–28 September 2005. [Google Scholar]
  12. Waldron, K.J.; Schmiedeler, J. Chapter 1 Kinematics, Handbook of Robotics; Springer: Berlin/Heidelberg, Germany, 2008. [Google Scholar]
  13. Corke, P.I. A Simple and Systematic Approach to Assigning Denavit–Hartenberg Parameters. IEEE T. Rob. 2007, 23, 590–594. [Google Scholar] [CrossRef]
  14. Lin, Y.; Zhao, H.; Ye, C.; Ding, H. A computationally efficient and robust kinematic calibration model for industrial robots with kinematic parallelogram. In Proceedings of the 2017 IEEE International Conference on Robotics and Biomimetics (ROBIO), Macau, China, 5–8 December 2017; IEEE: Piscataway, NJ, USA, 2017. [Google Scholar]
  15. Faria, C.; Vilaça, J.L.; Monteiro, S.; Erlhagen, W.; Bicho, E. Automatic Denavit-Hartenberg Parameter Identification for Serial Manipulators. In Proceedings of the IECON 2019—45th Annual Conference of the IEEE Industrial Electronics Society, Lisbon, Portugal, 14–17 October 2019; Volume 1, pp. 610–617. [Google Scholar] [CrossRef]
  16. Rajeevlochana, C.G.; Saha, S.K.; Kumar, S. Automatic Extraction of DH Parameters of Serial Manipulators using Line Geometry. In Proceedings of the 2nd Joint International Conference on Multibody System Dynamics, Stuttgart, Germany, 29 May–1 June 2012. [Google Scholar]
  17. Huang, Q.; Zhang, X.; Pan, H.; Lu, K.; Cheng, Y. POE-based kinematic calibration for serial robots using left-invariant error representation and decomposed iterative method. Robot. Auton. Syst. 2025, 186, 104896. [Google Scholar] [CrossRef]
  18. Yuan, Y.; Sun, W. An integrated kinematic calibration and dynamic identification method with only static measurements for serial robot. IEEE/ASME Trans. Mechatron. 2023, 28, 2762–2773. [Google Scholar] [CrossRef]
  19. He, R.; Zhao, Y.; Yang, S.; Yang, S. Kinematic-parameter identification for serial-robot calibration based on POE formula. IEEE Trans. Robot. 2010, 26, 411–423. [Google Scholar]
  20. Li, C.; Wu, Y.; Löwe, H.; Li, Z. POE-based robot kinematic calibration using axis configuration space and the adjoint error model. IEEE Trans. Robot. 2016, 32, 1264–1279. [Google Scholar] [CrossRef]
  21. Iserles, A.; Munthe-Kaas, H.Z.; Nørsett, S.P.; Zanna, A. Lie-group methods. Acta Numer. 2000, 9, 215–365. [Google Scholar] [CrossRef]
  22. Bullo, F.; Murray, R.M. Proportional Derivative (PD) Control on the Euclidean Group; CDS Technical Report 95-010; California Institute of Technology: Pasadena, CA, USA, 1995. [Google Scholar]
  23. Hodge, W.V.D.; Pedoe, D. Methods of Algebraic Geometry; Cambridge University Press: Cambridge, UK, 1994; Volume 2. [Google Scholar]
  24. Mason, M.T. Mechanics of Robotic Manipulation; MIT Press: Cambridge, MA, USA, 2001. [Google Scholar]
  25. Jia, Y.B. Plücker coordinates for lines in the space. In Problem Solver Techniques for Applied Computer Science, Com-S-477/577 Course Handout; Iowa State University: Ames, Iowa, 2020. [Google Scholar]
  26. Sung, M. Algorithmic MDH. Available online: https://github.com/MinchangSung0223/AlgorithmicMDH (accessed on 27 April 2025).
  27. Coumans, E.; Bai, Y. Pybullet, a Python Module for Physics Simulation for Games, Robotics and Machine Learning. 2016. Available online: http://pybullet.org (accessed on 27 April 2025).
  28. ROS.org. URDF. Available online: http://wiki.ros.org/urdf (accessed on 27 November 2023).
  29. Neuromeka. Indy7 URDF. Available online: https://github.com/neuromeka-robotics/indy-ros (accessed on 27 November 2023).
  30. Tadese, M.; Pico, N.; Seo, S.; Moon, H. A Two-Step Method for Dynamic Parameter Identification of Indy7 Collaborative Robot Manipulator. Sensors 2022, 22, 9708. [Google Scholar] [CrossRef] [PubMed]
  31. KUKA. KUKA lbr Iiwa URDF. Available online: https://github.com/rtkg/lbr_iiwa (accessed on 27 November 2023).
  32. Universal Robotics. UR5 URDF. Available online: https://github.com/ros-industrial/universal_robot (accessed on 27 November 2023).
Figure 1. Modified Denavit–Hartenberg (MDH) parameters, where p i 1 denotes the point on the ( i 1 ) th joint axis, the z ^ i 1 -axis is set along the ( i 1 ) th joint axis, the x ^ i 1 -axis is determined to be a common perpendicular direction from the z ^ i 1 -axis to the z ^ i -axis, and the origin of the frame { i 1 } denoted by t i 1 i 1 is an intersection point of the x ^ i 1 -axis and the z ^ i 1 -axis. Also, four MDH parameters are denoted as α i , a i , θ i 0 , and d i 0 .
Figure 1. Modified Denavit–Hartenberg (MDH) parameters, where p i 1 denotes the point on the ( i 1 ) th joint axis, the z ^ i 1 -axis is set along the ( i 1 ) th joint axis, the x ^ i 1 -axis is determined to be a common perpendicular direction from the z ^ i 1 -axis to the z ^ i -axis, and the origin of the frame { i 1 } denoted by t i 1 i 1 is an intersection point of the x ^ i 1 -axis and the z ^ i 1 -axis. Also, four MDH parameters are denoted as α i , a i , θ i 0 , and d i 0 .
Applsci 15 04999 g001
Figure 2. Relationships between a line L ( z ^ , v ) and a point p on the line, and between the line and a point t out of the line in three-dimensional space.
Figure 2. Relationships between a line L ( z ^ , v ) and a point p on the line, and between the line and a point t out of the line in three-dimensional space.
Applsci 15 04999 g002
Figure 3. Relationships between two lines L 1 ( z ^ 1 , v 1 = p 1 × z ^ 1 ) and L 2 ( z ^ 2 , v 2 = p 2 × z ^ 2 ) , where a is the distance between two lines, t 1 and t 2 are feet of the common perpendicular line L ( z ^ , v ) to two lines, and n ^ = z ^ is the direction vector from t 1 to t 2 .
Figure 3. Relationships between two lines L 1 ( z ^ 1 , v 1 = p 1 × z ^ 1 ) and L 2 ( z ^ 2 , v 2 = p 2 × z ^ 2 ) , where a is the distance between two lines, t 1 and t 2 are feet of the common perpendicular line L ( z ^ , v ) to two lines, and n ^ = z ^ is the direction vector from t 1 to t 2 .
Applsci 15 04999 g003
Figure 4. The plane Π contains z ^ 2 and v 21 , which is orthogonal to the common perpendicular line and parallel to z ^ 1 ; consequently, it contains z ^ 1 as well, where α implies the twist angle of rotation from z ^ 1 to z ^ 2 about the common perpendicular line, and z ^ 2 is perpendicular to v 21 .
Figure 4. The plane Π contains z ^ 2 and v 21 , which is orthogonal to the common perpendicular line and parallel to z ^ 1 ; consequently, it contains z ^ 1 as well, where α implies the twist angle of rotation from z ^ 1 to z ^ 2 about the common perpendicular line, and z ^ 2 is perpendicular to v 21 .
Applsci 15 04999 g004
Figure 5. z ^ 1 - u ^ - n ^ coordinate frame, where z ^ 2 lies in the z ^ 1 - u ^ plane, and thus sin α = z ^ 1 × z ^ 2 and cos α = z ^ 1 · z ^ 2 for 0 α π .
Figure 5. z ^ 1 - u ^ - n ^ coordinate frame, where z ^ 2 lies in the z ^ 1 - u ^ plane, and thus sin α = z ^ 1 × z ^ 2 and cos α = z ^ 1 · z ^ 2 for 0 α π .
Applsci 15 04999 g005
Figure 6. Flowchart of the line geometry block LG ( L i 1 , L i ) . Given two input lines, L i 1 ( z ^ i 1 , v i 1 = p i 1 × z ^ i 1 ) and L i ( z ^ i , v i = p i × z ^ i ) , the block uses two criteria to classify their relationship into one of the four cases: Collinear, Distant, Intersected, or Skewed. Based on the case, it returns five parameters: α i i 1 , a i i 1 , n ^ i i 1 , t i 1 i 1 , and t i i 1 .
Figure 6. Flowchart of the line geometry block LG ( L i 1 , L i ) . Given two input lines, L i 1 ( z ^ i 1 , v i 1 = p i 1 × z ^ i 1 ) and L i ( z ^ i , v i = p i × z ^ i ) , the block uses two criteria to classify their relationship into one of the four cases: Collinear, Distant, Intersected, or Skewed. Based on the case, it returns five parameters: α i i 1 , a i i 1 , n ^ i i 1 , t i 1 i 1 , and t i i 1 .
Applsci 15 04999 g006
Figure 7. The SCARA robot example, where the left side shows six line information including the base and TCF and the right side illustrates the result of MDH parameters extracted using Algorithm 1, in which the red arrow denotes the x ^ i -axis, the green arrow expresses the y ^ i -axis, and the blue arrow represents the z ^ i -axis, respectively. In addition, the circle ∘ on the left side denotes the point p i , and ∘ on the right side expresses the origin of the ith frame.
Figure 7. The SCARA robot example, where the left side shows six line information including the base and TCF and the right side illustrates the result of MDH parameters extracted using Algorithm 1, in which the red arrow denotes the x ^ i -axis, the green arrow expresses the y ^ i -axis, and the blue arrow represents the z ^ i -axis, respectively. In addition, the circle ∘ on the left side denotes the point p i , and ∘ on the right side expresses the origin of the ith frame.
Applsci 15 04999 g007
Figure 8. MDH parameters of Indy7, where the left side shows the input data regarding z ^ i and p i denoted by the circle ∘, and the right side illustrates the frames obtained from the MDH parameters. Numerical data of input/output for Algorithm 1 are given in Table 9.
Figure 8. MDH parameters of Indy7, where the left side shows the input data regarding z ^ i and p i denoted by the circle ∘, and the right side illustrates the frames obtained from the MDH parameters. Numerical data of input/output for Algorithm 1 are given in Table 9.
Applsci 15 04999 g008
Figure 9. MDH parameters of KUKA LBR iiwa, where the left side shows the input data regarding z ^ i and p i denoted by the circle ∘, and the right side illustrates the frames obtained from the MDH parameters. Numerical data of input/output related to Algorithm 1 are given in Table 11.
Figure 9. MDH parameters of KUKA LBR iiwa, where the left side shows the input data regarding z ^ i and p i denoted by the circle ∘, and the right side illustrates the frames obtained from the MDH parameters. Numerical data of input/output related to Algorithm 1 are given in Table 11.
Applsci 15 04999 g009
Figure 10. MDH parameters of UR5, where the left side shows the input data regarding z ^ i and p i denoted by the circle ∘, and the right side illustrates the frames obtained from the MDH parameters. Numerical data of input/output related to Algorithm 1 are given in Table 13.
Figure 10. MDH parameters of UR5, where the left side shows the input data regarding z ^ i and p i denoted by the circle ∘, and the right side illustrates the frames obtained from the MDH parameters. Numerical data of input/output related to Algorithm 1 are given in Table 13.
Applsci 15 04999 g010
Table 1. The generalized joint variables with MDH parameters.
Table 1. The generalized joint variables with MDH parameters.
Joint TypeGeneralized Joint Variables ( θ i , d i )
Revolute (R) θ i θ i 0 + q i , θ
one-dof d i d i 0
Prismatic (P) θ i θ i 0
one-dof d i d i 0 + q i , d
Helical (H) θ i θ i 0 + q i , θ
one-dof d i d i 0 + h q i , θ
Cylindrical (RP) θ i θ i 0 + q i , θ
two-dof d i d i 0 + q i , d
Table 2. MDH parameters of the Selective Compliance Assembly Robot Arm (SCARA) robot extracted when inputs are z ^ i -axis, p i on the ith joint axis, and its moments denoted by v i = p i × z ^ i , where outputs of Algorithm 1 are obtained as a set of x ^ i -axis, link twist α i , link length a i , joint offset distance d i 0 , and joint offset angle θ i 0 for the ith joint. Additionally, t i i 1 and t i i are both feet of the common perpendicular line.
Table 2. MDH parameters of the Selective Compliance Assembly Robot Arm (SCARA) robot extracted when inputs are z ^ i -axis, p i on the ith joint axis, and its moments denoted by v i = p i × z ^ i , where outputs of Algorithm 1 are obtained as a set of x ^ i -axis, link twist α i , link length a i , joint offset distance d i 0 , and joint offset angle θ i 0 for the ith joint. Additionally, t i i 1 and t i i are both feet of the common perpendicular line.
i012345
input z ^ i 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1
p i 0 0 0 0 0 0.375 0 0.5 0.4 0.5 0.5 0.4 0.5 0.5 0.15 0.5 0.5 0.15
v i 0 0 0 0 0 0 0.5 0 0 0.5 0.5 0 0.5 0.5 0 0.5 0.5 0
output x ^ i × 0 1 0 1 0 0 1 0 0 1 0 0 ×
t i i 1 0 0 0 0 0.5 0.375 0.5 0.5 0.4 0.5 0.5 0.4
t i i 0 0 0.375 0 0.5 0.4 0.5 0.5 0.4 0.5 0.5 0.15
α i 000 π
a i 00.50.50
d i 0 0.3750.02500.25
θ i 0 π 2 π 2 00
Table 3. Relations between adjacent joint axes computed from the SCARA model.
Table 3. Relations between adjacent joint axes computed from the SCARA model.
b/w 0 and 11 and 22 and 33 and 44 and 5
relationcollineardistantdistantcollinearcollinear
Table 4. The generalized joint variables with MDH parameters for the SCARA robot.
Table 4. The generalized joint variables with MDH parameters for the SCARA robot.
JointsGeneralized Joint Variables ( θ i , d i )
1st revolute θ 1 θ 10 + q 1 , θ = π 2 + q 1 , θ
d 1 d 10 = 0.375
2nd revolute θ 2 θ 20 + q 2 , θ = π 2 + q 2 , θ
d 2 d 20 = 0.025
3rd revolute θ 3 θ 30 + q 3 , θ = q 3 , θ
d 3 d 30 = 0
4th prismatic θ 4 θ 40 = 0
d 4 d 40 + q 4 , d = 0.25 + q 4 , d
Table 5. Exponential coordinates λ x i 1 , λ z i , and joint matrices E i for SCARA robot joints.
Table 5. Exponential coordinates λ x i 1 , λ z i , and joint matrices E i for SCARA robot joints.
iJoint Type λ x i 1 λ z i E i
1R [ 0 , 0 , 0 , 0 , 0 , 0 ] T [ 0 , 0 , 0.375 , 0 , 0 , π 2 + q 1 , θ ] T [ 0 , 0 , 0 , 0 , 0 , 1 ] T
2R [ 0.5 , 0 , 0 , 0 , 0 , 0 ] T [ 0 , 0 , 0.025 , 0 , 0 , π 2 + q 2 , θ ] T [ 0 , 0 , 0 , 0 , 0 , 1 ] T
3R [ 0.5 , 0 , 0 , 0 , 0 , 0 ] T [ 0 , 0 , 0 , 0 , 0 , q 3 , θ ] T [ 0 , 0 , 0 , 0 , 0 , 1 ] T
4P [ 0 , 0 , 0 , π , 0 , 0 ] T [ 0 , 0 , 0.25 + q 4 , d , 0 , 0 , 0 ] T [ 0 , 0 , 1 , 0 , 0 , 1 ] T
Table 6. Comparison of nominal and perturbed URDF parameters for the SCARA robot.
Table 6. Comparison of nominal and perturbed URDF parameters for the SCARA robot.
Joint PairOrientation (Roll, Pitch, Yaw) [deg]Position (x, y, z) [m]
Nominal Perturbed Nominal Perturbed
0–1(0, 0, 0)(0, 0, 0)(0, 0, 0.375)(0, 0, 0)
1–2(0, 0, 0)(1, 1, −1)(0, 0.5, 0.025)(0.01, 0.51, −0.024)
2–3(0, 0, 0)(1, −1, 1)(0.5, 0, 0)(0.51, −0.01, 0.01)
3–4(0, 0, 0)(−1, −1, −1)(0, 0, −0.25)(−0.01, −0.01, −0.29)
4–5(0, 0, 0)(0, 0, 0)(0, 0, 0)(0, 0, 0)
Table 7. Extracted MDH parameters from the perturbed SCARA robot, using small positive threshold sin ( ϵ θ ) = ϵ d = ϵ L = 10 16 .
Table 7. Extracted MDH parameters from the perturbed SCARA robot, using small positive threshold sin ( ϵ θ ) = ϵ d = ϵ L = 10 16 .
ParameterJoint 1Joint 2Joint 3Joint 4
α i [rad]0.00000.02470.02470.0247
a i [m]0.00000.36140.37390.0141
d i 0 [m]14.8930−0.5166−14.3041−0.0100
θ i 0 [rad]0.7678−1.5533−1.58830.0000
Table 8. Relations between adjacent joint axes computed from the perturbed URDF model.
Table 8. Relations between adjacent joint axes computed from the perturbed URDF model.
b/w 0 and 11 and 22 and 33 and 44 and 5
Relationcollinearskewedskewedskewedcollinear
Table 9. Indy7, where upper part and lower part imply the input data to the Algorithm 1 and the output yielded from the algorithm, respectively.
Table 9. Indy7, where upper part and lower part imply the input data to the Algorithm 1 and the output yielded from the algorithm, respectively.
i01234567
input z ^ i 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1
p i 0 0 0 0 0 0.0775 0 0.1090 0.2995 0 0.0785 0.7495 0 0.0035 1.0165 0 0.1175 1.0995 0 0.1865 1.2675 0 0.1865 1.3275
v i 0 0 0 0 0 0 0.2995 0 0 0.7495 0 0 0.0035 0 0 1.0995 0 0 0.1865 0 0 0.1865 0 0
i01234567
output x ^ i × 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 ×
t i i 1 0 0 0 0 0 0.2995 0 0.1090 0.7495 0 0.0035 0.7495 0 0.0035 1.0995 0 0.1865 1.0995
t i i 0 0 0.2995 0 0.1090 0.2995 0 0.0035 0.7495 0 0.0035 1.0995 0 0.1865 1.0995 0 0.1865 1.2675
output α i 0 π 2 0 π 2 π 2 π 2
a i 00 0.4500 000
d i 0 0.2995 0.1090 0.1055 0.3500 0.1830 0.1680
θ i 0 0 π 2 π 2 π π 0
Table 10. Relations between adjacent joint axes computed from the Indy7 model.
Table 10. Relations between adjacent joint axes computed from the Indy7 model.
b/w 0 and 11 and 22 and 33 and 4
relationcollinearintersecteddistantintersected
4 and 55 and 66 and 7
relationintersectedintersectedcollinear
Table 11. KUKA LBR iiwa, where upper part and lower part imply the input data to the Algorithm 1 and the output yielded from the algorithm, respectively.
Table 11. KUKA LBR iiwa, where upper part and lower part imply the input data to the Algorithm 1 and the output yielded from the algorithm, respectively.
i012345678
input z ^ i 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1
p i 0 0 0 0 0 0.1575 0 0 0.3600 0 0 0.5645 0 0 0.7800 0 0 0.9645 0 0 1.1800 0 0 1.2610 0 0 1.3060
v i 0 0 0 0 0 0 0.3600 0 0 0 0 0 0.7800 0 0 0 0 0 1.1800 0 0 0 0 0 0 0 0
output x ^ i × 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 ×
t i i 1 0 0 0 0 0 0.3600 0 0 0.3600 0 0 0.7800 0 0 0.7800 0 0 1.1800 0 0 1.1800
t i i 0 0 0.3600 0 0 0.3600 0 0 0.7800 0 0 0.7800 0 0 1.1800 0 0 1.1800 0 0 1.2610
α i 0 π 2 π 2 π 2 π 2 π 2 π 2
a i 0000000
d i 0 0.3600 0 0.4200 0 0.4000 0 0.0810
θ i 0 π π 0 π 0 π 0
Table 12. Relations between adjacent joint axes computed from the KUKA LBR iiwa model.
Table 12. Relations between adjacent joint axes computed from the KUKA LBR iiwa model.
b/w 0 and 11 and 22 and 33 and 4
relationcollinearintersectedintersectedintersected
4 and 55 and 66 and 77 and 8
relationintersectedintersectedintersectedcollinear
Table 13. UR5, where the upper part and lower part imply the input data to the Algorithm 1 and the output yielded from the algorithm, respectively.
Table 13. UR5, where the upper part and lower part imply the input data to the Algorithm 1 and the output yielded from the algorithm, respectively.
i01234567
input z ^ i 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0
p i 0 0 0 0 0 0.0892 0 0.1358 0.0892 0.4250 0.0161 0.0892 0.8173 0.0161 0.0892 0.8173 0.1091 0.0892 0.8173 0.1091 0.0055 0.8173 0.1915 0.0055
v i 0 0 0 0 0 0 0.0892 0 0 0.0892 0 0.4250 0.0892 0 0.8173 0.1091 0.8173 0 0.0055 0 0.8173 0 0.0055 0.1915
output x ^ i × 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 ×
t i i 1 0 0 0 0 0 0.0892 0.4250 0.1358 0.0892 0.8173 0.0161 0.0892 0.8173 0.1091 0.0892 0.8173 0.1091 0.0055
t i i 0 0 0.0892 0 0.1358 0.0892 0.4250 0.0161 0.0892 0.8173 0.1091 0.0892 0.8173 0.1091 0.0055 0.8173 0.1915 0.0055
α i 0 π 2 00 π 2 π 2
a i 00 0.4250 0.3923 00
d i 0 0.0892 0.1358 0.1197 0.0930 0.0946 0.0823
θ i 0 π π 0 π π π 2
Table 14. Relations between adjacent joint axes computed from the UR5 model.
Table 14. Relations between adjacent joint axes computed from the UR5 model.
b/w 0 and 11 and 22 and 33 and 4
relationcollinearintersecteddistantdistant
4 and 55 and 66 and 7
relationintersectedintersectedintersected
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Sung, M.; Choi, Y. Algorithmic Modified Denavit–Hartenberg Modeling for Robotic Manipulators Using Line Geometry. Appl. Sci. 2025, 15, 4999. https://doi.org/10.3390/app15094999

AMA Style

Sung M, Choi Y. Algorithmic Modified Denavit–Hartenberg Modeling for Robotic Manipulators Using Line Geometry. Applied Sciences. 2025; 15(9):4999. https://doi.org/10.3390/app15094999

Chicago/Turabian Style

Sung, Minchang, and Youngjin Choi. 2025. "Algorithmic Modified Denavit–Hartenberg Modeling for Robotic Manipulators Using Line Geometry" Applied Sciences 15, no. 9: 4999. https://doi.org/10.3390/app15094999

APA Style

Sung, M., & Choi, Y. (2025). Algorithmic Modified Denavit–Hartenberg Modeling for Robotic Manipulators Using Line Geometry. Applied Sciences, 15(9), 4999. https://doi.org/10.3390/app15094999

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop