A serial robot is an open kinematic chain made up of rigid bodies, called links, connected by kinematic pairs, called joints, that provide relative motion between consecutive links. The point at the end of the last link is known as the end-effector. Only two types of joints are considered throughout this work: revolute (prismatic) joints, that perform a rotational (translational) motion around (along) a given axis.
The end-effector position and orientation (also known as the pose) is expressed as a differentiable function , where denotes the space of joint poses, known as the configuration space of the robot, while denotes the space of all positions and orientations of the end-effector with respect to a reference frame, known as the operational space of the robot. We say that the workspace of the robot, denoted by , is the volume of the operational space that is reachable by the robot’s end-effector. We attach a frame to each joint of the robot so that it describes the relative position and orientation of the joint. The relations between consecutive joint frames can be expressed by homogeneous matrices based on the Denavit-Hartenberg convention DenavitHartenberg65 . This convention consists of the use of four parameters, the D-H parameters (figure 1): one acting as a joint variable – angle or displacement , depending on the nature of the joint – and the other three acting as constants – length , angle and or depending on which one describes the joint variable Siciliano08a ; SpongHutchinsonVidyasagar06 . In general, if the nature of the joint is not specified, its joint variable is denoted by
. The vector of all joint variables is denoted byand is known as the configuration. Therefore, the configuration space is the space of joint configurations. A robot is said to have degrees of freedom (DoF) if its configuration can be minimally specified by variables. For a serial robot, the number and nature of the joints determine the number of DoF. For the task of positioning and orientating its end-effector in the space, the manipulators with more than 6 DoF are called redundant, while the rest are non-redundant.
Therefore, we can associate a homogeneous matrix with each joint frame such that it relates such frame to the preceding one, i.e., joint frame . The first joint frame is related to the fixed reference frame. For each configuration , can be represented using these homogeneous matrices as follows:
where denotes the rotation matrix describing the end-effector orientation with respect to the fixed reference frame and is the vector that describes the end-effector position with respect to that reference frame DenavitHartenberg65 ; Siciliano08a ; SpongHutchinsonVidyasagar06 . An important class of serial robots are those with a spherical wrist. For these robots, the axes of their last three joints intersect at a common point, known as the wrist center point, or are parallel (the intersection point and, hence, the wrist center point, is the point at the infinity). In this context, the end-effector position, , can be moved to the wrist center point by a fixed translation and, thus, the last three joints would only contribute to the orientation of the end-effector.
This paper is focused on one of the most important problems in robot kinematics, namely the inverse kinematic problem. It consists of recovering the joint variables, i.e., the configuration, given a target end-effector pose. This configuration may not be unique, since non-redundant manipulators have up to sixteen different configurations for the same end-effector pose Pieper68 , while for redundant manipulators this number is unbounded Siciliano08a ; SpongHutchinsonVidyasagar06 . The opposite problem is known as the forward kinematic problem and consists of obtaining the pose of the end-effector given the value of the joint variables.
The inverse kinematic problem plays a major role in robotics, specially in robot kinematics, motion planning and control theory. There are different methods used to solve it and they are usually categorized in two groups:
Closed-form methods: all the solutions are expressed in terms of the entries of
. These methods strongly depend on the geometry of the manipulator and, therefore, are not sufficiently general. However, it is clear that they have advantages over the numerical methods such as, for instance, lower computational cost and less execution time. Additionally, they give all the solutions for a given end-effector’s pose. Some closed-form methods include strategies based on machine learningJiokoukouabon2020 , matrix manipulations Pieper68 ; Paul81 , the definition of the arm angle parameter JungYooKooSongWon11 ; YuJinLiu12 and different geometric methods HuangJiang13 ; LiuWangSunChangMaGeGao15 ; WeiJianHeWang14 .
Numerical methods: a good approximation of one of the solutions is derived iteratively. Although these methods usually work for any manipulator, they suffer from several drawbacks such as, for example, high computational cost and execution time, existence of local minima and numerical errors. Moreover, only one of the sixteen (infinite) possible solutions is obtained for non-redundant (redundant) manipulators. The most common numerical approaches are the Jacobian-based methods AristidouLasenby2018 ; Buss09 ; DeLucaOriolo91 ; LauWai02 ; WangSugaIwataSugano12 ; Wampler86 .
Among all the methods presented in this section, the closed-form methods are the most suitable for serial robots since they allow us to obtain the set of all solutions with a small computational cost. This paper proposes a formulation of the inverse kinematic problem based on conformal geometric algebra. This formulation allows us to avoid the use of matrices and, due to its inherent geometric nature, provides a geometrical description of the problem with which the inverse kinematics can be solved easily. These properties are exploited in this work to completely solve the inverse kinematics of serial robots with 6 DoF and spherical wrist. For these manipulators, this problem can be decoupled into two subproblems: the position problem and the orientation problem. For the former, a classification of the different combinations of prismatic and revolute joints that describe the position part of the manipulator is made and a geometric strategy is developed to solve each one of them, while, for the latter, we split the rotor that defines the target orientation into three simpler rotors, each one of them depending on a unique joint variable. Finally, the inverse kinematics of redundant serial robots with 7 DoF and spherical wrist is solved by extending the geometric solutions obtained in the non-redundant case.
The rest of the paper is organized as follows: Section 2 reviews the related work and presents a basic introduction to geometric algebra. In Section 3, a description of the forward kinematics of an arbitrary serial robot based on conformal geometric algebra is given. The formulation of the inverse kinematic problem and its solution are developed in Sections 4 and 5. In Section 6, the inverse kinematics of 7 DoF redundant serial robots is solved by extending the strategies introduced in Section 6. Finally, Section 7 presents the conclusions.
2 Related work and mathematical preliminaries
2.1 Related work
As mentioned in the introduction, some closed-form methods are usually difficult to formulate and solve for non-redundant robots even if they have a spherical wrist. For instance, the Pieper method Pieper68 allows us to obtain the solutions of the inverse kinematics as the solutions of a set of polynomials and, for a general serial robot with a spherical wrist, at least one of these polynomials is of degree four, which is, in general, difficult to solve.
The objective is to isolate those non-linear equations that contain just one joint variable. However, even if we find those equations, solving them analytically is, in general, difficult. Similarly, the formulation and implementation of geometric methods is also difficult. If, for instance, the circle intersection of a plane with a sphere is considered, then a system of two equations (one of them non-linear) must be solved. In this context, geometric algebra turns to be very useful. As stated in the introduction, geometric algebra and, in particular, the conformal model of three-dimensional Euclidean space, provides a framework for modeling the kinematics and dynamics of rigid bodies that avoids the use of matrices. In addition, the geometric entities such as points, lines, planes or spheres can be represented with elements of the algebra.
Regarding the contributions using this framework, in Bayro-CorrochanoKahler01 ; Selig01 analogous versions to the Paul and Pieper methods are presented. In both works, an easy and compact formulation of the problem is presented using the language provided by geometric algebra. However, they have the same drawbacks as the original methods. The approach presented in AristidouLasenby11
develops a fast and heuristic method that solves the inverse kinematics of arbitrary redundant serial robots. Nevertheless, the orientation problem is not treated and, since it is a numerical method, only one solution is obtained. Similarly, the approach presented inHildenbrandZamoraCorrochano08 only solves the position problem for an anthropomorphic manipulator.
Other approaches are focused on the development of geometric strategies based on conformal geometric algebra for particular robots. For example, in HrdinaNavratVasik16b , a kinematic model of a planar redundant manipulator is developed, while in KimJeongPark15a the inverse kinematics and the singularity problem are formulated and solved for a class of parallel robots. A 5 DoF serial robot is considered in ZamoraCorrochano04 , where the geometric strategy followed is the same as in HildenbrandZamoraCorrochano08 . There, different geometric objects are defined. These objects, as well as the relations between them, are described using conformal geometric algebra. The angles between such geometric entities correspond to the unknown joint variables. Finally, the approach developed in Campos-MaciasCarbajal-EspinosaLoukianovCorrochano17 solves the inverse kinematics of a 6 DoF humanoid leg. In TordalHovlandTyapin16 , the authors solve geometrically the position problem of the 6 DoF Comau Smart-5 NJ-110, while in KleppeEgeland16 , particular solutions of the inverse kinematics of the UR5 and Agilus KR6 R900 are given. All of these works are based on the strategies introduced in HildenbrandZamoraCorrochano08 ; ZamoraCorrochano04 .
In this work, an approach to solve the inverse kinematics of arbitrary 6 and 7 DoF serial robots with a spherical wrist is presented. This approach is not focused on a particular robot but applies to an entire class of manipulators. The position problem is solved geometrically by extending the particular contributions of HildenbrandZamoraCorrochano08 ; TordalHovlandTyapin16 ; LavorXamboZaplana18 ; Hugo2020 ; Zaplana20 , while a novel method is developed for solving the orientation problem. This method involves splitting the rotor that defines the target orientation into three rotors, so that each one depends on just one joint variable. The main advantage of this strategy lies in the fact that this approach is still a closed-form method, i.e., all the solutions are obtained as analytical expressions in terms of the end-effector pose. In addition, we are dealing with arbitrary serial robots of 6 and 7 DoF, not just a particular robotic geometry. Finally, due to the simplicity of the problem formulation and the geometric nature of conformal geometric algebra, such expressions are obtained easily than with other closed-form approaches (such as, for instance, the ones reviewed here).
2.2 Mathematical preliminaries
Geometric algebra provides strong advantages with respect to more common approaches such as, for instance, that geometric objects and Euclidean transformations live in the same algebra, that the expressions from the algebra are coordinate free and that it is well adapted to deal with more general fields in science and engineering. In particular, it provides a compact and neat formulation of robot kinematics and its main problems. Throughout this section, a brief overview of both geometric algebra and conformal geometric algebra is presented. A more detailed treatment of the subject can be found in DoranLasenby03 ; Dorst-Fontijne-Mann-2007 ; LasenbyLasenbyWareham04 .
2.2.1 Geometric algebra
Let us consider the real vector space with orthonormal basis . The geometric algebra of , denoted by , is a vector space where the operations defined in , i.e., the addition and multiplication by scalars, are extended naturally. An additional operation, the geometric product, is defined on the algebra and, acting on vectors is defined as:
where denotes the inner or dot product and denotes the outer product.
The outer product of two vectors is a new element of , which is termed a bivector, is said to have grade two and is denoted by . By extension, the outer product of a bivector with a vector is known as a trivector and is denoted by . Clearly, trivectors have grade three. This can be generalized to an arbitrary dimension. Thus,
denotes an -blade, an element of with grade .
A bivector can be interpreted as the oriented area defined by the vectors and . Thus, has opposite orientation and, from that, the anticommutativity of the outer product can be deduced. Analogously, a trivector is interpreted as the oriented volume defined by its three composing vectors. Since the volume generated by is the same as the volume generated by , it is also deduced that the outer product is associative. Therefore, -blades can be denoted simply as:
Linear combinations of -blades are known as -vectors, while linear combinations of -vectors, for , are called multivectors.
Applied to the basis elements , the geometric product acts as follows:
Then, can be expanded to a basis of that contains, for each , grade elements:
The grade element is known as the pseudoscalar and is usually denoted by . Pseudoscalars allow us to define one of the main operators of geometric algebra, the dual operator. Its action over an -vector is:
where is an -vector. In particular, we have that for two multivectors and , the following identity holds:
For , the geometric algebra has the following basis:
In , bivectors play an important role since they can be used to describe spatial rotations. Indeed, in geometric algebra, rotations are described using rotors. If a point is rotated by an angle around an axis , the rotor defining such a rotation is:
where is the unit bivector representing the plane normal to . The rotated point is calculated by sandwiching between and its reverse :
and . Furthermore, equation (13) can be extended to arbitrary multivectors.
It will be seen in the following subsection that translations can also be described by rotors in the conformal geometric algebra, a five-dimensional representation of three-dimensional Euclidean space. In addition, general geometric entities (such as points, lines, planes, circles, etc.) and the relations between them are also easily described in conformal geometric algebra.
2.2.2 Conformal geometric algebra
The conformal model extends the real vector space by adding two extra basis vectors, and , with the property:
The enlarged vector space is usually denoted by . In addition, these two extra vectors allow us to define two null vectors, i.e., vectors whose square vanishes:
where is associated with the point at infinity and with the origin. However, in order to avoid confusion with the number of DoF of the robot, denoted by , an alternative yet accepted notation will be used throughout the rest of the paper:
where, again, is associated with the point at infinity and with the origin,
Thus, the conformal geometric algebra of is denoted by and can be seen as a geometric algebra of higher dimension (specifically, the geometric algebra of ). Now, the two null vectors and allow an intuitive description of translations, that are formulated through translators as follows:
where the translation is performed in the direction of . Since , translators can be seen as rotors in which the bivector squares to zero. Thus, the translation of an element is done as with spatial rotations:
One of the most important advantages of conformal geometric algebra is that it provides a homogeneous model for the -dimensional Euclidean space. In particular, every point is associated with a null vector of (including the origin and the point at the infinity). This is done via the Hestenes’ embedding:
where is said to be the null vector representation of . Now, we can easily deduce the following relation Dorst-Fontijne-Mann-2007 :
where are the null vector representations of and denotes the Euclidean distance. As a consequence, the distance between two null vectors of can be defined via the Euclidean distance:
The relation (22) gives us a way to define geometric objects as elements of . Let be a geometric object, then is said to be the inner representation of if for every point , . Now, using the relation (10), we have that so is also a representation of . In this case, we say that is the outer representation of and, in order to avoid confusion, we will denote it by .
Now, for two different geometric objects and with outer (inner) representations and ( and ), we define its meet or intersection as the multivector
Analogously, the angle defined by and is computed as follows:
To describe the geometric objects we are going to use throughout this work, let be four different points with null vector representation . Then:
(with ) is a bivector and the outer representation of the pair of points and .
(with ) is a trivector and the outer representation of the line with direction to . Its inner representation is the bivector .
(with ) is a trivector and the outer representation of a circle passing through the points and . Its inner representation is the bivector , where and are the inner representations of the plane and sphere whose intersection defines the circle.
(with ) is a 4-vector and the outer representation of a plane passing through the points and . Its inner representation is the vector , where denotes the vector normal to the plane and , its orthogonal distance to the origin.
is a 4-vector and the outer representation of a sphere passing through the points and . Its inner representation is the vector , where is the null vector representation of the center of the sphere and , its radius.
3 A conformal geometric algebra formulation of forward kinematics
The conformal model of the three-dimensional Euclidean space provides an elegant and compact way of describing the forward kinematics. Contrary to the classical approach, where we use the homogeneous transformation matrices constructed with the D-H parameters, this approach is entirely based on the use of rotors.
As stated in section 1, each joint frame is described with respect to the preceding one, i.e., the -th joint frame is constructed from the -th joint frame by the successive application of rigid motions (translations and rotations). Since both are described in by rotors, for each joint , the following rotors are defined:
where (resp. ) denotes the three basis elements of the -th (resp. -th) joint frame. Then, two main rotors can be constructed from the previous ones:
Notice that rotor contains both joint variables, while is a constant rotor. represents a screw motion around the -th joint axis, , while represents a screw motion around the axis of the -th joint frame.
Now, we can formulate the forward kinematics of a serial robot of DoF as follows:
where () is the null vector representation of either the end-effector (reference frame) position vector or the vectors defining the end-effector (reference frame) orientation. We can compactly rewrite identity (28) as follows:
where and . Basically, what we are doing is to transform the fixed reference frame (usually placed at the base of the robot) into the end-effector frame according to configuration .
4 Pose representation in conformal geometric algebra
If the desired end-effector pose is represented in matrix form as:
then it is possible to construct a rotor that also represents such a pose. Indeed, given the matrix representation of the reference frame:
we can compute the rotor that transforms into . First, the position vector defines the rotor:
that applied to give us , i.e., the null vector representation of . Now, to compute the rotor that relates the orientations determined by the rotations matrices and , we notice that both rotation matrices can be seen as two sets of orthogonal vectors in , namely and . Then, the problem is reduced to find a rotor transforming one set of orthogonal vectors into another. In (DoranLasenby03, , pag. 103), a simple way of computing such rotor is presented. It involves the use of the reciprocal frame. Associated with any arbitrary set of orthogonal vectors , there exists another set of orthogonal vectors, denoted by and defined by the property:
where denotes the Kronecker . Such a set is said to be the reciprocal frame of .
Now, following (DoranLasenby03, , pag. 103), the following formula is established:
As stated in section 1, for any serial robot with a spherical wrist, the target position can be moved to the wrist center point by a fixed transformation. Then, the new target position is and thus, it can be assured that the first three joints contribute to the position and orientation, while the last three only contribute to the orientation. This allows us to decouple the inverse kinematics into the position and the orientation subproblems.
5 Solutions for non-redundant robots with spherical wrist
In this section, the position and orientation problems for a 6 DoF serial robot with a spherical wrist are solved. Again, for the position problem different geometric strategies are defined depending on the nature and disposition of the joints along the kinematic chain. For the orientation problem, the rotor is split into three different rotors from which the joint variables can be obtained.
5.1 Position problem
Four different combinations of prismatic and revolute joints that constitute the position part of the robot are analysed (figure 2). For each of them, a geometric strategy is developed. It consists of computing the null vector representation of some auxiliary points placed at each joint to recover the corresponding joint variables as the angle or displacement between two geometric objects defined with such points. For each case, the point at the origin, , is denoted by and is placed at the base of the robot. Similarly, the target position is expressed as a null vector, , obtained through the Hestenes’ embedding (21). Finally, depending on the information available, for a given geometric object it could be convenient to use its inner representation or its outer representation . Clearly, a geometric object described with one of these two representations can be expressed in the other representation by using the dual operator (as explained in section 2.2.2):
5.1.1 Three prismatic joints (P+P+P)
A scheme of the position part of a serial robot with three prismatic joints is depicted in figure 1(a). First of all, the case without offsets between consecutive joints is considered, i.e., the axes of each pair of consecutive joints intersect. Given the first translation axis , two of the rotors defined in (26) can be used to obtain the joint axes and as follows:
The joint axis together with the target position defines a line whose inner representation is:
Now, a plane containing the joint axes and and passing through the point is also defined so its inner representation is:
where denotes the cross product between three-dimensional vectors.
Since the end-effector position is not restricted to a fixed plane, there are not parallel prismatic joint axes. Moreover, and, thus, the intersection of the line and plane represented by and is non-empty:
where is a bivector (as deduced from identity (24)). Hence, it represents a pair of points in conformal geometric algebra. However, since the intersection between a line and a plane is a single point, the bivector is of the form:
for a null point , that can be extracted from as explained in (Aristidou10, , pags. 24-26). With this null point, the following lines are defined through their inner representations:
where is the vector whose null vector representation is and that is recovered with the projection , that is, the inverse of the Hestenes’ embedding (21). In addition, if and are the outer representations of the two lines and plane defined before, and and, since the joint axes and are not parallel, they have non-empty intersection. However, this intersection is a special case. Indeed
is a grade one element, i.e., a vector. Non-null vectors do not represent any geometric object in conformal geometric algebra. Therefore, we need an alternative method for obtaining the intersection point. In this paper, we follow the same technique as in (Aristidou10, , pag. 31) to compute .
Finally, with the null vectors and , the joint variables are recovered using the distance (23):
Now, the case where there is an offset between two consecutive joints is studied. Offsets are always modeled by the four D-H parameters , , and . If joint is revolute (prismatic), its joint variable can have an offset as well (aligned with the joint axis by definition). In that case, we write (), where () denotes the real joint variable and (), the length of the offset.
Let us suppose, without loss of generality, that there exists an offset of fixed length between the first two joints (the other cases are analogous). Clearly, such offset is either aligned with the common perpendicular between the first and second joint axes and has length or can be decomposed into two components (as depicted in figure 2(a)): one aligned with such a common perpendicular (with length ) and the other one aligned with the first joint axis (with length ). Now, since the plane represented by is defined with the joint axes and and, in this case, offsets do not change the direction of the joint axes, is obtained from equation (40) as in the case without offsets. With , the inner representation of a line is determined as in (42). Then, this line is transformed as follows:
where and are defined as in (26). Now, since the lines represented by and belong to the same plane, they have non-empty intersection and . This completes the solution for this case.
5.1.2 Two prismatic joints and one revolute (P+P+R)
The position part of a serial robot with two prismatic joints and one revolute is depicted in figure 1(b). There are different combinations of two prismatic joints with one revolute but most of them are treated in a similar way. Only the most relevant cases are fully developed here. Again, the case without offsets is considered first.
Let us suppose that the first two joints are prismatic and the third one, revolute. As in the preceding case, given , the joint axes and can be calculated as in (37). Now, the inner representation of the plane that contains and the joint axes and is defined as in (39) and denoted by . Since the robot has 6 DoF, its end-effector position is not restricted to a fixed plane and, thus, there exists an offset at the end of the third link, i.e., between the third link and the set of joints that forms the spherical wrist. In addition, cannot be orthogonal to the plane represented by (if it was, would always belong to a fixed plane parallel to the plane represented by ).
Since the last three joints of the robot do not contribute to the position of the end-effector, they are not considered in the position problem. Therefore, this offset can be seen as a displacement defined in the – plane of the third joint frame, i.e., a displacement of length in the direction. Then, it is possible to translate to compensate the offset (as depicted in figure 2(b)):
where is defined as in (26). Now, the null point belongs to the intersection of two planes with one sphere. One of these planes is represented by , while the other is defined as follows:
Additionally, the inner representation of the sphere is defined as:
where denotes the length of the third link and , the distance between the origin of the third frame and measured in the direction of the axis. Since the plane represented by does not contain , we translate it in the direction:
The intersection of these geometric objects is graphically depicted in figure 4 and is computed as:
where is a bivector. Again, this bivector represents a pair of points in the conformal geometric algebra so:
for some null points and . Clearly, if and belong to the workspace of the robot, then there are two possible null points , namely and . Therefore, we have two possible valid positions for the null point lying between the second and the third joint. As we will see, this means that, in this case, there are more than one set of solutions. Each one of these two null points defines a line whose inner representation, () if () is used, is computed as in (42). Similarly, the inner representation of another line is calculated as in (42). Now, two distinct null points can be obtained. Indeed, for , .
Finally, each pair of null points and allows us to compute the outer representation of an extra plane that is used to calculate the joint variable :
As stated in section 1, serial robots with 6 DoF and spherical wrist have up to eight distinct solutions for a given end-effector pose. Since the orientation problem always has two different solutions for each solution of the position problem, there is a maximum of four distinct solutions for the position problem. This maximum is reached only in two cases: (1) when the three joints that constitute the position part of the robot are revolute and (2) when the two of the three joints that constitute the position part of the robot are revolute and the other one is prismatic . Therefore, this case shows how the geometric strategy introduced in this paper gives all the solutions for the inverse kinematics and, thus, it can be considered a closed-form method. However, from now on, in order to simplify the notation for the remaining cases, we are going to consider just one of the two points that can be extracted from a given bivector and, hence, only one of the maximum of four different sets of solutions will be fully developed.
Offsets between consecutive joints are treated analogously as in the previous case. The main difference relies on the geometric object considered:
If the offset is located between the first and the second joint, then can be derived as in the case without offsets, while is computed as the intersection , where is defined as in (45).
If the offset is located between the second and the third joint, then , where is a component of the offset aligned with the axis. Now, is extracted from:
where is the inner representation of the sphere represented by after compensating the offset and are defined as in (26). Since the remaining geometric reasoning does not change, is obtained as in the case without offsets. This situation highlights another advantage of conformal geometric algebra: rotors can be applied to any geometric object which simplifies the formulation and the solution of the problem.
Another relevant case is when the first joint is revolute, while the second and third ones are prismatic. This case is solved in a similar way, but it is interesting to point out some details. First, the null point is obtained as the translation of along an amount equal to the length of the first link, i.e., . Indeed:
with defined as in (26). Now, we define a plane such as its outer representation is:
Clearly, the first joint variable is obtained as . Since the second joint is prismatic, is one of the known D-H parameters and, hence, the joint axes and can be computed as in (37). Now, is derived as , where and are defined as in (38) and (42). Finally, the joint variables and are determined as in (44).
5.1.3 Two revolute joints and one prismatic (R+R+P)
A scheme of the position part of a serial robot with two revolute joints and one prismatic joint is depicted in figure 1(c). As in the preceding case, there are different subcases that can be treated similarly. Because of that, only the most relevant cases are fully developed here.
First, let us consider the case where the first two joints are revolute and the third one, prismatic. In addition, for this first case, we suppose that there are no offsets between consecutive joints. The null point is computed as in (56). Now, the remaining part of the position part of the robot is restricted to the plane determined by the joint axes and . Furthermore, given the length of the second link, , and the angle between the joint axes and , , a triangle as the one depicted in figure 5 is defined. Using the law of cosines, can be easily obtained from the quadratic equation:
Now, since , equation (58) has always two distinct real solutions. Therefore, we have three different cases: (1) there are two distinct positive solutions; (2) there are two distinct negative solutions and (3) there is one positive and one negative solutions. It is clear that, since the displacements measured by the D-H parameter are always positive, the case with two distinct negative solutions is undesirable. This case only holds when
But, however, since , if , then and, thus, . Nevertheless, for those values of , by definition of the D-H parameters. This is clearly the opposite of the first inequality of (59), which means that only the cases (1) and (3) are possible. In addition, if there is a fixed offset aligned with the axis, then can be decomposed as , where, as usual, denotes the length of this offset. It is straightforward to see that, also in this case, the joint variable can be obtained from (58).
Finally, in order to obtain , we define two distinct spheres and one plane through their inner and outer representations:
where two different null points can be extracted from . Since we have already computed , we use the null points and to derive the remaining joint variables, namely and . The following auxiliary geometric objects are defined for that purpose:
If the revolute joints have parallel joint axes:
If the revolute joints have not parallel joint axes:
Now, for the parallel case, the joint variables are:
while for the other case, they are:
Offsets are treated analogously to the preceding cases. Two different situations arise:
If the offset is placed between the second and the third joints, then we translate the null point as follows:
where and are defined as in (26). Now, the rest of the reasoning is as in the case without offsets. The null point is calculated as in (56) and, hence, a triangle such as the one depicted in figure 5 can be defined using, instead of , .
If the offset is placed between the first and the second joints, we can simply translate the null point in the direction and amount equal to , i.e., to compute , where is defined as in (26). The remaining steps are as in the case without offsets, using instead of .
Finally, let us consider another subcase: the first joint is revolute, the second joint is prismatic and the third joint is again revolute. The null points and are obtained as in the preceding case. To calculate the null point , the geometric reasoning used for the case where there are two prismatic joints followed by one revolute is applied. Therefore, the planes and the sphere represented by and are defined as in (39),(47),(48) and (53). Finally, the joint variables are obtained as in the above-mentioned case.
5.1.4 Three revolute joints (R+R+R)
A scheme of the position part of a serial robot with three revolute joints is depicted in figure 1(d). First, the case without offsets is developed.
As in the preceding case, the null point is computed as , where is defined as in (26). Once has been obtained, the null point is computed by intersecting two spheres and one plane whose outer and inner representations are:
The intersection of these three geometric objects is, again, a bivector:
where, as in the preceding cases, two different points can be extracted from , each one leading to a different solution.
Now, two distinct cases are considered to obtain the joint variables: two joint axes are parallel or no joint axes are parallel. The case where the three joint axes are parallel is not considered because it will mean that the position problem is a two-dimensional problem instead of a three-dimensional one, i.e., that the robot has less than 6 DoF. Hence:
If there are two joints whose joint axes are parallel, then let us suppose that the two parallel joint axes are the last two (the other cases are analogous). Then, the outer representation of the geometric objects required for computing the joint variables are defined as:
and the joint variables are: