In-Depth Analysis of Kinematic, Dynamic, and Control Aspects of a 4-Axis SCARA Robot Manipulator
International Journal of Robotic Engineering
(ISSN: 2631-5106)
Volume 7, Issue 1
Research Article
DOI: 10.35840/2631-5106/4137
In-Depth Analysis of Kinematic, Dynamic, and Control Aspects of a 4-Axis SCARA Robot Manipulator
G. Bala Muniyandi
Figures
Figure 1: Visual representation of...
Visual representation of the 4-axis SCARA IRB 930 manipulator.
Tables
Table 1: DH table for ABB 930.
References
- Pagilla PR, Biao Yu (2004) An experimental study of planar impact of a robot manipulator. IEEE-ASME Transactions on Mechatronics (IEEE) 9: 123-128.
- Stuhlenmiller F, Weyand S, Jungblut J, Schebek L, Clever D, et al. (2021) Impact of cycle time and payload of an industrial robot on resource efficiency. Robotics 10: 33.
- Zacharia P Th, Aspragathos NA (2004) Optimization of industrial manipulators cycle time based on genetic algorithms. IEEE.
- IRB 930 Datasheet.
- Kucuk S, Bingul Z (2006) Robot kinematics: Forward and inverse kinematics, industrial robotics: Theory, Modelling and Control, Sam Cubero, ISBN: 3-86611-285-8, InTech.
- Kucuk S, Bingul S (2004) The inverse kinematics solutions of industrial robot manipulators. Proceedings of the IEEE International Conference on Mechatronics, 2004. ICM '04. Istanbul, Turkey: 274-279.
- Webster RJ III, Jones BA (2010) Design and kinematic modeling of constant curvature continuum robots: A The International Journal of Robotics Research 29: 1661-1683.
- Merlet JP (2007) Jacobian, manipulability, condition number and accuracy of parallel robots. In: Thrun S, Brooks R, Durrant-Whyte H, Robotics Research. Springer Tracts in Advanced Robotics, vol 28. Springer, Berlin, Heidelberg.
- Donelan P (2010) Kinematic singularities of robot manipulators. Advances in Robot Manipulators. Ernest Hall, InTech. ISBN: 978-953-307-070-4.
- Fahimi F, Ashrafiuon H, Nataraj C (2002) An improved inverse kinematic and velocity solution for spatial hyperredundant robots. IEEE Transactions on Robotics and Automation 18: 103-107.
- Kardoš J (2010) The simplified dynamic model of a robot manipulator. In Proceedings of the 18 ^{ th } International Conference: 1-6.
- De Luca A, Ferrajoli L (2009) A modified newton-euler method for dynamic computations in robot fault detection and control. IEEE International Conference on Robotics and Automation, Kobe, Japan, 3359-3364.
- Chung WK, Fu L-C, Kröger T (2016) Motion control. Springer handbook of robotics, 163-194.
- Astrom KJ, Hagglund Tore (1995) PID Controllers: Theory, Design, and Tuning. The International Society of Measurement and Control (2 ^{ nd } edn).
Author Details
G. Bala Muniyandi^{*}
Department of Mechanical Engineering, University College of Engineering, Tiruchirappalli, Tamil Nadu, India
Corresponding author
G. Bala Muniyandi, Department of Mechanical Engineering, University College of Engineering, Tiruchirappalli, Tamil Nadu, India.
Accepted: April 26, 2024 | Published Online: April 28, 2024
Citation: Muniyandi GB (2024) In-Depth Analysis of Kinematic, Dynamic, and Control Aspects of a 4-Axis SCARA Robot Manipulator. Int J Robot Eng 7:037
Copyright: © 2024 Muniyandi GB. This This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
Abstract
This paper investigates the capabilities of the 4-axis SCARA ABB IRB 930 robot, a pivotal machine in industrial automation renowned for its high payload capacity. Emphasizing cycle time and payload capacity, the exceptional motion control and productivity features of the IRB 930 are highlighted. A comprehensive mathematical model for kinematics and dynamics is presented, implemented in MATLAB for accuracy. The versatility of the IRB 930 across various applications, from assembly to screw driving, makes it an ideal subject for kinematic analysis. Detailed discussions cover mathematical modelling, the methodology for deriving the Jacobian, and dynamic analysis, ultimately leading to a specific control model for this robot. This research enhances understanding of the IRB 930 while also contributing universally applicable methodologies for diverse robotic platforms. Findings ranging from forward kinematics to dynamic control propel advancements in the field of robotics and control methodologies.
Keywords
SCARA Robot, Kinematic analysis, Dynamic modelling, Jacobian analysis, Motion control, Robot manipulator
Introduction
The evolution of industrial automation has ushered in a new era of efficiency and precision, prominently led by programmable manipulators known as industrial robots. These sophisticated machines navigate predefined sequences of motions, exhibiting the remarkable ability to execute tasks with unwavering precision over prolonged periods [1]. The contemporary landscape of industrial production places an escalating demand on the flexibility of manufacturing processes, necessitating a closer examination of the design and adaptability of robotic systems both in the present and in the future. One pivotal aspect that profoundly influences the effectiveness of these robots is their cycle time and payload capacity, key parameters intricately linked to overall productivity [2]. A robot’s payload capacity, defined as the amount of mass its wrist can support, extends beyond the mere weight of workpieces handled by the robot. It encompasses the weight of any end-of-arm tooling (EOAT) and bracketing integrated with the robot wrist. Simultaneously, the robot cycle time, representing the duration it takes for a robot to complete one full cycle of its programmed task, includes both the value added time when the robot is actively moving or per- forming the operation and any non-value-added wait time. Together, these factors contribute significantly to the overall effectiveness and productivity of industrial robotic systems [3].
In the realm of industrial robotic solutions, the IRB 930 SCARA stands out as a high-payload robot with a capacity of 12-kg or 22-kg. This exceptional SCARA robot enhances throughput by up to 10%, demonstrating class-leading speed, accuracy, internal cabling, and extraordinary downward force [4]. The IRB 930’s superior cycle time and payload capacity make it a noteworthy choice for optimizing industrial processes, showcasing its process in delivering enhanced efficiency and productivity.
The IRB 930 SCARA, a versatile powerhouse designed for fast point-to-point applications, demonstrates exceptional strength in handling substantial payloads. Its adaptability extends to delicate tasks through the integration of sophisticated tools and grippers. With an impressive cycle time of 0.38 sec and a remarkable repeatability deviation position of only 0.01 mm, the IRB 930 excels in motion control, empowering heightened hourly production rates while maintaining high-quality manufacturing standards. Notably, its maximum downward force of 250N sets it apart, providing more than double the average screw driving capacity of other robots. The IRB 930’s spatial efficiency, saving up to 20% of the typically required space above the upper arm, enhances overall flexibility in industrial setups. Figure 1 presents a visual representation of the IRB 930 model.
In the present paper, a thorough mathematical model for kinematics and dynamics of 4 axes SCARA IRB 930 robot is presented. This model encompasses the full mathematical development for both forward and inverse kinematic equations, as well as dynamic equations of motion. Additionally, the utilization of the MATLAB environment to implement and verify the mathematical models presented. Specifically, the Symbolic Math Toolbox within MATLAB is employed for deriving the complex mathematical formulations required for kinematic and dynamic analysis. By leveraging the capabilities of MATLAB, the paper ensures rigorous analysis and accurate verification of the developed models, enhancing their reliability and usefulness for researchers and engineers. The integration of MATLAB not only facilitates the implementation process but also enables comprehensive exploration and understanding of the behaviour and capabilities of the ABB IRB 930 robot across various operational scenarios.
The paper is thoughtfully organized for a comprehensive exploration of the 4-axis SCARA ABB IRB 930 robot. In Section 2, the discussion begins by introducing the robot and diving deep into the mathematical modelling for its kinematics. Moving on to Section 3, the methodology for deriving the Jacobian of the robotic manipulator is outlined. Additionally, the paper discusses singularity analysis and introduces a velocity propagation model. In Section 4, the focus shifts to a dynamic analysis of the robot, drawing insights from the established mathematical model. Building upon this groundwork, Section 5 elaborates on the control model crafted specifically for the 4-axis SCARA ABB IRB 930 robot. Concluding the study in Section 6, a synthesis of key findings and insights garnered throughout the investigation is offered. This contribution to the research field is significant as it provides a comprehensive mathematical framework for analyzing the kinematics and dynamics of the ABB IRB 930 robot, a pivotal component in modern industrial automation. This structured approach ensures a systematic and thorough examination of the robot’s kinematics, dynamics, and control model, providing valuable insights into its behavior and capabilities across various operational scenarios.
Kinematic Analysis
Forward kinematics
Forward kinematics in robotic manipulators involve the conversion of kinematic information from the joint variable space to the Cartesian coordinate space. This process enables the determination of the end-effector’s position and orientation based on a given set of joint variables [5]. Figure 2 visually illustrates the transformation process integral to forward kinematics.
The approach to finding the solution for forward kinematics follows a systematic progression, moving link by link using Denavit-Hartenberg notation and frames. In the DH convention, the link parameters, namely α _{ i } and a _{ i } , remain fixed and are associated with the geometric characteristics of the manipulator. The angle α _{ i } represents the rotation between z _{ i− } _{ 1 } and z _{ i } about x _{ i− } _{ 1 } , while a _{ i } denotes the distance along x _{ i− } _{ 1 } between z _{ i− } _{ 1 } and z _{ i } . In contrast, the joint parameters, θ _{ i } and d _{ i } , introduce variability into the kinematic model. Among these joint parameters, one remains constant, providing stability to the system, while the other is variable and adjusts to accommodate different configurations. Specifically, θ _{ i } represents the angle between x _{ i− } _{ 1 } and x _{ i } about z _{ i− } _{ 1 } , while d _{ i } denotes the distance along z _{ i− } _{ 1 } between x _{ i− } _{ 1 } and x _{ i } . Figure 3 presents the kinematic diagram for the SCARA manipulator. The DH parameters for the SCARA manipulator are obtained from the kinematic diagram and represented in Table 1.
The subsequent stage in forward kinematics, following the derivation of the Denavit-Hartenberg (DH) table for the robot manipulator, involves the determination of the transformation matrix. MATLAB allows for the implementation of Denavit-Hartenberg (DH) parameters into symbolic variables, representing a _{ i } , α _{ i } , d _{ i } , and θ _{ i } . These parameters are fundamental in defining the geometric and kinematic characteristics of the manipulator’s links and joints. With the DH parameters defined symbolically, MATLAB assists in constructing the individual transformation matrices T _{ i } using the DH convention. The transformation matrix from the ( i − 1)-th joint to the i -th joint, represented as T _{ i } , involves trigonometric functions of the joint variables and DH parameters. Additionally, MATLAB facilitates the systematic multiplication of these individual transformation matrices to compute the total transformation matrix T _{ total } . By sequentially multiplying the transformation matrices corresponding to each joint, MATLAB provides the complete kinematic relationship from the robot’s base to its end-effector.
${T}_{4}^{0}={T}_{1}^{0}\cdot {T}_{2}^{1}\cdot {T}_{3}^{2}\cdot {T}_{4}^{3}$ (1)
The transformation matrix from the ( i - 1)-th joint to the i -th joint is represented as
${T}_{i}^{i-1}=\left[\begin{array}{cccc}{c}_{i}& -{s}_{i}\mathrm{cos}({\alpha}_{i})& {s}_{i}\mathrm{sin}({\alpha}_{i})& {a}_{i}{c}_{i}\\ {s}_{i}& {c}_{i}\mathrm{cos}({\alpha}_{i})& -{c}_{i}\mathrm{sin}({\alpha}_{i})& {a}_{i}{s}_{i}\\ 0& \mathrm{sin}({\alpha}_{i})& \mathrm{cos}({\alpha}_{i})& {d}_{i}\\ 0& 0& 0& 1\end{array}\right]$ (2)
Where:
${c}_{i}=\mathrm{cos}({\theta}_{i})$
${s}_{i}=\mathrm{sin}({\theta}_{i})$
The individual matrices from the base to the end effector are:
${T}_{1}^{0}=\left[\begin{array}{cccc}{c}_{1}& -{s}_{1}& 0& {a}_{1}{c}_{1}\\ {s}_{1}& {c}_{1}& 0& {a}_{1}{s}_{1}\\ 0& 0& 1& 0\\ 0& 0& 0& 1\end{array}\right]$ (3)
${T}_{2}^{1}=\left[\begin{array}{cccc}{c}_{2}& {s}_{2}& 0& {a}_{2}{c}_{2}\\ {s}_{2}& -{c}_{2}& 0& {a}_{2}{s}_{2}\\ 0& 0& 1& 0\\ 0& 0& 0& 1\end{array}\right]\text{(4)}$
${T}_{3}^{2}=\left[\begin{array}{cccc}1& 0& 0& 0\\ 0& 1& 0& 0\\ 0& 0& 1& {d}_{3}\\ 0& 0& 0& 1\end{array}\right]\text{(5)}$
${T}_{4}^{3}=\left[\begin{array}{cccc}{c}_{4}& -{s}_{4}& 0& 0\\ {s}_{4}& {c}_{4}& 0& 0\\ 0& 0& 1& {d}_{4}\\ 0& 0& 0& 1\end{array}\right]\text{(6)}$
The total transformation matrix is
${T}_{4}^{0}=\left[\begin{array}{cccc}{n}_{x}& {s}_{x}& {a}_{x}& {o}_{x}\\ {n}_{y}& {s}_{y}& {a}_{y}& {o}_{y}\\ {n}_{z}& {s}_{z}& {a}_{z}& {o}_{z}\\ 0& 0& 0& 1\end{array}\right]\text{(7)}$
Compound expansions for the total transformation matrix:
${n}_{x}={c}_{12}{c}_{4}+{s}_{12}{s}_{4}$ (Normal vector) (8)
${s}_{x}={s}_{12}{c}_{4}-{c}_{12}{s}_{4}$ (Sliding vector) (9)
${a}_{x}=0$ (Approach vector) (10)
${o}_{x}={a}_{1}{c}_{1}+{a}_{2}{c}_{12}$ (Position vector) (11)
${n}_{y}={s}_{12}{c}_{4}-{c}_{12}{s}_{4}$ (Normal vector) (12)
${s}_{y}=-{s}_{12}{s}_{4}-{c}_{12}{c}_{4}$ (Sliding vector) (13)
${a}_{y}=0$ (Approach vector) (14)
${o}_{y}={a}_{1}{s}_{1}+{a}_{2}{s}_{12}$ (Position vector) (15)
${n}_{z}=0$ (Normal vector) (16)
${s}_{z}=0$ (Sliding vector) (17)
${a}_{z}=-1$ (Approach vector) (18)
${o}_{z}=-{d}_{3}-{d}_{4}$ (Position vector) (19)
The total transformation matrix provides the basis for obtaining the solution to forward kinematics. This solution is derived by comparing the total transformation matrix with the reference matrix, which represents the orientation and position information of the end-effector.
Inverse kinematics
Inverse kinematics is the reverse process of forward kinematics, involving the kinematic transformation from Cartesian coordinate space to joint variable space [6]. In this method, the joint variables are determined based on the desired configuration of the end effector.
The mathematical representation involves the search for these joint variables, with their determination entailing the solution of a set of nonlinear coupled algebraic equations. In practice, computer-controlled robots are predominantly actuated in joint variable space, whereas the objects to be manipulated are typically expressed in a Cartesian coordinate frame. To determine the inverse kinematic solution, the total transformation matrix is considered as
$${T}_{4}^{0}=\left[\begin{array}{cccc}{r}_{11}& {r}_{12}& {r}_{13}& {o}_{x}\\ {r}_{21}& {r}_{22}& {r}_{23}& {o}_{y}\\ {r}_{31}& {r}_{32}& {r}_{33}& {o}_{z}\\ 0& 0& 0& 1\end{array}\right]$$
The joint variables θ _{ 1 } , θ _{ 2 } , and θ _{ 4 } are determined as follows:
$${\theta}_{1}+{\theta}_{2}-{\theta}_{4}=\alpha =a\mathrm{tan}2({r}_{11},{r}_{12})$$
Then, projecting the manipulator on the x _{ 0 } − y _{ 0 } plane, the other values can be found. Figure 5 illustrates the projection process.
$${\theta}_{2}=a\mathrm{tan}2\left({c}_{2},\pm \sqrt{1-{c}_{2}}\right)$$
Where ${c}_{2}=\frac{{o}_{x}^{2}+{o}_{y}^{2}-{a}_{1}^{2}-{a}_{2}^{2}}{2{a}_{1}{a}_{2}}$
$${\theta}_{1}=a\mathrm{tan}2({o}_{x},{o}_{y})-a\mathrm{tan}2({a}_{1}+{a}_{2}{c}_{2},{a}_{2}{s}_{2})$$
To determine θ _{ 4 } ,
$${\theta}_{4}={\theta}_{1}+{\theta}_{2}-\alpha ={\theta}_{1}+{\theta}_{2}-a\mathrm{tan}2({r}_{11},{r}_{12})$$
And ${d}_{3}={o}_{z}+{d}_{4}$ .
Thus, the inverse kinematic solution has been obtained from the geometrical method.
Differential kinematics
Differential kinematics serves as the crucial link connecting joint movements to the resulting motion of a robotic manipulator’s end-effector. Also referred to as velocity kinematics, this concept delves into the intricate relationship between joint velocities and end-effector velocities. At its core lies the Jacobian matrix, a mathematical tool that encapsulates this relationship, providing a means to analyze and control the motion of robotic systems.
The Jacobian matrix plays a pivotal role in both forward and inverse differential kinematics. In forward differential kinematics, it enables predicting the impact of small changes in joint positions on the end-effector’s position and orientation. Conversely, in inverse differential kinematics, it guides the adjustments in joint positions needed to achieve a desired end-effector motion [7]. Both forward and inverse differential kinematics are instrumental in the broader field of robotics, offering distinct perspectives and practical applications. They find relevance in tasks such as trajectory planning and real-time control, contributing to the efficient and precise movement of robotic systems. Figure 6 illustrates the relationship between differential kinematics.
Where:
$\dot{\mu}$ represents the vector of end-effector velocities.
J represents the Jacobian matrix.
q represents the vector of joint velocities.
Forward differential kinematics: Forward Differential Kinematics is a fundamental concept in robotics that aims to elucidate how minute adjustments in joint positions ( dθ ) translate into corresponding changes in the end-effector’s position and orientation ( dX ). The objective is to mathematically formulate and simulate the manipulator’s behavior by analyzing its velocity ratios. dX signifies the differential change in the end-effector’s position and orientation, providing insights into how the manipulator responds to alterations in joint configurations. The Jacobian matrix ( J ) acts as a bridge, representing the sensitivity of the end-effector motion to variations in joint velocities.
The practical application of forward differential kinematics is manifold. It finds extensive usage in predicting the motion of the end-effector, particularly when confronted with incremental adjustments in joint positions. This predictive capability is crucial for tasks such as trajectory planning, where understanding the relationship between joint variations and end-effector motion is imperative for devising optimal paths. The general form of forward differential kinematics is given below:
$dX=J.d\theta $ (20)
Where:
dX is the differential change in the end-effector position and orientation.
J is the Jacobian matrix.
dθ is the vector of differential changes in joint positions.
Inverse differential kinematics: Inverse Differential Kinematics establish a clear connection between incremental changes in the end-effector’s position and orientation ( dX ) and the corresponding adjustments needed in joint positions ( dθ ). This approach plays a crucial role in the velocity-level control of manipulators. The primary application of inverse differential kinematics lies in the precise control of a robot’s joints to achieve specific end-effector motions. This method proves especially valuable in closed-loop control systems, where real-time feedback from the actual end-effector motion is utilized to regulate the robot’s behavior.
The mathematical expression for inverse differential kinematics is given below:
$d\theta ={J}^{-1}\cdot dX$ (21)
Where:
dθ is the vector of differential changes in joint positions.
J ^{ −1 } is the inverse of the Jacobian matrix.
dX is the differential change in the end-effector position and orientation.
Jacobian
In robotics, the Jacobian matrix ( J ) plays an important role in the analysis of serial link robot manipulators [8]. The joints are categorized as either revolute or prismatic, with the joint type represented by ρi (1 for revolute, 0 for prismatic). The orientation vector is determined by
$${z}_{\left(i-1\right)}^{0}={R}_{\left(i-1\right)}^{0}\cdot k\text{(22)}$$
Where ${z}_{0}^{0}=k={\left(0,0,1\right)}^{T}$ .
The Jacobian matrix is structured into two halves: The upper half ( J _{ v } ) Corresponding to angular velocities and the lower half ( J _{ 𝜔 } ) corresponding to angular velocities. The linear velocity Jacobian ( J _{ v } ) is further divided into columns (${J}_{{v}_{i}}$ ) for each joint. For revolute joints, ${J}_{{v}_{i}}$ is expressed as $\left[{z}_{i-1}\times \left({o}_{n}-{o}_{i-1}\right)\right]$ , while for prismatic joints, ${J}_{{v}_{i}}$ simplifies to $\left[{z}_{i-1}\right]$ .
Simultaneously, the angular velocity Jacobian ( J _{ 𝜔 } ) is structured similarly, with columns (${J}_{{\omega}_{i}}$ ) for each joint. For revolute joints, ${J}_{{\omega}_{i}}$ is given by $\left[{z}_{i-1}\right]$ , and for prismatic joints, ${J}_{{\omega}_{i}}$ is [0]. The complete Jacobian matrix ( J ) is then formed by concatenating J _{ v } and J _{ 𝜔 } resulting in a matrix of the form
$$J=\left[\begin{array}{c}{J}_{v}\\ {J}_{w}\end{array}\right]=\left[{J}_{1}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}{J}_{2}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\mathrm{...}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}{J}_{n}\right]\text{(23)}$$
For revolute joints, J _{ i } is expressed as
$$\left[\begin{array}{c}{z}_{i-1}\times \left({o}_{n}-{o}_{i-1}\right)\\ {z}_{i-1}\end{array}\right]\text{(24)}$$
And for prismatic joints, J _{ i } takes the form
$$\left[\begin{array}{c}{z}_{i-1}\\ 0\end{array}\right]\text{(25)}$$
This comprehensive structure of the Jacobian Matrix facilitates the mapping of joint velocities to end-effector velocities, crucial of the kinematic analysis of robotic manipulators.
In the case of a SCARA manipulator where joints 1, 2, and 3 are revolute, and joint 3 is prismatic, the robot has a parallel link between joints 3 and 4. i.e., o _{ 4 } − o _{ 3 } is parallel to Z _{ 3 } , therefore,
$\left({\text{Z}}_{\text{3}}\text{\xd7}\left({o}_{4}\text{\hspace{0.33em}}-\text{\hspace{0.33em}}o{}_{3}\right)\right)=\text{0}$,
implying that the rotational joint 3 does not contribute to the end-effector motion in the direction of o _{ 4 } − o _{ 3 } . Therefore, the modified Jacobian matrix is represented as
$$J=\left[\begin{array}{cccc}{z}_{0}\times \left({o}_{4}-{o}_{0}\right)& {z}_{1}\times \left({o}_{4}-{o}_{1}\right)& {z}_{2}& 0\\ {z}_{0}& {z}_{1}& 0& {z}_{3}\end{array}\right]\text{(26)}$$
$$\begin{array}{l}{o}_{1}=\left[\begin{array}{c}{a}_{1}{c}_{1}\\ {a}_{1}{s}_{1}\\ 0\end{array}\right],\\ {o}_{2}=\left[\begin{array}{c}{a}_{1}{c}_{1}+{a}_{2}{c}_{12}\\ {a}_{1}{s}_{1}+{a}_{2}{s}_{12}\\ 0\end{array}\right],\\ {o}_{4}=\left[\begin{array}{c}{a}_{1}{c}_{1}+{a}_{2}{c}_{12}\\ {a}_{1}{s}_{1}+{a}_{2}{s}_{12}\\ {d}_{3}-{d}_{4}\end{array}\right]\end{array}$$
$${z}_{0}={z}_{1}={k}_{1},\text{\hspace{0.17em}}\text{\hspace{0.17em}}{z}_{2}={z}_{3}=-k$$
Finally, by performing the indicated calculations, the Jacobian of the SCARA manipulator is
$$J=\left[\begin{array}{cccc}-{a}_{1}{s}_{1}-{a}_{2}{s}_{12}& -{a}_{2}{s}_{12}& 0& 0\\ {a}_{1}{c}_{1}+{a}_{2}{c}_{12}& {a}_{2}{c}_{12}& 0& 0\\ 0& 0& -1& 0\\ 0& 0& 0& 0\\ 0& 0& 0& 0\\ 1& 1& 0& -1\end{array}\right]\text{(27)}$$
Singularities
Singular configurations refer to specific robot poses where the end effector experiences a reduction in its degrees of freedom, rendering it inferior to the typical operational dimensions. Singularities occur under certain conditions. In the case of prismatic joints, singular configurations may arise when two axes become parallel, causing a loss of independence in the kinematic equations and resulting in a reduction of the end effector’s degrees of freedom (DOF). Similarly, for revolute joints, singularities can occur when two axes become identical, leading to a linear dependence in the kinematic equations and restricting the freedom of movement for the end effector [9]. Singular configurations must be carefully avoided, as they can lead to theoretical challenges, most notably, the velocity required to move the end effector becomes theoretically infinite.
Two primary types of singularities may occur in the workspace of a robot manipulator. Workspace Boundary Singularities manifest at the boundaries of the robot’s workspace, and detecting and understanding these singularities are crucial for optimizing the robot’s operational range. Additionally, Workspace Interior Singularities can occur within the interior of the robot’s workspace, and identifying and managing these singularities are essential for ensuring smooth and predictable robot movements during operation. One effective method for identifying and analyzing singularities is through the use of the Jacobian matrix.
$$J=\left[{J}_{p}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}|\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}{J}_{0}\right]=\left[\begin{array}{cc}{J}_{11}& {J}_{12}\\ {J}_{21}& {J}_{22}\end{array}\right]\text{(28)}$$
From Figure 7, it is evident geometrically that the only singularity of the SCARA arm occurs when the elbow is fully extended or fully retracted. This observation aligns with the fact that the portion of the Jacobian governing SCARA arm singularities is given as follow:
$${J}_{11}=\left[\begin{array}{ccc}-{a}_{1}{s}_{1}-{a}_{2}{s}_{12}& {a}_{1}{c}_{1}+{a}_{2}{c}_{12}& 0\\ -{a}_{1}{s}_{12}& {a}_{1}{c}_{12}& 0\\ 0& 0& -1\end{array}\right]\text{(29)}$$
The rank of J _{ 11 } will be less than three precisely whenever ${\alpha}_{1}{\alpha}_{4}-{\alpha}_{2}{\alpha}_{3}=0$ .
S _{ 2 } = 0, which implies θ _{ 2 } = 0, π.
In summary, the singularities of the SCARA arm occur when the elbow is fully extended or fully retracted, corresponding to the conditions S _{ 2 } = 0 and ${\alpha}_{1}{\alpha}_{4}-{\alpha}_{2}{\alpha}_{3}=0$ .
Velocity Propagation
The systematic analysis of velocity propagation through the various joints of a robotic arm is required for understanding the dynamic behavior of the manipulator, as it is crucial for optimizing the design and control of robotic systems. The process involves forward propagation, where joint velocities and accelerations are computed, either starting from the base link and progressing towards the end-effector or vice versa [10].
For prismatic joints, the angular and linear velocities ( ω and V ), as well as angular and linear accelerations ( α and a ), are determined through mathematical expressions that account for the rotational and translational aspects of joint motion. However, for rotary joints, these equations are modified to incorporate the joint angle ( θ ).
The angular velocity for a rotary joint through forward propagation is given by
$${\omega}_{i+1}^{i+1}={R}_{i}^{i+1}{\omega}_{i}^{i}+\left[\begin{array}{c}0\\ 0\\ {\dot{\theta}}_{i+1}\end{array}\right]\text{(30)}$$
For prismatic joints, the angular velocity is given by
$${\omega}_{i+1}^{i+1}={R}_{i}^{i+1}{\omega}_{i}^{i}\text{(31)}$$
Similarly, the linear velocity for both rotary and prismatic joints through forward propagation is given by
$${V}_{i+1}^{i+1}={R}_{i}^{i+1}({V}_{i}^{i}+{\omega}_{i}^{i}\times {P}_{i+1}^{i})\text{(32)}$$
$${V}_{i+1}^{i+1}={R}_{i}^{i+1}\left({V}_{i}^{i}+{\omega}_{i}^{i}\times {P}_{i+1}^{i}+\left[\begin{array}{c}0\\ 0\\ {\dot{d}}_{1+1}\end{array}\right]\right)\text{(33)}$$
In implementing the mathematical formulations for velocity propagation within a MATLAB environment, the joint parameters such as lengths a _{ i } , joint angles θ _{ i } , and joint velocities ${\dot{\theta}}_{i}$ are defined. Using these parameters, the forward propagation equations are systematically applied to compute the velocities for each joint, progressively moving from the base towards the end-effector.
$${V}_{1}^{1}=\left[\begin{array}{c}0\\ 0\\ 0\end{array}\right],\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}{V}_{2}^{2}=\left[\begin{array}{c}0\\ -{a}_{2}{\dot{\theta}}_{1}\\ 0\end{array}\right]\text{(34)}$$
$${V}_{3}^{3}=\left[\begin{array}{c}0\\ -{a}_{2}{\dot{\theta}}_{1}\\ {\dot{d}}_{3}\end{array}\right],\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}{V}_{4}^{4}=\left[\begin{array}{c}-{a}_{2}{\dot{\theta}}_{1}\mathrm{sin}\left({\theta}_{4}\right)\\ -{a}_{2}{\dot{\theta}}_{1}\mathrm{cos}\left({\theta}_{4}\right)\\ {\dot{d}}_{3}\end{array}\right]\text{(35)}$$
$${\omega}_{1}^{1}=\left[\begin{array}{c}0\\ 0\\ {\dot{\theta}}_{1}\end{array}\right],\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}{\omega}_{2}^{2}=\left[\begin{array}{c}0\\ 0\\ {\dot{\theta}}_{2}-{\dot{\theta}}_{1}\end{array}\right]\text{(36)}$$
$${\omega}_{3}^{3}=\left[\begin{array}{c}0\\ 0\\ {\dot{\theta}}_{2}-{\dot{\theta}}_{1}\end{array}\right],\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}{\omega}_{4}^{4}=\left[\begin{array}{c}0\\ 0\\ {\dot{\theta}}_{2}-{\dot{\theta}}_{1}\end{array}\right]\text{(37)}$$
The final linear and angular velocity of the end-effector with respect to the base frame are
$${\omega}_{4}^{0}=\left[\begin{array}{c}0\\ 0\\ {\dot{\theta}}_{1}-{\dot{\theta}}_{2}\end{array}\right]\text{(38)}$$
$${V}_{4}^{0}=\left[\begin{array}{c}-{a}_{2}{\dot{\theta}}_{1}\mathrm{sin}\left({\theta}_{1}+{\theta}_{2}\right)\\ -{a}_{2}{\dot{\theta}}_{1}\mathrm{cos}\left({\theta}_{1}+{\theta}_{2}\right)\\ -{\dot{d}}_{3}\end{array}\right]\text{(39)}$$
This final velocity of the end effector is critical for parameters that characterize the overall motion of the robotic manipulator. This comprehensive analysis of velocity propagation forms the basis for further advancements in manipulator design, control strategies, and overall performance optimization in diverse applications, ranging from industrial automation to cutting-edge robotics.
Dynamic Modelling
Dynamic modelling involves studying the changes in the state of a robotic system over time. The dynamic equations can be expressed as
$$\tau =M(q)\ddot{q}+n(q,\dot{q})$$
Where τ is the torque, M(q) is the inertia matrix, and $n\left(q,\dot{q}\right)$ represents other terms. Dynamic modelling is divided into two main categories: forward dynamics and inverse dynamics. Forward dynamics involve determining the resultant motion of the manipulator $\left(\ddot{q}\right)$ for the input vector τ and known states q , $\dot{q}$ . The relation for forward dynamics is given by
$$\ddot{q}=M{(q)}^{-1}(\tau -n(q,\dot{q}))$$
Inverse dynamics deal with finding the required input vector τ to achieve a specific trajectory $\left(q,\dot{q},\ddot{q}\right)$ . The relationship between forward dynamics and inverse dynamics is illustrated in Figure 8.
Forward dynamics simulate or analyze the manipulator’s motion, while inverse dynamics address the control aspect of manipulating the robot. Two primary approaches to obtaining these equations are the energy-based approach, such as the Lagrange-Euler method, and the force approach, such as the Newton-Euler method.
Lagrange-Euler method
To determine the Euler-Lagrange equations, the Lagrangian of the system has to be formed, which is the difference between the kinetic energy and the potential energy [11]:
$$\mathcal{L}=K.E-P.E$$
Where:
$\mathcal{L}$ : Lagrangina
K.E : Kinetic energy
P.E : Potential energy
Using the Lagrangian, the equation of motion can be obtained by the relation:
$$\frac{d}{dt}\left(\frac{\partial \mathcal{L}}{\partial \dot{q}}\right)-\frac{\partial \mathcal{L}}{\partial q}=\tau $$
To find the Lagrange position coordinates (( x _{ 1 } , y _{ 1 } ),…,( x _{ n } , y _{ n } )), the total kinetic energy of the robot manipulator can be found by:
$$K.E={\displaystyle \sum _{i=1}^{n}\frac{1}{2}{m}_{i}({\dot{x}}_{i}^{2}+{\dot{y}}_{i}^{2})}$$
The potential energy can be obtained by:
$$P.E={\displaystyle \sum _{i-1}^{n}{m}_{i}{g}_{i}{y}_{i}}$$
Where:
m _{ i } : Mass of the component
gi : Gravitational force acting on the component
yi : Vertical position of the component
Then, the Lagrangian is:
$$\mathcal{L}={\displaystyle \sum _{i=1}^{n}\frac{1}{2}{m}_{i}({\dot{x}}_{i}^{2}+{\dot{y}}_{i}^{2})-{\displaystyle \sum _{i=1}^{n}{m}_{i}{g}_{i}{y}_{i}}}$$
The input vector τ can be obtained by:
$$\tau =\frac{d}{dt}\left(\frac{\partial \mathcal{L}}{\partial \dot{q}}\right)-\frac{\partial \mathcal{L}}{\partial q}$$
where q represents the angular position. In implementing the mathematical formulation for determining the Euler-Lagrange equations within a MATLAB environment, the process involves translating the equations into code to systematically compute the torque input vector for each joint of the robotic manipulator. Firstly, the Lagrangian of the system is formulated as the difference between the kinetic energy and the potential energy. Using the given joint parameters such as masses m _{ i } _{ , } gravitational forces g _{ i } , and joint velocities ${\dot{x}}_{1}$ and ${\dot{y}}_{1}$ , the expressions for kinetic energy and potential energy are defined. Subsequently, the Lagrangian $\mathcal{L}$ is constructed as the sum of kinetic and potential energies. This formulation is then utilized to derive the equations of motion using the Euler-Lagrange equation, which relates the time derivative of the partial derivative of the Lagrangian with respect to velocity to the partial derivative of the Lagrangian with respect to position.
$$\begin{array}{l}{\tau}_{1}=2{a}_{1}^{2}{m}_{1}{\dot{\theta}}_{1}+2{a}_{2}^{2}{m}_{2}{\dot{\theta}}_{1}-2{a}_{2}^{2}{m}_{2}{\dot{\theta}}_{2}+2{a}_{3}^{2}{m}_{3}{\dot{\theta}}_{1}\text{(40)}\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-2{a}_{3}^{2}{m}_{3}{\dot{\theta}}_{2}-{a}_{1}{a}_{2}{m}_{2}{\dot{\theta}}_{1}+{a}_{1}{a}_{2}{m}_{2}{\dot{\theta}}_{2}\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-{a}_{1}{a}_{2}{m}_{3}{\dot{\theta}}_{1}+{a}_{1}{a}_{2}{m}_{3}{\dot{\theta}}_{2}+2{a}_{2}{a}_{3}{m}_{3}{\dot{\theta}}_{1}\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-2{a}_{2}{a}_{3}{m}_{3}{\dot{\theta}}_{2}+2{a}_{2}g{m}_{2}\mathrm{cos}({\theta}_{1}+{\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+{a}_{2}g{m}_{2}\mathrm{cos}({\theta}_{1}+{\theta}_{2})+{a}_{3}g{m}_{3}\mathrm{cos}({\theta}_{1}+{\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+2{a}_{1}g{m}_{1}\mathrm{cos}({\theta}_{1})+{a}_{1}g{m}_{2}\mathrm{cos}({\theta}_{1})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+{a}_{1}g{m}_{3}\mathrm{cos}({\theta}_{1})+2{a}_{1}^{2}{m}_{1}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{1})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+{a}_{1}^{2}{m}_{2}{\dot{\theta}}_{1}\mathrm{cos}\left({\theta}_{1}\right)+{a}_{1}^{2}{m}_{3}{\dot{\theta}}_{1}\mathrm{cos}\left({\theta}_{1}\right)\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-2{a}_{2}^{2}{m}_{2}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})+2{a}_{2}^{2}{m}_{2}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-{a}_{2}^{2}{m}_{3}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})+{a}_{2}^{2}{m}_{3}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-2{a}_{1}{a}_{2}{m}_{2}{\dot{\theta}}_{1}^{2}\mathrm{sin}({\theta}_{2})-{a}_{1}{a}_{2}{m}_{2}{\dot{\theta}}_{2}^{2}\mathrm{sin}({\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-{a}_{1}{a}_{2}{m}_{3}{\dot{\theta}}_{1}^{2}\mathrm{sin}({\theta}_{2})-{a}_{1}{a}_{3}{m}_{3}{\dot{\theta}}_{1}^{2}\mathrm{sin}({\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-{a}_{1}{a}_{3}{m}_{3}{\dot{\theta}}_{2}^{2}\mathrm{sin}({\theta}_{2})+2{a}_{1}{a}_{2}{m}_{2}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{1}+{\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+{a}_{1}{a}_{2}{m}_{3}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{1}+{\theta}_{2})+{a}_{1}{a}_{3}{m}_{3}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{1}+{\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+{a}_{1}{a}_{2}{m}_{2}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})-{a}_{1}{a}_{2}{m}_{2}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+2{a}_{1}{a}_{3}{m}_{3}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})-2{a}_{1}{a}_{3}{m}_{3}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-{a}_{2}{a}_{3}{m}_{3}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})+{a}_{2}{a}_{3}{m}_{3}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+2{a}_{1}{a}_{2}{m}_{2}{\dot{\theta}}_{1}{\dot{\theta}}_{2}\mathrm{sin}({\theta}_{2})+2{a}_{1}{a}_{3}{m}_{3}{\dot{\theta}}_{1}{\dot{\theta}}_{2}\mathrm{sin}({\theta}_{2})\end{array}$$
$$\begin{array}{l}{\tau}_{2}={a}_{1}^{2}{m}_{1}{\dot{\theta}}_{1}+2{a}_{2}^{2}{m}_{2}{\dot{\theta}}_{1}-2{a}_{2}^{2}{m}_{2}{\dot{\theta}}_{2}+2{a}_{3}^{2}{m}_{3}{\dot{\theta}}_{1}\text{(41)}\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-2{a}_{3}^{2}{m}_{3}{\dot{\theta}}_{2}+2{a}_{2}{a}_{3}{m}_{3}{\dot{\theta}}_{1}-2{a}_{2}{a}_{3}{m}_{3}{\dot{\theta}}_{2}\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+2{a}_{2}g{m}_{2}\mathrm{cos}({\theta}_{1}+{\theta}_{2})+{a}_{2}g{m}_{3}\mathrm{cos}({\theta}_{1}+{\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+{a}_{2}g{m}_{3}\mathrm{cos}({\theta}_{1}+{\theta}_{2})+{a}_{1}g{m}_{1}\mathrm{cos}({\theta}_{1})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+{a}_{1}^{2}{m}_{1}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{1})-2{a}_{2}^{2}{m}_{2}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+2{a}_{2}^{2}{m}_{2}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})-{a}_{2}^{2}{m}_{3}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+{a}_{2}^{2}{m}_{3}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})+2{a}_{1}{a}_{2}{m}_{2}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{1}+{\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+{a}_{1}{a}_{2}{m}_{3}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{1}+{\theta}_{2})+{a}_{1}{a}_{3}{m}_{3}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{1}+{\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-{a}_{2}{a}_{3}{m}_{3}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})+{a}_{2}{a}_{3}{m}_{3}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})\end{array}$$
$$\begin{array}{l}{\tau}_{3}=-{a}_{2}{m}_{2}({a}_{2}{\dot{\theta}}_{1}-{a}_{2}{\dot{\theta}}_{2}+g\mathrm{cos}({\theta}_{1}+{\theta}_{2})\text{(42)}\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-{a}_{2}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})+{a}_{2}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})+{a}_{1}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{1}+{\theta}_{2}))\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-{a}_{3}{m}_{3}(2{a}_{3}{\dot{\theta}}_{1}-2{a}_{3}{\dot{\theta}}_{2}+g\mathrm{cos}({\theta}_{1}+{\theta}_{2})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}-{a}_{2}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})+{a}_{2}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})+{a}_{1}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{1}+{\theta}_{2}))\end{array}$$
$$\begin{array}{l}{\tau}_{4}=-{a}_{3}{m}_{3}(2a{}_{3}\dot{\theta}{}_{1}-2a{}_{3}\dot{\theta}{}_{2}+g\mathrm{cos}({\theta}_{1}+{\theta}_{2})-{a}_{2}{\dot{\theta}}_{1}\mathrm{cos}({\theta}_{2})\text{(43)}\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+{a}_{2}{\dot{\theta}}_{2}\mathrm{cos}({\theta}_{2})+{a}_{1}{\dot{\theta}}_{1}\mathrm{cos}\left({\theta}_{1}+\theta \right)\end{array}$$
Newton-Euler method
The Newton-Euler method, especially in its recursive formulation, proves to be a robust approach for deriving dynamic equations in robotic applications. Its core advantage lies in its efficiency in calculating joint forces and torques, facilitating a comprehensive analysis of the robot’s dynamic behavior. Through forward propagation, joint velocities and accelerations for both prismatic and rotary joints are determined [12].
For prismatic joints, the angular velocity $\left({\omega}_{i+1}^{i+1}\right)$ , linear velocity $\left({V}_{i+1}^{i+1}\right)$ are determined by using velocity propagation, angular acceleration $\left({\alpha}_{i+1}^{i+1}\right)$ , and linear acceleration $\left({a}_{i+1}^{i+1}\right)$ are computed using the following expressions:
$$\left({\alpha}_{i+1}^{i+1}\right)={R}_{i}^{i+1}{\alpha}_{i}^{i}\text{(44)}$$
$$\begin{array}{l}\left({a}_{i+1}^{i+1}\right)={R}_{i}^{i+1}({a}_{i}^{i}+{\alpha}_{i}^{i}\times {P}_{i+1}^{i}+{\omega}_{i}^{i}\times ({\omega}_{i}^{i}\times {P}_{i+1}^{i})\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\left.+\left[\begin{array}{c}0\\ 0\\ {\ddot{d}}_{i+1}\end{array}\right]+2{\omega}_{i+1}^{i+1}\times \left[\begin{array}{c}0\\ 0\\ {\ddot{d}}_{i+1}\end{array}\right]\right)\end{array}$$
For rotary joints, these expressions are modified to accommodate the joint angle :
$${\alpha}_{i+1}^{i+1}={R}_{i}^{i+1}\left({\alpha}_{i}^{i}+{\omega}_{i}^{i}\times \left[\begin{array}{c}0\\ 0\\ {\dot{\theta}}_{i+1}\end{array}\right]\right)+\left[\begin{array}{c}0\\ 0\\ {\ddot{\theta}}_{i+1}\end{array}\right]$$
$${a}_{i+1}^{i+1}={R}_{i}^{i+1}\left({a}_{i}^{i}+{\alpha}_{i}^{i}\times {P}_{i+1}^{i}+{\omega}_{i}^{i}\times \left({\omega}_{i}^{i}\times {P}_{i+1}^{i}\right)\right)$$
From these equations, force $\left({F}_{i}^{i}\right)$ and moment $\left({N}_{i}^{i}\right)$ for each link can be determined. Force $\left({F}_{i}^{i}\right)$ is calculated by the product of mass ( m _{ i } ) and linear acceleration $\left({a}_{ci}^{i}\right)$ , while moment $\left({N}_{i}^{i}\right)$ involves the product of the distance to the center of mass $\left({l}_{ci}\right)$ and angular acceleration $\left({\alpha}_{i}^{i}\right)$ , along with the contribution from rotational motion:
$${F}_{i}^{i}={m}_{i}{a}_{ci}^{i}$$
$${a}_{ci}^{i}={a}_{i}^{i}+{\omega}_{i}^{i}\times \left({a}_{i}^{i}\times {P}_{ci}^{i}\right)+{\omega}_{i}^{i}\times \left({\omega}_{i}^{i}\times {P}_{ci}^{i}\right)$$
$${N}_{i}^{i}={l}_{ci}{\alpha}_{i}^{i}+{\omega}_{i}^{i}\times \left({l}_{ci}{\omega}_{i}^{i}\right)$$
The backward propagation step facilitates the computation of joint forces and torques in a recursive manner:
$${f}_{i}^{i}={R}_{i+1}^{i}{f}_{i+1}^{i}+{F}_{i}^{i}\text{(45)}$$
$${n}_{i}^{i}={R}_{i+1}^{i}{n}_{i+1}^{i+1}+{N}_{i}^{i}+{P}_{ci}^{i}\times {F}_{i}^{i}+{p}_{i+1}^{i}\times {R}_{i+1}^{i}{f}_{i+1}^{i+1}\text{(46)}$$
Ultimately, the joint forces $\left({\tau}_{i}\right)$ and joint torques are obtained by:
${\tau}_{i}=\left[0,0,1\right]{n}_{i}^{i}$ for rotary joints (47)
${\tau}_{i}=\left[0,0,1\right]{f}_{i}^{i}$ for prismatic joints (48)
This method allows for a systematic analysis of each link, either starting from the end-effector link and progressing towards the base link or vice versa.
Integrated Motion Control Framework
Motion control is a crucial subfield of automation tasked with managing systems or subsystems responsible for precisely maneuvering components of machine. It involves monitoring the actual trajectory and making real-time adjustments to correct position and velocity errors. Integrated control algorithms, such as PID control, play a fundamental role in governing the performance of robots within this framework. In PID control, the proportional (P), integral (I), and derivative (D) terms are utilized to adjust the control signal based on the error between the desired setpoint and the actual output. The proportional term responds to the current error, the integral term addresses accumulated pas errors, and the derivative term predicts future error trends, collectively ensuring robust closed-loop stability [13]. Within motion control, a complex interplay occurs as motion profiles and target positions are defined, creating trajectories for motors and actuators. Central to this process is the integration of a controller that elevates a robot from a mere mechanical structure to a dynamic system capable of precise actions. However, accurately capturing a robot’s dynamic model remains a significant challenge. Motion control broadly encompasses kinematic and dynamic control categories. Kinematic control, relying on kinematic models, further divides into joint space and task space schemes [14]. The Jacobian matrix plays a vital role in both schemes, facilitating the translation between joint and task spaces for achieving precise and controlled motion in robotic systems.
Kinematic control
Joint space scheme : In the joint space scheme, the desired inputs include the target joint positions, ${q}_{d}\left(t\right)$ , and joint velocities, ${\dot{q}}_{d}\left(t\right)$ , with the latter being set to zero for serpoint control. The available information comprises the actual joint positions, $\dot{q}\left(t\right)$ , and the Jacobian matrix $J\left(q\right)$ along with its inverse, ${J}^{-1}\left(q\right)$ . The control inputs $\dot{q}\left(t\right)$ are then determined through the relationship
$$\dot{q}=\dot{q}d+\lambda \ddot{q}$$
The control flow for the joint space scheme is illustrated in Figure 9.
Task space scheme : In kinematic control within the task space, the desired parameters are the end-effector positions, ${\mu}_{d}\left(t\right)$ , and the desired end-effector velocity, ${\dot{\mu}}_{d}\left(t\right)$ , with the latter being zero for setpoint control. The available data includes the actual end-effector positions, $\dot{\mu}(t)$ , and the Jacobian matrix $J\left(q\right)$ with its inverse, ${J}^{-1}\left(q\right)$ . The control inputs $\dot{q}\left(t\right)$ are obtained through the equation
$$\dot{q}=J{\left(q\right)}^{-1}\left({\dot{\mu}}_{d}+r\ddot{\mu}\right)$$
Where r is a constant factor. The control flow for the task space scheme is illustrated in Figure 10.
Dynamic control
Joint space scheme : In dynamic control within the joint space, the desired parameters are the target joint positions, ${q}_{d}\left(t\right)$ , and joint velocities, ${\dot{q}}_{d}\left(t\right)$ , with the latter being set to zero for setpoint control. The available information includes the actual joint positions, q ( t ), actual joint velocities $\dot{q}\left(t\right)$ , as well as the inertia matrix M ( q ) and the non-linear term $n\left(q,\dot{q}\right)$ . The control flow for the joint space scheme is illustrated in Figure 11.
The control inputs τ are determined by the equation
$$\tau ={k}_{p}\left({q}_{d}-q\right)+{k}_{d}\left({\dot{q}}_{d}-\dot{q}\right)+g\left(q\right)$$
Where k _{ p } and k _{ d } are proportional and derivative gain matrices, respectively, and g ( q ) represents gravitational effects.
Task space scheme : In dynamic control within the task space, the desired parameters are the target joint positions, ${\mu}_{d}\left(t\right)$ , and joint velocities, ${\dot{\mu}}_{d}\left(t\right)$ . For setpoint control, ${\dot{\mu}}_{d}\left(t\right)$ is set to zero. The available information includes the actual joint positions, μ ( t ), actual joint velocities $\dot{\mu}(t)$ , inertia matrix M ( μ ), non-linear term $n\left(\mu ,\dot{\mu}\right)$ , and the Jacobian matrix $J\left(q\right)$ along with its inverse ${J}^{-1}\left(q\right)$ . The control flow for the task space scheme is illustrated in Figure 12.
The control inputs τ are determined by the equation
$$\begin{array}{l}\tau =M\left(q\right)J{\left(q\right)}^{-1}\left[{\ddot{\mu}}_{d}-\dot{J}\left({q}_{d}\right){\dot{q}}_{d}+{k}_{p}\left({\mu}_{d}-\mu \right)+{k}_{d}\left({\dot{\mu}}_{d}-\dot{\mu}\right)\right]\text{(49)}\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}+V\left(q,\dot{q}\right)+g\left(q\right)\end{array}$$
Where $V\left(q,\dot{q}\right)$ represents centrifugal and Coriolis effects, and g ( q ) captures gravitational effects. This formulation highlights the intricate relationship between joint and task spaces in achieving dynamic control for robotic systems.
Conclusion
In conclusion, the comprehensive investigation conducted on the 4-axis SCARE IRB 930 robot has yielded profound insights into both its kinematic and dynamic behaviors. The thorough exploration encompassing forward kinematics, inverse kinematics, and differential kinematics (Section 2) has not only elucidated the intricacies of the robot’s motion but also enriched our comprehension of its positioning capabilities. Moreover, the in-depth Jacobian analysis presented in Section 3, incorporating singularity analysis and velocity propagation, has unearthed critical revelations with broader implications transcending the confines of the specific robot model examined. In section 4, the development of the dynamic model employing both Lagrangian and Newton Euler methods has provided a deeper understanding of the robot’s dynamic response and behavior. Significantly, the methodologies delineated in Section 5 for kinematic and dynamic control have been intentionally crafted to constitute an adaptable and integrated motion control framework applicable across diverse robotic systems. By refraining from solving for a singular robot model, this research not only contributes to the collective knowledge regarding the 4-axis SCARA ABB IRB 930 robot also offers a versatile and universally applicable framework with far-reaching implications for the advancement of robotics and control methodologies. These findings represent a significant stride towards the evolution and enhancement of the research field, offering invaluable insights poised to propel future innovations in robotics and control theory.