Next Article in Journal
Joint-Module Health Status Recognition for an Unmanned Platform: A Time–Frequency Representation and Extraction Network-Based Approach
Previous Article in Journal
A Generalised Intelligent Bearing Fault Diagnosis Model Based on a Two-Stage Approach
Previous Article in Special Issue
Design, Implementation, and Control of a Linear Electric Actuator for Educational Mechatronics
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

FIKA: A Conformal Geometric Algebra Approach to a Fast Inverse Kinematics Algorithm for an Anthropomorphic Robotic Arm

by
Oscar Carbajal-Espinosa
1,*,
Leobardo Campos-Macías
2 and
Miriam Díaz-Rodriguez
3
1
Tecnologico de Monterrey, School of Engineering and Science, Zapopan 45201, Mexico
2
Intelligent Systems Research Laboratory, Intel Corporation, Zapopan 45017, Mexico
3
Unidad Académica Zapopan, Instituto Tecnológico José Mario Molina Pasquel y Henríquez, Tecnológico Nacional de México, Zapopan 45019, Mexico
*
Author to whom correspondence should be addressed.
Machines 2024, 12(1), 78; https://doi.org/10.3390/machines12010078
Submission received: 17 November 2023 / Revised: 22 December 2023 / Accepted: 23 December 2023 / Published: 20 January 2024
(This article belongs to the Special Issue Smart Mechatronics: Modeling, Instrumentation and Control)

Abstract

:
This paper presents a geometric approach to solve the inverse kinematics for an anthropomorphic robotic arm with seven degrees of freedom (DoF). The proposal is based on conformal geometric algebra (CGA), by which many geometric primitives can be operated naturally and directly. CGA allows for the intersection of geometric entities such as two or more spheres or a plane’s projection over a sphere. Rigid transformations of such geometric entities are performed using only one operation through another geometric entity called a motor. CGA imposes geometric restrictions on the inverse kinematics solution, which avoids computation of the forward kinematics or other numerical solutions, unlike traditional approaches. Comparisons with state-of-the-art algorithms are included to prove our algorithm’s superior performance: such as decreased execution time and errors of the end-effector for a series of desired poses.

1. Introduction

The robotic arm is the most-used robot configuration to approach the human arm’s performance. This kind of robotic arm is a multi-articulated rigid limb with many degrees of freedom (DoF) that provide flexibility and agility, allowing a single task to be executed using various postures and different trajectories. For this, the solution of the inverse kinematics (IK) has become one of the techniques for this task, which is the problem of determining an appropriate joint configuration so that the end-effector moves to a desired target position.
A human arm’s basic configuration is described as 3-DoF at the shoulder, 1-DoF at the elbow, and 3-DoF at the wrist. Thus, a 7-DoF robotic arm can interact naturally in a designed human environment. One advantage of this configuration is that the elbow creates a self-motion manifold on a circular path, avoiding joint limitations and singularities. For these reasons, it is desired to have the same design in a humanoid robot.
One of the main difficulties when working with this kind of configuration is that there may be many or infinite appropriate joint configurations (which is the common case), a unique solution, or no solution for the same task, i.e., a set of solutions may exist to carry the hand (end-effector) from an initial pose to a final one. This problem is known as redundancy and makes the inverse kinematics more complex than solving it for kinematics chains with lower DoFs for which redundancy is not present.
Many approaches tackle the redundancy problem, and in general, analytical and numerical methods are the most-used. Other techniques use geometric and trigonometric solutions to take advantage of the strong geometric structure representation of a rigid robot arm and combine the classical representation of direct kinematics to solve the problem. For instance, the main issue of the analytical method is that the computations of the joints become difficult to find when the kinematic chain becomes larger due to the complex system of equations that results in an unfeasible algorithm for real-time implementation. Regarding numerical solutions, they are based on iterative methods for which a cost function has to be minimized.
The algorithm proposed here is based on the logic that a geometric method facilitates the intuition to pose a solution to the problem but is formulated on the conformal geometric algebra (CGA) mathematical framework. This algebra allows working with geometric primitives such as circles, lines, planes, and spheres naturally. These geometric entities can be represented in this algebra as linear combinations of its base, where parts of its base are the canonical base of the Euclidean vector space R 3 , and also, it includes rigid transformations defined in terms of geometric entities called rotors, translators, and motors. Using the algebra characteristics, as the rigid transformation of geometric entities, it is possible to define an algorithm that solves the inverse kinematics problem without using matrices or numerical methods. The resultant algorithm allows us to impose geometric constraints based on the physical possibilities of the arm.
Although our previous work [1] involves the inverse kinematics for a leg with 6-DoF using the same mathematical framework, the extension to 7-DoF through the use of CGA is not trivial given the redundancy caused by one extra degree of freedom, for which we had to define more geometric entities to find one extra appropriate joint angle.
Furthermore, extensive research can be found related to the problem of solving the inverse kinematics of redundant robotic arms [2,3,4,5]. For example, in the works [6,7], the solution of analytical inverse kinematics for a 7-DoF robotic arm are given in such form that some restrictions to avoid joint limits are included, and many complex operations must be solved along with a stage of forward kinematics, increasing the computational burden of the algorithm. In [8], many matrix multiplications are needed to find a solution for the problem. However, as in the previous two related papers, the authors define a geometric restriction using a rotating plane. Still, given that matrix algebra is not suited to work efficiently with this kind of entity, it is natural to find a mathematical framework to solve this problem. Other approaches to the solution of inverse kinematics in redundant robotic arms are given in the works [9,10], wherein the solution is given using the Jacobian matrix. Its inverse is obtained using numerical methods to optimize the solution of the inverse kinematics. Also, extended approaches can be found, such as [11]. However, this method also poses a pseudo-inverse-like problem; this is in contrast with the purpose of our method, wherein analytical constraints are exploited to produce solutions in a geometrical manner and, as the comparisons demonstrate, with less computational time.
Unlike previous works, our method has the advantage that the use of analytical or numerical solutions is not needed to find appropriate joint angles given a desired pose of the end-effector. This work is an extension of our previous work [12], which solves the inverse kinematics for a 5-DoF manipulator and which was then extended to a 6-DoF leg [1] of a humanoid robot. These results were used as inspiration for this algorithm for a 7-DoF arm, but many improvements are included. In summary, our contributions concerning the state-of-the-art are:
  • We propose an algorithm for the inverse kinematics for a 7-DoF robotic arm on a 5D conformal geometric algebra CGA instead of working only on the 3D vector space R 3 . The intuitive representation of geometric entities in CGA and the operations that we can make of them allow us to find the joint positions (in Cartesian space) and joint angles of the robot arm by taking into account the outer and inner product that CGA possesses, which avoids analytical or numerical methods. The geometry entities available in the arm structure are used to define CGA entities, e.g., circles are determined to find elbow position. Thus, all the possible configurations for the arm are in those circles, which takes advantage of the dexterity.
  • We provide a comparison with state-of-the-art algorithms to demonstrate the superior performance of our proposal.
The rest of the paper is structured as follows: Section 2 provides a brief introduction to CGA. Section 3 presents the proposed method to solve the inverse kinematics, including images that clarify the steps of the algorithm. The comparison with the state-of-the-art algorithms is shown in Section 4. Finally, some discussions are presented in Section 6.
The principal aim of this research work is to develop an inverse kinematics algorithm using conformal geometric algebra that allows us to extend the previous work we have been doing to redundant robotic arms with seven degrees of freedom. With our proposal, the calculation time is reduced by exploiting the properties of the mathematical framework with which we are working. By using this algorithm, we hope to improve the performance of this type of manipulator arm in real time.
Comparisons with other algorithms show that conformal geometric algebra has advantages over other mathematical systems; we take advantage of these differences in our proposal. Unlike other approaches, for which it is necessary to use direct kinematics to find a possible solution to the configuration of the robotic arm, our algorithm uses geometric constraints to resolve the inverse kinematics. Furthermore, the geometric entities defined in the inverse kinematics solution can be used to find other configurations that allow us to take advantage of the redundancy of the robotic arm.

2. Mathematical Background

2.1. Geometric Algebra

Geometric algebra (GA), also known as Clifford algebra, was introduced by William K. Clifford (1845–1879) and recently has been increasingly applied in physics and engineering. GA is a mathematical framework that allows for treating of the geometry of objects as algebraic entities.
Let V p , q , r be a vector space over the field R . We can generate a geometric algebra G p , q , r from V p , q , r , where p, q, and r stand for the number of basis vectors that square to 1, −1, and 0, respectively: that is, there are p , q , r 0 with n = p + q + r such that
e i e i = e i 2 = 1 for i = 1 , , p , 1 for i = p + 1 , , p + q , 0 for i = p + q + 1 , , n .
The geometric algebra G p , q , r has a base given by these elements:
{ 1 } , { e i } , { e i e j } , { e i e j e k } , , { e 1 e 2 e n } ,
where
I n : = e 1 e 2 e n
is called as the pseudoescalar.
So M G p , q , r (called a multivector) is expressed in terms of its base elements: namely,
M = < A > 0 + < A > 1 + + < A > n ,
where each < A > j , j = 0 , , n is the j-vector part.
For instance, the Euclidean geometric algebra G 3 : = G 3 , 0 , 0 has a base
{ 1 , e 1 , e 2 , e 3 , e 12 , e 31 , e 23 , I 3 = e 123 } ,
where e i j : = e i e j , and any multivector M can be written in the form
M = α 0 + α 1 e 1 + α 2 e 2 + α 3 e 3 + α 4 e 12 + α 5 e 31 + α 6 e 23 + α 7 I 3 ,
α i R , i = 0 , , 7 .
The main product of G p , q , r is called the geometric product; it is associative and distributive over addition but not necessarily commutative.
The geometric product of two multivectors A , B G p , q , r can be written as the sum of its anticommutaror and commutator parts:
A B = 1 2 ( A B + B A ) + 1 2 ( A B B A )
Moreover, if 
M = a 1 a 2 a n 1 a n
for some { a 1 , a 2 , , a n 1 , a n } V p , q , r , then it is called a k-versor. A k-blade is a k-versor of orthogonal vectors, and the linear combination of k-blades give rise to a k-vector.
In particular, the geometric product of two vectors a , b R is given by the sum of a symmetric and antisymmetric part:
a b = a · b + a b ,
where a · b and a b are the inner product and wedge product, respectively. The inner product of two 1-vectors is the standard cross product in the Euclidean vector space.
The inner product operator is used for the computations of the angles between lines, planes, etc.; the wedge product is mainly used for the construction and intersection of geometric entities, while the geometric product is used for the description of transformations.

2.2. Conformal Geometric Algebra

It is well known that objects, such as points, lines, circles, spheres, etc., can be described in R 3 . However, in this vector space, we cannot make an operation on these objects. Then, it is natural to think of how to make this possible. Then, we should use a 5D geometric algebra: for this, take an orthonormal base for R 3 , say { e i } ,   i = 1 , 2 , 3 , and join it with this orthonormal base { e 4 , e 5 } , which is the base of a Minkowski plane such that
e 4 2 = 1 , e 5 2 = 1 , e 4 · e 5 = 0 .
In this case, we have p = 4 , q = 1 , r = 0 as in (1); then, we have R 4 , 1 : = R 4 , 1 , 0 , which gives G 4 , 1 : = G 4 , 1 , 0 . This GA is called conformal geometric algebra (CGA), by which geometric entities such as points, lines, and spheres can be represented as vectors that have two algebraic representations: the inner product null space (IPNS) and the outer product null space (OPNS).
Also, CGA has the sphere as its unity of calculus; this means that the representation of the other geometric primitives such as lines, points, planes, circles, and point pairs can be obtained from the representation of the sphere, as we will see in the next subsection.
From the Minkowski plane base, { e 4 , e 5 } gives rise to another base that has these elements:
e = e 5 + e 4 , e 0 = 1 2 ( e 5 e 4 ) ,
where e and e 0 are the point at infinity and the origin point, respectively.
These new vector bases satisfy
e 2 = e 0 2 = 0 ;
that is, e and e 0 are null vectors, and also, their inner product satisfies
e · e 0 = 1 .
Often the null vectors are used to represent the geometric entities instead of e 4 and e 5 .
In the base of G 3 given in (5), we have the pseudo-scalar
I 3 = e 1 e 2 e 3 ;
this can be multiplied with the bivector
E : = e e 0 = e 4 e 5 = e 4 e 5 ,
leading to the pseudo-scalar
I = I 3 E = e 1 e 2 e 3 e e 0
in G 4 , 1 , which is used for computing the dual of the multivectors in CGA.
For instance, the dual of a multivector M G 4 , 1 is given by
M : = M I 1 ;
from now on, we will use the symbol to identify the dual of a multivector in this algebra.
Now, the principal geometric primitives used in this work are defined, and rigid transformations are introduced to give the background of the proposed algorithm of inverse kinematics.

2.3. Used Geometric Primitives

A point  x c G 4 , 1 is represented in the 5D conformal space by taking the linear combinations of some elements of its base:
{ e 1 , e 2 , e 3 , e , e 0 } ;
that is,
x c = x e + 1 2 x e 2 e + e 0 ,
where x e = α 1 e 1 + α 2 e 2 + α 3 e 3 R 3 .
Note that R 3 can be seen to be embedded in CGA.
We know that the equation of a sphere with its center at p e R 3 and radius ρ 0 is given by
( x e p e ) 2 = ρ 2 .
The sphere can be mapped to G 4 , 1 as
s = p c 1 2 ρ 2 e ,
where p c G 4 , 1 is the center of the sphere; (21) corresponds to the so-called inner product null space (IPNS) representation.
Note that when ρ = 0 , we again obtain this point: that is, s = p c . Taking into account the pseudo-scalar I, we can obtain the dual of the sphere s = s I 1 , which is represented as a 4-vector. This means that a sphere can be described by making the wedge product of four points that lie on it: namely,
s = x c 1 x c 2 x c 3 x c 4 .
If we make x c 4 = e , then we obtain a plane:
π = x c 1 x c 2 x c 3 e .
A plane is a sphere with an infinite radius.
The plane π is also represented in IPNS form as follows:
π = n + d e ,
where n and d are the normal vector and Hesse distance, respectively.
In G 4 , 1 , we can also find a line that is normal to a plane π as
L π = ( π · E ) / I ,
where E is the Minkowski plane and I is the pseudo-scalar in CGA that we defined at the end of the above subsection.
Let s 1 , s 2 G 4 , 1 be two spheres. We can obtain a circle z as the intersection of s 1 and s 2 : that is,
z = s 1 s 2 ,
which is given in IPNS, and its dual form can be expressed by three points lying on the circle (similarly to the dual of a sphere) as
z = x c 1 x c 2 x c 3 .
Given the circle z as in (26) and from (27), it follows that the plane π z in which the circle lies is given by
π z = z e .
Now, we can have a line that passes through the center of the circle that is normal to the plane π z as
L z = z e .
These properties of the primitives will be used as a part of the proposed algorithm of inverse kinematics.
Similar to the case of planes, lines can be defined by changing x c 3 = e in (27), which gives
L = x c 1 x c 2 e .
A line can also be expressed as
L = n I 3 + e m I 3
in the standard IPNS form, where n and m are the line orientation and moment, respectively.
Finally, the point pair is used as two possible solutions of a joint that is given by
P p = p 1 p 2
by using the wedge product of the two points p 1 and p 2 . Alternatively, we can also get the point pair as the intersection of a line and a sphere, a line and a circle, or a circle and a sphere.
Given P p , we can compute p 1 , p 2 as
p 1 , 2 = P p ± P p · P p 1 / 2 P p · e .

2.4. Translation, Rotation, and Motor

Rigid transformations can be expressed in CGA by composing plane reflections. For any geometric entity, say Q, the reflection with respect to a plane π is given by
Q = π Q π 1 .
The translation can be seen as the reflection with respect to the planes π 1 = n + 0 e , π 2 = n + d e . It follows that the translation is given by
Q = ( π 2 π 1 ) Q ( π 1 1 π 2 1 ) = T a Q T a ˜ ,
where
T a = ( n + d e ) n = e a 2 e ,
a = 2 d n , n = 1 , and  T ˜ a is called the reversion.
Similarly, the rotation can be described as the composition of two reflections with respect to π 1 = n 1 , π 2 = n 2 , which is
Q = ( π 2 π 1 ) Q ( π 1 1 π 2 1 ) = R θ Q R θ ˜ ,
where
R θ = π 2 π 1 = n 2 · n 1 + n 2 n 1 = c o s ( θ 2 ) s i n ( θ 2 ) l = e θ 2 l ,
l = n 1 n 2 , and  θ is double the angle between π 2 and π 1 .
A rigid-body motion that includes translation and rotation is described by a motor (also called a displacement versor) M o t = T R . Thus, the rigid body motion of Q is described by
Q = M o t Q M o t ˜ .

3. Inverse Kinematics Methodology

The human upper limb is described as a system of three segments: the upper arm, the forearm, and the hand; it includes seven degrees of freedom. This configuration is basic to emulate human movements and is used in this paper. We present a summary of the algorithm proposed in Algorithm 1. To explain the IK of a humanoid robot arm, an anthropomorphic 7-DoF arm is used; the configuration of the real robot to implement the IK is represented in Figure 1.
Usually, the desired trajectory of the hand of a humanoid robot is given to satisfy complex tasks, i.e., around an object, to achieve the desired position, etc. Then, the amount of joint rotation of the wrist, elbow, and shoulder must be found with this information.
The desired position and attitude of the gripper at the hand are given in the form:
x g , y g , z g
for the e 1 , e 2 , and e 3 axes, and the pitch, yaw, and roll are
α g , β g , γ g
with respect to the frame coordinates fixed to the center of the torso. We define l 1 as the distance between the shoulder and the elbow joint, l 2 as the distance between the elbow and the wrist, and finally, l 3 as the distance from the wrist to the gripper, as shown in Figure 1, where l w t and l t h are the distances between the shoulder frame with respect to the fixed torso frame in the e 2 and e 1 directions, respectively.
Algorithm 1: Inverse Kinematics for 7-DoF Manipulator.
  • Input:  x g , y g , z g , α g , β g , γ g , l 1 , l 2 , l 3 , l w t , l t h
  • Output:  q 1 , q 2 , q 3 , q 4 , q 5 , a 6 , q 7
  • x 1 0 e 1 + l w t e 2 + 0 e 3 + 1 2 ( 0 e 1 + l w t e 2 + 0 e 3 ) 2 e + e 0
  • x 2 l t h e 1 + l w t e 2 + 0 e 3 + 1 2 ( l t h e 1 + l w t e 2 + 0 e 3 ) 2 e + e 0
  • x 3 P p e + P p e · P p e P p e · e
  • x 4 P p w + P p w · P p w P p w · e
  • x p M g w M ˜ g
       Links:
  • L i n k 0 e x 1 x 2
  • L i n k 1 e x 2 x 3
  • L i n k 2 e x 3 x 4
  • L i n k 3 e x 4 x p
       Joints:
  • q 1 arccos P a · P 31 | P a | | P 31 |
  • q 2 arccos L i n k 1 · L i n k 0 | L i n k 1 | | L i n k 0 |
  • q 3 arccos P q 3 r · P q 3 | P q 3 r | | P q 3 |
  • q 4 arccos L i n k 2 · L i n k 1 | L i n k 2 | | L i n k 1 |
  • q 5 arccos P q 5 r · P q 5 | P q 5 r | | P q 5 |
  • q 6 arccos L i n k 3 · L i n k 2 | L i n k 3 | | L i n k 2 |
  • q 7 arccos P q 7 · P x p | P q 7 | | P x p |
Development of the algorithm is separated into the following two sections: In the first section, we define the geometric entities that will be used in the algorithm: in particular, those used to compute the joint positions in CGA. In the second section, we use the definition of the inner product to find the angles of each joint. The proposed method is based on our previous works [1,12] given that the first four joint angles are calculated in the same way for a 5-DoF robot arm or 6-DoF leg.

3.1. Defining the Geometric Entity References

First, we define the Euclidean positions representing the initial joint positions that are shown in Table 1.
Since x 1 e and x 2 e are fixed with respect to the world coordinate system, their conformal representations are given by
x 1 = 0 e 1 + l w t e 2 + 0 e 3 + 1 2 ( 0 e 1 + l w t e 2 + 0 e 3 ) 2 e + e 0 ,
and similarly for
x 2 = l t h e 1 + l w t e 2 + 0 e 3 + 1 2 ( l t h e 1 + l w t e 2 + 0 e 3 ) 2 e + e 0 .
Three rotors describing the desired pitch, yaw, and roll of the gripper are created in the form:
R x g = e 1 2 α g e 23 , R y g = e 1 2 β g e 31 , R z g = e 1 2 γ g e 12 ,
where e 23 , e 31 and e 12 are bivectors.
Thus, the general rotor describing the entire desired attitude is given in the form:
R g = R x g R y g R z g .
Then, with the desired Euclidean coordinates, a translator is formed:
T g = e 1 2 ( x g e 1 + y g e 2 + z g e 3 ) e ,
where x g e 1 + y g e 2 + z g e 3 R 3 .
Using the rotor (45) and translator (46), a motor describing the desired pose of the gripper in terms of the fixed torso frame is given in the form:
M g = T g R g .
It follows that the pose of the gripper is given by
x p = M g w M ˜ g ,
where w is a conformal point of (42) representing the origin of the world coordinate system.
Now, it remains to calculate the joint positions x 3 and x 4 ; to this end, several geometric entities are defined.
First, a sphere and a line are created about the zero conformal point e 0 using the distance l 3 between the wrist and the gripper as follows:
S 0 = e 0 1 2 l 3 2 e , L 0 = e 2 e 3 .
Then, the sphere and the line given in (49) are translated and rotated by the motor M g to the desired pose of the end-effector:
S r e f = M g S 0 M ˜ g , L r e f = M g L 0 M ˜ g
such that the center of this translated sphere S 0 is the gripper position of x p , and the line L 0 meets this point.
The sphere and the line defined in (50) are intersected to obtain a point pair that represents the two possible solutions for the conformal positions of the wrist and are given by
P p w = S r e f L r e f .
The point pair can be separated using the equation
x 4 = P p w + P p w · P p w P p w · e ,
which gives the wrist a conformal joint position.
An illustration of how to get x 4 when implemented is given in Figure 2.
Now, two spheres have been defined: one with its origin at the point x 2 after mapping x 2 e (Table 1) in CGA and the second one with its center at the point x 4 obtained from (52); the radii of the spheres are the distances l 1 and l 2 , respectively, as shown in Figure 1, and are defined as
S 1 = x 2 1 2 l 1 2 e , S 2 = x 4 1 2 l 3 2 e .
The intersection of the two spheres from (53) gives a circle that contains all the possible positions of the elbow and is given by
Z = S 1 S 2 ;
this circle will be intersected with a plane to find the elbow position. This circle contains an infinite number of points to place the robot’s elbow; when intersecting it with the plane, we find a pair of points, and it is necessary to select one of them to define the configuration of the arm, If we want to find another configuration, it is possible to take the initial point and rotate this point with respect to the center of the circle and find a new one. With this procedure, it is possible to take advantage of the redundancy of the seven degrees of freedom of the arm: for example, in obstacle avoidance tasks. The development of these operations can be found in our previous work [12].
The plane is constructed as follows:
As shown in Figure 3, a line normal to the circle of (54) is calculated in the form
L z = Z e ;
this line can be used to find a plane in which the arm lies and, as future work, could help to design systems for obstacle and self-collision avoidance.
Next, a reference line parallel to the e 1 axis is translated to the point x 2 ; this is given using a translator defined as follows:
T x 2 = e 1 2 ( l t h e 1 + l w t e 2 ) e ,
and the reference line is given by
L e 1 = T x 2 E e 1 T ˜ x 2 ,
where l t h e 1 + l w t e 2 R 3 and E = e e 0 .
Now, using the lines L z and L e 1 , the plane is defined as
P a = ( L z · ( e e 0 ) ) L e 1 .
Then, a point pair representing the two possible positions of the elbow can be found: to do this, the circle in (54) is intersected with the plane of (58) using the equation
P p e = Z P a .
As before, the point pair is separated, and the elbow point is given by
x 3 = P p e + P p e · P p e P p e · e .
This procedure is shown in Figure 4.
Finally, using the previously found points, four lines representing the links of the arm are calculated; these lines are shown in Figure 5 and are given by
L i n k 0 = e x 1 x 2 , L i n k 1 = e x 2 x 3 , L i n k 2 = e x 3 x 4 , L i n k 3 = e x 4 x p .
These lines will be used in the next subsection to find some of the joint angles by taking into account their inner product.

3.2. Computing the Joint Values of the Arm

With the points and geometric entities defined, the angles of each joint are calculated: the first four are calculated as in [1,12].
First, to find the rotation of q 1 , a plane parallel to the axes e 3 and e 1 is defined; then, using a translator, this plane is translated to the point x 2 as follows:
P 31 = T x 2 ( e e 0 ) e 3 e 1 T ˜ x 2 .
The amount of rotation is given by the angle between the planes of (58) and (62) and is calculated by
q 1 = arccos P a · P 31 | P a | | P 31 | .
The joint value q 2 is defined as the angle between the lines L i n k 0 and L i n k 1 of (61) and is obtained as
q 2 = arccos L i n k 1 · L i n k 0 | L i n k 1 | | L i n k 0 | .
In order to find q 3 , two planes are defined as
P q 3 r = e x 1 x 2 x 3 , P q 3 = e x 3 x 2 x 4 ,
and q 3 is defined as the angle between the planes defined in (65) and is calculated as
q 3 = arccos P q 3 r · P q 3 | P q 3 r | | P q 3 | .
The angle q 4 is defined as the angle between the lines L i n k 1 and L i n k 2 defined in (61); this angle is obtained as
q 4 = arccos L i n k 2 · L i n k 1 | L i n k 2 | | L i n k 1 | .
In the same way, the joint value q 6 is the angle between the lines L i n k 2 and L i n k 3 in (61) and is given by
q 6 = arccos L i n k 3 · L i n k 2 | L i n k 3 | | L i n k 2 | .
The angles q 5 and q 7 are difficult to compute because of the redundancy of the 7-DoF robotic arm; for that reason, in conventional approaches such as matrix representation, direct kinematics are used to know where the arm is based on previously computed angles, and this leads to many computations, which costs time to compute the inverse kinematics in real-time. To avoid the need to use direct kinematics in this approach, four planes are defined as geometric restrictions to compute the two angles: these planes are shown in Figure 6 and Figure 7.
First, using the plane P q 3 defined in (65), a line normal to this plane is calculated; then, this line is translated to the calculated point x 4 as follows:
L P 3 = T x 4 ( ( P q 3 · E ) / I ) T ˜ x 4 .
where T x 4 is given similar to (56).
Using the computed point x 3 and the goal position x p , two planes are defined as follows:
P q 5 = L P 3 x 3 , P x p = L P 3 x p .
After that, a plane is defined using the calculated points and the goal position as
P q 5 r = e x 3 x 4 x p .
The angle q 5 is defined as the angle between the planes P q 5 and P q 5 r as
q 5 = arccos P q 5 r · P q 5 | P q 5 r | | P q 5 | .
Finally, to compute the joint angle q 7 , the next steps are followed. First, we obtain the normal line to the plane P q 5 r , and as in (69), this line is translated to the goal position x p as follows:
L x p = T g ( P q 5 r · E ) / I T ˜ g ,
where T g is the translator given in (46).
Now, using this line L x p and the point x 4 , a plane is defined as
P q 7 = L x p x 4 .
The joint value q 7 is defined as the angle between the planes P q 7 and P x p and is given by
q 7 = arccos P q 7 · P x p | P q 7 | | P x p | .
Therefore, we have solved the inverse kinematics problem, where given a desired pose
x g , y g , z g , α g , β g , γ g ,
we find the appropriate joint angles in order for the end-effector of the 7-DoF robotic arm to move to that desired pose.

4. Results

Simulations

To demonstrate the effectiveness of the proposed method, several experiments were performed. One of them uses the time-dependent reference given by the desired position and attitude of the gripper at the hand:
x g = 0.1 0.08 cos ( 0.2 t ) , y g = 0.1 + 0.8 sin ( 0.2 t ) , z g = 0.35 ,
and the pitch, yaw, and roll are
α g = 0 , β g = π 2 , γ g = 0 ,
where the dimensions of the position are given in meters, and for the attitude, they are given in radians. The simulation was done using Clucalc [13,14], and the results of the joint angles are shown in Figure 8.
Finally, for the sake of comparison, we implemented our algorithm in C++ language and compared it with the state-of-the-art algorithms [15,16]. The benchmark was performed on a PC running Ubuntu 14.04-LTS with an Intel Core i5-3210M @ 2.50 GHz processor and 4 GB of RAM.
The test setup consisted of generating 1000 random poses composed of the position and orientation of the end-effector. The different poses served as input for the algorithm proposed in [15,16]. The arms from the Mex-One robot, REEM-C, and the PR2 were selected to test the different algorithms. The results are shown in Table 2.
The solve rate of our algorithm shows improvement compared to [15] and has similar performance as [16]. Nevertheless, our algorithm outperforms in the time for computing a solution compared to using inverse kinematics.

5. Real-Time Results

Several experiments were performed to demonstrate the effectiveness of the proposed method. As explained before, a simulation was done using the time-dependent reference given by (77). Note that all the position dimensions are in meters, and the orientation goals are in radians.
Using the pose reference, a simulation was done using Clucalc [13,14]; the joint values obtained from the simulation are shown in the Figure 8.
Finally, online implementation was done in a full-sized humanoid platform. Seven DoFs configure the humanoid arm, each with a Dynamixel series servomotor. Three printed fingers conform to the gripper, each wired to one DC motor. Composite images of the experiment are shown in the Figure 9. The complete video of an example of the experiments can be found in the Supplementary Materials. With this real-time experiment, we demonstrate that our algorithm can be implemented in robot platforms. First, we designed a desired trajectory for the end effector, a circle inside the plane formed by e 1 and e 2 , with different radius and a distance in e 3 direction such that it lies in the workspace of the robot arm. The home position of our arm is the same as presented in Figure 1, meaning the arm is fully stretched. Thus, we described the circle trajectory by restricting the orientation of the robot hand and moving the e 1 and e 2 coordinates according to the circle equation discretized up to a delta time of 0.1s. The inverse kinematics is computed at each time step, and the joint angles calculated are commanded to the Dynamixcel motors.

6. Conclusions

In this paper, a novel method to solve the inverse kinematics for seven degrees of freedom for a redundant robotic arm using the conformal geometric algebra framework is proposed. Taking advantage of geometric entities defined in this algebra, it was possible to find a solution to the problem without using forward kinematics, numerical solutions, or many matrix multiplications.
This property allowed us to decrease the amount of calculations needed to reach the desired goal. A comparison with the state-of-the-art algorithms was presented and demonstrated the superior performance of the algorithm discussed here.
As future work, the addition of geometric restrictions to avoid joint limits will be considered: including algorithms to avoid self-collision and for obstacle avoidance.
Moreover, an online implementation in a real robot and a complexity analysis of the proposed algorithm must be done.

Supplementary Materials

The following supporting information can be downloaded at: https://www.mdpi.com/article/10.3390/machines12010078/s1.

Author Contributions

Conceptualization, O.C.-E. and L.C.-M.; methodology, O.C.-E.; software, L.C.-M.; validation, O.C.-E., L.C.-M. and M.D.-R.; formal analysis, O.C.-E.; investigation, O.C.-E. and L.C.-M.; resources, M.D.-R.; data curation, L.C.-M.; writing—original draft preparation, O.C.-E., L.C.-M. and M.D.-R.; writing—review and editing, O.C.-E., L.C.-M. and M.D.-R.; visualization, O.C.-E., L.C.-M. and M.D.-R.; supervision, M.D.-R.; project administration, O.C.-E. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Data Availability Statement

The data presented in this study are available in the article.

Conflicts of Interest

Author Leobardo Campos-Macías was employed by the company Intel Corporation. The remaining authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.

References

  1. Campos-Macías, L.; Carbajal-Espinosa, O.; Loukianov, A.; Bayro-Corrochano, E. Inverse Kinematics for a 6-DOF Walking Humanoid Robot Leg. Adv. Appl. Clifford Algebr. 2017, 27, 581–597. [Google Scholar] [CrossRef]
  2. Gong, M.; Li, X.; Zhang, L. Analytical Inverse Kinematics and Self-Motion Application for 7-DOF Redundant Manipulator. IEEE Access 2019, 7, 18662–18674. [Google Scholar] [CrossRef]
  3. Liu, W.; Chen, D.; Steil, J. Analytical Inverse Kinematics Solver for Anthropomorphic 7-DOF Redundant Manipulators with Human-Like Configuration Constraints. J. Intell. Robot. Syst. 2017, 86, 63–79. [Google Scholar] [CrossRef]
  4. Li, S.; Wang, Z.; Zhang, Q.; Han, F. Solving Inverse Kinematics Model for 7-DoF Robot Arms Based on Space Vector. In Proceedings of the 2018 International Conference on Control and Robots (ICCR), Hong Kong, China, 15–17 September 2018; pp. 1–5. [Google Scholar] [CrossRef]
  5. Brahmi, B.; Saad, M.; Rahman, M.H.; Ochoa-Luna, C. Cartesian Trajectory Tracking of a 7-DOF Exoskeleton Robot Based on Human Inverse Kinematics. IEEE Trans. Syst. Man Cybern. Syst. 2019, 49, 600–611. [Google Scholar] [CrossRef]
  6. Zhou, D.; Ji, L.; Zhang, Q.; Wei, X. Practical analytical inverse kinematic approach for 7-DOF space manipulators with joint and attitude limits. Intell. Serv. Robot. 2015, 8, 215–224. [Google Scholar] [CrossRef]
  7. Shimizu, M.; Kakuya, H.; Yoon, W.K.; Kitagaki, K.; Kosuge, K. Analytical Inverse Kinematic Computation for 7-DOF Redundant Manipulators With Joint Limits and Its Application to Redundancy Resolution. IEEE Trans. Robot. 2008, 24, 1131–1142. [Google Scholar] [CrossRef]
  8. Yu, C.; Jin, M.; Liu, H. An analytical solution for inverse kinematic of 7-DOF redundant manipulators with offset-wrist. In Proceedings of the 2012 IEEE International Conference on Mechatronics and Automation, Chengdu, China, 5–8 August 2012; pp. 92–97. [Google Scholar]
  9. Colomé, A.; Torras, C. Redundant inverse kinematics: Experimental comparative review and two enhancements. In Proceedings of the 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, Algarve, Portugal, 7–12 October 2012; pp. 5333–5340. [Google Scholar]
  10. Wang, J.; Li, Y.; Zhao, X. Inverse Kinematics and Control of a 7-DOF Redundant Manipulator Based on the Closed-Loop Algorithm. Int. J. Adv. Robot. Syst. 2010, 7, 37. [Google Scholar] [CrossRef]
  11. Guo, D.; Li, A.; Cai, J.; Feng, Q.; Shi, Y. Inverse kinematics of redundant manipulators with guaranteed performance. Robotica 2022, 40, 170–190. [Google Scholar] [CrossRef]
  12. Carbajal-Espinosa, O.; Loukianov, A.; Bayro-Corrochano, E. Obstacle avoidance for a humanoid arm using conformal geometric algebra. In Proceedings of the 2010 10th IEEE-RAS International Conference on Humanoid Robots, Nashville, TN, USA, 6–8 December 2010; pp. 524–529. [Google Scholar]
  13. Perwass, C. Clucalc v6.2. 2010. Available online: http://www.clucalc.info/ (accessed on 22 September 2023).
  14. Perwass, C. Geometric Algebra with Applications in Engineering, 1st ed.; Springer Publishing Company, Incorporated: Berlin/Heidelberg, Germany, 2009. [Google Scholar]
  15. The Orocos Project. KDL. 2010. Available online: http://www.orocos.org/wiki/orocos/kdl-wiki/ (accessed on 1 August 2023).
  16. Beeson, P.; Ames, B. TRAC-IK: An open-source library for improved solving of generic inverse kinematics. In Proceedings of the 2015 IEEE-RAS 15th International Conference on Humanoid Robots (Humanoids), Seoul, Republic of Korea, 3–5 November 2015; pp. 928–935. [Google Scholar]
Figure 1. Initial configuration of the 7-DoF arm.
Figure 1. Initial configuration of the 7-DoF arm.
Machines 12 00078 g001
Figure 2. Geometric entities used to find x 4 .
Figure 2. Geometric entities used to find x 4 .
Machines 12 00078 g002
Figure 3. Intersections of geometric entities to calculate x 4 and all the possible positions for x 3 (which lies in a circle).
Figure 3. Intersections of geometric entities to calculate x 4 and all the possible positions for x 3 (which lies in a circle).
Machines 12 00078 g003
Figure 4. Intersection of the plane P a with Z to get the two possible positions of x 3 .
Figure 4. Intersection of the plane P a with Z to get the two possible positions of x 3 .
Machines 12 00078 g004
Figure 5. The lines and points defining the configuration that are needed in order to reach the desired pose.
Figure 5. The lines and points defining the configuration that are needed in order to reach the desired pose.
Machines 12 00078 g005
Figure 6. Geometric entities used in order to compute q 5 .
Figure 6. Geometric entities used in order to compute q 5 .
Machines 12 00078 g006
Figure 7. Geometric entities used in order to compute q 7 .
Figure 7. Geometric entities used in order to compute q 7 .
Machines 12 00078 g007
Figure 8. Inverse kinematics solution of a 7-DoF robotic arm.
Figure 8. Inverse kinematics solution of a 7-DoF robotic arm.
Machines 12 00078 g008
Figure 9. Experimental results of the inverse kinematic algorithm implemented in the Mex-One humanoid robot prototype.
Figure 9. Experimental results of the inverse kinematic algorithm implemented in the Mex-One humanoid robot prototype.
Machines 12 00078 g009
Table 1. Joint positions according to Figure 1.
Table 1. Joint positions according to Figure 1.
Reference Pointx, y, and z PositionDescription
x 1 e ( 0 ,   l w t ,   0 ) Center of the torso
x 2 e ( l t h ,   l w t ,   0 ) Shoulder initial position
x 30 e ( ( l t h + l 1 ) ,   l w t ,   0 ) Elbow initial position
x 40 e ( ( l t h + l 1 + l 2 ) ,   l w t ,   0 ) Wrist initial position
x 50 e ( ( l t h + l 1 + l 2 + l 3 ) ,   l w t ,   0 ) Gripper initial position
Table 2. A comparison with the state-of-the-art.
Table 2. A comparison with the state-of-the-art.
RobotPosition/Rotation ErrorKDLSolve Rate (%)Avg Time (ms)TRAC-IKSolve Rate (%)Avg Time (ms)FIKASolve Rate (%)Avg Time (ms)
Mex-One1 × 10 6 /1 × 10 6 79.81.5770498.90.8869494.90.14862
REEM-C1 × 10 6 /1 × 10 6 81.31.4764799.80.6692895.60.15064
PR21 × 10 6 /1 × 10 6 81.71.4698199.70.6815992.90.16407
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

Carbajal-Espinosa, O.; Campos-Macías, L.; Díaz-Rodriguez, M. FIKA: A Conformal Geometric Algebra Approach to a Fast Inverse Kinematics Algorithm for an Anthropomorphic Robotic Arm. Machines 2024, 12, 78. https://doi.org/10.3390/machines12010078

AMA Style

Carbajal-Espinosa O, Campos-Macías L, Díaz-Rodriguez M. FIKA: A Conformal Geometric Algebra Approach to a Fast Inverse Kinematics Algorithm for an Anthropomorphic Robotic Arm. Machines. 2024; 12(1):78. https://doi.org/10.3390/machines12010078

Chicago/Turabian Style

Carbajal-Espinosa, Oscar, Leobardo Campos-Macías, and Miriam Díaz-Rodriguez. 2024. "FIKA: A Conformal Geometric Algebra Approach to a Fast Inverse Kinematics Algorithm for an Anthropomorphic Robotic Arm" Machines 12, no. 1: 78. https://doi.org/10.3390/machines12010078

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