Next Article in Journal
Progressive Reconstruction on Region-Based Secret Image Sharing
Previous Article in Journal
Empirical Insights into 5G Deployments in Highway Operational Environments and Comparative Performance with 4G
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Kinematic Modeling with Experimental Validation of a KUKA®–Kinova® Holonomic Mobile Manipulator

Faculty of Electronics and Automation, Technical University—Sofia, Plovdiv Branch, 4000 Plovdiv, Bulgaria
*
Author to whom correspondence should be addressed.
Electronics 2024, 13(8), 1534; https://doi.org/10.3390/electronics13081534
Submission received: 15 January 2024 / Revised: 3 April 2024 / Accepted: 11 April 2024 / Published: 17 April 2024

Abstract

:
We have proposed an open-source holonomic mobile manipulator composed of the KUKA youBot holonomic mobile platform with four Swedish wheels and a stationary aboard six-degrees-of-freedom Kinova Jaco Gen 2H manipulator, and we have developed corresponding kinematic problems. We have defined forward and inverse analytic Jacobians and designed Jacobian algorithms of forward and inverse mobile manipulator kinematics. An experimental test conducted with the designed laboratory prototype of the investigated mobile manipulator with the described kinematics was used to verify the obtained theoretical results. The goal of the test was to keep constant the position of the gripper in 3D space while the mobile platform is moving to some extend in the 2D workspace.

1. Introduction

In the present day, robots with various configurations (mobile robots, robot manipulators, mobile manipulators, etc.) are very rapidly advancing in performing different application tasks in our everyday lives. There are also many companies that offer on the market service robots dedicated to helping disabled people in their daily activities. Currently, various approaches for human–robot interactions are gaining popularity, including, for example, manual guidance, among others. It should be noted that such machines, especially in their recently investigated collaborative implementation, must correspond to the safety standards developed in the EU [1,2,3]. The widespread use of robots also requires a high level of understanding of the problems involved into this field of science [4,5,6,7,8]. In the present work, we describe existing research into the mathematical modeling of the kinematics of a holonomic mobile manipulator that has remarkable mobility and handling capabilities. The combined machinery contains two devices: a mobile platform and a 6 DoF manipulator. The chosen mobile platform, KUKA youBot, has four omnidirectional wheels, and it is widely used for scientific research tasks [9]. Installed on the top of the mobile platform robot manipulator, Kinova Jaco Gen2 is often used to assist disabled people by helping them with their daily activities, such as drinking water, holding a spoon, etc. The manipulator has also been selected for the experiments because it is supported by numerous software tools that make its control open to users and provide an opportunity to explore different control approaches. Such a combination of mobile platforms and manipulators widens the fields of application of the resulting mobile manipulators. Examples of similar assemblies can be found in [10,11,12]. All those efforts aimed to extend the working space of manipulators. However, the assembly of a mobile platform and a manipulator requires relevant kinematic models. An interesting solution can be found in [13], where authors present a configuration of a mobile manipulator based on Boston Dynamics Spot that is additionally equipped with a robotic arm. Some of the mobile manipulators with open-chain kinematics have been studied and are presented in [14,15,16,17,18,19,20]. More recent studies on the inverse kinematics frameworks of mobile manipulators are given in [21,22,23,24].
In the present work, we derive the forward kinematics, inverse kinematics, Jacobian and inverse Jacobian of the investigated mobile manipulator. The obtained mathematical models are then applied to control the movement of the laboratory prototype mobile manipulator in the task of maintaining a constant position and orientation of the manipulator’s end-effector in 3D space while the mobile platform is moving to some extent in the 2D workspace. This is achieved by controlling the speed of each mobile manipulator link and the speed of each mobile platform wheel. Afterwards, the efficacy of the proposed approach is evaluated by running a real-world experiment.
The article is structured in the following way: In Section 2, we describe the components of the mobile manipulator and derive their kinematic models. Then, the forward and inverse kinematics of the mobile manipulator and Jacobian algorithms are derived. In Section 3, the achieved results from the conducted experimental test carried out with the constructed laboratory prototype are presented. Section 4 contains conclusions.

2. Devices and Mathematical Models

2.1. The Mobile Manipulator

The assembled structure consists of two essential devices: a holonomic mobile platform and a six-degrees-of-freedom (6 DoF) robot manipulator (Figure 1). The mobile platform is a KUKA youBot holonomic platform, and the implemented spherical wrist robot is a Jaco Gen2 manipulator produced by the Canadian company Kinova.
This paper discusses the mathematical derivation of many important aspects that are related to the designed mobile manipulator: the forward and inverse kinematics of the mobile platform, forward and inverse kinematics of the manipulator Jaco Gen2, combined homogeneous transformation between the mobile platform and the end-effector, manipulator’s Jacobian matrix, manipulator’s inverse Jacobian matrix, and synchronization between the velocities of these two individual components. The obtained theoretical results have been verified via the conducted experimental test using a laboratory prototype of the above mobile manipulator. The implemented control software of the prototype uses ROS Melodic (Robot Operating System)-implemented packages, which were either provided by the manufacturers of the devices or are freely available from the web. The transfer of the control signals and feedback values is provided by the ROS’s topics, the ROS’s actions, and the ROS’s services. Each one of these types of communication is used depending on the existing situation. The presented results show the velocities of the mobile platform V mp and the robot manipulator V man . These velocities allow for achieving a stable positioning of the end-effector during a movement of the mobile platform. The resulting velocity is V res .
V res = ± V mp ± V man

2.2. The Mobile Platform KUKA youBot

The KUKA youBot mobile platform gives us the opportunity to expand the working space of the manipulator. Thus, the proposed structure of mobile manipulator enhances its functionalities.
However, in the design, this combination also increases the complexity of the whole robot system structure while increasing the mobile robot’s own weight and energy consumption. In order to complete complex work, the manipulator and omnidirectional vehicle must be in perfect harmony, and they also need to reduce energy loss. Therefore, the study of omnidirectional mobile operating robot has important theoretical and practical value.
The next figure (Figure 2) shows the most significant dimensions of the KUKA youBot mobile platform and its structure.
The mobile platform is controlled by an onboard computer with embedded Intel Atom dual-core CPU and 2 GB RAM, 32 GB SSD, WLAN and a USB interface. Available interfaces are USB and EtherCAT/Ethernet. The existing WiFi connection makes possible the establishment of ROS communication.
The conventional approach for description of the motion of the mobile platform in a 2D plane requires the definition of coordinate frames. To specify the position and the orientation of the mobile platform onto the plane, we have to establish a relationship between the reference frame of the plane and the local frame of the platform. The axes X I and Y I define an arbitrary inertial basis on the plane as the global reference frame from some origin O : { X I , Y I } . To indicate the position and orientation of the mobile platform, we choose a geometric center of the platform chassis-point P, and, thus, it is the origin of the platform’s local reference frame. The axes { X R , Y R } define the mobile platform’s local reference frame. The column vector (2) specifies the position and the orientation of the platform local reference frame in the global reference frame [25,26]:
P = [ x y μ ]
where x and y are the displacements along the X I axis and Y I axis, and the orientation is defined by μ .
The KUKA youBot mobile robotic platform is controlled by varying the rotational speed of each of its omnidirectional wheels (Figure 3b).
The kinematic model describes the relationship between the rotational speeds of the four wheels φ ˙ 1 , φ ˙ 2 , φ ˙ 3 and φ ˙ 4 and the speed of the mobile platform in the 2D plane. The types of wheels and robot chassis geometry define this relationship. Each wheel introduces a set of mathematical constraints on the movement of the platform.
According to [25], using the constraints, we can obtain the kinematic model of the mobile robot. For a Swedish (mecanum) wheel, the following equations must be satisfied [25,26]:
V 1 R ( μ ) P ˙ r φ ˙ i cos ( γ i ) = 0 V 2 R ( μ ) P ˙ r φ ˙ i cos ( γ i ) r sw φ ˙ sw = 0 ,
where V1 and V2 denote the following three-element vectors:
V 1 = [ sin ( α i + β i + γ i ) cos ( α i + β i + γ i ) lcos ( β i + γ i ) ]
V 2 = [ cos ( α i + β i + γ i ) sin ( α i + β i + γ i ) lsin ( β i + γ i ) ]
the matrix R is the rotational matrix, and r denotes the radius of the wheels.
R = [ cos μ sin μ 0 sin μ cos μ 0 0 0 1 ]
The index i denotes the number of platform wheels.
Considering the construction parameters of the platform: the length l x = 235.5   mm , l y = 150   mm   and   the   angle   γ = ± 45 ° , (the robot dimensions are shown in (Figure 2) and the notations in (Figure 3a)), the angles α i and β i can be calculated according to the following equations [26]:
α 1 = arctg ( l y l x ) , α 2 = 180 ° arctg ( l y l x ) α 3 = 180 ° + arctg ( l y l x ) , α 4 = arctg ( l y l x )
where, for the considered platform,   l x = 235.5   mm and l y = 150   mm .
According to the theory of kinematics of the Swedish wheel [25], and considering the fact that the axes of the four wheels are perpendicular to PXR, then using the notations in Figure 3a, it is possible to express the angle β i and the length l :
β i = 90 α i ;
l = l x 2 + l y 2 0.279   m
Table 1 contains the kinematic parameters of the mobile platform.
The forward kinematics of the mobile platform is described by the following matrix equation [26]:
[ x ˙ y ˙ μ ˙ ] = r 4 [ 1 1 1 1 1 1 1 1 1 ( l x + l y ) 1 ( l x + l y ) 1 ( l x + l y ) 1 ( l x + l y ) ] [ φ ˙ 1 φ ˙ 2 φ ˙ 3 φ ˙ 4 ]
And the inverse kinematic model is
[ φ ˙ 1 φ ˙ 2 φ ˙ 3 φ ˙ 4 ] = 1 r [ 1 1 ( l x + l y ) 1 1 ( l x + l y ) 1 1 1 1 ( l x + l y ) ( l x + l y ) ] [ x ˙ y ˙ µ ˙ ]

2.3. The Manipulator KINOVA Jaco Gen 2

An overview of the robot manipulator Jaco Gen2 and its dimensions are shown on (Figure 4) [27].
The geometric dimensions are shown in Table 2; these values are essential components of forward kinematics and notations: D 1 , D 2 , D 3 , D 4 , D 5 , D 6   and e 2 are structural elements of the homogeneous transformations.
In Table 3, some physical characteristics of the manipulator Jaco Gen2 Spherical Wrist are given.
Kinova Jaco Gen2 has specifically designed actuators mechanics and electronics. They use DC brushless motors with harmonic drive technology and are equipped with encoders, a torque sensor, a current sensor, a temperature sensor and accelerometers [23]. Kinova’s actuators and parameters are presented in Figure 5 and Table 4, respectively.
Multiple functionalities are offered by the software provided by the company Kinova (Boisbriand, QC, Canada). Using the Development Center and the Torque Console [27], researchers can monitor the manipulator’s state, activate admittance, switch between Cartesian and angular control and define trajectories. There is a C++ programming function integrated that can be used to access the API, for example, the API function can deactivate auto-avoidance behavior. Kinova Jaco 2 is an integrable device in ROS environment. The kinova-ros stack (set of ROS packages) provides a ROS interface for Kinova Jaco2. The stack is developed above the Kinova C++ API functions, which communicate with the DSP inside the robot base [27]. Using our knowledge of the robot’s structure and measurements, we define its forward kinematic table, using classical Denavit–Hartenberg convention (Table 5).
The classical Denavit–Hartenberg convention is defined by the following matrix [28]:
T i i 1 = [ c θ i s θ i c α i s θ i s α i a i c θ i s θ i c θ i c α i c θ i s α i a i s θ i 0 s α i c α i d i 0 0 0 1 ]
The modified Denavit–Hartenberg convention is defined by the following matrix [29]:
T i i 1 = [ c θ i s θ i 0 a i 1 s θ i c α i 1 c θ i c α i 1 s α i 1 s α i 1 d i s θ i s α i 1 c θ i s α i 1 c α i 1 c α i 1 d i 0 0 0 1 ]
We mark the trigonometric functions c θ i and s θ i with cos θ i and sin θ i , respectively. Additionally, c θ ij and s θ ij are equal to cos ( θ i + θ j ) and sin ( θ i + θ j ) , respectively.

The Manipulator Jaco Gen 2 Inverse Kinematics

All approaches to obtain the inverse kinematics of a robot manipulator proposed in the scientific literature can be divided into two classes: (i) approaches using numerical solutions and (ii) approaches based on closed-form solutions. Due to their iterative nature, approaches based on the numerical solutions are much slower than those using closed-form solution. So, in the most applications, especially for online implementations, the numerical approach for solving inverse kinematics is not suitable.
“Closed form” denotes a solution method based on analytic expressions or the solution of polynomials of degree 4 or less. Although, in the general case, the six-degrees-of-freedom manipulator does not have a closed–form solution, for some particular manipulator structures characterized by either several intersecting joint axes or several angles α i equal to 0 or ±90 degrees, closed-form solutions exist.
Such an approach to obtain a closed-form solution is Pieper’s approach that studies manipulators with six degrees of freedom where three of their consecutive axes intersect at a point [29]. The inverse kinematic problem calculates the desired angular position θ 1 , θ 2 , θ 3 , θ 4 , θ 5 , and θ 6 of each rotational joint, according the predefined position and orientation in the final homogeneous transformation T 6 0 . We have implemented Pieper’s method for all six revolute joints of Jaco Gen 2, with the last three axes intersecting. The idea in Pieper’s solution is to split the calculation into two separate problems—the first one, taking into account the first three joints, and the second one, considering the last three joints. A brief formulation of the algorithm can be presented as follows:
  • Locate the intersection point of the last three joint axes;
  • Calculate the position of this intersection point, given that we know the desired position and orientation of the end-effector;
  • Solve inverse kinematics for first three joints;
  • Compute T 3 0 and determine T 6 3 ;
  • Solve the inverse kinematics for the last three joints.
Using the modified Denavit–Hartenberg convention, given by (9) we can derive the homogeneous transformation (Table 6):
Where θ 1 , θ 2 , θ 3 , θ 4 , θ 5   and θ 6 are the known angular displacements as follows:
T 1 0 = [ c θ 1 s θ 1 0 0 s θ 1 c θ 1 0 0 0 0 1 0 0 0 0 1 ]
T 2 1 = [ c θ 2 s θ 2 0 0 0 0 1 0 s θ 2 c θ 2 0 0 0 0 0 1 ]
T 3 2 = [ c θ 3 s θ 3 0 0.41 s θ 3 c θ 3 0 0 0 0 1 0.0133 0 0 0 1 ]
T 4 3 = [ c θ 4 s θ 4 0 0 0 0 1 0.3111 s θ 4 c θ 4 0 0 0 0 0 1 ]
T 5 4 = [ c θ 5 s θ 5 0 0 0 0 1 0 s θ 5 c θ 5 0 0 0 0 0 1 ]
T 6 5 = [ c θ 6 s θ 6 0 0 0 0 1 0 s θ 6 c θ 6 0 0 0 0 0 1 ]
The complete model of forward kinematics, using a modified Denavit–Hartenberg convention [29], taking into account the actual angular displacement of each rotational joint, is
T 6 0 = T 1 0 ( θ 1 ) T 2 1 ( θ 2 ) T 3 2 ( θ 3 ) T 4 3 ( θ 4 ) T 5 4 ( θ 5 ) T 6 5 ( θ 6 )
In order to solve the inverse kinematics, we have to calculate the angular position of each rotational joint, knowing the desired orientation and position T 6 0 :
T 6 0 = [ r 11 r 12 r 13 p x r 21 r 22 r 23 p y r 31 0 r 32 0 r 33 p z 0 1 ] = T 1 0 ( θ 1 ) T 2 1 ( θ 2 ) T 3 2 ( θ 3 ) T 4 3 ( θ 4 ) T 5 4 ( θ 5 ) T 6 5 ( θ 6 )
Values θ 1 , θ 2 , θ 3 , θ 4 , θ 5   and θ 6 in (17) are the desired angular positions, and T 6 0 contents are the predefined desired orientations and positions. Using (17), we put T 1 0 ( θ 1 ) on the left-hand side of the equation:
[ T 1 0 ( θ 1 ) ] 1 T 6 0 = T 2 1 ( θ 2 ) T 3 2 ( θ 3 ) T 4 3 ( θ 4 ) T 5 4 ( θ 5 ) T 6 5 ( θ 6 )
Inverting the matrix T 1 0 , we can write (18)
[ c θ 1 s θ 1 0 0 s θ 1 c θ 1 0 0 0 0 0 0 1 0 0 1 ] [ r 11 r 12 r 13 p x r 21 r 22 r 23 p y r 31 0 r 32 0 r 33 p z 0 1 ] = T 6 1
According to Pieper’s approach, we equate the element placed on row 2, column 4 inside the matric T 6 1 with the element placed on row 2, column 4 from the matrix [ T 1 0 ( θ 1 ) ] 1 T 6 0 . The unknown angular displacement θ1 can now be expressed by (20).
s θ 1 p x + c θ 1 p y = 0.0133
To solve an equation of this form, we make the following trigonometric substitutions:
p x = ρ c ϕ p y = ρ s ϕ
where ρ is the distance from the origin of the base coordinate system to the point defined by the x and y coordinates of the end-effector:
ρ = p x 2 + p y 2 ϕ = Atan 2 ( p y , p x )
Substituting (21) into (20) [29],
c θ 1 s ϕ s θ 1 c ϕ = 0.0133 ρ
From the difference-of-angles formula,
s ( ϕ θ 1 ) = 0.0133 ρ
Hence,
c ( ϕ θ 1 ) = ± 1 0.00017689 ρ 2
and so
ϕ θ 1 = Atan 2 ( 0.0133 ρ , ± 1 0.00017689 ρ 2 )
The solution for θ 1 can be written as
θ 1 = Atan 2 ( p y , p x ) Atan 2 ( 0.0133 , ± p x 2 + p y 2 0.00017689 )
We have found two possible solutions for the desired value of θ 1 , corresponding to the plus-or-minus sign in (27). Now that θ 1 is known, the left-hand side of (19) is known. By equating the elements on row 1, column 4 and row 3, column 4 from both sides of (19), we can write Equation (28) as follows [29]:
c θ 1 p x + s θ 1 p y = 0.41 c θ 2 0.3111 s θ 23 p z = 0.41 s θ 2 + 0.3111 c θ 23
After taking the squares of Equations (28) and (20) and adding them, the resulting equations are obtained:
( D 3 + D 4 ) s θ 3 = p x 2 + p y 2 + p z 2 D 2 2 e 2 2 ( D 3 + D 4 ) 2 2 D 2
s θ 3 = 0.265 p x 2 p y 2 p z 2 0.2551 = K
c θ 3 = ± 1 K 2
θ 3 = Atan 2 ( K , ± 1 K 2 )
The plus or minus sign in (32) leads to two different solutions for the angle θ 3 . We can rewrite Equation (17) so that the entire left-hand side becomes a function of three parameters θ 1 , θ 2   and θ 3 . The only unknown parameter is θ 2 :
[ T 3 0 ( θ 2 ) ] 1 [ r 11 r 12 r 13 p x r 21 r 22 r 23 p y r 31 0 r 32 0 r 33 p z 0 1 ] = T 4 3 ( θ 4 ) T 5 4 ( θ 5 ) T 6 5 ( θ 6 )
or
[ c θ 1 c θ 23 s θ 1 c θ 23 s θ 23 0.41 c θ 3 c θ 1 s θ 23 s θ 1 s θ 23 c θ 23 0.41 s θ 3 s θ 1 c θ 1 0 0.0133 0 0 0 1 ] [ r 11 r 12 r 13 p x r 21 r 22 r 23 p y r 31 r 32 r 33 p z 0 0 0 1 ] = = [ c θ 4 c θ 5 c θ 6 s θ 4 s θ 6 c θ 6 s θ 4 c θ 4 c θ 5 s θ 6 c θ 4 s θ 5 0 c θ 6 s θ 5 s θ 5 s θ 6 c θ 5 0.3111 c θ 4 s θ 6 c θ 5 c θ 6 s θ 4 c θ 5 s θ 4 s θ 6 c θ 4 c θ 6 s θ 4 s θ 5 0 0 0 1 ]
If we equate the elements on row 1, column 4 and row 2, column 4 from both sides of (34), we can write [29]
c θ 1 c θ 23 p x + s θ 1 c θ 23 p y s θ 23 p z 0.41 c θ 3 = 0 c θ 1 s θ 23 p x s θ 1 s θ 23 p y c θ 23 p z + 0.41 s θ 3 = 0.3111
These equations can be solved simultaneously for s θ 23 and c θ 23 , resulting in
s θ 23 = 0.41 ( c θ 1 s θ 3 p x + s θ 1 s θ 3 p y c θ 3 p z ) p z 2 + ( c θ 1 p x + s θ 1 p y ) 2 c θ 23 = 0.41 ( c θ 1 c θ 3 p x + s θ 1 c θ 3 p y + s θ 3 p z ) 0.3111 p z 2 + ( c θ 1 p x + s θ 1 p y ) 2
The denominators are equal and positive, so we solve for the sum of θ 2 and θ 3 as follows [29]:
θ 23 = Atan 2 ( a r g 1 , a r g 2 )
where a r g 1 = [ c θ 1 c θ 23 p x + s θ 1 c θ 23 p y 0.41 c θ 3 ] and a r g 2 = [ 0.41 ( c θ 1 c θ 3 p x + s θ 1 c θ 3 p y + s θ 3 p z ) 0.3111 ] .
Equation (37) computes four values of θ 2 θ 3 , according to the four possible combinations of solutions for θ 1 and θ 3 ; then, four possible solutions for the desired angular position θ 2 are computed as follows:
θ 2 = θ 23 θ 3
The entire left side of (34) is known. If we equate the elements on row 1, column 3 and row 3, column 3 from both sides of (34), we can write:
r 13 c θ 1 c θ 23 + r 23 s θ 1 c θ 23 r 33 s θ 23 = c θ 4 s θ 5 r 13 s θ 1 + r 23 c θ 1 = s θ 4 s θ 5
As long as s θ 5 0 , the solution for θ 4 is
θ 4 = Atan 2 ( r 13 s θ 1 + r 23 c θ 1 , r 13 c θ 1 c θ 23 + r 23 s θ 1 c θ 23 r 33 s θ 23 )
When θ 5 = 0 , the manipulator is in a configuration in which axes 6 and 4 line up and cause the same motion of the last link of the robot. In this case, all that can be solved for is the sum or difference of θ 4 and θ 6 . This situation is detected by checking whether both arguments of the Equation (40) are near to zero. If so, θ 4 is chosen arbitrarily, and when θ 6 is computed later, it will be computed accordingly.
If we consider (17), we can rewrite it so that the entire left-hand side is a function of only knowns and θ 4 , rewriting it as follows [29]:
[ T 4 0 ( θ 4 ) ] 1 [ r 11 r 12 r 13 p x r 21 r 22 r 23 p y r 31 0 r 32 0 r 33 p z 0 1 ] = T 5 4 ( θ 5 ) T 6 5 ( θ 6 )
[ T 4 0 ( θ 4 ) ] 1 = = [ c θ 1 c θ 23 c θ 4 + s θ 1 s θ 4 s θ 1 c θ 23 c θ 4 c θ 1 s θ 4 s θ 23 c θ 4 0.0133 s θ 4 0.41 c θ 3 c θ 4 c θ 1 c θ 23 s θ 4 + s θ 1 c θ 4 s θ 1 c θ 23 s θ 4 c θ 1 c θ 4 s θ 23 s θ 4 0.0133 c θ 4 + 0.41 c θ 3 s θ 4 c θ 1 s θ 23 s θ 1 s θ 23 c θ 23 0.41 s θ 3 D 3 D 4 0 0 0 1 ]
T 5 4 ( θ 5 ) T 6 5 ( θ 6 ) = [ c θ 5 c θ 6 c θ 5 s θ 6 s θ 5 0 s θ 6 c θ 6 0 0 c θ 6 s θ 5 s θ 5 s θ 6 c θ 5 0 0 0 0 1 ]
If we equate the elements on row 1, column 3 and row 3, column 3 from the both sides of (42), we obtain
r 13 ( c θ 1 c θ 23 c θ 4 + r 23 ( s θ 1 c θ 23 c θ 1 s θ 4 ) r 33 s θ 23 c θ 4 = s θ 5 r 13 c θ 1 s θ 23 r 23 s θ 1 s θ 23 r 33 c θ 23 = c θ 5
We solve for the desired value of θ 5 as follows:
θ 5 = Atan 2 ( s θ 5 , c θ 5 )
Applying the same method one more time, we compute T 1 5 0 and write (17) in the following form:
[ T 5 0 ( θ 5 ) ] 1 [ r 11 r 12 r 13 p x r 21 r 22 r 23 p y r 31 0 r 32 0 r 33 p z 0 1 ] = T 6 5 ( θ 6 )
If we equate the elements on row 3, column 1 and row 1, column 1 from the both sides of (42), we can write
r 11 ( c θ 1 c θ 23 s θ 4 s θ 1 c θ 4 ) r 21 ( s θ 1 c θ 23 s θ 4 + c θ 1 c θ 4 ) + r 31 s θ 23 s θ 4 = s θ 6 r 11 [ ( c θ 1 c θ 23 c θ 4 + s θ 1 s θ 4 ) c θ 5 c θ 1 s θ 23 s θ 5 ] + + r 21 [ ( s θ 1 c θ 23 c θ 4 c θ 1 s θ 4 ) c θ 5 s θ 1 s θ 23 s θ 5 ] r 31 ( s θ 23 c θ 4 c θ 5 + c θ 23 s θ 5 ) = c θ 6
θ 6 = Atan 2 ( s θ 6 , c θ 6 )
Because of the plus or minus signs appearing in (27) and (32), these equations compute four solutions. Additionally, there are four more solutions obtained by the wrist of the manipulator. For each of the four solutions computed above, we obtain the flipped solution by [29]
θ 4 = θ 4 + 180 o θ 5 = θ 5 θ 6 = θ 6 + 180 o

2.4. The Designed Mobile Manipulator’s Common Chain of Frames

To achieve a successful combination between the KUKA youBot mobile platform and the Kinova Jaco Gen 2 robot manipulator, we have to describe the position of the end-effector according the local frame, attached to the center of the mobile chassis (platform). In order to deploy the mathematical equations, we have to describe the connection between the Kinova manipulator’s base frame and the KUKA mobile platform frame using the classical Denavit–Hartenberg convention (18). The aim is to derive a homogeneous transformation T manip mobP between these two frames; the transformation will be sized as a 4 × 4 matrix, and the matrix will include the rotations between frame R manip mobP ( t ) and vector o manip mobP ( t ) that describes the displacement between the origins of these two frames. The origin of the Kinova manipulator base frame is in negative direction according the x axis of the mobile platform, a fact that causes a negative sign to be attached to the Denavit–Hartenberg parameter a . The distance between the origins is denoted as h 2 .
T manip mobP = [ R manip mobP ( t ) o manip mobP ( t ) 0 1 ] = [ 0 0 1 l 2 1 0 0 0 0 1 0 0 0 0 0 1 ]
To calculate the position and the orientation of the end-effector, we have to provide the product of seven homogeneous transformations:
T 6 mobP = T manip mobP T 1 0 ( θ 1 ) T 2 1 ( θ 2 ) T 3 2 ( θ 3 ) T 4 3 ( θ 4 ) T 5 4 ( θ 5 ) T 6 5 ( θ 6 )
The final result is shown in (Figure 6).

2.5. Jacobian

Since the Kinova Jaco Gen 2 manipulator is mounted upon the mobile platform KUKA youBot, in order to be able to maintain the stable position of the manipulator’s end-effector, while the platform is moving within its 2D workspace, we have to calculate the Jacobian matrix to determine the instantaneous velocity of the gripper along the Cartesian y axis ( y axis of the base coordinate system). The manipulator’s y axis coincides with the mobile platform’s x axis. The goal that we imposed for our experiments is even simplified: to keep the position of the gripper stable, according to the inertial coordinate system of the environment, while the mobile platform is moving along a straight line, its x axis, for example. To achieve the purpose, we set the velocity of the youBot mobile platform according to the velocity of the gripper, using the opposite direction. The joint velocities are accessible through the messages, provided by the ROS stack, a concatenated set of ROS packages. The calculation of the Jacobi matrix is an essential mathematical element for the successful conduct of the experiments.

2.5.1. Linear Velocity

Consider frame { B } to be attached to a rigid body. We must describe the motion of point Q B relative to the frame { A } , where we consider { A } to be fixed. Frame { B } is located relative to frame { A } , the position vector is P BORG A , the rotation matrix is R B A , and we will assume that the orientation of R B A is constant with time, that is, the motion of point Q relative to { A } is due to P BORG A [29]. Equation (52) solves the linear velocity of point Q in terms of { A } . We have to express both components of the velocity in terms of { A } and sum them, keeping the relative orientation between these two frames constant as follows:
V Q A = V BORG A + R B A V Q B

2.5.2. Rotational Velocity

If the orientation between two frames is changing in time, the point that is fixed in frame { B } is indicated by vector Q B . The rotational velocity of the frame { B } relative to frame { A } is expressed by a vector Ω B A . We will consider that the linear velocity vector V Q B is constant equal to zero. Point Q will have only rotational velocity Ω B A according frame { A } . We can observe both the magnitude and the direction of the change in vector Q B , as viewed from { A } . The differential change in Q A is perpendicular to Q A and Ω B A . Additionally, it is observable that the magnitude of the differential change is
| Δ Q | = ( | Q A | sin θ ( | Ω B A | Δ t )
The vector cross-product is suggested by a defined condition of magnitude and direction. These conditions are satisfied by the following equation:
V Q A = Ω B A × Q A
Generally, the vector Q can also be changed according the frame { B } . This concept is described by
V Q A = A ( V Q B ) + Ω B A × Q A = R B A V Q B + Ω B A × R B A Q B =      = V BORG A + R A B V Q B + Ω B A × R A B Q B
When the geometric approach is described, however, to investigate more precisely, we must describe also the mathematical approach.
To derive the relationship between the derivative of an orthonormal matrix and a certain skew-symmetric matrix, we will use n × n orthonormal matrix R :
RR T = I n
the matrix I n is an n × n identity matrix. Differenting (56), we derive
R ˙ R T + R R ˙ T = 0 n
The matrix 0 n is an n × n zero matrix; thus, (57) can be written as
R ˙ R T + ( R ˙ R T ) T = S + S T = 0 n ,
where S is a skew-symmetric matrix. The relationship between the derivative of orthonormal matrices and skew-symmetric matrices is
S = R ˙ R 1
Let us consider a vector P B that is fixed in frame { B } . Its description in another frame { A } is
P A = R A B P B
If frame { B } is rotating, it means that the derivative R ˙ A B is not a zero, so the resulting vector P A will also be changing:
P ˙ A = R ˙ A B P B
Using the notation for velocity that it will give and (59), we have:
V P A = R ˙ A B P B = R ˙ B A R 1 B A P A = S B A P A
The skew-symmetric matrix in (59) is called the angular-velocity matrix. We assign the elements in a skew-symmetric matrix S as follows:
S = [ 0 Ω x Ω y Ω x 0 Ω x Ω y Ω x 0 ]
The column vector Ω , which corresponds to the 3 × 3 angular-velocity matrix, is an angular-velocity vector:
Ω = [ Ω x Ω y Ω z ]
Applying vector cross-product gives
SP = Ω × P
where P is any vector.
Hence, (59) can be written as follows:
V P A = Ω B A × P A
where the notation for Ω indicates that it is the angular-velocity vector specifying the motion of the frame { B } with respect to frame { A } [29].

2.5.3. Motion of the Robot’s Links

Notations v i and ω i are the linear and angular velocities of the origin of link frame { i } . The robot’s structure is a chain of connected links, where each one is capable of motion relative to its neighbors. To calculate the velocities of each link, the starting point is the robot’s base. The velocities of link i + 1 will be calculated according to the velocity of link i plus new velocity components added by link i + 1 . We have to divide the velocity into two subparts: the linear velocity of the origin of the link frame and the rotational velocity of the link.
Rotational velocities can be added when both ω vectors are written with respect to the same frame. Therefore, the angular velocity of link i + 1 is the same as that of link i plus a new component caused by rotational velocity at joint i + 1 . This statement can be written according to frame { i } as follows:
ω i + 1 i = ω i i + R i + 1 i θ ˙ i + 1 Z ^ i + 1 i + 1
Also
θ ˙ i + 1 Z ^ i + 1 i + 1 = [ 0 0 θ ˙ i + 1 ] i + 1
In order to represent the added rotational component due to motion at the joint in the frame { i + 1 } , we have made use of the rotational matrix related to frames { i } and { i + 1 } . The rotational matrix describes the rotation of joint i + 1 using its description in frame { i } , and we can add the two components of angular velocities [29]. We can find the description of the angular velocity of link i + 1 according to frame { i + 1 } using:
ω i + 1 i + 1 = R i i + 1 ω i i + θ ˙ i + 1 Z ^ i + 1 i + 1
The linear velocity of the origin of the frame { i + 1 } is equal to the velocity of frame { i } plus a new component caused by the rotation of link i . It is described by the last part of (55), in frame { i } . One term vanishes because P i + 1 i is constant. We have
v i + 1 i = v i i + ω i i × P i + 1 i
Premultiplying both sides by R i i + 1 , we compute
v i + 1 i + 1 = R i i + 1 ( v i i + ω i i × P i + 1 i )
Equations (69) and (71) are important results related to revolute joints. The corresponding relationships for the case when joint i + 1 is prismatic are
v i + 1 i + 1 = R i i + 1 ( v i i + ω i i × P i + 1 i ) + d ˙ i + 1 Z ^ i + 1 i + 1 ω i + 1 i + 1 = R i i + 1 ω i i
Applying Equation (72) or (69) and (71) successively from link to link, we can compute ω N N and v N N .
The multidimensional form of the derivatives is known as Jacobian. If we have six functions and the number of the independent parameters is also six, we have [29]
y 1 = f 1 ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 ) y 2 = f 2 ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 ) y 6 = f 6 ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 )
Using a vector notation (72) can be written as
Y = F ( X )
We can use the chain rule to calculate δ y i as follows [29]:
δ y 1 = f 1 x 1 δ x 1 + f 1 x 2 δ x 2 + + f 1 x 6 δ x 6 δ y 2 = f 2 x 1 δ x 1 + f 2 x 2 δ x 2 + + f 2 x 6 δ x 6 δ y 6 = f 6 x 1 δ x 1 + f 6 x 2 δ x 2 + + f 6 x 6 δ x 6
In vector notation, (76) is
δ Y = F X δ X
The Jacobian is a 6 × 6 matrix. It contains partial derivatives, and the notion of the matrix is J . If the functions f 1 ( X ) through f 6 ( X ) are nonlinear, then the partial derivatives are functions of x i , so we can use the following notation:
δ Y = J ( X ) δ X
The Jacobian can be presented as mapping velocities in X to Y
Y ˙ = J ( X ) X ˙
At each new instance, X has changed, which means that the linear transformation J ( X ) has also changing. In robotics, the general purpose of Jacobian is that it relates joint velocities to the Cartesian velocities of the tip of the arm [29]
v 0 = J 0 ( Θ ) Θ ˙
where the vector of joint displacements is Θ , and the Cartesian velocities are represented by the vector v . The superscript in front of the vector notations indicates in which frame the resulting Cartesian velocities are expressed. The shape of the vector Θ ˙ is 6 × 1 and the vector v 0 has the shape 6 × 1 . The vector v 0 is split into two parts:
v 0 = [ v 0 ω 0 ]
The first three elements of v 0 represent linear velocity, and the second three elements represent angular velocity. The Jacobian has a number of rows equal to the degrees of freedom in the Cartesian space, with columns representing the number of joints of the manipulator. The Jacobian can be found by directly differentiating the kinematic equations of the manipulator. This approach is easily implemented for linear velocities, but there is no 3 × 1 orientation vector whose derivative is ω . That is the reason why we introduced Equations (69) and (71).
When the Jacobian is nonsingular, we can calculate joint velocities from the given Cartesian velocities:
Θ ˙ = J 1 ( Θ ) v 0

2.6. Maintaining the Constant Position of the Manipulator’s Gripper While the Mobile Platform Is Moving

The position and orientation of the working tool of Kinova Jaco Gen2 are calculated by multiplying homogeneous transformations from (82) to (87). These transformations are derived using a classical Denavit–Hartenberg convention, as is presented in (18):
T 1 0 = [ c θ 1 0 s θ 1 0 s θ 1 0 c θ 1 0 0 1 0 D 1 0 0 0 1 ]
T 2 1 = [ c θ 2 s θ 2 0 D 2 c θ 2 s θ 2 c θ 2 0 D 2 c θ 2 0 0 1 0 0 0 0 1 ]
T 3 2 = [ c θ 3 0 s θ 3 0 s θ 3 0 c θ 3 0 0 1 0 e 2 0 0 0 1 ]
T 4 3 = [ c θ 4 0 s θ 4 0 s θ 4 0 c θ 4 0 0 1 0 ( D 3 + D 4 ) 0 0 0 1 ]
T 5 4 = [ c θ 5 0 s θ 5 0 s θ 5 0 c θ 5 0 0 1 0 0 0 0 0 1 ]
T 6 5 = [ c θ 6 s θ 6 0 0 s θ 6 s θ 6 0 0 0 1 1 ( D 5 + D 6 ) 0 0 0 1 ]
The vector Θ contains all the angular positions of the joints:
Θ = [ θ 1 , θ 2 , θ 3 , θ 4 , θ 5 , θ 6 ] T
The values of Θ are instantaneous. Since the investigated mobile manipulator has only rotational joints, we can use (69) and (71) to calculate the Jacobian. The output will be a vector with velocities in the Cartesian space, while the input values are the velocities of the manipulator’s joints Θ ˙ . As the values of Θ and Θ ˙ were previously saved, we will use them to calculate v 0 for each instance. The calculation of the Jacobian is performed in steps; in each step, the algorithm calculates a column of the matrix J .
R 2 0 = T 2 0 ( 0 : 2 , 0 : 2 ) = [ T 1 0 ( θ 1 ) T 2 1 ( θ 2 ) ] ( 0 : 2 , 0 : 2 ) R 3 0 = T 3 0 ( 0 : 2 , 0 : 2 ) = [ T 1 0 ( θ 1 ) T 2 1 ( θ 2 ) T 3 2 ( θ 3 ) ] ( 0 : 2 , 0 : 2 ) R 4 0 = T 4 0 ( 0 : 2 , 0 : 2 ) = [ T 1 0 ( θ 1 ) T 2 1 ( θ 2 ) T 3 2 ( θ 3 ) T 4 3 ( θ 4 ) ] ( 0 : 2 , 0 : 2 ) R 5 0 = T 5 0 ( 0 : 2 , 0 : 2 ) = [ T 1 0 ( θ 1 ) T 2 1 ( θ 2 ) T 3 2 ( θ 3 ) T 4 3 ( θ 4 ) T 5 4 ( θ 5 ) ] ( 0 : 2 , 0 : 2 ) R 6 0 = T 6 0 ( 0 : 2 , 0 : 2 ) = [ T 1 0 ( θ 1 ) T 2 1 ( θ 2 ) T 3 2 ( θ 3 ) T 4 3 ( θ 4 ) T 5 4 ( θ 5 ) T 6 5 ( θ 6 ) ] ( 0 : 2 , 0 : 2 )
Using (86), we can calculate
J ( 0 : 5 , 0 ) = [ [ 1 0 0 0 1 0 0 0 1 ] [ 0 0 1 ] × ( T 6 0 ( 0 : 3 , 3 ) [ 0 0 0 ] ) [ 1 0 0 0 1 0 0 0 1 ] [ 0 0 1 ] ]
J ( 0 : 5 , 1 ) = [ R 1 0 [ 0 0 1 ] × ( T 6 0 ( 0 : 3 , 3 ) T 1 0 ( 0 : 3 , 3 ) ) R 1 0 [ 0 0 1 ] ]
J ( 0 : 5 , 2 ) = [ R 2 0 [ 0 0 1 ] × ( T 6 0 ( 0 : 3 , 3 ) T 2 0 ( 0 : 3 , 3 ) ) R 2 0 [ 0 0 1 ] ]
J ( 0 : 5 , 3 ) = [ R 3 0 [ 0 0 1 ] × ( T 6 0 ( 0 : 3 , 3 ) T 3 0 ( 0 : 3 , 3 ) ) R 3 0 [ 0 0 1 ] ]
J ( 0 : 5 , 4 ) = [ R 4 0 [ 0 0 1 ] × ( T 6 0 ( 0 : 3 , 3 ) T 4 0 ( 0 : 3 , 3 ) ) R 4 0 [ 0 0 1 ] ]
J ( 0 : 5 , 5 ) = [ R 5 0 [ 0 0 1 ] × ( T 6 0 ( 0 : 3 , 3 ) T 5 0 ( 0 : 3 , 3 ) ) R 5 0 [ 0 0 1 ] ]
The final Jacobian is derived by combining Equations (90) to (95).
J = [ J ( 0 : 5 , 0 ) , J ( 0 : 5 , 1 ) , J ( 0 : 5 , 2 ) , J ( 0 : 5 , 3 ) , J ( 0 : 5 , 4 ) , J ( 0 : 5 , 5 ) ]
The velocities of the joints are represented by
Θ ˙ = [ θ ˙ 1 , θ ˙ 2 , θ ˙ 3 , θ ˙ 4 , θ ˙ 5 , θ ˙ 6 ] T
The final Cartesian velocities are calculated using (96) and (97) by
[ v 0 ω 0 ] = J ( Θ ) Θ ˙
If we have to calculate Θ ˙ , we use the inverse Jacobian
J 1 = 1 det ( J ) adj ( J )
Θ ˙ = J 1 ( Θ ) [ v 0 ω 0 ]

3. Experimental Results

The proposed approach is validated by conducting a real-world experiment with the laboratory prototype of the proposed mobile manipulator. Both components of the introduced manipulator are ROS-supported. This gives a universal point of view regarding the implemented solutions, despite the differences in the architecture of the mobile manipulator subsystems.
Using the message provided by the Kinova ROS stack:/’${kinova_robotType}_driver’/out/joint_state, we are able to observe the velocities and angular positions for each robot joint. The calculated movement speeds along the Kinova Jaco Gen 2′s Cartesian coordinate system’s x, y and z axes and angular velocities of ω x , ω y , and ω z are fed to KUKA youBot. The data recorded during the experiments are used to display the results. The velocities are measured in radians per second. Based on this, we structure a matrix that contains the joint velocities during the experiment. Using these measurements, we are able to determine the end-effector’s velocities along the Cartesian coordinate system’s axis and its angular velocities.
[ x ˙ y ˙ z ˙ ω x ω y ω z ] = J 6 × 6 [ θ ˙ 1 θ ˙ 2 θ ˙ 3 θ ˙ 4 θ ˙ 5 θ ˙ 6 ] 6 × 1
where θ ˙ 1 , θ ˙ 2 , θ ˙ 3 , θ ˙ 4 , θ ˙ 5 and θ ˙ 6 are joint velocities. Figure 7 shows the velocity ramp for each joint during the validation.
The positions along the axes and the orientations around them for the end-effector in the Cartesian coordinate system are shown in Figure 8.
The values of the vector elements that represent the linear and angular velocities during the experiment are shown in Figure 9. It visualizes the results of applying formula (98). The velocities of the joints are applied to the earlier proposed algorithm. It calculates the vector that is given in   ( 98 ) . The values inside the vector provide a stable position for the end-effector in the 3D space, despite the movable base.
The displacement between the positions of the end-effector of the Kinova Jaco Gen 2 manipulator and the KUKA youBot mobile platform during the experiment is presented in Figure 10.
According to the proposed approach, we calculated the manipulator’s velocity along the axes of its base frame to keep its end-effector ’s position constant during the movement of the base. The base is attached to the mobile platform KUKA youBot. To validate the proposed approach, we visualized manipulator’s position along its y axis during the movement of the mobile robot. The manipulator’s home position along y axis is around −0.25 m. The horizontality of the line shows that the velocities of the manipulator and mobile robot are approximately the same, slightly observable slope may be caused by not perfect environment conditions like the slippage of the mobile platform’s wheels.
Figure 11 shows the positions of the mobile platform and the manipulator gripper during the experiment. Additionally, the starting and the final positions of their movements are visible.

4. Conclusions

We have proposed an affordable open-source mobile manipulator composed of the KUKA youBot mobile platform and a Kinova Jaco manipulator, and we have developed corresponding kinematic problems. The later have been verified by running experiments with the designed laboratory prototype. The proposed open-source character of the mobile manipulator and the initial software provided by the ROS community can help robot researchers to concentrate directly on their research topics. The latter can more easily complete challenging research and development tasks, which will accelerate the technology’s transfer and application.

Author Contributions

Conceptualization, A.V.T. and S.A.-S.; methodology, V.P. and S.A.-S.; software, V.P. and T.S.; validation, T.S. and V.P.; formal analysis, V.P.; investigation, S.A.-S.; resources, A.V.T. and S.A.-S.; data curation, T.S.; writing—original draft preparation, V.P.; writing—review and editing, A.V.T., T.S. and S.A.-S.; visualization, V.P. and T.S.; supervision, A.V.T.; project administration, S.A.-S.; funding acquisition, S.A.-S. and V.P. All authors have read and agreed to the published version of the manuscript.

Funding

The European Regional Development Fund within the Operational Programme “Bulgarian national recovery and resilience plan”, via the procedure for the direct provision of grants ”Establishing of a network of research higher education institutions in Bulgaria”, and under Project BG-RRP-2.004-0005, “Improving the research capacity anD quality to achieve intErnAtional recognition and reSilience of TU-Sofia (IDEAS)”.

Data Availability Statement

Data are available upon request.

Conflicts of Interest

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

References

  1. ISO/TS 15066:2016; Robots and Robotic Devices—Collaborative Robots. International Organization for Standardization: Geneva, Switzerland, 2016. Available online: https://www.iso.org/standard/62996.html (accessed on 16 January 2024).
  2. ISO 10218-1:2011; Robots and Robotic Devices—Safety Requirements for Industrial Robots—Part 1: Robots. International Organization for Standardization: Geneva, Switzerland, 2011. Available online: https://www.iso.org/standard/51330.html (accessed on 16 January 2024).
  3. ISO 10218-2:2011; Robots and Robotic Devices—Safety Requirements for Industrial Robots—Part 2: Robot Systems and Integration. International Organization for Standardization: Geneva, Switzerland, 2011. Available online: https://www.iso.org/standard/41571.html (accessed on 16 January 2024).
  4. Neto, P.; Pires, J.N.; Moreira, A.P. Accelerometer-based control of an industrial robotic arm. In Proceedings of the Robot and Human Interactive Communication RO-MAN 2009, Toyama, Japan, 27 September–2 October 2009. [Google Scholar] [CrossRef]
  5. Ben Abdallah, I.; Bouteraa, Y. Gesture Control of 3DOF Robotic Arm Teleoperated by Kinect Sensor. In Proceedings of the 19th International Conference on Sciences and Techniques of Automatic Control & Computer Engineering (STA), Sousse, Tunisia, 24–26 March 2019. [Google Scholar] [CrossRef]
  6. Ahmed, S.A.; Ramadan, M.M.; Fathy, E. Motion Control of Robot by Using Kinect Sensor. Res. J. Appl. Sci. Eng. Technol. 2014, 8, 1384–1388. [Google Scholar] [CrossRef]
  7. Waldherr, S.; Romero, R.; Thrun, S.A. Gesture Based Interface for Human-Robot Interaction. Auton. Robot. 2000, 9, 151–173. [Google Scholar] [CrossRef]
  8. Tchon, K.; Jakubiak, J.; Muszynski, R. Mobile manipulators with implicit aboard kinematics. In Proceedings of the 11th International Conference on Advanced Robotics ICAR 2003, Coimbra, Portugal, 30 June–3 July 2003. [Google Scholar] [CrossRef]
  9. Bischoff, R.; Huggenberger, U.; Prassler, E. KUKA youBot—A mobile manipulator for research and education. In Proceedings of the 2011 IEEE International Conference on Robotics and Automation, Shanghai, China, 9–13 May 2011. [Google Scholar] [CrossRef]
  10. Natarajan, S.; Kasperski, S.; Eich, M. An Autonomous Mobile Manipulator for Collecting Sample Containers. In Proceedings of the International Symposium on Artificial Intelligence, Robotics and Automation in Space, Montreal, Canada, 17-19 June 2014. [Google Scholar]
  11. Pepe, A.; Chiaravalli, D.; Melchiorri, C. A Hybrid Teleoperation Control Scheme for a Single-Arm Mobile Manipulator with Omnidirectional Wheels. In Proceedings of the 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Daejeon, Republic of Korea, 9–14 October 2016. [Google Scholar] [CrossRef]
  12. Adiwahono, A.H.; Chua, Y.; Tee, K.P.; Liu, B. Automated door opening scheme for non-holonomic mobile manipulator. In Proceedings of the 2013 13th International Conference on Control, Automation and Systems (ICCAS 2013), Gwangju, Republic of Korea, 20–23 October 2013. [Google Scholar] [CrossRef]
  13. Zimmermann, S.; Poranne, R.; Coros, S. Go Fetch!—Dynamic Grasps using Boston Dynamics Spot with External Robotic Arm. In Proceedings of the 2021 IEEE International Conference on Robotics and Automation (ICRA), Xi’an, China, 30 May–5 June 2021. [Google Scholar] [CrossRef]
  14. Yamamoto, Y.; Yun, X. Coordinating locomotion and manipulation of a mobile manipulator. IEEE Trans. Autom. Contr. 1994, 39, 1326–1332. [Google Scholar] [CrossRef]
  15. Seraji, H. A unified approach to motion control of mobile manipulators. Int. J. Rob. Res. 1998, 17, 107–118. [Google Scholar] [CrossRef]
  16. Khatib, O.; Yokoi, K.; Chang, K.; Casai, A. Robots in human environments: Basic autonomous capabilities. Int. J. Rob. Res. 1999, 18, 684–696. [Google Scholar] [CrossRef]
  17. Yamamoto, Y.; Yun, X. Unified analysis of mobility and manipulability of mobile manipulators. In Proceedings of the Proceedings 1999 IEEE International Conference on Robotics and Automation (Cat. No.99CH36288C), Detroit, MI, USA, 10–15 May 1999; pp. 1200–1206. [Google Scholar] [CrossRef]
  18. Tchon, K.; Jakubiak, J.; Muszynski, R. Kinematics of mobile manipulators: A control theoretic perspective. Arch. Control Sci. 2001, 11, 79–105. [Google Scholar]
  19. Sharma, S.; Kraetzschmar, G.K.; Scheurer, C.; Bischoff, R. Unified Closed Form Inverse Kinematics for the KUKA youBot. In Proceedings of the ROBOTIK 2012, 7th German Conference on Robotics, Munich, Germany, 21–22 May 2012; ISBN 978-3-8007-3418-4. [Google Scholar]
  20. Liu, Y.; Li, H.; Ding, L.; Liu, L.; Liu, T.; Wang, J.; Gao, H. An Omnidirectional Mobile Operating Robot Based on Mecanum Wheel. In Proceedings of the 2017 2nd International Conference on Advanced Robotics and Mechatronics (ICARM), Hefei and Tai’an, China, 27–31 August 2017. [Google Scholar] [CrossRef]
  21. Li, X.; Luo, L.Z.; Zhao, H.; Ge, D.S.; Ding, H. Inverse Kinematics Solution Based on Redundancy Modeling and Desired Behaviors Optimization for Dual Mobile Manipulators. J. Intell. Robot. Syst. 2023, 108, 37. [Google Scholar] [CrossRef]
  22. Zhang, X.F.; Li, G.F.; Xiao, F.; Jiang, D.; Tao, B.; Kong, J.Y.; Jiang, G.Z.; Liu, Y. An inverse kinematics framework of mobile manipulator based on unique domain constraint. Mech. Mach. Theory 2023, 183, 105273. [Google Scholar] [CrossRef]
  23. Colucci, G.; Botta, A.; Tagliavini, L.; Cavallone, P.; Baglieri, L.; Quaglia, G. Kinematic Modeling and Motion Planning of the Mobile Manipulator Agri.Q for Precision Agriculture. Machines 2022, 5, 321. [Google Scholar] [CrossRef]
  24. Huang, Y.; Li, D.L.; Dong, K.J.; Zhang, W.C.; Gao, X.M. Inverse Kinematics Analysis and Mechatronics Design of Mobile Parallel Manipulator for Assisted Assembly. In Proceedings of the 2022 IEEE International Conference on Mechatronics and Automation (IEEE ICMA 2022), Guilin, China, 7–10 August 2022. [Google Scholar] [CrossRef]
  25. Siegwart, R.; Nourbakhsh, I.R.; Scaramuzza, D. Introduction to Autonomous Mobile Robots; The MIT Press: Cambridge, MA, USA, 2011. [Google Scholar]
  26. Ahmed, S.A.; Shakev, N.G.; Topalov, A.V.; Popov, V.L. Model-Free Detection and Following of Moving Objects by an Omnidirectional Mobile Robot using 2D Range Data. IFAC-PapersOnLine 2018, 51, 226–231. [Google Scholar] [CrossRef]
  27. User Guide KINOVA® GEN2 Ultra Lightweight Robot. Available online: https://artifactory.kinovaapps.com/ui/api/v1/download?repoKey=generic-documentation-public&path=Documentation%252FGen2%252FTechnical%2520documentation%252FUser%2520Guide%252FUG-009_KINOVA_Gen2_Ultra_lightweight_robot_User_guide_EN_R03.pdf (accessed on 21 October 2023).
  28. Craig, J.J. Introduction to Robotics: Mechanics and Control, 4th ed.; Pearson Prentice Hall: London, UK, 2017. [Google Scholar]
  29. Lewis, W.L.; Dawson, D.M.; Abdallag, C.T. Robot Manipulator Control Theory and Practice, 2nd ed.; Publisher Marcel Dekker, Inc.: New York, NY, USA, 2004. [Google Scholar]
Figure 1. Mobile manipulator and velocities.
Figure 1. Mobile manipulator and velocities.
Electronics 13 01534 g001
Figure 2. Geometric dimensions (in [mm]) of the mobile platform KUKA youBot.
Figure 2. Geometric dimensions (in [mm]) of the mobile platform KUKA youBot.
Electronics 13 01534 g002
Figure 3. A sketch with the necessary notations to calculate the forward kinematics of the mobile platform: (a) wheel parameters and (b) wheels and the corresponding speeds.
Figure 3. A sketch with the necessary notations to calculate the forward kinematics of the mobile platform: (a) wheel parameters and (b) wheels and the corresponding speeds.
Electronics 13 01534 g003
Figure 4. Notations (a) and dimensions (b) of Jaco Gen 2 manipulator.
Figure 4. Notations (a) and dimensions (b) of Jaco Gen 2 manipulator.
Electronics 13 01534 g004
Figure 5. Kinova’s actuators: K-75+, K-75 and K-58.
Figure 5. Kinova’s actuators: K-75+, K-75 and K-58.
Electronics 13 01534 g005
Figure 6. Position of the end-effector according to the mobile platform frame. The manipulator is placed in home position.
Figure 6. Position of the end-effector according to the mobile platform frame. The manipulator is placed in home position.
Electronics 13 01534 g006
Figure 7. Joint velocities: (a) velocity of the first joint; (b) velocity of the second joint; (c) velocity of the third joint; (d) velocity of the fourth joint; (e) velocity of the fifth joint; (f) velocity of the sixth joint.
Figure 7. Joint velocities: (a) velocity of the first joint; (b) velocity of the second joint; (c) velocity of the third joint; (d) velocity of the fourth joint; (e) velocity of the fifth joint; (f) velocity of the sixth joint.
Electronics 13 01534 g007
Figure 8. Measured positions and orientations of the end-effector. There are 3 positions and 3 orientations according to the manipulator’s base (Cartesian) coordinate system: (a) position along the x axis; (b) position along the y axis; (c) position along the z axis; (d) orientation around the x axis— α ; (e) orientation around the y axis— β ; (f) orientation around the z axis— γ .
Figure 8. Measured positions and orientations of the end-effector. There are 3 positions and 3 orientations according to the manipulator’s base (Cartesian) coordinate system: (a) position along the x axis; (b) position along the y axis; (c) position along the z axis; (d) orientation around the x axis— α ; (e) orientation around the y axis— β ; (f) orientation around the z axis— γ .
Electronics 13 01534 g008
Figure 9. Calculated velocities according to the manipulator’s base coordinate system, along each axis and around each axis. These velocities applied to the base provide constant position of the end-effector during its movement according to the adjusted joint velocities vector Θ ˙ : (a) velocity along the x axis; (b) velocity along the y axis; (c) velocity along the z axis; (d) velocity around the x axis; (e) velocity around the y axis; (f) velocity around the z axis.
Figure 9. Calculated velocities according to the manipulator’s base coordinate system, along each axis and around each axis. These velocities applied to the base provide constant position of the end-effector during its movement according to the adjusted joint velocities vector Θ ˙ : (a) velocity along the x axis; (b) velocity along the y axis; (c) velocity along the z axis; (d) velocity around the x axis; (e) velocity around the y axis; (f) velocity around the z axis.
Electronics 13 01534 g009
Figure 10. Displacement between the position of the movable base coordinate system and the position of the end-effector.
Figure 10. Displacement between the position of the movable base coordinate system and the position of the end-effector.
Electronics 13 01534 g010
Figure 11. The positions of the mobile platform and manipulator gripper during the experiment.
Figure 11. The positions of the mobile platform and manipulator gripper during the experiment.
Electronics 13 01534 g011
Table 1. Kinematic parameters of the mobile platform.
Table 1. Kinematic parameters of the mobile platform.
α   [ deg ] β [deg] γ   [ deg ] l [ m ] r [ m ]
Wheel (1)32.557.5−450.2790.05
Wheel (2)147.5−57.5450.2790.05
Wheel (3)−147.5−122.5−450.2790.05
Wheel (4)−32.5122.5450.2790.05
Table 2. Structural elements of the homogeneous transformations [27].
Table 2. Structural elements of the homogeneous transformations [27].
ParametersDescriptionsLength (m)
D 1 Base to shoulder0.2755
D 2 Upper Length (shoulder to elbow)0.41
D 3 Forearm length (elbow to wrist)0.2073
D 4 First wrist length0.1038
D 5 Second wrist length0.1038
D 6 Wrist to center of the hand0.16
e 2 Joint 3–4 lateral offset0.0133
Table 3. Physical characteristics of the manipulator Jaco Gen2 [27].
Table 3. Physical characteristics of the manipulator Jaco Gen2 [27].
CharacteristicsValues
Total weight4.4 kg
Reach98.4 cm
Maximum payload2.6 kg (mid-range)/2.2 kg (full-range)
Materialscarbon fiber/aluminum
Maximum linear arm speed20 cm/sec
Power supply voltage18–29 VDC
Average power25 W (15 W standby)
Peak power100 W
Communication protocolRS485
Communication cables20 pins flat flex cable
Water resistanceIPX2
Operating temperature−10 to 40
Table 4. Kinova Jaco Gen 2’s actuator specifications.
Table 4. Kinova Jaco Gen 2’s actuator specifications.
Title K 75 + K 75 K 58
Nominal torque (Nm)129.23.6
Peak torque (Nm)30.5186.8
No load speed (rpm)12.29.820.3
Nominal speed (rpm)9.4715
Weight (g)570587357
Reduction ratio136160110
Angular ranges, software limited (turns)±27.7
Communication protocolRS485
Table 5. Table formed using Denavit–Hartenberg parameters, classical approach [27].
Table 5. Table formed using Denavit–Hartenberg parameters, classical approach [27].
i α i a i d i θ i
1 π 2 0 D 1 θ 1
2 π D 2 0 θ 2
3 π 2 0 e 2 θ 3
4 π 2 0 ( D 3 + D 4 ) θ 4
5 π 2 00 θ 5
6 π 0 ( D 5 + D 6 ) θ 6
Table 6. Table formed by Denavit–Hartenberg parameters, using a modified approach.
Table 6. Table formed by Denavit–Hartenberg parameters, using a modified approach.
i α i 1 a i 1 d i θ i
1 0 00 θ 1
2       π 2 00 θ 2
3 0 D 2 e 2 θ 3
4 π 2 0 D 3 + D 4 θ 4
5       π 2 00 θ 5
6 π 2 0 0 θ 6
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Popov, V.; Topalov, A.V.; Stoyanov, T.; Ahmed-Shieva, S. Kinematic Modeling with Experimental Validation of a KUKA®–Kinova® Holonomic Mobile Manipulator. Electronics 2024, 13, 1534. https://doi.org/10.3390/electronics13081534

AMA Style

Popov V, Topalov AV, Stoyanov T, Ahmed-Shieva S. Kinematic Modeling with Experimental Validation of a KUKA®–Kinova® Holonomic Mobile Manipulator. Electronics. 2024; 13(8):1534. https://doi.org/10.3390/electronics13081534

Chicago/Turabian Style

Popov, Vasil, Andon V. Topalov, Tihomir Stoyanov, and Sevil Ahmed-Shieva. 2024. "Kinematic Modeling with Experimental Validation of a KUKA®–Kinova® Holonomic Mobile Manipulator" Electronics 13, no. 8: 1534. https://doi.org/10.3390/electronics13081534

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