FABRIK-R: An Extension Developed Based on FABRIK for Robotics Manipulators

This paper develops on the process of inverse kinematics (IK) for manipulator robots based on a recent technique from the computer graphics area that has been highlighted by its simplicity and low computational cost. This IK solver is known as Forward And Backward Reaching Inverse Kinematics (FABRIK) suffers from singularities when applied in kinematic chains composed of one degree of freedom (1-DOF) joints. Some extensions of this method have been proposed to incorporate the constraints in some of the most common joints, however, their application over kinematic chains with only 1-DOF joints is still not possible. Since several manipulators have kinematic chains composed of 1-DOF joints, this work presents a new method, named FABRIK-R, to extend the original method for applications in the robotics manipulators field.


I. INTRODUCTION
Since the twentieth century, robots are no longer just the idea of science fiction movie writers. They have become the focus of research studies, part of industrial processes, and even used in human surgery [1]. The evolution of industrial automation has led to advances in manipulator robotics research due to the ease of robots to fit into the production process, performing tasks efficiently and accurately to optimize work and reduce costs [2].
A manipulator robot can be as precise and accurate as human operators, associating speed and smoothness to its movements [3]. Due to these characteristics, the realistic and plausible movement of bodies has long been a problem for scholars in many fields, including robotics and computer graphics. This problem has been solved by inverse kinematic (IK) methods aimed at animating or controlling different virtual creatures [4].
In the area of computer graphics, a recent technique has been highlighted due to its efficiency to solve the inverse kinematics problem, producing smooth movements without discontinuities with a low computational cost. One of its best advantages is the simplicity due to the fact the The associate editor coordinating the review of this manuscript and approving it for publication was Yangmin Li . algorithm treats each joint independently, eliminating the need to build the entire kinematic chain of the body [4]. This method is known as Forward And Backward Reaching Inverse Kinematics (FABRIK) and it has been the target of several researches in the last years. FABRIK has gained a high relevance in character animation and it has been used in modern graphics engines such as Unity3D, Unreal and Maya [5].
Despite all these advantages, this method has limitations when applied to the field of robotics. Most manipulator robots have a kinematic chain with joints of only one degree of freedom . This class of manipulators can be easily found in industrial applications, such as cylindrical, SCARA and KUKA robots [6]- [9], in assistive robotic with the JACO robot [10] and medical surgeries, represented by Da Vinci and Navi robots [11], [12]. The movement restriction of these robots implies a move dependency between two sequential joints. Nevertheless, FABRIK treats each joint independently, which makes its solution unfeasible.
Although the 1-DOF joint problem has been investigated by other extensions of this method [4], their application over kinematic chains with only 1-DOF joints is still not possible and this kind of chain is the problem addressed in this paper.
Therefore, we propose an extension for FABRIK to solve the problem of inverse kinematics for kinematic chains with VOLUME 9, 2021 This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/ only 1-DOF joints. This approach has as main contributions the following points: • Development of an extension to the FABRIK algorithm. This paper extends the FABRIK for pivot and hinge joints, by taking into consideration the restrictions on the previous (parent) or next (child) joint. In each step, we project the new joint onto a plan that contains the previous and actual joint and respects their respective movement constraints.
• The mathematical formalism for applying restrictions.
In order to be able to apply the restrictions of each joint, a way of calculating the plan that respects the restrictions of the previous joint and allows the current joint to move in the direction of the next joint is presented and formalized.
• Application for robotics of manipulators. With the possibility of applying the technique in 1-DOF kinematic chains, the technique becomes applicable in robotics of manipulators, considering that many of the models of manipulator robots have this characteristic.
The paper is organized as follows: Section II presents the state of the art of inverse kinematics; Section III is about the algorithm FABRIK; Section IV is about the limitations of FABRIK extension to solve the movements constraints problem; Section V is dedicated to the method proposed in this paper, which incorporates the movement restrictions by adding the constrictions of the previous (parent) or next (child) joint; The analysis of the obtained results is presented in Section VI; At last, conclusions and propositions for the future are presented in Section VII, followed by the bibliographic references.

II. WORK RELATED
The inverse kinematics problem puzzled researchers for many years in the field of robotics and computer graphics. Over the past decades, various approaches have been implemented to find a robot configuration for a given task. Because of this variety, inverse kinematics algorithms can be divided into four main categories: analytical, numerical, data-based, and hybrid [13].
Craig, in [2], presents a review with various analytical methods developed mainly in the field of robotics as they generally do not suffer from uniqueness problems, offer a global solution, and are reliable. Faria et. al. propose a method to uniquely solve IK of 7-DOF manipulators while avoiding joint limits and singularities [14]. However, the nonlinear nature of kinematic equations and the low scalability make the analytical methods less suitable for redundant systems, in which they generally fall into local minimums and cannot handle prioritized constraints.
Data-based methods learn a space of natural deformation from examples. Using the learned space, they generate new shapes that respect the deformations shown by the examples but still satisfy the constraints imposed by the user. Zhang proposes an approach that mimics human experts' behaviors in solving closed-form inverse kinematics using Behavior Tree [15]. In [16] it is presented a data method learning by demonstration to model the surgical operation skills in the Cartesian space. After that, it proposed an improved recurrent neural network (RNN) to perform the trajectory control of redundant robot manipulators with constraints.
This category also has been used in applications for which the joint torque sensors are often unavailable, such as the biomedical robots, as shown in [17]. The disadvantages of Data-based methods are the requirement of an offline training procedure and the results high dependence on the training data and limitation to the models and movements in which the system was trained.
Attempting to reduce the complexity of the optimization problem, hybrid methods split the problem into numerical and analytical components. Some of these works solve the inverse kinematics problem from a statistical point of view, such as in [18]. However, these statistical methods have a high computational cost as a disadvantage.
Among the numerical approximation methods, the best known are the Jacobians methods that linearly model the end-effector movement in relation to changes that occur in the joint angles. Within this group, several approaches have been developed to calculate or approximate the inverse of the jacobian, such as the transposed Jacobian, pseudoinversebased, damped least squares (DLS), singular Value Decomposition (SVD) [13], [19]. The solutions presented based on the Jacobian matrix produce smooth positions, however, most of these approaches suffer from high computational cost, complex matrix calculations, and singularity problems [20].
Numerical methods also have several approaches that are characterized by their probabilistic search. This search is made in the configuration space and each sample has an associated value calculated by a fitness function. The main methods of this category are Ant Bee Colony, Firefly Algorithm, and Particle Swarm Optimization [21]. These approaches are recommended for solving complex problems and have the advantage of not falling into singularities, as they do not invert the Jacobian matrix [22]. However, many of these methods can fall into the local minimum problem and present inconsistent results.
Heuristic-based methods are the simplest and fastest numerical approaches, among which can be highlighted the Cyclic Coordinate Descent (CCD) and FABRIK [4]. [23] introduces CCD, a widely used approach in graphic animation and the gaming industry due to its rapid convergence and low computational cost. This method attempts to minimize position and orientation errors by transforming one joint variable at a time. However, it often biases in describing unrealistic movements for robot manipulators.
The FABRIK solution, proposed by [24], consists of an iterative method that treats each joint value as points in the Cartesian plane and thus searches for subsequent joints as points belonging to lines, representing the manipulator links. This approach has the main advantages of high convergence percentage and low computational cost. Nevertheless, even with all the advantages presented FABRIK has some limitations when applied to manipulator robotics. As we aim to propose a solution for these limitations, we present the FABRIK algorithm and its limitations in sections III and IV respectively, followed by the proposed approach in section V.

III. FORWARD AND BACKWARD REACHING INVERSE KINEMATICS (FABRIK)
FABRIK uses previously calculated joint positions to find new positions in an iterative way that aims to minimize system error by adjusting each joint angle one at a time. The algorithm starts initially in the base/end-effector direction and returning in the end-effector/base direction. Fig. 1 shows an illustration of the FABRIK algorithm where p 1 , . . . , p n are positions of the manipulator joints, d 1 , . . . , d n−1 the manipulator links and t corresponds to the target position. The first step in performing FABRIK is to calculate the distances between joints and verify that the target is reachable. When it is reachable, the approach is implemented in two stages. In the first stage, known as Forward Reaching, joint positions are found starting from the end-effector to base, assigning the end-effector a new value p n that corresponds to the target point. Then a connection is made between p n and p n−1 and the new value of p n−1 is given by the size of the d n−1 link (which connect the joints p n and p n−1 ) starting at the point p n . This procedure is repeated until reaching the manipulator base, as presented in Fig. 1(b), (c) and (d). However, this process can move the base out of its real position, as presented in Fig. 1(d). Then, a second phase is necessary and the same process is performed in the base-effector direction. In this stage, called Backward Reaching, the base is fixed in its original position and the other joints are re-positioned one by one until the end-effector, as shown in Fig. 1(e) and (f). The two phases of FABRIK are performed until the end-effector position reaches the target or gets close enough.
FABRIK has several advantages over existing iterative heuristic algorithms [24]. The computational cost for each set per iteration is low, which means the solution is reached quickly. The method is also easy to implement, as it is simply a problem involving points, distances and lines, and it always returns a solution when the target is reachable. Another advantage of this approach is the fact it does not require complex calculations or matrix manipulations, does not suffer from singularity problems and returns smooth motion without erratic discontinuities. Besides, its emphasis on joint movements closer to the base ensures a closer simulation of natural movements than that observed with other methods such as CCD.
Despite the advantages presented, several methods have been proposed to extend FABRIK. [25] proved that FABRIK can handle different priorities for its targets. In [26], a data method was applied before the start of FABRIK for producing more natural poses for the human eye, while [27] extended FABRIK to handle collision-free tasks. Finally, in the work developed by [4] FABRIK extensions are presented to meet the most varied types of joints models.

IV. FABRIK EXTENSION LIMITATIONS FOR MOVEMENTS CONSTRAINTS
Aristidou et al. [4] presents the six most common anthropometric joints and describes how to incorporate joint constraints using FABRIK. Among these joints, the Ball-and-Socket, hinge and pivot joints are the most common in manipulator robotics.
The Ball-and-Socket joint allows rotational movements in any direction. This is the type of joint in the human body that allows as many different movements as flexion, extension, rotation, abduction, adduction and circumduction. Hinges, on the other hand, are the simplest type of joint, allowing flexion and extension, i.e. movements limited to a flat/direction around a single axis. They can be found on the knees and elbows. Finally, the pivot joint is one in which a bone rotates VOLUME 9, 2021 around another, allowing only rotational movement. This type of joint can be found at the neck, allowing a lateral turn of the head.
Considering the types of movements allowed by each joint type, the extension proposed by [4] suggests solutions to integrate the constraints in FABRIK, complementing those presented in [24]. They propose that hinge joint restriction must be applied using the root and target, as shown in Fig. 2. In this example, the author uses a body of only three points: the hinge joint, where the constraint will be applied, the root and the target. However, it is unclear how to apply this method to a body with more than 3 joints or how to define who is the root and the target. The lack of definition allows different interpretations of this approach applied in a p i joint in the forward reaching stage, such as: 1) Set root as the base of the manipulator and target as the end-effector.  Despite the uncertainty in the method application, we assume that the method is applied following hypotheses 2 and 3 to discuss other points that also have flaws in this approach.
The definition of the i plane is one of the controversial topics, as it disregards possible movement restrictions in the joints connected to the hinge. Thus, the method can be functional only if the root and the target have total freedom of movement. This restriction is possibly not considered in the algorithm because FABRIK was originally developed for computer graphics applications. However, when considering the use of FABRIK for manipulator robotics, most robot models have a kinematic chain with joints of only 1-DOF, being impossible to apply the approach as presented.
The limitation of the method in a 1-DOF joint sequence can be better understood by analyzing its application in a manipulator similar to the one in Fig. 3(a). Fig. 3(b) shows the forward reaching stage to set the new position of p 3 , which should be found after the 3 plan definition. This definition is supposed to be done as presented in Fig. 2 (a) and (b). However, since the joint p 3 and p 4 have the same direction vector and p 2 is out of the plane defined by this vector, it is impossible to define the plane 3 as proposed by [24]. Although the application can not define the new position of p 3 , a new value is assigned to p 3 assuming that p 4 did not rotate, so that the method can be analyzed in terms of p 2 . In this case, the joints do not have the same direction of action, but the definition of the 2 plan is not as simple as described in the method, because, p 3 's orientation does not make it obvious to choose the plan, as shown in Fig. 4. Therefore, there is a need for 2 to be a plan which goes through p 1 and p 3 and respects both the p 3 and p 2 restriction.
Another major limitation of the approach can be noticed by analyzing Fig. 2 (b) where it can be concluded the point p 2 does not necessarily point in the same direction as the endeffector. Thus p 2 point forces a d 2 move, which is only possible with full freedom of movement by the end-effector or changing the desired final orientation. Nevertheless, changing orientation is not an option for many applications in robotics, such as fine handling of any type of object or grasping activities.  The extension proposed by aristidou et al. to constrain pivot joints is shown in Fig. 5. The author proposes to project the destination on a line (l 1 ) that passes through the joint to be constrained (p 2 ) and the previous joint (p 1 ) and reorient p 2 to meet destination orientation. However, the destination can have an orientation that cannot be executed by p 2 . Furthermore, if the pivot joint is not the end-effector of the chain and its next joint is a hinge, the reorientation as proposed can risk the capacity of reaching a solution.
The problems mentioned in this section can be noticed using the manipulator model presented in Fig. 6. This model consists of a robot with a pivot joint at its base and a sequence of hinge joints with the same direction vector. After the forward reaching stage, presented in Fig. 6(b), a new point p 2 must be reoriented to reach p 2 . Nevertheless, it cannot be executed due to the manipulator model shown in Fig. 6(a). Even if the direction from p 2 pointing to p 3 were used to reorient the new p 2 , this plane couldn't reach the target because all the next joints have the same direction vector. In this case the algorithm can fall into a singularity.

V. FABRIK-R: AN EXTENSION FOR MANIPULATOR ROBOTS
Based on the problems of the extension proposed by Aristidou et al. in [4], this section presents alternative approaches to solve the problems of movement restriction of the pivot and hinge joints, when applied for manipulators with chains composed by joints of only 1-DOF.
At forward reaching stage, we propose the appliance of the p i joint constraint considering the possible constraints of the previous joint p i+1 (p prev ). Thus, we aim to determine a plane i that respects two rules: 1) p prev constraints will not be violated.
2) i contains p next and p prev (Fig. 7 (a)). The first step is to define the plane prev , which is known once p prev is set ( Fig. 7 (b)). Then, prev generates a p i , according to this plane constraint, that has distance d prev from p prev (Fig. 7 (c)). The new p i is calculated by rotating p i around the vector n prev normal to the plane prev , which ensures that p prev constraints will not be violated.
The second rule is achieved when the actuation vector of p i is orthogonal to − −−−− → p next p prev , which set the new plane i (Fig. 7  (d) and (e)). After determining i , the d i link must be rotated around the joint p prev using quaternions [28] to position p i in the i action plane (Fig. 7 (f)). The procedure is described at algorithm 1 and has analogous behavior at backward reaching stage considering p prev as p i−1 .
{This function rotates v i and p i around v prev by θ degrees} As mentioned in the previous section, finding the i plan that respects constraints without mathematical calculations is a non-trivial task, so this article presents an equation to determine n i . The first requirement imposed by the limitation is VOLUME 9, 2021 that n must be orthogonal to − −−−− → p next p prev . Therefore, the internal product properties between vectors will be used to guarantee the orthogonal relationship as Since vectors must have an orthogonal relationship, equation (1) can be simplified as considering all vectors as unitary.
In order to respect the predefined joint orientation relationship between p prev and p i , the properties of quaternary algebra are used since the use of quaternions allows a vector to be freely rotated around any axis. As p prev is known, a random acting vector v is generated, which respects the relationship between p prev and p i . Thus, by rotating the v actuation vector around the p prev actuation vector ( l), it is intended to determine n according n = cos(2θ) v + (1 − cos(2θ))( l · v) l + sen(2θ) l × v, (3) ensuring the restriction imposed by the p prev joint is respected.
The system comprised by equations (2) and (3) has as solution the vector n. To solve the proposed system, the calculations are performed for each vector component n using the following definitions for the vectors: Applying these definitions to equations (2) and (3), we get Replacing the equation (4) in (5) yields with: In equation (6) the only parameter to be determined is the value of θ, so it is possible to find the vector n, which is normal to the i plane and perform step 3 of the proposed algorithm. However, since (6) is a nonlinear equation, it is common to find more than one possible solution to the problem, as seen in the example of Fig. 8.
In Fig. 8(c), two different radius circumferences may be noticed. They represent the range of each new position p 4 , considering the d 3 link is large enough to find the p 3 joint. This approach was used to visually prove the solution's validity. The choice of the point p 4 should have as a deciding factor the circumference that has the smallest radius, with solution 1 being chosen to proceed with the algorithm.
When joints have the same direction of action, the equation (6) can present no solution (Fig. 3). Therefore, an additional step is placed in the i plan definition defining v as the next joint that has a different acting vector, as shown in algorithm 2.
The procedures described in algorithms 1 and 2 allow a kinematic chain composed of only 1-DOF joints to reach an inverse kinematic solution which would not be possible using the original approach of FABRIK or its extension presented in [4].

VI. EXPERIMENTAL RESULTS
This section presents the results of implementations and tests with a manipulator model for validation purposes. First,

Algorithm 2 DEFINE_ i
Require: l, p prev Ensure: we show simulated experiments using a 5-DOF robot manipulator composed only with hinge and pivot joints. Afterward, we compare our method, through simulation, with other IK solvers using a 10-DOF robot based on [24] experiments. At last, a real robot experiment is performed using the Pioneer Arm.
FABRIK-R algorithm, as well as the original FABRIK, does not deal with obstacle avoidance. Thus, all experiments performed in this paper have an obstacle-free environment. Some extensions have been developed to deal with this problem by adding a probabilistic component when a collision is detected, but this extension has not been considered in our method yet.

A. SIMULATED EXPERIMENTS
The first experiment uses a robot model that has a single pivot joint at his base followed by 4 hinge joints as shown in Fig. 9. The first step in the forward reaching stage is to position the end-effector at the target, followed by a new definition of the joint p 5 , which should be constrained, once 5 is set. A bad choice to 5 can risk the method capacity to achieve a solution, such as proposed by [24] with the root and the oriented target. In this case, the algorithm cannot reach the target after several iterations, converging to a different point such as a local minimum. Following the algorithm proposed in this paper, 5 must be set connecting p 6 and the next joint with a different direction vector. In this case p 4 , as shows Fig. 10.
The next step is to set the new value of p 4 . Once the joint before is a hinge joint, 5 is defined by its direction vector and p 4 is created respecting this constraint, as shown in Fig. 11(a). Following the algorithm, p 1 is set as the next joint concurrent of p 4 and then 4 is calculated using equation (6). As a result, 2 solutions were obtained, as represented in Fig. 11(b), and the closest one to p 3 is chosen. Finally, p 4 is rotated around p 5 to reach the solution in Fig. 11(c). Fig. 12 presents the last forward reaching steps. Since p 4 and p 3 have the same direction vector, the plane 4 is equal to 3 . In this case, all rotations around 4 can't change  original procedure is applied. Fig. 12(b) presents the projection and Fig. 12(c) the new value of p 3 . Similarly p 2 is calculated as shown in Fig. 12(d).
The backward Reaching stage starts defining p 1 as the fixed point of the manipulator. Then, algorithm 1 is used to define the new p 2 . First, bef ( 1 ) is set by p 1 joint. Then a random joint p 2 is created respecting p 1 constraints as shown in Fig. 13(a) and (b). The method proceeds to the definition 2 , which aims to connect p 1 and the next joint with different direction vector (p 5 ), Fig. 13(c).
The FIND_CONCURRENT function in algorithm 2 is essential to allow this approach to reach a solution because if the joint immediately after p 2 were used to set 2 , the method could fall into a local minimum. Aristidou et al. method also produces a bad solution, once p 2 projection in the line which passes from p 1 and p 2 represents an impossible direction vector and, even if a rotation was applied pointing to projection, the created plane would probably result in a singularity configuration.  A similar procedure to the forward reaching stage is then applied to the following joints. Fig. 14 presents the last steps until the end of the first iteration and the final solution founded after 3 iterations.
This experiment shows the efficacy of the proposed method to reach a solution when solving the IK problem to a kinematic chain composed of only 1-DOF joints. The model used in the tests (Fig. 9) has all the problems described in section IV, such as pivot-hinge joint sequence, hinge-hinge joint sequence with same actuation direction and hinge-hinge joint sequence with different actuation direction.
We tested 200 different target points, randomly distributed in the reachable space, and the FABRIK-R was always able to find a solution. In these tests, the original chain is 340mm long and the termination tolerance is 10 −3 mm. Table 1 presents the average runtimes of the FABRIK-R, as well as the number of   The performance metrics in Table 1 show that even with the addition of the plane calculations complexity, the FABRIK-R keeps the features of fast convergence and a low number of iterations.
To compare our method with the main algorithms of the inverse kinematics area, we performed an experiment similar to the one described in the paper of the original FABRIK [24]. In this article, we compare FABRIK-R with CCD, Jacobian Transpose, and Jacobian DLS, using performance metrics as convergence time, number of iterations, and time per iteration. The experiment was performed with an original chain with 10 joints and 900mm long without movement constraints, and a termination tolerance of 10 −3 mm.
The main difference between the experiment described in [24] and ours is that we added movement constraints in our manipulator in order to make it a kinematic chain with only 1-DOF joints, as shown in Fig. 15. The model of the robot used in the experiment is described using the Denavit-Hartenberg parameters in Table 2.  Table 2. We tested 200 different target points, randomly distributed in the reachable space, considering the same restriction used  in [24] in which the distance between the target and the end effector must be at least 600mm. The FABRIK-R was able to find a solution for all targets.
The performance of our method over these 200 runs was measured in terms of convergence time, number of iterations, and time per iteration. Regarding the number of iterations, we present a comparison in Table 3, based on the results presented in [24]. It is important to highlight that all these approaches, except the one proposed in this paper (FABRIK-R), are dealing with an unconstrained chain, which makes the task easier. Despite this, our solver performed with a lower number of iterations than the other methods even dealing with a constrained chain.
Concerning the convergence time, a comparison with the data presented in [24] is not suitable, due to the difference in the processor used for the experiments. Therefore, the CCD algorithm was implemented for the same kinematic chain presented in Table 2, and the experiments were made under the same conditions as the FABRIK-R. The Jacobian methods were not considered in this analysis, since these approaches present a significantly slow convergence time, as stated in [24]. Table 4 shows that our method is approximately fifteen times faster than CCD and needs approximately 5 times fewer iterations to reach the target. These results show that the proposed method in this paper reaches a solution, when possible, for the IK problem applied to a kinematic chain composed of only 1-DOF joints maintaining the main advantages of the algorithm of FABRIK.

B. REAL EXPERIMENTS
We applied the FABRIK-R in the Pioneer manipulator robot to build a case for real test validation. This robot has seven joints, three pivot joints and four hinge joints, and its Denavit-Hartenberg parameters are shown in Table 5. The experiment was performed for ten different target points, with   the same initial configuration which has the end-effector at (0cm, 0cm, 59cm) and termination tolerance of 1cm. The Pioneer robot is presented in Fig. 16 in the initial configuration used for the experiments. For all 10 target points, the FABRIK-R algorithm was able to generate valid solutions that took the robot to the destination point correctly in few iterations. However, the Pioneer arm actuators are not able to perform the calculated joint angles perfectly. In Table 6 we present a comparison between the joint angles calculated by the algorithm and ones performed by the manipulator, which were measured according to the Pioneer joint sensors. The results show that small errors are associated with each joint and for this reason, the endeffector position estimated according to the measured angles has a higher error than it was supposed to be according to the position calculated by the algorithm. The errors (E) between the target point and the end-effector are presented in the last column of the table for both calculated and measured end-effector positions.
Nevertheless, it is important to highlight that the higher errors of the measured values are not caused by the algorithm, but due to hardware limitations. FABRIK-R provided an error of 0.2752 cm and 1.7 iterations on average in 0.006243s of execution time. Better results can be obtained by using a robot with a better response or using visual feedback to get the real end-effector position.
Despite the hardware limitation, the mean error of the real experiment simulated is only 1.6368 cm, which shows that even with an error higher than expected, all solutions are close to the target points. In order to have a better visualization of the algorithm performance, we attached a whiteboard marker to the end-effector of the manipulator and set the target point on a whiteboard with a circle around it. Fig. 16 shows the task is completed successfully.
The results obtained with the real experiments corroborate the objective of FABRIK-R that is to solve the IK problem for 1-DOF kinematic chains, since the application of the original FABRIK to this robot, or some of the main industrial robots as the SCARA, would not be possible without a modification on the method. Therefore, FABRIK-R solves IK for a kinematic chain with joints of only 1-DOF and maintains most of the advantages from the original FAB-RIK, such as simplicity, low computational cost and fast convergence. VOLUME 9, 2021

VII. CONCLUSION
This paper presents a new approach for inverse kinematics of manipulators robots based on FABRIK in order to deal with the most commom kinematic chain manipulator robots that is a chain with joints of only 1-DOF. The method was named FABRIK-R, and it maintains the main advantages of the original algorithm, a fast IK solver with low computational cost, which allows real-time applications for manipulators.
In [4] was proved FABRIK always find a solution for unconstrained bodies, once the target is reachable. However, with constrained bodies, this approach can suffer from singularities. The method we present shows a better performance in these cases finding a solution for all tests performed. Nevertheless, once it is necessary to set planes based on restrictions, some calculations were added which makes this approach a little more complex than the original method.
Despite the increased complexity, our method still keeps the main characteristics of FABRIK which are the fast convergence and a small number of iterations. We also showed it to be faster than important IK solvers for manipulators robots as CCD, Jacobian Transpose, and Jacobian DLS. The FABRIK-R treats each joint considering the restrictions of the previous (parent) and next (child) joint. However, this attribute doesn't result in a dependency of the entire kinematic chain and permits the algorithm to solve each step locally. Therefore, changes in the number of joints of the manipulator won't decrease its performance in comparison with other methods.
FABRIK-based approaches have limitations in applications that require orientation control and an environment with obstacles. These methods only provide a unique solution, not considering the orientation. Therefore, future works may investigate the possibility to extend the approach to deal with obstacle avoidance and orientation control problem. Another direction for future works is to provide a formal proof that this approach can always find a solution if reachable.
Moreover, this paper presents a mathematical formalism that will serve as a basis for future works with FABRIK in robotics of manipulators.