## 1 Introduction  
Solving typical robotics problems, such as trajectory planning [1] and motion control [2], requires that forward and inverse kinematics problems be addressed. The former involves calculating the position and orientation of a robot's end-effector frame from its joint values, which can easily be solved by using the matrix method of analysis [3]. The latter involves determining the joint variables corresponding to a given end-effector position and orientation. Indeed, the inverse kinematics problem is more complex than the forward kinematics problem because of the existence of nonlinear and multiple solutions [4]. Generally, two types of solutions exist: analytical solutions and numerical solutions. Iterative numerical methods can be applied if the inverse kinematics problem in question does not have any closed-form solutions and if it does not satisfy the [PERSON] criterion [5]. Even in cases where closed-form solutions do exist, iterative numerical methods are often used to improve the accuracy of these solutions. From the 1980s, the inverse kinematics problem has attracted the attention of a large number of experts and researchers, all of whom have made remarkable achievements with respect to providing an adequate solution. [PERSON] and [PERSON] equated the kinematics problem of the general six-degree-of-freedom robot manipulators to that of a system of eight second-degree equations with eight unknowns solved numerically by polynomial continuation [6]. The authors in [6] conjectured that this problem has at most 16 solutions, the first conclusive proof of which was given in [7]. In order to improve the real-time performance of the solution, [PERSON] and [PERSON] presented an algorithm for efficient inverse kinematics for a general six revolute (6R) robot manipulator, which performs both symbolic preprocessing and matrix computations and reduces the problem in question to computing the eigendecomposition of a matrix [8]. The generality of this algorithm, however, is limited since it can only be applied to 6R robot manipulators. In order to improve the generality of the inverse kinematics algorithm, some general approaches are proposed. The representative algorithms are the Newton-Raphson (NR) method [9] and the damped least-squares approach [10,11], which are all based on the inverse Jacobian matrix. The common drawback of this kind of algorithm is that it is sensitive to the initial solution. In order to solve this problem, [PERSON] et al. proposed a combined optimization method, which is based on a combination of two nonlinear programming techniques [12]. More specifically, the proposed method uses the cyclic coordinate descent (CCD) method [13] in order to rapidly find a feasible point approximate to the true solution and then the Broyden-Fletcher-Shanno variable metric method [13] in order to obtain a solution accurate to the desired degree of precision. Recently, some novel algorithms have been proposed to solve the inverse kinematics problem of robot manipulators. [PERSON] et al. presented an algorithm for the control of kinematically-redundant manipulators considering three secondary tasks: a joint limit avoidance task, a kinematic singularities avoidance task, and an obstacle avoidance task [14]. Indeed, this approach is practical and results in a significant decrease in computing time. [PERSON] and [PERSON] proposed an approach for a closed-form solution for the inverse kinematics of redundant manipulators [15]. This approach involves transforming redundant manipulators into non-redundant ones by selecting a set of joints, identifying the redundant ones, and parametrizing the joint variables. Thereafter, several closed-form methods previously developed for non-redundant manipulators can be applied in order to obtain the requisite solutions. This approach, however, is only suitable for manipulators that conform to the Pieper criterion. [PERSON] et al. [16] and [PERSON] et al. [17] solved the inverse kinematics problem using double quaternions and Lie symmetries, respectively.