{'fraction_non_alphanumeric': 0.025223159446400786, 'fraction_numerical': 0.010236671853247073, 'mean_word_length': 4.754948162111216, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Modeling the Kinematics of Two Robots with Denavit–Hartenberg Notation

This article presents a description and methodology for building a kinematics model for the formation of twowheeled mobile robots transporting a beam using Denavit–Hartenberg notation. The simple and inverse kinematics tasks of this formation were solved. Solutions of kinematics tasks are presented in junction coordinates and global coordinates. The obtained results were simulated using the Matlab–Simulink package together with animation of the solution using a programmed emulator of robot work.


Introduction
Currently, autonomous vehicles are increasingly used in transporting objects around factory production halls, warehouses, or storage yards. Many of the large-scale goods to be transported present a problem because a single robot is not able to transport them, and building specialized transport machinery may not be cost-effective. The idea of transporting objects using formations consisting of several robots, which after completing a given task, can be used in a different configuration to carry out the next tasks, comes from the world of nature. This approach is economically justified because a given type of robot can be used for various purposes. The subject of transporting objects by robot formations has been repeatedly covered in scientific works such as work on, for example, the problem of pushing a box [1], pushing a considerable weight having its own support in the form of wheels [2], transporting an object located above the robots [3], moving an object by robots located adjacent to them [4], or beam transport by two robots [5]. When constructing a control system, it is necessary to know the mathematical model of the kinematics of the examined transport system, which will be used to build a mathematical model describing the dynamics of that system or to build a control system based on kinematics alone. Kinematics can be described using the so-called classical methods based on building a velocity plan of specific characteristic formation points [6] or using the so-called Denavit-Hartenberg (DH) [7] notation, which is very often used to describe the kinematics of multimember systems and is widely used in robotics. This article presents the problem of beam transport by two AmigoBot wheeled mobile robots (WMR) based on DH notation. It is assumed that the robots transport the beam along the horizontal XY plane as shown in Figure 1. The task of the robots is to transport a beam with a length of l. The robots are connected to the beam at points H 1 and H 2 by means of bolted joints, constituting fifth grade kinematic pairs. Characteristic points are distinguished in the formation: M, characteristic point of the formation being the center of the transported beam; E, temporary center of rotation of the formation; A 1 and A 2 , points located on the axis of the wheels of individual robots in the center between the wheels; B 1 , C 1 , B 2 , and C 2 , points remaining the centers of individual robot wheels; and K 1 , P 1 , K 2 , and P 2 , contact points of individual robot wheels with the floor. Characteristic values are also distinguished: x M , y M , coordinates of the characteristic point of the formation in the basic (stationary) system; φ, rotation angle of the transported beam with respect to the basic system; l 1 , distance between points and A or B and C; , distance of the beam attachment point with the robot from point A; r, radius of the robot driving wheel; β 1f , β 2f , rotation angles of individual robots relative to the transported beam (formation system); α 11 , α 21 , α 12 , α 22 , rotation angles of the wheels driving the robots.
In the case of these angles, the following symbols have been adopted: the first digit indicates the number of the wheel and the second digit indicates the number of the robot. The AmigoBot WMRs used have, in addition to two driving wheels, a self-adjusting support wheel, but this has been omitted in the creation of the model assuming that it has a negligible effect on the kinematics of the entire system.

Formulation of Kinematics Tasks
By analyzing the kinematics of formation, two tasks are solved. The first task is a simple kinematics task, the purpose of which in this case is to determine the kinematic parameters of the transported beam in the form of velocity and location of the M point, as well as the angular velocity and angle of rotation of the beam, assuming that the kinematic parameters of the drives are known. The second task is the inverse kinematics task consisting in determining the kinematic parameters of the drives assuming that the linear velocity of the characteristic point of the formation is known, in this case the velocity of the M point and the angular velocity of the transported beam.
The solution of the inverse kinematics task is used to build the control system, therefore it is usually more important than the solution of the simple kinematics task, which can be used to build, as in the case of the authors, an emulator of robot formation work.

Performance of Motion Equations Based on DH Notation
When starting to generate motion equations, the first step is to associate local reference systems to each characteristic point of the WMR formation transporting the beam and to a stationary reference system called the base system ( Figure 1). After defining the systems, transformation matrices between these systems were introduced. Equation (1) shows the transformation matrix of the system associated with the beam at point M to the base system.
The next two matrices written in the dependencies (2) and (3) are the transformation matrices between points H 1 and H 2 associated with individual robots in the system associated with the transported beam.
Dependency (4) presents the transformation matrix from the system at A i of a given robot to the system at H i of this robot, where is the robot number.
The above four equations (5)- (8) show the transformation matrices between systems associated with points B 1 and B 2 to the system associated with point and systems associated with points B 2 and C 2 to the system associated with point A 2 . To transform the system associated with a given characteristic point of the WMR formation, the transformation matrix between subsequent systems was multiplied to the base system to obtain Dependencies (9)-(12) are transformation matrices of reference systems associated with points B 1 , C 1 , B 2 , and C 2 to the base system. Next the vectors of coordinates of the contact points of the robot wheels with the floor in local reference systems associated with the centers of the wheels were determined to obtain The velocities of the contact points of individual robot wheels with the floor are described by the dependencies After taking into account dependencies (1)-(8) in (9)-(12), dependencies were obtained determining the transformation matrices of the systems associated with points B 1 , C 1 , B 2 , and C 2 to the base system, which were then differentiated in relation to time and substituted together with the dependencies (13)-(16) to (17)-(20). It was also assumed that there was no longitudinal and transverse slippage of robot wheels, therefore the left sides of equations (17)-(20) are zero vectors.
After consideration of the earlier conditions, the following were finally received: The obtained equations (21)-(24) are kinematic equations of motion of two WMR formations transporting a beam, which can be solved depending on the input data by solving a simple or inverse kinematics problem.

Solution of Kinematics Tasks
The whole calculation procedure presented in Section 3 was carried out using the Maple™ program, which is a very convenient tool for symbolic and matrix-vector calculations.
Maple was also used to determine kinematics tasks.

Solution of the simple kinematics task
As mentioned in Section 2, solving the simple kinematics task in the analyzed case comes down to determining the kinematic parameters of the transported beam, assuming that the kinematic parameters of the drives are known in the form of angular velocities of individual wheels of the robots transporting the beam. By solving the systems of equations (21)-(24), the following equations were obtained:  Additionally, the angular velocities of the robots were determined to obtain Rotation angles of robot frames and their angular velocities are measured in junction coordinates; to get the global coordinates, the following dependencies were used:        Taking into account equations (30)-(33) in (25)-(29), the following equations were obtained: (37) Equations (34)-(36) provide a solution to the simple kinematics problem enriched by equations (37) and (38) that were used to build the emulator of formation work.

Solution of the inverse task of kinematics
While solving the inverse kinematics task, it is assumed that the kinematic parameters of the transported solid are known in the form of the linear velocity of the characteristic point of the formation and the angular velocity of the transported beam. The kinematic parameters of the drives are sought, i.e., the angular velocities of the wheels driving the robots. By performing the procedure of solving equations (21)-(24) with regard to the variables 11 , 21 , 12 , 22 , the following equations were obtained: In addition, the angular velocities of the robot frames were determined.

Simulations
Simulations of the solutions obtained were carried out in the Matlab/Simulink environment. A robot emulator was designed to visualize the behavior of the robots, generating a view of the robots along with the transported object at a certain frequency. The transport task is to transport a beam with a length of l = 1 [m] in Figure 2 with a characteristic point moving along the track shown in Figure 3, and the linear velocity of this point will always be tangent to the transported beam. Initial conditions were assumed: point M of the beam is at the beginning of the global reference system, and the angle between the beam and the x axis is 0 [rad].
To ensure movement of the beam according to the assumed criteria, the linear velocity of point M shown in Figure 4 and the angular velocity of the transported beam in Figure 5 were generated, both of these velocities must be at least class C2 [8].
With the parameters selected in this way, the following phases of movement can be distinguished, several of which are repeated: acceleration, driving in a straight line at set velocity, entering a corner, turning a corner, and braking.
The task of the model built in Simulink was to solve the inverse kinematics task that resulted in determining the angular velocity of the wheels driving the robots. After performing the simulation, the results for the first robot shown in Figure 6 and the second robot shown in Figure 7 were obtained. The image obtained using the emulator of robot work is shown in Figure 8. After analyzing the animation of robot movement obtained using the work emulator and the received image of the animation record, it was not found that the robots could move incorrectly. No drift of the robots or incorrect orientation of the robot frames during the movement was observed, which proves the correctness of the solutions obtained.

Conclusion
The method presented in this article of the kinematics of a WMR formation using DH notation is universal and convenient to implement. An additional advantage is the possibility of using software for symbolic and matrix-vector calculations, which significantly speeds up the process of generating kinematics equations compared with other methods. In this work, a formation consisting of two robots was modeled, but it is very easy to extend the problem for n-robots transporting a bulky object. The obtained results are consistent with the results obtained based on other methods [9]. Further conclusions are      directed to a need for more research regarding the interaction of robots with the transported object and the environment. To sum up, the obtained kinematics model and the methodology of obtaining it can be used in researching more complex formations, as well as to build a dynamics model.