# A Novel Kinematic Directional Index for Industrial Serial Manipulators
## 2 The KDI Performance Index  
The KDI performance index allows evaluating the behavior of a serial manipulator in terms of linear velocity. For this purpose, the serial robot's kinematics are considered. As mentioned above, this index is based on the analysis of the Jacobian matrix \(\mathbf{J}\). As such, the analyzed problem can be identified by the forward velocity kinematic equation defined in Equation (1):  
\[\dot{\mathbf{x}}=\mathbf{J}\mathbf{\dot{q}} \tag{1}\]where \(\dot{x}\) and \(\dot{q}\) are the velocity vectors in the Cartesian space and the joint space, respectively. Since the KDI aims to determine the region in which a robot reaches its maximum translational velocity, only the translational part of the Jacobian matrix has been considered; hence, the motion of the wrist and its motors are not taken into account. Once the direction of interest (i.e., the direction of motion) is defined, the velocities along the axes that are normal for the direction of interest are set as null values. Without loss of generality, it is possible to consider the direction of interest along the x-axis, and the velocity in this direction can be defined as follows in Equation (2):  
\[\left\{ \begin{array}{c}\dot{x}\\ \vdots\\ 0\end{array} \right\}=\left[ \begin{array}{cccc}j_{1,1}&j_{1,2}&\cdots&j_{1,m} \\ \vdots&\vdots&\ddots&\vdots\\ j_{n,1}&j_{n,2}&\ldots&j_{n,m}\end{array} \right]\left\{ \begin{array}{c}\dot {q}_{1}\\ \vdots\\ \dot{q}_{m}\end{array} \right\} \tag{2}\]  
where \(n\) is the number of degrees of freedom in the Cartesian space and \(m\) is the number of actuators that defines the joint space. Let us define \(R\) as the rotation matrix that aligns the x-axis to the direction of interest (\(d\)), \(J_{R}\) as the Jacobian matrix rotated by the matrix \(R\), and \(\dot{d}\) as the speed along \(d\). In this way, in Equation (3), the velocity along the direction of interest is identified. \[\left\{ \begin{array}{c}\dot{d}\\ \vdots\\ 0\end{array} \right\}=\left[ \begin{array}{cccc}r_{1,1}&\cdots&r_{1,n}\\ \vdots&\ddots&\vdots\\ r_{n,1}&\ldots&r_{n,n}\end{array} \right]\left[ \begin{array}{c}j_{1,1}&j_{ 1,2}&\cdots&j_{1,m}\\ \vdots&\vdots&\ddots&\vdots\\ j_{n,1}&j_{n,2}&\ldots&j_{n,m}\end{array} \right]\left\{ \begin{array}{c}\dot {q}_{1}\\ \vdots\\ \dot{q}_{m}\end{array} \right\} \tag{3}\]  
The value of KDI is identified by the letter \(K\) and is defined as the maximum value taken by \(\dot{d}\) as highlighted in Equation (4):  
\[K=\max\!\left(\dot{d}\right) \tag{4}\]  
When a robot moves at its maximum speed, some joint motors are also working at their maximum speed. Since Equation (3) is a linear system, it is possible to state that the minimum number of motors in this condition is equal to \(m-n+1\). For example, a solution can be found by means of a linear programming problem. However, most industrial robots are non-redundant, so a proper solution for these robots is proposed in detail. In this case, the number of degrees of freedom (\(n\)) is equal to the number of motors (\(m\)) (\(n=m\)). Hence, the Jacobian matrix is a square matrix as defined in Equation (5). \[\left\{ \begin{array}{c}\dot{d}\\ \vdots\\ 0\end{array} \right\}=\left[ \begin{array}{cccc}j_{R~{}1,1}&\cdots&j_{R~{}1, n}\\ \vdots&\ddots&\vdots\\ j_{R~{}n,1}&\ldots&j_{R~{}n,n}\end{array} \right]\left\{ \begin{array}{c}\dot {q}_{1}\\ \vdots\\ \dot{q}_{n}\end{array} \right\} \tag{5}\]  
It is important to highlight that the maximum velocity in the direction of interest is achieved when at least one motor reaches its maximum velocity. Therefore, in order to find the solution to this problem, the velocity in the direction of interest (\(d\)) can be set to a fictitious value of \"1\" and the fictitious motor velocities can be easily computed since the following problem is defined by a linear system (Equation (6)) where the number of unknowns is equal to the number of equations. \[\left\{ \begin{array}{c}1\\ \vdots\\ 0\end{array} \right\}=J_{R}\left\{ \begin{array}{c}\dot{q}_{1}\\ \vdots\\ \dot{q}_{n}\end{array}