Next Article in Journal
Effect of Compressive Strain Rate on Auxetic Foam
Next Article in Special Issue
Industrial Robot Positioning Performance Measured on Inclined and Parallel Planes by Double Ballbar
Previous Article in Journal
Demonstration of the Systematic Evaluation of an Optical Lattice Clock Using the Drift-Insensitive Self-Comparison Method
Previous Article in Special Issue
Grasp Planning Pipeline for Robust Manipulation of 3D Deformable Objects with Industrial Robotic Hand + Arm Systems
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Inverse Kinematics Data Adaptation to Non-Standard Modular Robotic Arm Consisting of Unique Rotational Modules

1
Department of Manufacturing Machinery and Robotics, Faculty of Mechanical Engineering, The Technical University of Košice, Letná 9, 04001 Košice, Slovakia
2
Department of Robotics, Faculty of Mechanical Engineering, VSB—TU Ostrava, 17. listopadu 2172/15, 708 00 Ostrava-Poruba, Czech Republic
3
Department of Automotive and Manufacturing Technologies, Faculty of Manufacturing Technologies with a seat in Prešov, Technical University of Košice, Štúrova 31, 08001 Prešov, Slovakia
*
Author to whom correspondence should be addressed.
Appl. Sci. 2021, 11(3), 1203; https://doi.org/10.3390/app11031203
Submission received: 6 January 2021 / Revised: 22 January 2021 / Accepted: 25 January 2021 / Published: 28 January 2021

Abstract

:
The paper describes the original robotic arm designed by our team kinematic design consisting of universal rotational modules (URM). The philosophy of modularity plays quite an important role when it comes to this mechanism since the individual modules will be the building blocks of the entire robotic arm. This is a serial kinematic chain with six degrees of freedom of unlimited rotation. It was modeled in three different environments to obtain the necessary visualizations, data, measurements, structural changes measurements and structural changes. In the environment of the CoppeliaSim Edu, it was constructed mainly to obtain the joints coordinates matching the description of a certain spatial trajectory with an option to test the software potential in future inverse task calculations. In Matlab, the model was constructed to check the mathematical equations in the area of kinematics, the model’s simulations of movements, and to test the numerical calculations of the inverse kinematics. Since the equipment at hand is subject to constant development, its model can also be found in SolidWorks. Thus, the model’s existence in those three environments has enabled us to compare the data and check the models’ structural designs. In Matlab and SolidWorks, we worked with the data imported on joints coordinates, necessitating overcoming certain problems related to calculations of the inverse kinematics. The objective was to compare the results, especially in terms of the position kinematics in Matlab and SolidWorks, provided the initial joint coordinate vector was the same.

Graphical Abstract

1. Introduction

The paper addresses data processing (in particular those of joints coordinates, which are, in the case at hand, the angles of rotation) designated for a stationary robotic arm composed of the so-called URM modules, described in detail in [1,2,3]. We briefly mention their main attributes, which are unlimited rotation of the module around its own axis, availability of intrinsic power and modularity units. Thanks to the modularity and the advantages it represents [4,5,6,7], individual modules can be used for building various configurations and thus to adjust the arm to a function required of it, to create machines with different mobility capabilities, several degrees of freedom. In general, modular and reconfigurable robots offer great versatility, robustness and—thanks to their series production—low costs, which is mentioned by many authors addressing this issue [8,9,10]. Those modular, reconfigurable robots that consist of many modules (the number of their degrees of freedom is usually much greater than 6) have the ability to reconfigure themselves into a large number of shapes. If this is the case, the robot can change its shape to meet the requirements of different tasks.
Modular robotic systems are systems composed of modules that can be disconnected and reconnected in various configurations, subject to maintaining the precision and rigidity parameters, which can thus create a new system enabling new or value-added functions [11]. The concept of the URM system has been conceived in accordance with the total productive maintenance principal implementation rules [12,13]. Individual rotation positions are the result of the inverse kinematics of the mentioned robot’s arm. When it comes to kinematics of an inverse position, we look for such joint coordinate vectors of the open kinematic chain (assuming that the mechanism’s size is known) as would suit the required position and the orientation of the end effector’s coordinate system. Unlike the forward task, where the position vector is a function of the joint coordinate vector, the inverse task is substantially more complex because it necessitates solving a set of strongly nonlinear algebraic equations. These problems were first postulated by Paden B. [14] and Kahan W [15]. In most cases, these systems cannot be solved analytically. Thus, various types of iterative numerical methods are used, most often employing the Jacobian [16,17,18,19,20,21]. In calculating the inverse function, the inability to solve the task stems from the (configuration) workspace limitation, delimited by the configuration itself and the mechanism’s physical properties. If we are located outside this workspace, there is, of course, no solution. Several solutions may exist since the end effector’s defined position may be obtained in several manners. The situation can be even more varied in the case of the so-called redundant manipulators, where the joint coordinate vector’s number of elements is greater than the degree of freedom in the given workspace or plane. This results in an infinite number of configurations through which the defined position and orientation can be reached. We do not deal directly with the inverse function in this paper. The respective joint coordinates are obtained from the model’s CoppeliaSim Edu simulation (Coppelia Robotics AG, 8049 Zürich, Switzerland). The software calculating the inverse kinematics uses the pseudoinverse computational method, also called the Moore–Penrose method and the method of dampened least squares (DLS), also called the Levenberg–Marquardt method. More information about these and other methods can be found in [16,22,23,24]. Since other URM module configurations are contemplated for the future, or the redundant manipulator creation will be requested, it was mandatory to search for flexible solutions. To this end, the inverse kinematics is addressed in the CoppeliaSim Edu software. When the model is created in this environment, it enables the simulation of many types of movements and also the design of a working trajectory taking into account hurdles in the robotic arm’s configuration space. Joint coordinate vector coordinates are obtained from the model created in the CoppeliaSim Edu. Thus, we have the individual joints coordinates available, which is necessary for their subsequent implementation into the models, this time in Matlab (MathWorks, 1 Apple Hill Drive, Natick, MA 01760, USA) and in SolidWorks (Dassault Systèmes, 10 rue Marcel Dassault, CS 40501, 78946 Vélizy-Villacoublay CEDEX, France). These data are subsequently compared to check the models’ designs in the respective software environments. Should the designer’s work show ideal precision, these results should be, especially for the position kinematics, identical. This should hold regardless of the fact that two different software environments are used.

2. Model Creation and Data Processing

Relations describing the position kinematics by means of position vectors pi, where iϵ<1;7> at individual open kinematic chain segments have also been derived in [25,26]. This is the case of the robotic arm’s forward kinematics. The relations serve the purpose of calculating the position of a point that would enable the attachment of either an effector or another device. Thus, the position of a point [pxi, pyi, pzi] on the module will be defined by the function of the rotation positions φi, ϑi and the segment size of the structure at hand—|ri|; pi = f(φi, ϑi, ri). The basis of the arm [1,2] is an autonomous, cylinder-shaped module. Such modules have a single degree of freedom, namely the rotational one. The rotation happens around the module’s main axis and is not limited in the interval under consideration ranging from 0 to 360 degrees. The rotation may occur continuously in either direction of rotation without limitation. The modules and joints are contemplated to be perfectly solid bodies. The individual modules’ axes of rotation cross each other at the point where they are joined by passive joints, Figure 1. The distances of section points in space are quantified by the ri vector (a kinematic chain segment), and this vector has its own Cartesian system of Si{Oi, xi, yi, zi}. The segment’s rotation around the zi axis is defined by the rotation matrix Rzi(φi) [3,4,5]. The segment’s rotation around the yi axis is defined by the rotation matrix Ryi(ϑi).
Thus, we can write the following for Rzi(φi):
R z i ( φ i ) = [ cos ( φ i ) sin ( φ i ) 0 sin ( φ i ) cos ( φ i ) 0 0 0 1 ]
Moreover, the following for Ryi(ϑi):
R y i ( ϑ i ) = [ cos ( ϑ i ) 0 sin ( ϑ i ) 0 1 0 sin ( ϑ i ) 0 cos ( ϑ i ) ]
The r1 vector is connected to the base perpendicularly to the plane with the x1, y1 axes. p1r1, because the coordinate system is orthogonal. According to Figure 1, the following applies to the position vector p1:
p 1 = R z 1 ( φ 1 ) × r 1
According to Figure 1, the following applies to the position vectors p2, p3, p4, to pi:
p 2 = p 1 + R z 1 ( φ 1 ) × R y 2 ( ϑ 2 ) × R z 2 ( φ 2 ) × r 2
p 3 = p 2 + R z 1 ( φ 1 ) × R y 2 ( ϑ 2 ) × R z 2 ( φ 2 ) × R y 3 ( ϑ 3 ) × R z 3 ( φ 3 ) × r 3
p 4 = p 3 + R z 1 ( φ 1 ) × R y 2 ( ϑ 2 ) × R z 2 ( φ 2 ) × R y 3 ( ϑ 3 ) × R z 3 ( φ 3 ) × R y 4 ( ϑ 4 ) × R z 4 ( φ 4 ) × r 4
A general position vector formula of this pi structure will thus be:
p i + 1 = R z 1 ( φ 1 ) × [ r 1 + k = 1 i [ j = 1 k ( R y ( j + 1 ) ( ϑ j + 1 ) × R z ( j + 1 ) ( φ j + 1 ) ) ] × r k + 1 ]
The resulting orientation of the ri vector defined by the Euler’s angle can be seen in [27] according to the Rz(γ)Ry(β)Rx(α) option will be determined from the relation below based on the final arm rotation:
R Z Y X ( i + 1 ) = R z 1 ( φ 1 ) × j = 1 i ( R y ( j + 1 ) ( ϑ j + 1 ) × R z ( j + 1 ) ( φ j + 1 ) )
Generally speaking, the final shape of the RZYX(i+1) in terms of its i-segment will look as follows:
R Z Y X ( i + 1 ) = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ]
where aij for i = 1, 2, 3, j = 1, 2, 3 are the matrix elements. Considering the Rz(γ)Ry(β)Rx(α) option, the Euler’s angles will then be as follows:
α = arctan ( a 32 a 33 )
β = arcsin ( a 31 )
or also:
β = arctan ( a 31 a 32 2 + a 33 2 )
γ = arctan ( a 21 a 11 )
Thus, for example, in the case of an arm with 3 active degrees of freedom, i.e., for the r4 vector, the final rotation according to Equation (8) will be as follows:
R Z Y X 4 = R z 1 ( φ 1 ) × R y 2 ( ϑ 2 ) × R z 2 ( φ 2 ) × R y 3 ( ϑ 3 ) × R z 3 ( φ 3 ) × R y 4 ( ϑ 4 )
Our case involves 6 degrees of freedom.

2.1. Modeling in CoppeliaSim Edu

An open kinematic chain model was created in CoppeliaSim Edu, in Figure 2, composed of modules featuring 6 degrees of freedom.
The purpose of this model was especially calculating the inverse task from an arbitrary spatial trajectory the effector is to travel under 37 s. Joint coordinate vector data φ = [φ1, φ2, …, φ6]T are obtained using a sampling period of Tsp each 0.005 s. The only (software-imposed) limitation is the degree of freedom itself, namely the possibility of rotation in the <−π, +π> interval. This problem had to be subsequently addressed since it was causing a discontinuity in the simulation’s operation as per the condition (18) and was thus disrupting the continuity of the trajectory on the models in the environments into which data were imported., i.e., Matlab, SolidWorks, but the same would have been the case in other environments, too.

2.2. Modeling in Matlab

The kinematic model in Figure 3 was created in Matlab using the Simscape/Multibody toolbox, the dimensions of which reflect the reality and are given in Table 1. The module diameter or volume need not be of interest when making a kinematic assessment, as it has no effect on kinematic parameters.
The model is composed of individual blocks that define its parts. In a nutshell, the model consists of a base identical to the “base” of the reference system and the individual blocks representing the ri vector (a kinematic chain segment). As we can see in Figure 1, the “vector r I” block then consists of the “URM“ module and a passive joint part. The modules are connected in places where each joint represents its own Cartesian system of the module, starting in point Oi. In this experiment, the last part of the passive joint, vector r7, was considered to be an effector. A measuring device (sensor 7) is connected to the effector r7, checking physical quantities (position, velocity, acceleration). Such measuring devices can be mounted on other modules, too. The Euler’s angles’ values are also available in three consecutive rotations around the axes, often marked ZYX. The values apply to the effector and are the result of the final product of the individual spatial transformations (8), as is usually the case with the open kinematic chain [27]. A model constructed in this way is then visualized in the Mechanics explorer window and appears in the form as seen in Figure 4.

2.3. The Problem of a Sudden Change in Data Continuity and Its Solution in Matlab

The task was to use the computational core of CoppeliaSim Edu and apply it to the inverse kinematic task, to calculate the joint coordinates of φ = [φ1, φ2, …, φ6]T for the entered trajectory. When the joint coordinates data were imported, in some cases, the above-mentioned problem with value repolarization emerged as a result of the software-imposed limitation on the joint rotation. In other words, in the case of a requirement arising from the calculation, the range of the degree of freedom upon exceeding the rotation values in the <−π, +π> interval must be switched to the value with the opposite sign to remain in the defined working interval. The values above the upper limit +π will rise again, but this time starting with the lower value of −π. Moreover, the opposite values below the lower limit −π will fall again, this time starting from the upper value of +π. This sudden change causes deformation or even computational instability of the p7 trajectory of the effector, see Figure 5. With time derivations of the position, the characteristics of instantaneous velocity and accelerations are deformed even more.
Since the precision of the trajectory traveled by any manipulator is critical in practical applications, it was necessary to somehow address this problem. Either through a labor-intensive rewriting of the imported data upon each change in the defined trajectory subject to the presence of those repolarizations in the joints or through a suitable solution. One such solution is the so-called repolarize, described below.

2.4. Composing a Repolarize

The search for a suitable and undemanding solution to this situation rested on the following conditions:
  • To maintain the original trajectory, the initial values should not be skewed, i.e., if possible, they should not be averaged or approximated;
  • There should be no phase shift of the initial values, as is the case with many filters.
For these reasons, we were trying to apply different approaches in the simulation, starting with a change in the initial data φ = [φ1, φ2, φ3, φ4, φ5, φ6]T, which was very labor-intensive. The rate limiter has not met the expectations either [28] in switching the data flow at the moment of reaching the limits of the angles of rotation +/−π, because the characteristics of the p7 trajectory were undulated anyway. Rate limiter is a marginalized derivation of an infinitely small difference to a difference of finite size. Or similar approaches based on a sequential omission of the undesired sample, such as in [29]. Or through averaging the values [30,31]. Neither of the approaches mentioned in this case has met our expectations. The best, if not ideal, results were finally achieved by the system working on this principle Figure 6 and explained in Figure 7. Joint coordinate data were measured in the sampling period Tsp every 0.005 s.
When the data were uploaded, it was first necessary to establish the moment of repolarization tr with the precision of δ = +/−0.0025 s when the variable φ(t) = 0, i.e., cuts through the time axis. Under the assumption of reaching the upper or the lower working interval limit <−π, +π> of the joint coordinate. The variable at the output from the repolarize is φout(t). It was necessary to meet the following conditions:
t t 1 | φ o u t ( t ) = φ ( t )
t 1 < t 2
Conditions for identification of the sign and carrying out repolarization over time tr:
t t 2 | φ o u t ( t ) = { 2 π φ ( t ) ,   φ ( t ) < 0 φ ( t ) 2 π ,   φ ( t ) > 0
For the condition that can be considered discontinuation in the angle variable data φ(t), the following applies:
| φ ( t + T s p ) φ ( t ) | T s p = 2 π T s p
The model was thus “excited” by the values of the joint coordinate vector φ(t) = [φ1(t), φ2(t), …, φn(t)]T obtained from the model created in CoppeliaSim Edu in the period of time Tsp. Under the condition of the prescribed maximum permissible deviation [Δmax x, Δmax y, Δmax z] = +/−0.0035 m between the real trajectory and the one calculated on the basis of inverse kinematics. The data of joint coordinates φ(t) correspond to the effectors of the trajectory traveled. The trajectory is made of a system of fixed points As{xAs, yAs, zAs}, where the sample sϵ<1; 7383> in Cartesian space Figure 8. Its real shape is shown in Figure 2.
The mutual calibration of the models was done for the initial position of the robotic arm effector over time t = 0 s, φ(0) = [0, π, 0, π, 0, π]T radians see position in Figure 4, p7 = [0.167397, 0, 1.102644]T meters. In order to check the models’ correctness, the vector difference Δ = [Δx, Δy, Δz]T between the position of the position vector effector p7 = [p7x, p7y, p7z]T and the position of the As points, composing the trajectory, shown in the graph of Figure 9 (Matlab), Figure 12 (SolidWorks) over the period of time Tsp. This was done for each vector component. The following applies to Δ vector components, its norm ‖Δ‖ and the instantaneous time t of the sample in seconds:
Δ x = x A s p 7 x ( φ )
Δ y = y A s p 7 y ( φ )
Δ z = z A s p 7 z ( φ )
t = 0.005 ( s 1 ) | s 1 ; 7383
Δ = Δ x 2 + Δ y 2 + Δ z 2
As we can see, the CoppeliaSim Edu software complied with the tolerance range requirement +/− 0.0035 m for each vector component, for the inverse calculation of the joint coordinate data φ(t) with respect to the trajectory consisting of a finite set of As points. The characteristics of physical quantities from sensor 7 in the model see Figure 3 (position, velocity, acceleration) are shown in Figure 10. We note that this is a different data set (different trajectory) than the one used in the illustration of Figure 5.

2.5. Modeling in SolidWorks

In order to carry out structural changes, various structural compositions of the robotic arm composed of the URM modules are created in SolidWorks are shown in Figure 11. This mechanically detailed model corresponding to the reality was in the same dimensional configuration Table 1, as was used for making a comparison of kinematic indices and also the Δx, Δy, Δz difference between the real and the calculated trajectory.
In this case, too, the graph of Figure 12 has confirmed that the requirement for a tolerance range of +/−0.0035 m for each vector component was adhered to by the inverse calculation of the joint coordinate data φ(t) with respect to the trajectory composed of a finite set of the As points.
Here, however, certain changes in the shape of the course can be observed, which is logical, as we are dealing with two different software environments and the model structure itself as well. The norm, i.e., the size of the vector of deviation from the original trajectory ‖Δ‖ already has a permanent value of 0.0025 m here, and no significant minima can be seen in the three places where the trajectory “breaks” see Figure 2. The characteristics of physical quantities corresponding to the effector in the model see Figure 11 (position, velocity) are illustrated in Figure 13.
As we can see, the characteristics of position and velocity alike Figure 13a,b, corresponding to the effector in the model of Figure 11, are similar to the characteristics shown in Figure 10a,b.

3. Results

The robotic arm model was created in CoppeliaSim Edu in order to obtain the joints coordinates, corresponding to a description of the spatial trajectory consisting of the fixed points As{xAs, yAs, zAs} with a permissible deviation of +/−0.0035 m from the original trajectory.
Results obtained in Matlab are shown in Figure 9 and Figure 10. Figure 9 shows the difference Δx, Δy, Δz between the real trajectory (consisting of the As{xAs, yAs, zAs} points) and the one calculated (from the components of the position vector effector p7x, p7y, p7z). On the other hand, Figure 10 shows the values measured on the effector, namely:
(a)
The position determined by the position vector p7 = [p7x, p7y, p7z]T depending on the joint coordinate vector φ(t);
(b)
The speed determined by the velocity vector v7 = [v7x, v7y, v7z]T depending on the first derivation (time-bound) of the joint coordinate vector φ′(t);
(c)
The acceleration determined by the acceleration vector a7 = [a7x, a7y, a7z]T depending on the second derivation (time-bound) of the joint coordinate vector φ″(t) and (φ′(t))2;
(d)
The orientation determined by the Euler’s angles according to the [γ, β, α] option, depending on the joint coordinate vector φ(t).
Figure 5 shows the importance of using the repolarize. Otherwise, the joint coordinate data must be edited manually prior to their import, as was the case with SolidWorks.
The results obtained in SolidWorks are shown in Figure 12 and Figure 13. Figure 12 shows the Δx, Δy, Δz difference between the real trajectory (consisting of the As{xAs, yAs, zAs} points) and the one calculated (from the position vector effector components of p7x, p7y, p7z). On the other hand, Figure 13 shows the values generated on the effector, namely:
(a)
The position determined by the position vector p7 = [p7x, p7y, p7z]T depending on the joint coordinate vector φ(t);
(b)
The speed determined by the velocity vector v7 = [v7x, v7y, v7z]T depending on the first derivation (time-bound) joint coordinate vector φ′(t).

4. Discussion

Based on the above results, we can conclude that the currently available software environments offer not only relatively powerful visualization tools but also those enabling various kinds of physical computations. The quality of results depends not only on the sophistication of the software and its preferable use but also on correct parameter specification, on the defined conditions and on the application of the software to its maximum potential. The aim of our work was especially to enable the comparison of data from the position kinematics in Matlab and in SolidWorks, subject to the same initial joint coordinate vector φ(t). This has enabled us to check the designed models and to detect eventual structural discrepancies such as counter-rotation of the URM module or an undesirable shift of structural elements.
Matlab made it possible to choose the manner of processing the imported data, to align the sampling step with the CopeliaSim imported data step and thus ensure that a particular input datum actually corresponded to the given output value over the same time. It was possible to additionally construct a system to accommodate some changes in the input data Figure 6 and thus to make the work involved in input data changes more effective. The difference between the real and the calculated trajectory was quantified using the Δ vector. Figure 9b shows that the vector size ‖Δ‖ reaches its maxima at the maximum effector velocities.
In SolidWorks, the difference between the real and the calculated trajectory Δ was already different in nature; see Figure 12. Here, the ‖Δ‖ vector size has a permanent value and changes only slightly; no significant minima are observed here in the places where the trajectory “breaks”, as shown in Figure 2.

Author Contributions

Draft concept and formal analysis, J.S., M.Š., Š.O.; model design and data processing in CoppeliaSimEdu, Z.B.; model design and data processing in Matlab, Š.O.; model design and data processing in SolidWorks, M.Š. and L.H.; supervision, methodology and project administration, J.S., J.D., P.D., T.S. All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported by the Slovak Research and Development Agency under Contract no. APVV-18-0413. This paper was prepared with the support of the grant project KEGA 025TUKE-4/2019.

Conflicts of Interest

The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, or in the decision to publish the results.

Abbreviations

List of the most important quantities:
piPosition vector between the reference coordinate system
S1{O1, x1, y1, z1} and the coordinate system Si{Oi, xi, yi, zi}
riVector quantifying a kinematic chain segment
φiAngle of rotation around the zi axis of the Si{Oi, xi, yi, zi} system, joint coordinate
φJoint coordinate vector
ϑiAngle of rotation around the yi axis of the Si{Oi, xi, yi, zi} system
RyiRotation matrix for the transformation of the rotational movement around the yi axis
RziRotation matrix for the transformation of the rotational movement around the zi axis
RZYX(i+1)Rotation matrix for calculating Euler’s angles α, β, γ
TSampling period
δA half period of the sampling period
trInstant time of repolarization
tTime
ΔVector difference between the p7 position vector effector’s position and the position of the As{xAs, yAs, zAs} points that make up the trajectory
viInstantaneous velocity vector to the {Oi, xi, yi, zi} system
aiInstantaneous acceleration vector to the {Oi, xi, yi, zi} system

References

  1. Svetlík, J.; Štofa, M.; Pituk, M. Prototype development of a unique serial kinematic structure of modular configuration. MM Sci. J. 2016, 994–998. [Google Scholar] [CrossRef]
  2. Svetlík, J. Contribution to Construction of Manufacturing Engineering on Flexible Architecture Basis. Habilitation Thesis, Technical University of Košice, Košice, Slovakia, 14 June 2012. [Google Scholar]
  3. Štofa, M. Experimentálny vývoj rotačných modulov pre stavbu sériových kinematických štruktúr vo výrobnej technike. Ph.D. Thesis, Technical University of Košice, Košice, Slovakia, 30 January 2020. [Google Scholar]
  4. Gershenson, J.K.; Prasad, G.J. Modularity in product design for manufacturability. Int. J. Agile Manuf. 1997, 3, 99–110. [Google Scholar]
  5. Benderbal, H.H.; Dahane, M.; Benyoucef, L. Modularity assessment in reconfigurable manufacturing system (RMS) design: An Archived Multi-Objective Simulated Annealing-based approach. Int. J. Adv. Manuf. Technol. 2018, 94, 729–749. [Google Scholar] [CrossRef]
  6. Pérez, R.; Aca, J.; Valverde, A. A modularity framework for concurrent design of reconfigurable machine tools. In Proceedings of the International Conference on Cooperative Design, Visualization and Engineering, Heidelberg, Germany, 19–22 September 2004; Springer: Berlin, Germany, 2004. [Google Scholar]
  7. Svetlík, J. Modularity of Production Systems. In Machine Tools; Šooš, Ľ., Marek, J., Eds.; IntechOpen: London, UK, 2020; pp. 1–22. [Google Scholar]
  8. Yim, M.; Duff, D.G.; Roufas, K.D. PolyBot: A modular reconfigurable robot. In Proceedings of the ICRA ’00, IEEE International Conference on Robotics and Automation, San Francisco, CA, USA, 24–28 April 2000; Volume 1, pp. 514–520. [Google Scholar]
  9. Yim, M.; Roufas, K.; Duff, D.; Zhang, Y.; Eldershaw, C.; Homans, S. Modular reconfigurable robots in space applications. Auton. Robot. 2003, 14, 225–237. [Google Scholar] [CrossRef]
  10. Acaccia, G.; Bruzzone, L.; Razzoli, R. A modular robotic system for industrial applications. Assem. Autom. 2008, 28, 151–162. [Google Scholar] [CrossRef]
  11. Xu, W.; Han, L.; Wang, X.; Yuan, H. A wireless reconfigurable modular manipulator and its control system. Mechatron. 2021, 73, 102470. [Google Scholar] [CrossRef]
  12. Pacaiova, H.; Isiarikova, G. Base Principles and Practices for Implementation of Total Productive Maintenance in Automotive Industry. Qual. Innov. Prosper. 2019, 23, 45–59. [Google Scholar] [CrossRef] [Green Version]
  13. Nikitin, Y.; Bozek, P.; Peterka, J. Logical–linguistic model of diagnostics of electric drives with sensors support. Sensors 2020, 20, 4429. [Google Scholar] [CrossRef] [PubMed]
  14. Paden, B. Kinematics and Control Robot Manipulators. Ph.D. Thesis, University of California, Berkeley, CA, USA, 1986. [Google Scholar]
  15. Kahan, W. Lectures on Computational Aspects of Geometry; Department of Electrical Engineering and Computer Sciences, University of California: Berkeley, CA, USA, 1983; Unpublished. [Google Scholar]
  16. Buss, S.R. Introduction to inverse kinematics with jacobian transpose, pseudoinverse and damped least squares methods. IEEE J. Robot. Autom. 2004, 16, 1–19. [Google Scholar]
  17. Dulęba, I.; Opałka, M. A comparison of Jacobian-based methods of inverse kinematics for serial robot manipulators. Int. J. Appl. Math. Comput. Sci. 2013, 23, 373–382. [Google Scholar] [CrossRef] [Green Version]
  18. Meredith, M.; Maddock, S. Real-Time Inverse Kinematics: The Return of the Jacobian; Technical Report No. CS-04-06; Department of Computer Science, University of Sheffield: Sheffield, UK, 2004. [Google Scholar]
  19. Šoch, M.; Lórencz, R. Solving inverse kinematics—A new approach to the extended Jacobian technique. Acta Polytech. 2005, 45, 21–26. [Google Scholar]
  20. Virgala, I.; Gmiterko, A.; Surovec, R.; Vacková, M.; Prada, E.; Kenderová, M. Manipulator end-effector position control. Procedia Eng. 2012, 48, 684–692. [Google Scholar] [CrossRef] [Green Version]
  21. Virgala, I.; Tomáš, L.; Miková, Ľ. Snake robot locomotion patterns for straight and curved pipe. J. Mech. Eng. 2018, 68, 91–104. [Google Scholar] [CrossRef] [Green Version]
  22. Nilsson, R. Inverse Kinematics. Master’s Thesis, Luleå University of Technology, Luleå, Sweden, 2009. [Google Scholar]
  23. Wampler, C.W. Manipulator inverse kinematic solutions based on vector formulations and damped least-squares methods. IEEE Trans. Syst. Man, Cybern. 1986, 16, 93–101. [Google Scholar] [CrossRef]
  24. Lozhkin, A.; Bozek, P.; Maiorov, K. The method of high accuracy calculation of robot trajectory for the complex curves. Manag. Syst. Prod. Eng. 2020, 28, 247–252. [Google Scholar] [CrossRef]
  25. Ondočko, Š.; Stejskal, T.; Svetlík, J.; Hrivniak, L.; Šašala, L. Direct kinematics of modular system. In Automatizácia a riadenie v teórii a praxi 2020, Proceedings of the 14. ročník konferencie odborníkov z univerzít, vysokých škôl a praxe, Stará Lesná, Slovensko, 5–7 February 2020; Šeminský, J., Mižáková, J., Šimšík, J., Balog, M., Eds.; Technická Univerzita v Košiciach: Košice, Slovakia, 2020. [Google Scholar]
  26. Ondočko, Š.; Stejskal, T.; Svetlík, J.; Hrivniak, L.; Šašala, L.; Žilinský, A. Position forward kinematics of 6-DOF robotic arm. Acta Mech. Slovaca. (under review).
  27. Murray, R.; Li, Z.; Shankar, S. A Mathematical Introduction to Robotic Manipulation, 1st ed.; CRC Press: Boca Raton, FL, USA, 2017; p. 519. ISBN 9781315136370. [Google Scholar]
  28. Rate Limiter. Available online: https://www.mathworks.com/help/simulink/slref/ratelimiter.html?s_tid=srchtitle (accessed on 29 October 2020).
  29. How to Remove Unwanted Short Time Signal Simulink. Available online: https://stackoverflow.com/questions/52384093/how-to-remove-unwanted-short-time-signal-simulink/52409614 (accessed on 29 October 2020).
  30. Filtering and Smoothing Data. Available online: https://www.mathworks.com/help/curvefit/smoothing-data.html (accessed on 29 October 2020).
  31. Signal Smoothing. Available online: https://www.mathworks.com/help/signal/ug/signal-smoothing.html (accessed on 29 October 2020).
Figure 1. Robotic arm vector model composed of the universal rotational modules (URM) modules.
Figure 1. Robotic arm vector model composed of the universal rotational modules (URM) modules.
Applsci 11 01203 g001
Figure 2. A model created in CoppeliaSim Edu.
Figure 2. A model created in CoppeliaSim Edu.
Applsci 11 01203 g002
Figure 3. Model created in Matlab-Simulink using the Simscape/Multibody toolbox.
Figure 3. Model created in Matlab-Simulink using the Simscape/Multibody toolbox.
Applsci 11 01203 g003
Figure 4. (a) Model visualization with hints of dimensions in Matlab-Simulink using the Simscape/Multibody toolbox. (b) Detail URM with a passive joint.
Figure 4. (a) Model visualization with hints of dimensions in Matlab-Simulink using the Simscape/Multibody toolbox. (b) Detail URM with a passive joint.
Applsci 11 01203 g004
Figure 5. Illustration of the p7 = [p7x, p7y, p7z]T position vector (effector) depending on the joint coordinate vector φ = [φ1, φ2, φ3, φ4, φ5, φ6]T and its effect on the trajectory: (a) before repolarization; (b) after repolarization; the value of the joint coordinate vector depending on time φ = [φ1, φ2, φ3, φ4, φ5, φ6]T; (c) before repolarization; (d) after repolarization; effect on the trajectory; (e) before repolarization; (f) after repolarization.
Figure 5. Illustration of the p7 = [p7x, p7y, p7z]T position vector (effector) depending on the joint coordinate vector φ = [φ1, φ2, φ3, φ4, φ5, φ6]T and its effect on the trajectory: (a) before repolarization; (b) after repolarization; the value of the joint coordinate vector depending on time φ = [φ1, φ2, φ3, φ4, φ5, φ6]T; (c) before repolarization; (d) after repolarization; effect on the trajectory; (e) before repolarization; (f) after repolarization.
Applsci 11 01203 g005
Figure 6. Constructed repolarizer.
Figure 6. Constructed repolarizer.
Applsci 11 01203 g006
Figure 7. Plotted repolarization of rotation in the joint.
Figure 7. Plotted repolarization of rotation in the joint.
Applsci 11 01203 g007
Figure 8. A vector difference Δ between the calculated position of the position vector of the p7 effector and the position of the As points.
Figure 8. A vector difference Δ between the calculated position of the position vector of the p7 effector and the position of the As points.
Applsci 11 01203 g008
Figure 9. (a) The chart showing the difference Δx, Δy, Δz between the real trajectory (composed of the As{xAs, yAs, zAs} points) and the one calculated (from the components of the position vector effector p7x, p7y, p7z) in Matlab; (b) norm (size) of the vector ‖Δ‖.
Figure 9. (a) The chart showing the difference Δx, Δy, Δz between the real trajectory (composed of the As{xAs, yAs, zAs} points) and the one calculated (from the components of the position vector effector p7x, p7y, p7z) in Matlab; (b) norm (size) of the vector ‖Δ‖.
Applsci 11 01203 g009
Figure 10. Effector values measured in Matlab: (a) position vector p7 = [p7x, p7y, p7z]T depending on the joint coordinate vector φ(t); (b) velocity vector v7 = [v7x, v7y, v7z]T depending on the joint coordinate vector φ′(t); (c) acceleration vector a7 = [a7x, a7y, a7z]T depending on the joint coordinate vector φ″(t) and (φ′(t))2; (d) Euler’s angles (γ, β, α) depending on the joint coordinate vector φ(t).
Figure 10. Effector values measured in Matlab: (a) position vector p7 = [p7x, p7y, p7z]T depending on the joint coordinate vector φ(t); (b) velocity vector v7 = [v7x, v7y, v7z]T depending on the joint coordinate vector φ′(t); (c) acceleration vector a7 = [a7x, a7y, a7z]T depending on the joint coordinate vector φ″(t) and (φ′(t))2; (d) Euler’s angles (γ, β, α) depending on the joint coordinate vector φ(t).
Applsci 11 01203 g010
Figure 11. Model created in SolidWorks.
Figure 11. Model created in SolidWorks.
Applsci 11 01203 g011
Figure 12. (a) A graph showing the Δx, Δy, Δz difference between the real trajectory (composed of As{xAs, yAs, zAs} points) and the one calculated (from the components of the position vector effector p7x, p7y, p7z) in SolidWorks; (b) norm (size) of the vector ‖Δ‖.
Figure 12. (a) A graph showing the Δx, Δy, Δz difference between the real trajectory (composed of As{xAs, yAs, zAs} points) and the one calculated (from the components of the position vector effector p7x, p7y, p7z) in SolidWorks; (b) norm (size) of the vector ‖Δ‖.
Applsci 11 01203 g012
Figure 13. Effector values generated in SolidWorks: (a) position vector p7 = [p7x, p7y, p7z]T depending on the joints coordinate vector φ(t); (b) velocity vector v7 = [v7x, v7y, v7z]T depending on the joints coordinate vector φ(t).
Figure 13. Effector values generated in SolidWorks: (a) position vector p7 = [p7x, p7y, p7z]T depending on the joints coordinate vector φ(t); (b) velocity vector v7 = [v7x, v7y, v7z]T depending on the joints coordinate vector φ(t).
Applsci 11 01203 g013
Table 1. Dimensions table of the robotic arm of Figure 2 and also Figure 3, Figure 4, respectively.
Table 1. Dimensions table of the robotic arm of Figure 2 and also Figure 3, Figure 4, respectively.
Diameters(mm)Diameters(mm)Diameters(mm)
r1243.215a173b1128
r2212.430a242.215b2128
r3212.430a342.215b3128
r4212.430a442.215b4128
r5212.430a542.215b5128
r6212.430a642.215b6128
r742.215 1
1 Effector (last part of the passive joint).
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Ondočko, Š.; Svetlík, J.; Šašala, M.; Bobovský, Z.; Stejskal, T.; Dobránsky, J.; Demeč, P.; Hrivniak, L. Inverse Kinematics Data Adaptation to Non-Standard Modular Robotic Arm Consisting of Unique Rotational Modules. Appl. Sci. 2021, 11, 1203. https://doi.org/10.3390/app11031203

AMA Style

Ondočko Š, Svetlík J, Šašala M, Bobovský Z, Stejskal T, Dobránsky J, Demeč P, Hrivniak L. Inverse Kinematics Data Adaptation to Non-Standard Modular Robotic Arm Consisting of Unique Rotational Modules. Applied Sciences. 2021; 11(3):1203. https://doi.org/10.3390/app11031203

Chicago/Turabian Style

Ondočko, Štefan, Jozef Svetlík, Michal Šašala, Zdenko Bobovský, Tomáš Stejskal, Jozef Dobránsky, Peter Demeč, and Lukáš Hrivniak. 2021. "Inverse Kinematics Data Adaptation to Non-Standard Modular Robotic Arm Consisting of Unique Rotational Modules" Applied Sciences 11, no. 3: 1203. https://doi.org/10.3390/app11031203

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