Next Article in Journal
Robotic Animal Use among Older Adults Enrolled in Palliative or Hospice Care: A Scoping Review and Framework for Future Research
Previous Article in Journal
Pose Estimation of a Container with Contact Sensing Based on Discrete State Discrimination
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Geometric Approach for Inverse Kinematics of the FANUC CRX Collaborative Robot

PRISME, University of Orléans, INSA-CVL, UR 4229, 18000 Bourges, France
*
Author to whom correspondence should be addressed.
Submission received: 12 March 2024 / Revised: 3 June 2024 / Accepted: 4 June 2024 / Published: 14 June 2024
(This article belongs to the Section Humanoid and Human Robotics)

Abstract

:
Because they are safe and easy to use, collaborative robots are revolutionizing many sectors, including industry, medicine, and agriculture. Controlling their dynamics, movements, and postures are key points in this evolution. Inverse kinematics is then crucial for robot motion planning. In 6R serial robots, achieving a desired pose is possible with different joint combinations. In this paper, our focus lies in studying forward and, mainly, inverse kinematics of the FANUC CRX-10iA cobot, a 6R cobotic arm with a non-spherical wrist. Its specific structural parameters implies that no analytical solutions exist except for some particular situations. FANUC does not provide the complete set of inverse kinematic solutions, even when 16 solutions are possible, only 8 of them are provided in Roboguide software. Furthermore, the existing literature on joints-to-workspace mapping for CRX cobots is currently very limited. It either lacks or provides partial or inconsistent inverse kinematics analysis. We present and detail a novel fully geometric method for numerically solving inverse kinematics meeting the requirement of high precision and a fast response. This approach provides both the exact number of inverse kinematics solutions and the sets of joint angles even for singular configuration. Its effectiveness was verified through simulations using the Roboguide Software and experimentation on the actual CRX-10iA cobot. Several examples (8, 12, or 16 inverse kinematic solutions) have enabled us to validate and prove the robustness and reliability of this geometric approach.

1. Introduction

From industrial manufacturing to the medical field, robotics is nowadays being used in all the important sectors of life and society. The use of robots in the medical field is becoming increasingly prevalent, revolutionizing operating rooms around the world [1,2]. Over the past decade, there has been a notable emergence of collaborative robots (cobots) [3]. Consequently, cobots are being utilized more frequently to assist or even conduct delicate surgeries, offering the potential for faster, more precise, and less risky interventions [4].
Robotics manufacturers offer for instance promising cobotic modalities for many medical applications. The UR3 from Universal Robots, a 6R cobot, was used for a tele-robotic ultrasound solution for remote diagnostic echography [5]. In [6], authors used another 6R cobot, the TX2 60 from Stäubli company, for the comanipulation of an ultrasound probe. Furthermore, a FANUC cobot, the CRX-10iA, was used in [7] to present a study regarding the design and the experimental setup of a cobotic system for targeted drug delivery in the inner ear, where a dedicated magnetic probe [8] had to be controlled in position and orientation, as computed based on MRI pre-operative images [9].
To perform these different tasks and more, the knowledge of the robot’s kinematics is most often required. Due to the interesting but complex nature of robots control, several approaches to the research of kinematic models (both Forward and Inverse) have been taken. The most challenging task for most cases is still Inverse Kinematics (IK) computing.
While classical methods such as those of Pieper [10] or Paul [11] can be applied to compute Inverse Kinematic solutions for Stäubli or, respectively, UR cobots mentioned above, they cannot be applied to the CRX series because of their kinematic architecture. Indeed, since 1968, Pieper [10] showed that a literal IK model can be defined for 6R robots with a spherical wrist. Up to eight solutions can be computed. In 1981, Paul [11] proposed an approach for solving IK of certain 6R robots, with a non-spherical wrist, that consists of successively multiplying the two sides of the Forward Kinematic (FK) equations by transformation matrices and thus isolate the joint values one after another. In [12], authors used this approach for solving the IK of the UR5 cobot: a 6 DoF mechanism with a non-spherical wrist, where J2, J3 and J4 axes are parallel. This robot, and all of the UR series, have four or eight inverse kinematic solutions, depending on the desired pose in the workspace.
For CRX cobots series, the 6R cobotic arm has a non-spherical wrist with perpendicular axes of J2 and J3. Thus, analytical IK solutions cannot be provided and are only available for some special cases. In this case, IK solutions can be computed, based on algebraic or geometric approaches, using numerical procedures [13,14,15,16].
For over 30 years, researchers have dealt with inverse kinematics problems. In [17,18], authors has addressed the inverse kinematics problem of 6 DoF manipulators and proposed a simplification process to analytically solve inverse kinematic equations if all adjoining joint axes are parallel or orthogonal. However, no analytical solution of the inverse kinematics applicable to arbitrary structures is available. They have presented, in [19], an iterative inverse kinematic approach based on the Newton–Raphson method that can be applied to manipulators requiring a numerical technique. This approach led them to discover that a 6 DoF manipulator is able to reach an end-effector pose (position and orientation) in 16 different configurations. It was also shown in [20,21], by an algebraic approach, proposed by Raghavan and Roth, that inverse kinematics solutions can be determined by a 16th degree univariate polynomial, which means up to 16 IK solutions, for 6R serial manipulators, can be computed. However, these general approaches suffer from numerical inaccuracies in several configurations. Therefore, researchers have been studying possible improvements and generalization of these approaches ever since [22,23,24,25,26,27].
Solving IK of CRX cobots series of FANUC remains challenging. Their architecture leads to 16 IK solutions. In fact, the degrees of characteristic polynomials depend on the structural design parameters of 6 DoF robotic arms (adjacent parallel, perpendicular, or intersecting axes) [28]. Different approaches have been shown to solve this issue. A differential control was used in [7] to solve IK positioning of a CRX cobot. This approach presents some inherent limitations. Indeed, finding an efficient initial pose for convergence while avoiding singularities during motion are still factors that affect or limit its applicability. In [29], authors present an iterative approach that bypasses the use of Jacobian and rotational matrices, it is based on several iterations through each joint, starting with the last joint (end-effector position) and connecting it to the first one. This method does not consider the end-effector orientation; moreover, it can be stuck in a local optimum leading to it being unable to find a global optimum. Kucuk et al. proposed in [30] a numerical algorithm where the idea is to chose a random initial value for the first joint in order to reduce the IK problem to 1 DoF and then compute analytically the rest of the joint parameters. These approaches provide a valid IK solution but without mapping all possible IK solutions which prevents changing aspects to find a better configuration for the same probe position and orientation.
In more recent works, an algebraic approach was used in [31,32] to determine IK solutions of the CRX-10iA/L, a particular cobot of the CRX series. The used methods involve solving a 16th degree univariate polynomial, which is constructed from a set of six constraint equations representing mechanism loop closures, along with the parameterization of a set of unknown variables. The authors in [31] state considering the vector of unknown variables characterizing the position of the frame attached to the fourth robot body makes the resolution possible. In [32], authors show precisely that the 16th degree closure polynomial they obtained can be factorized in two identical 8th degree polynomials, which provides a significant simplification for zero determination. In these studies, authors have dealt with the IK problem of 6R with non-spherical wrist arms, more particularly CRX cobots; however, no attention has been given to the accuracy and efficiency of the provided IK solutions which can be an issue for exact manipulations. For instance, in [31], the 16 given solutions of the CRX Inverse Kinematics are not completely valid on the real cobot and present pose accuracy issues. Furthermore, in [32], an issue with the third joint values can be pointed out, distorting 8 pose configurations out of 16. Moreover, due to the simplicity of the chosen example, where J6 is vertical, an explicit inverse kinematics solution exists, thus reducing the algebraic solution interest, which is not the case for any desired pose.
The motivation of this paper is thus dealing with these limits by approaching 6R manipulator IK solutions with high accuracy and effectiveness. A new inverse kinematic algorithm for the CRX-10iA cobot is presented. The proposed method is based on a geometric approach and shows to be useful for solving IK problems with high precision and efficiency. The various steps are detailed in the following, aiming to simplify the implementation process for readers interested in utilizing this method for CRX IK control. Specific examples are provided to validate the effectiveness of the proposed method, both through simulation on Roboguide Software and experimentation with the actual cobot.

2. Materials and Methods

2.1. FANUC CRX Cobot

The FANUC CRX-10iA is a 6 Degrees of Freedom (DoF) cobot with a 6R serial architecture (Figure 1). Its compact design and high reliability (the constructor gives a position repeatability of 0.05 mm) allows for the easy integration into any work area making it very popular in industry and robotics research. As a collaborative robot, it is intended for applications that include human interaction. It offers then all the safety guarantees (speeds, forces) required for this purpose. In fact, its sleek design, devoid of sharp edges, and illuminated indicators are all tailored for safe interaction and collaboration with humans.
The kinematics architecture of this cobot closely resemble those of classic 6R serial manipulators, in particular the original FANUC series. However, the main difference lies in the fact that the directions of J2, J3, and J4 are not parallel, which is now combined with the fact that the wrist is not spherical. These two simultaneous features considerably complicate the resolution of inverse kinematics.
As of today, the FANUC CRX cobot series consists of five cobots. They may vary in size, but they all share the same kinematic architecture. This implies that the geometric approach developed in this paper can be implemented in all CRX cobots.

2.2. Analysis of the 16 IK Solutions Proposed in [31]

As explained earlier, the specific architecture of the CRX cobot makes the resolution of its inverse kinematics challenging. Recently, authors in [31] have dealt with the inverse kinematics of this particular cobot. Authors proposed an algebraic numerical IK solutions for the CRX-10iA/L cobot. They provided a numerical example illustrating, with a particular focus on the following posture [Car#4], 16 IK solutions.
A robot configuration in the joint space, also called a posture, is then denoted as [ Car # i ] (in reference to the first author L. Carbonari).
[ Car # 4 ] = [+78, +131, +24, +42, −60, −10]T (in degrees).
Then, in this paper, authors presented 15 additional postures, intended to achieve the same pose (the tool position and orientation in the task space).
For the following, this notation is considered for these 16 postures [ Car # i ], i [1, 16].
Interested in the need for inverse kinematics, we studied article [31] to apply its method. We thoroughly analyzed the example proposed by the authors, which illustrates a pose with 16 IK solutions, as shown in Table 1.
In our assessment, this example actually provides only 8 IK solutions.
In fact, after this analysis, we noticed the following:
  • Four of the sixteen proposed solutions are not recognized as distinct because they are already included in the table (see column “=” of Table 1):
    [ Car # 9 ] and [ Car # 11 ] are identical to [ Car # 7 ], (same joint parameters), and
    [ Car # 10 ] and [ Car # 12 ] are identical to [ Car # 8 ].
    So, [ Car # 9 ] to [ Car # 12 ] of the article are not distinct solutions.
  • Four other solutions are not considered as valid because they fail to yield a relevant outcome in achieving the desired pose (see column “Dist” of Table 1). The distance “Dist” between two poses is defined as the Euclidean distance between the Tool Center Points (TCPs) of the two poses under consideration.
    This concerns [ Car # 1 ], [ Car # 2 ], [ Car # 13 ], and [ Car # 14 ]. For example, the distance between the pose given by posture [ Car # 13 ] and [ Car # 4 ] is 10.3 mm. Thus, these solutions present an accuracy issue and are not considered as valid.
Since our aim was to find a method of solving the IK, one of the first examples we will try to solve, after describing the method, is that of article [31]. These solutions (8 in fact and not 16) are given later on.

2.3. Accuracy Analysis of the 8 Valid Solutions Proposed in [31]

On another hand, the accuracy of the provided IK solutions (the joints values) is of 10 2 deg. As a consequence, the global accuracy of the valid achieved positions (with a robot arm span of 1.4 m) can reach 0.12 mm (see column “Dist” of Table 1 for [ Car # 8 ] ).
As 0.1 mm of accuracy can be unsatisfactory for certain applications requiring extremely precise positioning, this means that we need to find the joint solutions to at least 10 3 deg resolution rather than 10 2 deg.

2.4. Specifications for a Robust and Accurate IK

This analysis highlights the necessity for a robust and precise IK solution.
It should allow us to determine the following: (i) the exact number of solutions, and (ii) providing joint values with satisfactory accuracy ( 10 3 deg is an optimum), especially considering that FANUC robots operate with precision up to 10 3 (deg and mm).

2.5. FANUC CRX10-iA Forward Kinematics

A posture for a 6 DoF serial robot is a configuration of its joint parameters defined by the vector:
[ J ] = [ J 1 , J 2 , J 3 , J 4 , J 5 , J 6 ] T .
For a given posture [ J ] , the corresponding pose, obtained by the FK model is as follows:
P = F K ( J ) = [ X , Y , Z , W , P , R ] T ,
with (X, Y, Z) the coordinates of the end-effector center (or Tool Center Point), and (W, P, R) the three rotation angles with Cardan’s approach to characterize the end-effector orientation. These three angles are, respectively, measured along the three axes z, y, and x of the robot reference frame R 0 .

2.5.1. Denavit–Hartenberg Modified Formalism and DHm Parameters

The formalism we used for modeling our robots is inspired from the modified Denavit-Hartenberg approach [33], proposed in 1986 by Khalil and Kleinfinger, denoted as DHm, and inspired from Denavit and Hartenberg, [34] in 1955. The four elementary movements from frame R i 1 to R i and the four associated DHm parameters are as follows (see Figure 2).
  • Rotation of an angle α i 1 around X i 1 ;
  • Translation of a i 1 along X i 1 ;
  • Rotation of an angle θ i around Z i ;
  • Translation of r i along Z i .
The transformation matrix i−1 T i is then obtain from these four parameters, see Equation (1).
Table 2 provides all the DHm parameters for the 6 joints of the CRX10-iA cobot.
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 r i . s α i 1 s θ i . s α i 1 c θ i . s α i 1 c α i 1 r i . c α i 1 0 0 0 1
We aim to develop a forward kinematic model that is fully compatible with the real cobot, ensuring that the joint values and pose parameters are identical between the model and the robot for any achievable configuration.
To respect this, firstly, the Z i axis, as depicted in Figure 3, must be oriented in the direction of increasing joint values. Secondly, the coupling between J 2 and J 3 imposed by FANUC must be considered. This coupling arises because when J 2 is manually moved, J 3 moves in the opposite direction, ensuring that the wrist maintains the same orientation relative to the ground. This peculiarity of FANUC robots is of significant interest to programmers. As a consequence, there is a term ( J 2 + J 3 ) present in column L 3 of the DHm Table 2. Although this inclusion may seem unconventional in a DHm table, it accurately reflects the behavior of FANUC robots.
T t o o l 6 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
T t o o l 0   =   0 T 1   ·   1 T 2   ·   2 T 3   ·   3 T 4   ·   4 T 5   ·   5 T 6   ·   6 T t o o l
The homogeneous matrix T t o o l 0 (see Equation (3)) is then used to determine the position and orientation of the end-effector in the frame R 0 , as a function of the 6 joint parameters J i . Here, we assume that the Tool Center Point (TCP) is located at the center of the end-effector plate face (resulting in zero values in column 4 of T t o o l 6 . However, it is important to note that any TCP coordinate can be considered. We denote T i , j as the element of the ith row and jth column of T t o o l 0 .

Determination of the Position Coordinates

The three coordinates X, Y, and Z represent the position of the TCP in the base frame R 0 . They are obtained by multiplying the homogeneous matrix T t o o l 0 by the origin vector O 6 T o o l , which is the vector of the homogeneous coordinates of the point O 6 (in this case, the TCP). In the tool frame,
O 6 T o o l = [ 0 , 0 , 0 , 1 ] T
Then,
[ X , Y , Z , 1 ] T = T t o o l 0 · [ 0 , 0 , 0 , 1 ] T .

Determination of the Orientation Coordinates

The three parameters W, P, and R represent the Cardan angles, which describe the tool orientation relative to the base frame R 0 .
Using the FANUC’s convention (which may differ from other robot manufacturers),
W, for “yaW” angle (also γ in the literature), is measured around the X axis,
P, for “Pitch” angle (also β ), is measured around the Y axis, and
R, for “Roll” (also α ), is measured around the Z axis.
With this, the overall tool rotation matrix R t o o l 0 (the top-left 3 × 3 block of T t o o l 0 ) can be represented as the product of three elementary 3 × 3 rotation matrices corresponding to the three revolute movements around the x, y, and z axes of R 0 , respectively, with angles R, P, and W, as shown in Equation (6).
R t o o l 0 = R Z ( R ) · R Y ( P ) · R X ( W )
Then, the three angles W, P, and R are defined from the rotation matrix R t o o l 0 extracted from T t o o l 0 (obtained using DHm approach and Equation (3)), utilizing classic expressions from the literature, which we recall below (see Equation (7)) for the general case, excluding Cardan singularities (these occur when c o s ( P ) = 0 ).
As the elements of R t o o l 0 matrix are identical to those of T t o o l 0 , we denote them as T i , j , as defined above.
P = a t a n 2   ( T 3 , 1 , s q r t   ( T 1 , 1 2   +   T 2 , 1 2 ) ) R = a t a n 2   ( T 2 , 1 / c o s ( P ) , T 1 , 1 / c o s ( P ) ) W = a t a n 2   ( T 3 , 2 / c o s ( P ) , T 3 , 3 / c o s ( P ) )
The particular cases of singularity associated with the pitch angle P has been considered in our algorithm. However, the specific method used for this purpose is not detailed here, as it is of limited interest for understanding the Forward Kinematics algorithm.
Ultimately, thanks to this Forward Kinematics (FK) model (see Equations (3), (5) and (7)), we are able to compute the robot’s tool pose parameters relative to the 6 joint parameters J i (see Equation (8)):
P o s e   ( J ) = P o s e   ( [ J 1 , J 2 , J 3 , J 4 , J 5 , J 6 ] T ) = [ X , Y , Z , W , P , R ] T
The results obtained using this FK model have been confirmed on both the real CRX-10iA cobot and the Roboguide software. FANUC Roboguide is a robot simulator that perfectly emulates FANUC robots movements and dynamic behavior, greatly reducing the time required to create new motion configurations. Robotic cells can be designed, tested, and modified entirely offline which enables us to evaluate different configurations of the robot virtually before implementing them in a real-world setting.

2.5.2. Forward Kinematic Model Validation

As example, we chose the particular configuration [ Car # 4 ] mentioned above.
[ Car # 4 ] is the configuration #4 of the example proposed by Carbonari et al. in [31].
[ Car # 4 ] = [+78, +131, +24, +42, −60, −10]T, where angles are in degrees.
Considering the specificities of FANUC, the equivalent robot posture of [ Car # 4 ] configuration, should be expressed as [ A # 4 ].
From the Carbonari’s notation and frames, [ Car # i ] = [ q 1 , q 2 , q 3 , q 4 , q 5 , q 6 ] T , we can express the same cobot posture [ A # i ] , with six FANUC-compatible joint parameters thanks to Equation (9), where [ J ] = [ J 1 , J 2 , J 3 , J 4 , J 5 , J 6 ] T .
J 1 = +   q 1 J 4 = q 4 J 2 =   90 q 2 J 5 = + q 5 J 3 =   q 3   J 2 J 6 = q 6
Then, the posture [ Car # 4 ] corresponds to [ A # 4 ], see Equation (10):
[ A # 4 ] = [ + 78 , 41 , + 17 , 42 , 60 , + 10 ] T
We tested this joints configuration [ A # 4 ] on the two cobots CRX10-iA/L and CRX-10iA. The postures are represented in Figure 4, and they differ only because of changes in the parameter a 2 .
  • For CRX-10iA/L, the cobot considered in [31], we found
P o s e A   ( 10 i A / L ) = [ X , Y , Z , W , P , R ] T =
[ 57.132 , 178.588 , 522.657 , 131.819 , 45.268 , 61.453 ] T
In [31], authors provided the following coordinates [X, Y]T = [57.1, 178.6]T.
These match what we found in terms of position, but the resolution is 10−1 whereas FANUC robots resolution is 10−3. Furthermore, they did not specify the end-effector orientation.
  • For CRX-10iA, the cobot we are considering in this work, we found
P o s e B   ( 10 i A ) = [ X , Y , Z , W , P , R ] T =
[ 80.321 , 287.676 , 394.356 , 131.819 , 45.268 , 61.453 ] T
The end-effector orientations are obviously identical for both cobots.

2.6. Geometric Approach for CRX-10iA Inverse Kinematics Resolution

The inverse kinematic model provides 0, 4, 8, 12, or 16 solutions, depending on the different parameters of the D e s i r e d - P o s e .
In certain exceptional configurations, intermediate numbers such as 2, 6, 10, or 14 solutions may occur, indicating the presence of “double” solutions.
Thus, cases with 2 solutions arise when the TCP precisely aligns with the edge of the workspace (i.e., 1249.039 mm from the center O 0 ).
We will see later another scenario, where the TCP is at the the workspace center, and which entails 14 solutions, including 12 distinct solutions and 2 double solutions.
When considering a D e s i r e d - P o s e randomly selected within the cobot workspace, the highest probability corresponds to 8 solutions, estimated at approximately 80%.
The likelihood of encountering 12 solutions is notably lower.
The probability of encountering 4 or 16 solutions is even lower, approximately 5%.
Please note that these statistic values are approximate, as they depend on the parameterization of the poses: Cartesian or spherical coordinates for positions, Cardan or Euler formalisms, or Quaternions for orientations. Additionally, these values may slightly differ when considering real accessible poses, accounting for the cobot joint limitations.

Methodology for Geometric Approach to Inverse Kinematics

Given a D e s i r e d - P o s e = [ X , Y , Z , W , P , R ] T , the Inverse Kinematics geometrical approach gives the number N of possible solutions to reach this D e s i r e d - P o s e . If N solutions exist, the algorithm provides N vectors of 6 joint parameters for each solution:
[ J 1 i , J 2 i , J 3 i , J 4 i , J 5 i , J 6 i ] T f o r i [   1 , N   ] .
This method is developed through the following seven steps, see Figure 5. If the D e s i r e d - P o s e is inside the workspace, the algorithm gives, at least, one Inverse Kinematic solution. These steps, and associated equations, will provide the reader with the ability to implement this IK model, applicable to any cobot of the CRX series, by simply modifying the four dimensional parameters of the cobot.
Step 1: Positioning the Points O 6 and O 5 in the frame R 0
The three angles W, P, and R are used to establish the rotation matrix R t o o l 0 , thanks to Equation (6). This 3 × 3 matrix is the left and upper block of the 4 × 4 matrix T t o o l 0 .
Furthermore, if we consider the translation vector [ X , Y , Z , 1 ] T , by combination, we can write the global homogeneous transformation matrix T t o o l 0 and so the two expressions of O 6 and O 5 , see Equation (13).
R t o o l 0 = R Z ( R ) · R Y ( P ) · R X ( W ) O 0 6 = [ X , Y , Z , 1 ] T T t o o l 0 = R t o o l 0 O 6 0 O 5 t o o l = [ 0 , 0 , r 6 , 1 ] T O 5 0 =   0 T t o o l   ·   t o o l O 5
Step 2: Positioning the “Candidate-points” O 4 , in the frame R 0
Real point O 4 is at a constant distance r 5 from O 5 .
By construction, the two vectors O 5 O 6 and O 5 O 4 are orthogonal.
That means that a candidate-point O 4 is on a circle whose center is O 5 , and radius is r 5 . This circle is in a plane, perpendicular to the vector O 5 O 6 .
With q [ 0 , 2 · π ] , a sample variable representing the characteristic angle of vector O 5 O 4 around axis O 5 O 6 , this point O 4 t o o l ( q ) , a function of q, can then be considered as a Candidate-point, as shown in System (14).
For example, q can be varied with a 1 degree sample. There will then be 360 candidate-points O 4 along the considered circle.
O 4 t o o l ( q ) = [ r 5 · c o s ( q ) , r 5 · s i n ( q ) , r 6 , 1 ] T O 4 0 ( q ) =   0 T t o o l ·     t o o l O 4 ( q )
In Figure 6, with two different configurations, we can see the location of the Candidate-points O 4 ( q ) on the red circles around O 5 .
Step 3: Positioning the “Candidate-points” O 3 , in the frame R 0
Considering the position of a particular candidate-point O 4 ( q ) , we can define the associated candidate-point O 3 ( q ) in the triangle O 0 O 3 O 4 . In fact, there are two solutions for each O 4 ( q ) : one above and one below (corresponding to left or right robot elbow, also called up or down), situated on either side of the line O 0 O 4 . These points O 3 serve as the apexes of a triangle, with the other two vertices identified as ( O 0 and O 4 ( q ) ).
With d 04 the Euclidean distance from O 0 to O 4 ( q ) , the lengths of the three sides of the triangle are known: a 2 (540 mm), r 5 (540 mm), and d 04 .
Note that there is a minus sign for r 5 because this value is negative in the DHm table.
Eventually, this triangle is in a vertical plane.
According to Inequality (15), for a candidate-point O 4 ( q ) , there are two solutions, labeled as candidate O 3 UP ( q ) and O 3 DW ( q ) . The first one, referred to as UP , corresponds to the “left elbow” configuration for the robot arm. The other solution, denoted as DW , corresponds to the “right elbow” configuration.
d 04 a 2 + ( r 5 )
The coordinates for positions O 3 UP 0 ( q ) and O 3 DW 0 ( q ) are established and integrated in our algorithm using the relationships derived from the oblique triangle.
In Figure 6, the position O 3 UP 0 ( q ) is shown in blue and O 3 DW 0 ( q ) in green. Certainly, although this is not very easy to see on the plane projection of Figure 6, these two points lie on 3D curves over a sphere with a radius of a 2 .
Figure 6a corresponds to the P o s e ( A # 4 ) , see Equation (12) for these P o s e coordinates.
Figure 6b corresponds to a D e s i r e d - P o s e for which 16 solutions are valid. For better readability, only one posture has been represented.
While the loci of O 4 ( q ) are represented as circles (red) in both cases, the 3D closed curves of the two loci of O 3 ( q ) (blue and green for Up and Down loci) corresponding to a 16- s o l u t i o n   D e s i r e d - P o s e (Figure 6b) are considerably less uniform compared to those corresponding to 8- s o l u t i o n   D e s i r e d - P o s e (Figure 6a).
Step 4: Perpendicularity of O 3 O 4 and O 4 O 5  and the two Z 4 · Z 5 dot-product values
By construction, on the CRX-10iA cobot, the two vectors O 3 O 4 and O 4 O 5 are perpendicular. This means that the Candidate-positions O 4 ( q ) and O 3 ( q ) are viable if the dot-product between O 3 O 4 and O 4 O 5 is equal to zero.
In order to verify this condition, we computed the two dot-products Z 4 · Z 5 (first for O 3 UP and secondly for O 3 DW ) of the two Candidate-unit-vectors of O 3 O 4 and O 4 O 5 (see Figure 3) and expressed them as functions of the sample variable q.
UP ( q )   = Z 4 · Z 5 f o r t h e c o u p l e O 4 ( q ) a n d O 3 UP ( q )
DW ( q )   = Z 4 · Z 5 f o r t h e c o u p l e O 4 ( q ) a n d O 3 DW ( q )
Figure 7, Figure 8, Figure 9 and Figure 10 show, for different D e s i r e d - P o s e s , the representation of these dot-products: UP ( q ) in blue and DW ( q ) in red. Parameter q varies from 0° to 360°.
Step 5: Determination of the zeros of the two Z 4 · Z 5 dot-product values
At the end of Step 4, the two functions Z 4 · Z 5 are known as sample signals. The number of samples is the number taken for q in Step2.
As these are dot-products, the various samples of Z 4 · Z 5 move between –1 and +1. Finding a valid candidate-point O 4 is like finding the zeros of the continuous and bounded functions Z 4 · Z 5 known per samples.
The number of intersections of the curves with the zero line is between 0 and 8. We denote as N UP and N DW the number of zeros, respectively, for the functions UP ( q ) and DW ( q ) .
Figure 7 illustrates examples where the two curves intersect the zero line 2 or 4 times.
In Figure 8, the curves intersect the zero line 6 or 8 times.
In Figure 9, two examples are presented where the curves intersect the zero line 3 or 7 times. In such cases, double solutions are observed: (a) the red curve and (b) the blue curve are tangent to the zero line for these double solutions.
The last example, depicted in Figure 10a, shows a specific configuration where the UP ( q ) and DW ( q ) solutions are not defined for all q values between 0° and 360°. This occurs when the inequality (15) is not satisfied.
Figure 10b illustrates one robot’s posture for this configuration. The end-effector is then positioned close to the outer boundary of the workspace. This particular configuration inevitably reduces the number of possible solutions (here N _ UP = 0 ).
At the end of this 4th process step, two functions UP ( q ) and DW ( q ) are established. The search for the zeros of these two functions gives:
Up to 4 values q i U P ( N UP 4 , most often 2; although, occasionally, it may be 0 or 4) corresponding to UP( q i U P ) = 0;
Up to 4 values q i D W ( N DW 4 , most often 2; although, occasionally, it may be 0 or 4) corresponding to DW( q i D W ) = 0.
As dot-products of unit vectors, the UP ( q ) and DW ( q ) functions are monotonic and their values lie ∈ [−1, 1]. They exhibit behavior akin to a “distorted sinusoidal curve” with two alternations, thus potentially providing a maximum of 4 zeros. Identifying zeros is a classic conventional and straightforward procedure, which we will not delve into extensively in this paper as it does not present a challenge for the IK problem.
The considered P o s e corresponds to that of Equation (12), for which the positions of O 3 and O 4 are given in Figure 6a. In Figure 7b, the corresponding curves of UP ( q ) (in red) and DW ( q ) (in blue) are represented.
These two curves intersect the zero a total of 4 times. So, there are therefore 4 q i values. Listed from smallest to largest (in degrees),
q 1 D W   = 31.782
q 1 U P   =   150.776
q 2 D W =   178.196
q 2 U P =   280
A specialized zero-finding procedure has been integrated to the algorithm. This procedure allows zeros to be obtained at a low computational cost (10 ms on a microcomputer, without any specific code optimization), with an accuracy better than 10 5 deg (more than sufficient for Fanuc robots, given their programming precision of 10 3 deg for joint values).
Step 6: From N s valid O 4 and O 3 points to N s [ Ji ] joint values
From a D e s i r e d - P o s e , the 4th process step gives the number N s of intersections with zero line ( N UP + N DW ), providing then q i solutions for which the candidate points O 4 and O 3 ( O 3 UP or O 3 DW ) are valid.
For any considered q i among the N s established values, we can compute the correspondent point O 4 using Equation (14), then deduce the parameter of the cobot joint1 thanks Equations (16) and (17).
In fact, two solutions for J1 exist, for a known point O 4 , see Figure 11.
Equation (16) give the precession angle of the plane containing the triangle O 0 O 3 O 4 . For a known precession, the two solutions for J1 are given by Equations (17) or (18).
Equation (17) gives the J1 primal value, and Equation (18) gives the J * 1 dual one. As we have N s solutions for q i , that means there are N s primal solutions to the IK and on another hand N s dual ones, i.e., a total N = 2 · N s of IK solutions.
Step 6 of the algorithm deals with the primal joint parameters, step 7 below with the dual ones.
O 4 t o o l ( q i ) = [ r 5 · c o s ( q i ) , r 5 · s i n ( q i ) , r 6 , 1 ] T O 4 0 ( q i ) =   0 T t o o l   ·   t o o l O 4 ( q i )   O 4 0 ( q i ) = [   X O 4 , Y O 4 , Z O 4 , 1   ] T ψ P = a t a n 2   ( Y O 4 , X O 4 )   ·   180 / π  
J 1   = ψ P
J * 1 = ψ P π
For a known J 1 parameter, J 2 and J 3 can be expressed using the Equations of System (19), under the condition that the Inequality (15) is verified. Instructions given in Equation (19) must be followed in the specified order. We define and use a posture parameter δ such that:
( δ = −1) if the robot posture is UP and ( δ = +1) if the robot posture is DW.
Equation (19) is derived from relationships within the triangle ( O 0 O 3 O 4 ), while considering the specific convention for FANUC’s J i parameters. The intermediate parameters for determining J2 and J3 can be seen in the D H m ( Z 1 X 1 ) plane, in Figure 12.
N.B., angles are measured positively from Z 1 to X 1 , and r 3 is negative.
u 1   =   a t a n 2   ( Z O 4   , s q r t   ( X O 4   2   +   Y O 4   2 ) ) u 2   =   ( ( X O 4   2   +   Y O 4   2 + Z O 4   2 ) ( a 2   2   +   r 4   2 ) ) / ( 2   ·   a 2   ·   r 4 ) u 3   =   δ   ·   a c o s ( u 2 ) u 4   =   a t a n 2   ( r 4 · s i n ( u 3 ) , a 2     r 4 · c o s ( u 3 ) ) J 2   =   ( π / 2     u 1   +   u 4 )   ·   180 / π J 3   =   ( u 1   +   u 3     u 4 )   ·   180 / π
For J 4 determination, see the System of Equations (20).
We first establish the three transformation matrices:
T 1 0 , T 2 1 , and T 3 2 , as functions of J 1 , J 2 , and J 3 , as defined in Equation (1).
Then, we define the two matrices T 4 * 3 and T 5 * 4 with specific values J 4 * = J 5 * = 0.
T 4 * 0 =   0 T 1   ·   1 T 2   ·   2 T 3   ·   3 T 4 *   T 5 * 0 =   0 T 4 *   ·   4 T 5 *   Z 4 =   0 T 4 *   ·   [ 0 , 0 , 1 , 0 ] T O 5 * 0 =   0 T 5 *   .   [ 0 , 0 , 0 , 1 ] T V 0 = O 5 * O 4   V 1 = O 5 O 4   s c a l 1 = V 0   ·   V 1   s c a l 4 = ( V 0 V 1 )   ·   Z 4   s 4 = s i g n ( s c a l 4 )   J 4 = s 4   ·   a c o s ( s c a l 1 )   ·   180 / π  
The System of Equations (21) allows to determine J 5 value using the same method explained above for J 4 determination.
T 4 0 =   0 T 1   ·   1 T 2   ·   2 T 3   ·   3 T 4   T 6 * 0 =   0 T 4   ·   4 T 5 *   ·   5 T 6 *   Z 5 =   0 T 5 *   ·   [ 0 , 0 , 1 , 0 ] T O 6 * 0 =   0 T 6 *   ·   [ 0 , 0 , 0 , 1 ] T W 0 = O 6 * O 5   W 1 = O 6 O 5   s c a l 3 = W 0   ·   W 1   s c a l 5 = ( W 0 W 1 )   ·   Z 5   s 5 = s i g n ( s c a l 5 )   J 5 = s 5   ·   a c o s ( s c a l 3 )   ·   180 / π  
For J 6 determination, we employ a similar algorithm to the previous one, but it operates with rotation matrices rather than homogeneous ones, see the System of Equations (22).
We first establish T 4 5 , with the value J 5 obtained just above.
We calculate T 6 * 0 , with J 6 * = 0, and deduce R 6 * 0 , the rotational block element of T 6 * 0 .
T 6 * 0 =   0 T 4   ·   4 T 5   ·   5 T 6 * With   t o o l T 6 = i n v   ( 6 T t o o l )   0 T 6 =   0 T t o o l ·   t o o l T 6 For i [ 1 ; 3 ] and j [ 1 ; 3 ]   0 R 6 * ( i ,   j ) =   0 T 6 * ( i ,   j ) For i [ 1 ; 3 ] and j [ 1 ; 3 ]   0 R 6 ( i ,   j ) =   0 T 6 ( i ,   j ) R = i n v   ( 0 R 6 * )   ·   0 R 6 J 6 = a t a n 2   ( R ( 1 ,   2 ) , R ( 1 ,   1 ) )
Step 7: N s IK solutions by the dual property
For CRX cobots, when a solution [   J   ] (6 joint parameters) is valid for a D e s i r e d - P o s e , it is easy to verify that the other corresponding solution, called the dual solution, is also valid.
The global dual IK solution of [   J   ] is then denoted as [   J *   ] .
Its first joint parameter is the value J * 1 , which is the dual of J1.
According to the FK model, when the dual change is applied to all matrices used in Equation (3), it can also be demonstrated that two dual joint solutions give the same pose.
The change in variables, for the 6 joints, between [   J   ] and [   J *   ] is given by Equation (23).
[   J   ] = [ J 1 , J 2 , J 3 , J 4 , J 5 , J 6 ] T [   J *   ] = [ J 1 180 , J 2 , 180 J 3 , J 4 180 , J 5 , J 6 ] T
This means that if a solution is known, consequently, another one is valid. It is important to note that in any configuration, two dual solutions are distinct because their joint values are never the same. However, their kinematic diagrams are exactly identical.
As shown at Step 6, we can have up to 8 solutions for a given D e s i r e d - P o s e . Thus, this implies that after dual transformations, the maximum number N m a x of all viable IK solutions is 16.

3. Results: CRX IK Validation

This section illustrates results provided using this geometric approach dedicated to CRX series cobots. We present various examples of D e s i r e d - P o s e s , highlighting different scenarios in terms of the number of solutions produced by this IK model.
In our first example, typical of the most common scenarios, we observe eight solutions. The second example presents a case with 12 solutions, while the third illustrates a pose yielding 16 solutions. This range demonstrates the model’s versatility in addressing various poses and the number of feasible solutions it can generate.

3.1. Examples with 8 IK Solutions for CRX-10iA/L and CRX-10iA

The examples chosen here correspond to the poses described in Section 2.5.2.
  • The first example concerns the CRX-10iA/L cobot, with the following desired values:
P o s e A = [ 57.132 , 178.588 , 522.657 , 131.819 ,   45.268 , 61.453 ] T
The different sets of joint angles for the eight solutions are given in Table 3. These solutions have been verified and shown to be valid on Roboguide Software.
It becomes evident that among the 16 solutions proposed in [31], only 8 are feasible. This highlights the importance of carefully evaluating the validity of potential solutions mainly in terms of accuracy.
  • The second example concerns the CRX-10iA, with the following pose values:
P o s e B = [ 80.321 , 287.676 , 394.356 ,   131.819 ,   45.268 , 61.453 ] T
The different sets of joint angles are given in Table 4. These eight solutions have been confirmed, first virtually on Roboguide software then implemented on the real cobot. Two of these solutions are represented in Figure 6a. The 1st line of Table 4 corresponds to the cobot posture represented in cyan, the 4th line corresponds to the one represented in black.
By comparing Table 3 and Table 4, it is apparent that postures [   J A # 4   ] and [   J B # 4   ] are identical (as are dual postures [   J A # 8   ] and [   J B # 8   ] ). This outcome was expected since the desired poses were derived from line 4 of the tables, which served as the starting point for the analysis (giving D e s i r e d - P o s e s : P o s e A and P o s e B ).

3.2. Examples with 12 IK Solutions for CRX-10iA

  • We examine the following example, denoted as P o s e C , which yields 12 distinct IK solutions, see Table 5:
P o s e C =   [ 600 , 0 , 100 ,   180 , 0 , 70 ] T
This example is particularly intriguing because, owing to its unique desired orientation, it can be solved manually without the need for inverse kinematics, relying simply on trigonometric relationships and DHm parameters.
The same end-effector pose could be achieved through 12 sets of joint angles, as shown in Table 5. It is important to note that values such as 78.001 or 179.999 are not are not rough estimates of the whole numbers 78 or 180, but rather precise solutions of the Inverse Kinematics, resolved to an accuracy of 10 3 degrees while taking into account joint limitations.
For this particular pose, the desired direction Z t o o l of the end-effector is vertical, see Figure 13a, a common case for many p i c k - a n d - p l a c e applications in robotics. This is reflected by the orientation values ( W = 180 ° and P = 0 °) and by the common points of intersection between the two UP ( q ) and DW ( q ) curves, see Figure 13b (blue and red curves intersect the zero line at the same points).
This means that, for specific wrist configurations, there could be two solutions UP ( q ) and DW ( q ) where the configuration of the wrist in both solutions are precisely the same.
This phenomenon mirrors what occurs with a spherical wrist configuration. Consequently, we can observe identical values in lines #1 and #5 of Table 5 ( J 1 = −14.478°) and the exact opposite values in lines #4 and #6 ( J 1 = + 14.478°).
Ensuring that Inverse Kinematic solutions are both reliable and accurate is essential. Equally important is the consideration of a robot’s joint constraints. Our algorithm addresses this by incorporating joint limits into the solution process, the desired P o s e C is such an illustration.

3.3. Example with 16 IK Solutions for CRX-10iA

  • For this example, the pose parameters were obtained using FK from posture [   J D # 7   ] , where joint parameters are in whole degrees (as well as its dual posture, [   J D # 15   ] ). This is why the values of the following P o s e D are defined with a resolution of 10−3 mm and 10−3 deg.
P o s e D = [ 209.470 , 42.894 , 685.496 , 95.378 , 64.226 , 56.402 ] T
This example demonstrates the existence of a D e s i r e d - P o s e , with 16 solutions, as shown in Figure 14. The 7th image of this figure corresponds to the cobot posture represented, in black, in Figure 6b. All of the 16 configurations were verified using Roboguide software (version 9).
Table 6 displays the six joint parameters corresponding to each of these solutions. All these solutions have been tested on the real cobot.
In this example, the distance between the T o o l   C e n t e r   P o i n t and the vertical axis Z 0 of frame R 0 is 214 mm. This point is located near the center of the cobot’s workspace, away from the outer boundary. This characteristic is common to all poses with 16 IK solutions.

4. Discussion and Conclusions

In this paper, we discussed the CRX cobots series introduced by FANUC. After emphasizing the significance of cobotics in various applications, we proceeded to develop both Forward and Inverse Kinematic models for CRX cobots.
The Forward Kinematic model that we have introduced adheres closely to the FANUC approach. It is a model designed to ascertain the pose delivered by the cobot for a given configuration, represented by the six programmed J i values.
This implies that the model developed accurately incorporates the origins and directions of the joint values, as well as the specific coupling between the J 2 and J 3 joints, in the Forward Kinematics calculations.
We have demonstrated the potential utility of the differential approach for joint control under 6D path-planning constraints in certain specific scenarios. It is nevertheless crucial to emphasize the necessity of a complete and reliable Inverse Kinematic solution.
While previous solutions have offered partial sets of equations, notably the one proposed by FANUC in Roboguide software, and others have exhibited inconsistencies, this study provides a numerical geometric approach for the inverse kinematic solution for cobotic arms with non-spherical wrists, specifically the CRX-10iA, with a particular focus on completeness and accuracy.
This novel approach
  • Enables the determination of the exact number of possible joint solutions for a desired pose.
  • Provides the different sets of joint angles values [ J i ] for these distinct solutions.
Through Forward and Inverse kinematic models computing, simulations on the Roboguide software, and experiments on the real cobot CRX-10iA, we have demonstrated that the number of IK solutions can range from 2 to 16. In most cases, 8 IK solutions are valid. However, IK solutions may also occur in increments of 4, 8, 12, or 16, with occasional instances of 2, 6, 10, or 14 solutions.
The technique we have developed has been experimentally validated and proven to be robust. It accurately determines the number of IK solutions corresponding to the actual valid solutions within joint limits, ensuring neither more nor fewer solutions are provided. Moreover, this method provides joint angle values with sub-millidegree accuracy in a few milliseconds, so operates rapidly and efficiently from a computational point of view.
This approach can be applied to all 6R serial robots with a non-spherical wrist. For example, as part of a comparative analysis, we tested it on the Universal Robot, UR5, for which, however, an explicit IK model can be established. The results provided were consistent with the literal IK.
In the continuation of this work on CRX cobots series, we will aim to characterize workspace domains with a specific number of IK solutions and define their boundaries, particularly when this number exceeds eight. Additionally, we will explore the issue of crossing these boundaries, for instance, when transitioning from a 16-solution domain to one with a 12-solution domain, and vice versa.
We will also study the concept of “aspect” and changes in aspect, examining the link between aspect and p-solution domains. As mentioned above, we will explore the issue of transitioning between aspects and within a given aspect.
Figure 15 highlights a particular example of this future work: transitioning from one solution to another within the same set of solutions (from [   J D # 2   ] to [   J D # 4   ] ), while maintaining the same initial and final poses, without encountering any singularities during the movement.

Author Contributions

Both authors M.A. and G.P. contributed identically to all items of this publication. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Data Availability Statement

All data are contained within this paper.

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

The following abbreviations are used in this manuscript:
DHmDenavit–Hartenberg modified
DoFDegree-of-Freedom
FKForward Kinematics
IKInverse Kinematics
MRIMagnetic Resonance Imaging
MSDMusculoskeletal Disorders
TCPTool Center Point
URUniversal Robots
XYZEnd-effector position
WPRCardan’s angles

References

  1. Ginoya, T.; Maddahi, Y.; Zareinia, K. A historical review of medical robotic platforms. J. Robot. 2021, 2021, 6640031. [Google Scholar] [CrossRef]
  2. Morgan, A.A.; Abdi, J.; Syed, M.A.; Kohen, G.E.; Barlow, P.; Vizcaychipi, M.P. Robots in healthcare: A scoping review. Curr. Robot. Rep. 2022, 3, 271–280. [Google Scholar] [CrossRef] [PubMed]
  3. Weidemann, C.; Mandischer, N.; van Kerkom, F.; Corves, B.; Hüsing, M.; Kraus, T.; Garus, C. Literature Review on Recent Trends and Perspectives of Collaborative Robotics in Work 4.0. Robotics 2023, 12, 84. [Google Scholar] [CrossRef]
  4. Baumkircher, A.; Seme, K.; Munih, M.; Mihelj, M. Collaborative robot precision task in medical microbiology laboratory. Sensors 2022, 22, 2862. [Google Scholar] [CrossRef] [PubMed]
  5. Diab, J. Hybrid Robotic Control by Teleoperation and Comanipulation: Application to Ultrasound Probe Positioning in a Constrained Environment. Ph.D. Thesis, Université d’Orléans, Orléans, France, 2021. [Google Scholar]
  6. Moutsinga, I.; Paccot, F.; Chanal, H.; Bouton, N. Co-manipulation robotique transparente pour l’assistance à l’examen échographique. In Proceedings of the 17ème Colloque National S-mart AIP-PRIMECA, Université Polytechnique Hauts-de-France [UPHF], Laval, France, 31 March–2 April 2021. [Google Scholar]
  7. Abbes, M.; Belharet, K.; Mekki, H.; Poisson, G. Use of the CRX-10iA cobot for microparticles delivery inside the cochlea. In Proceedings of the 12th Conference on New Technologies for Computer/Robot Assisted Surgery (CRAS), Paris, France, 11–13 September 2023. [Google Scholar]
  8. Abbes, M.; Belharet, K.; Mekki, H.; Poisson, G. Permanent magnets based actuator for microrobots navigation. In Proceedings of the 2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Macau, China, 4–8 November 2019; pp. 7062–7067. [Google Scholar]
  9. Abbes, M.; Belharet, K.; Souissi, M.; Mekki, H.; Poisson, G. Design of a Robotized Magnetic Platform for Targeted Drug Delivery in the Cochlea. IRBM 2023, 44, 100728. [Google Scholar] [CrossRef]
  10. Pieper, D.L. The Kinematics of Manipulators under Computer Control; Stanford University: Stanford, CA, USA, 1969. [Google Scholar]
  11. Paul, R.P. Robot Manipulators: Mathematics, Programming, and Control: The Computer Control of Robot Manipulators; MIT Press: Cambridge, MA, USA, 1981. [Google Scholar]
  12. Andersen, R.S. Kinematics of a UR5; Aalborg University: Aalborg, Denmark, 2018. [Google Scholar]
  13. Whitney, D.E. Resolved motion rate control of manipulators and human prostheses. IEEE Trans. Man-Mach. Syst. 1969, 10, 47–53. [Google Scholar] [CrossRef]
  14. Fournier, A. Génération de Mouvements en Robotique, Applications des Inverses Généralisées et des Pseudo-Inverses. Ph.D. Thesis, Université des Sciences et Techniques du Languedoc, Montpellier, France, 1980. [Google Scholar]
  15. Wolovich, W.A.; Elliott, H. A computational technique for inverse kinematics. In Proceedings of the 23rd IEEE Conference on Decision and Control, Las Vegas, NV, USA, 12–14 December 1984; pp. 1359–1363. [Google Scholar]
  16. Sciavicco, L.; Siciliano, B. Coordinate transformation: A solution algorithm for one class of robots. IEEE Trans. Syst. Man Cybern. 1986, 16, 550–559. [Google Scholar] [CrossRef]
  17. Manseur, R.; Doty, K.L. A fast algorithm for inverse kinematic analysis of robot manipulators. Int. J. Robot. Res. 1988, 7, 52–63. [Google Scholar] [CrossRef]
  18. Manseur, R.; Doty, K.L. Structural kinematics of 6-revolute-axis robot manipulators. Mech. Mach. Theory 1996, 31, 647–657. [Google Scholar] [CrossRef]
  19. Manseur, R.; Doty, K.L. A robot manipulator with 16 real inverse kinematic solution sets. Int. J. Robot. Res. 1989, 8, 75–79. [Google Scholar] [CrossRef]
  20. Raghavan, M.; Roth, B. A general solution for the inverse kinematics of all series chains. In Proceedings of the 8th CISM-IFTOMM Symposium on Robots and Manipulators, Cracow, Poland, 2–5 July 1990. [Google Scholar]
  21. Raghavan, M.; Roth, B. Inverse kinematics of the general 6R manipulator and related linkages. Trans. ASME J. Mech. Des. 1993, 115, 502–508. [Google Scholar] [CrossRef]
  22. Manocha, D.; Canny, J.F. Real time inverse kinematics for general 6R manipulators. In Proceedings of the ICRA, Nice, France, 12–14 May 1992; pp. 383–389. [Google Scholar]
  23. Manocha, D.; Canny, J.F. Efficient inverse kinematics for general 6R manipulators. IEEE Trans. Robot. Autom. 1994, 10, 648–657. [Google Scholar] [CrossRef]
  24. Gómez, S.R.; Cerrada, J.A.; Feliu, V. A faster algorithm for calculating the inverse kinematics of a general 6R manipulator for robot real time control. IFAC Proc. Vol. 1999, 32, 833–838. [Google Scholar] [CrossRef]
  25. Liqing, N.; Qingjiu, H. Inverse kinematics for 6-DOF manipulator by the method of sequential retrieval. In Proceedings of the 1st International Conference on Mechanical Engineering and Material Science (MEMS 2012), Paris, France, 29 January–2 February 2012; Atlantis Press: Amsterdam, The Netherlands, 2012; pp. 600–603. [Google Scholar]
  26. Almusawi, A.R.; Dülger, L.C.; Kapucu, S. A new artificial neural network approach in solving inverse kinematics of robotic arm (denso vp6242). Comput. Intell. Neurosci. 2016, 2016, 5720163. [Google Scholar] [CrossRef] [PubMed]
  27. Li, J.; Yu, H.; Shen, N.; Zhong, Z.; Lu, Y.; Fan, J. A novel inverse kinematics method for 6-DOF robots with non-spherical wrist. Mech. Mach. Theory 2021, 157, 104180. [Google Scholar] [CrossRef]
  28. Huang, B.; Milenkovic, V. Kinematics of major robot linkages. In Proceedings of the 13th International Symposium on Industrial Robots, Chicago, IL, USA, 17–21 April 1983; pp. 17–19. [Google Scholar]
  29. Aristidou, A.; Lasenby, J. FABRIK: A fast, iterative solver for the Inverse Kinematics problem. Graph. Model. 2011, 73, 243–260. [Google Scholar] [CrossRef]
  30. Kucuk, S.; Bingul, Z. Inverse kinematics solutions for industrial robot manipulators with offset wrists. Appl. Math. Model. 2014, 38, 1983–1999. [Google Scholar] [CrossRef]
  31. Carbonari, L.; Palpacelli, M.C.; Callegari, M. Inverse Kinematics of a Class of 6R Collaborative Robots with Non-Spherical Wrist. Robotics 2023, 12, 36. [Google Scholar] [CrossRef]
  32. Thomas, F.; Porta, J. The inverse kinematics of lobster arms. Mech. Mach. Theory 2024, 196, 105630. [Google Scholar] [CrossRef]
  33. Khalil, W.; Kleinfinger, J. A new geometric notation for open and closed-loop robots. In Proceedings of the 1986 IEEE International Conference on Robotics and Automation, San Francisco, CA, USA, 7–10 April 1986; Volume 3, pp. 1174–1179. [Google Scholar]
  34. Denavit, J.; Hartenberg, R.S. A kinematic notation for lower-pair mechanisms based on matrices. J. Appl. Mech. 1955, 22, 215–221. [Google Scholar] [CrossRef]
Figure 1. FANUC CRX-10iA cobot and its homologous in Roboguide software. This configuration corresponds to an end-effector pose, with 16 accessible solutions within the joint limitations.
Figure 1. FANUC CRX-10iA cobot and its homologous in Roboguide software. This configuration corresponds to an end-effector pose, with 16 accessible solutions within the joint limitations.
Robotics 13 00091 g001
Figure 2. The four kinematic transformations between two successive frames R i 1 and R i in the “Denavit–Hartenberg modified” formalism, with the four parameters: α i 1 , a i 1 , θ i , and r i .
Figure 2. The four kinematic transformations between two successive frames R i 1 and R i in the “Denavit–Hartenberg modified” formalism, with the four parameters: α i 1 , a i 1 , θ i , and r i .
Robotics 13 00091 g002
Figure 3. Kinematic diagram of the 6 DoF CRX-10iA cobot.
Figure 3. Kinematic diagram of the 6 DoF CRX-10iA cobot.
Robotics 13 00091 g003
Figure 4. The two cobots (a) CRX-10iA/L and (b) CRX10-iA in the same configuration: [ J 1 , J 2 , J 3 , J 4 , J 5 , J 6 ] T = [ A # 4 ] T = [ + 78 , 41 , + 17 , 42 , 60 , + 10 ] T .
Figure 4. The two cobots (a) CRX-10iA/L and (b) CRX10-iA in the same configuration: [ J 1 , J 2 , J 3 , J 4 , J 5 , J 6 ] T = [ A # 4 ] T = [ + 78 , 41 , + 17 , 42 , 60 , + 10 ] T .
Robotics 13 00091 g004
Figure 5. Flowchart of the CRX Inverse Kinematics determination.
Figure 5. Flowchart of the CRX Inverse Kinematics determination.
Robotics 13 00091 g005
Figure 6. Location of the centers O4 (red), O 3 UP (blue), and O 3 DW (green). (a): example of a pose with 8 IK solutions. (b): example of a pose with 16 IK solutions.
Figure 6. Location of the centers O4 (red), O 3 UP (blue), and O 3 DW (green). (a): example of a pose with 8 IK solutions. (b): example of a pose with 16 IK solutions.
Robotics 13 00091 g006
Figure 7. The two dot-products Z 4 · Z 5 function of the parameter q: UP ( q ) in red and DW ( q ) in blue. (a): The blue curve intersects the zero line twice, whereas the red curve does not. (b): The two curves intersect the zero line twice. The cobot configuration is as depicted in Figure 6a.
Figure 7. The two dot-products Z 4 · Z 5 function of the parameter q: UP ( q ) in red and DW ( q ) in blue. (a): The blue curve intersects the zero line twice, whereas the red curve does not. (b): The two curves intersect the zero line twice. The cobot configuration is as depicted in Figure 6a.
Robotics 13 00091 g007
Figure 8. The two dot-products Z 4 · Z 5 intersect 6 times (a) or 8 times (b) the zero line.
Figure 8. The two dot-products Z 4 · Z 5 intersect 6 times (a) or 8 times (b) the zero line.
Robotics 13 00091 g008
Figure 9. The two dot-products Z 4 · Z 5 intersect 3 times (a) or 7 times (b) the zero line.
Figure 9. The two dot-products Z 4 · Z 5 intersect 3 times (a) or 7 times (b) the zero line.
Robotics 13 00091 g009
Figure 10. Configuration close to the outer boundary of the reachable workspace, for which UP ( q ) and DW ( q ) are not defined for all parameter q (a). Corresponding the robot’s posture (b).
Figure 10. Configuration close to the outer boundary of the reachable workspace, for which UP ( q ) and DW ( q ) are not defined for all parameter q (a). Corresponding the robot’s posture (b).
Robotics 13 00091 g010
Figure 11. The two J1 solutions for a precession Ψ P of the plane P of the triangle O 0 O 3 O 4 .
Figure 11. The two J1 solutions for a precession Ψ P of the plane P of the triangle O 0 O 3 O 4 .
Robotics 13 00091 g011
Figure 12. Angular parameters used in Equation (19) to determine J2. On this Figure, δ = +1.
Figure 12. Angular parameters used in Equation (19) to determine J2. On this Figure, δ = +1.
Robotics 13 00091 g012
Figure 13. (a) Cobot posture corresponding to line 6 of Table 5. (b) The two UP ( q ) and DW ( q ) dot-products ( Z 4 · Z 5 ) corresponding to P o s e C .
Figure 13. (a) Cobot posture corresponding to line 6 of Table 5. (b) The two UP ( q ) and DW ( q ) dot-products ( Z 4 · Z 5 ) corresponding to P o s e C .
Robotics 13 00091 g013
Figure 14. Visualizations of 16 distinct postures to access the same P o s e D . P o s e D = [ 209.470 , 42.894 , 685.496 , 95.378 , 64.226 , 56.402 ] T .
Figure 14. Visualizations of 16 distinct postures to access the same P o s e D . P o s e D = [ 209.470 , 42.894 , 685.496 , 95.378 , 64.226 , 56.402 ] T .
Robotics 13 00091 g014
Figure 15. Envelope of cobot postures, representing the displacement between two distinct solutions (from [   J D # 2   ] to [   J D # 4   ] of Table 6), in the case where there are 16 IK solutions for the same pose.
Figure 15. Envelope of cobot postures, representing the displacement between two distinct solutions (from [   J D # 2   ] to [   J D # 4   ] of Table 6), in the case where there are 16 IK solutions for the same pose.
Robotics 13 00091 g015
Table 1. The joint values [ J i ] for the 16 IK solutions proposed in [31] to reach the same pose. The right columns indicate an eventual equality (=) between postures, then accuracy in mm between the desired and the obtained TCP position, and finally if a solution is valid (Yes or Not).
Table 1. The joint values [ J i ] for the 16 IK solutions proposed in [31] to reach the same pose. The right columns indicate an eventual equality (=) between postures, then accuracy in mm between the desired and the obtained TCP position, and finally if a solution is valid (Yes or Not).
J 1 J 2 J 3 J 4 J 5 J 6 =Dist.Val
Car # 1 −30.3033.99136.01143.27−48.7977.61-10N
Car # 2 149.69146.0043.98−36.72−48.7977.61-10N
Car # 3 −101.9948.99155.99−138.00−59.99−9.99-0.1Y
Car # 4 78.00131.0024.0042.00−60.00−10.00-Y
Car # 5 39.9028.21161.19−75.16116.22−90.34-0.08Y
Car # 6 −140.09151.7818.80104.83116.22−90.34-0.08Y
Car # 7 −93.9847.62154.56−144.11−55.12−2.97-0.04Y
Car # 8 86.01132.3725.4335.88−55.12−2.97-0.12Y
Car # 9 −93.9847.62154.56−144.11−55.12−2.97 Car # 7 0.04N
Car # 10 86.01132.3725.4335.88−55.12−2.97 Car # 8 0.12N
Car # 11 −93.9847.62154.56−144.11−55.12−2.97 Car # 7 0.04N
Car # 12 86.01132.3725.4335.88−55.12−2.97 Car # 8 0.12Y
Car # 13 −29.4133.90135.67142.25−49.2478.79-10.3N
Car # 14 150.58146.0944.32−37.74−49.2478.79-10.3N
Car # 15 114.6942.07151.46− 23.88170.5310.81-0.03Y
Car # 16 −65.30137.9228.53156.11170.5310.81-0.04Y
Table 2. CRX-10iA DHm parameters: lengths (mm), angles (deg). J i , the joint values, are expressed following the same convention as FANUC.
Table 2. CRX-10iA DHm parameters: lengths (mm), angles (deg). J i , the joint values, are expressed following the same convention as FANUC.
  Link   L 1 L 2      L 3 L 4 L 5 L 6
a i 1 00540000
α i 1 0−90+180−90+90−90
θ i J 1 J 2 90 J 2 + J 3 J 4 J 5 J 6
r i 000−540150−160
Table 3. The joint values [ J i ] for the 8 IK solutions to reach P o s e A on CRX-10iA/L cobot.
Table 3. The joint values [ J i ] for the 8 IK solutions to reach P o s e A on CRX-10iA/L cobot.
J 1 J 2 J 3 J 4 J 5 J 6
[ J A # 1 ] 39.90261.782137.02375.169116.22990.344
[ J A # 2 ] 114.69047.928160.60923.885170.539−10.812
[ J A # 3 ] 86.018−42.37916.943−35.883−55.1292.977
[ J A # 4 ] 78−4117−42− 6010
[ J A # 5 ] −140.098−61.78242.977−104.831116.22990.344
[ J A # 6 ] −65.310−47.92819.391−156.116170.539−10.812
[ J A # 7 ] −93.98242.379163.057144.118−55.1292.977
[ J A # 8 ] −10241163138−6010
Table 4. The joint values [ J i ] for the 8 IK solutions to reach P o s e B on CRX-10iA.
Table 4. The joint values [ J i ] for the 8 IK solutions to reach P o s e B on CRX-10iA.
J 1 J 2 J 3 J 4 J 5 J 6
[ J B # 1 ] 44.61189.087109.19394.703121.416121.782
[ J B # 2 ] 35.16288.468140.150−108.846−111.920−91.804
[ J B # 3 ] 29.462−39.473−8.392117.68285.679−119.224
[ J B # 4 ] 78−4117−42− 6010
[ J B # 5 ] −135.389−89.08770.807−85.297121.416121.782
[ J B # 6 ] −144.839−88.46839.85071.154−111.920−91.804
[ J B # 7 ] −150.53839.473188.392−62.31885.679−119.224
[ J B # 8 ] − 10241163138− 6010
Table 5. The joint values [ J i ] for the 12 IK solutions to reach P o s e C on CRX-10iA.
Table 5. The joint values [ J i ] for the 12 IK solutions to reach P o s e C on CRX-10iA.
J 1 J 2 J 3 J 4 J 5 J 6
[ J C # 1 ] −14.478119.78078.001−180168.001−95.522
[ J C # 2 ] −6.336 121.233   89.999 −116.197 179.999−39.861
[ J C # 3 ]  6.335 121.233  90 −63.811 179.999−0.146
[ J C # 4 ]  14.478119.78078.0010−168.00155.522
[ J C # 5 ] −14.47811.999−29.780−18060.220−95.522
[ J C # 6 ]  14.47811.999−29.7800−60.22055.522
[ J C # 7 ] 165.522−119.780101.9990168.001−95.522
[ J C # 8 ]  173.664−121.233  90.001  63.811 179.999−39.861
[ J C # 9 ] −173.665−121.233  90 116.190 179.999−0.146
[ J C # 10 ] −165.522−119.780101.999−180−168.0155.522
[ J C # 11 ]  165.522−11.999−150.220060.220−95.522
[ J C # 12 ] −165.522−11.999−150.220180−60.22055.522
Table 6. The joint values [ J i ] for the 16 IK solutions to reach P o s e D on CRX-10iA.
Table 6. The joint values [ J i ] for the 16 IK solutions to reach P o s e D on CRX-10iA.
J 1 J 2 J 3 J 4 J 5 J 6
[ J D # 1 ] −60.12562.707112.01590.16592.586132.291
[ J D # 2 ] −63.31862.684143.064−93.111−89.750−78.691
[ J D # 3 ] 11.85554.151144.007−28.773−142.889−48.616
[ J D # 4 ] 49.24746.825135.95429.379−134.512−5.010
[ J D # 5 ] −62.156−40.09414.33392.03991.458−129.964
[ J D # 6 ] 47.115−53.92435.92228.105−41.924−48.121
[ J D # 7 ] 0−4544−37−530
[ J D # 8 ] −47.369−40.31045.272−78.410−81.96917.952
[ J D # 9 ] 119.875−62.70767.985−89.83592.586132.291
[ J D # 10 ] 116.682−62.68436.93686.889−89.750−78.691
[ J D # 11 ] −168.145−54.15135.993151.227−142.889−48.616
[ J D # 12 ] −130.753−46.82544.046−150.621−134.512−5.01
[ J D # 13 ] 117.84440.094165.667−87.96191.458−129.964
[ J D # 14 ] −132.88553.924144.078−151.895−41.924−48.121
[ J D # 15 ] −18045136143−530
[ J D # 16 ] 132.63140.310134.728101.590−81.96917.952
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

Abbes, M.; Poisson, G. Geometric Approach for Inverse Kinematics of the FANUC CRX Collaborative Robot. Robotics 2024, 13, 91. https://0-doi-org.brum.beds.ac.uk/10.3390/robotics13060091

AMA Style

Abbes M, Poisson G. Geometric Approach for Inverse Kinematics of the FANUC CRX Collaborative Robot. Robotics. 2024; 13(6):91. https://0-doi-org.brum.beds.ac.uk/10.3390/robotics13060091

Chicago/Turabian Style

Abbes, Manel, and Gérard Poisson. 2024. "Geometric Approach for Inverse Kinematics of the FANUC CRX Collaborative Robot" Robotics 13, no. 6: 91. https://0-doi-org.brum.beds.ac.uk/10.3390/robotics13060091

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