You are on page 1of 17

Adv. Appl.

Clifford Algebras

c 2016 Springer International Publishing Advances in
DOI 10.1007/s00006-016-0705-7 Applied Clifford Algebras

Inverse Kinematics for a 6-DOF Walking


Humanoid Robot Leg
L. Campos-Macı́as∗ , O. Carbajal-Espinosa, A. Loukianov
and E. Bayro-Corrochano

Abstract. This paper describes a novel method for solving the inverse
kinematics of a humanoid robot leg anthropomorphically configured
with 6 degrees of freedom using conformal geometric algebra. We have
used different geometric entities such as lines, planes, and spheres in
order to achieve the desired position and orientation of the body and
the foot, individually reconfiguring the amount of rotation for each joint.
The proposed method can be used in a future work to design obstacle
avoidance and self collision algorithms. The effectiveness of the proposed
algorithm is proved via practical experiments. Results indicate that the
proposed algorithm achieves the expected behavior.
Keywords. Inverse kinematics, Robotics, Bipedal walking, Conformal
geometric algebra, Clifford algebra.

1. Introduction
Humanoid robotics has been one of the most researched fields in the past
twenty years. This is because they are intended to be used in human societies
and are therefore required to have high mobility and dexterity in non con-
trolled environments. The applications of humanoid robots in our daily lives,
requires the adaptability of the bipedal platform to human environments, so
many efforts focus on the development of algorithms and control strategies
to imitate the dexterity, efficiency, stability, effectiveness, and flexibility of
human walking. There are different areas of research working with humanoid
robots; this paper presents a new method for obtaining the inverse kinematics
of a humanoid robot leg with six degrees of freedom (DoF). The reference to
obtain the inverse kinematics is a desired stance of the hip and foot. Using
this reference and all the benefits that the geometric algebra can provide, as
the manipulation of points, spheres, lines, and planes, which can be trans-
formed via rotors, translators, and motors defined in this algebra. Since the
∗ Corresponding author.
L. Campos et al. Adv. Appl. Clifford Algebras

solution of the system is open, there is an infinite number of solutions that


can be found for a given stance and these can result in a unreachable con-
figuration or a self collision pose; a closed solution of the inverse kinematics
is important to avoid unwanted poses. Using the advantages that the con-
formal geometric algebra provides, some geometric restrictions are imposed
upon the movement of the humanoid leg, resembling the physical possibilities
of a human leg, and it is also possible to reconfigure one or more joints of the
humanoid leg without changing the entire attitude of the leg.
The inverse kinematics of a 6 DoFs humanoid robot leg is not a recent
discussion and previous work has been carried out [6]. presents two methods
to attack the problem. One is by numerical approximation and the other by
projecting the Leg in planes to define geometric relations and subsequently
solve by law of sines. These methods have the disadvantage that for reconfig-
uration all the angles have to be recomputed and it is not a good approach
to consider if self collision is discussed. Concerning methods involving Geo-
metric Algebra, we refer to [8], even the procedure is similar, as they posit
more geometric entities than those presented in this proposal. Moreover they
do not take into account constraints defined to avoid self collision.
This paper is organized as follows: a brief introduction to geometric
conformal algebra, the description and creation of geometric entities, as well
as the rotors, translators, and rotors are described in Sect. 2. The procedure
followed to obtain the equations that link the desired pose with the solution of
the inverse kinematics is given in Sect. 3. Practical results with the proposed
method are given in Sect. 4. Finally, conclusions are included in Sect. 5.

2. Geometric Algebra
One of the main characteristics of the Clifford algebra (Geometric Algebra), is
that it allows representing entities of higher order with a compact symbology
with lineal operations. The lines, planes, or spheres are examples of entities of
higher order and are represented as unique elements of the Clifford Algebra.
In this section, the most basic concepts of Geometric Algebra are summarized.
In this paper, we will specify the geometric algebra Gn by Gp,q,r , where
p, q, and r represent the number of basis vectors which square to 1, −1 and
0, respectively, and fulfill n = p + q + r. The entire basis of Gn is defined as
the ordered set
{1}, {ei }, {ei ∧ ej }, {ei ∧ ej ∧ ek }, . . . , {e1 ∧ e2 ∧ . . . ∧ en }, (2.1)
where ei denotes the basis vector i, and has the following properties:


⎪ 1 f or i = j ∈ 1, . . . , p

−1 f or i = j ∈ p + 1, . . . , p + q
ei ej =

⎪ 0 f or i = j ∈ p + q + 1, . . . , p + q + r.

ei ∧ ej f or i = j
The geometric algebra of a Euclidean 3D space G3 has a base in points:
ergo, it works with a vector which represents points in the space, while the
+
motor algebra G3,0,1 works with a base of lines. Using the Minkoswski plane
Inverse Kinematics

[1] to generate null vectors, the Euclidean space Rn can be expanded to


1,1
R n+1,1
=R n
R .
This expansion of the Euclidean space results in the Conformal Geomet-
ric Algebra (CGA), Gn+1,1 . This new algebra has the characteristic of taking
the sphere as a unit of calculation, allowing work with other geometric prim-
itives (lines, points, planes, circles, etc.)
The Conformal Geometric Algebra, G4,1 = G4,1,0 , can be used to treat
conformal geometry in a very elegant way, representing the Euclidean vector
space R3 in R4,1 . For a more complete treatment, the reader is referred to
the texts by [1,5].
2.1. Conformal Geometric Algebra
CGA allows us to represent the Euclidean vector space R3 in R4,1 . This space
has an orthonormal vector basis given by {ei } and eij = ei ∧ ej , which are
bivectorial bases and a bivector basis e23 , e31 , and e12 .
The unit Euclidean pseudo-scalar Ie := e1 ∧ e2 ∧ e3 , a pseudo-scalar
I = Ie E, and the bivector or Minkowski plane E := e4 ∧ e5 = e4 e5 are used
for computing Euclidean and conformal duals of multivectors.
A null can be defined as
1
e∞ = e4 + e5 , e0 = (e4 − e5 ), (2.2)
2
where e∞ is the point at infinity and e0 is the origin point. These two null
vectors satisfy
e2∞ = e20 = 0, e∞ · e0 = 1.
For a more complete treatment, the reader is referred to the texts by
[1,5,7].
2.2. The Point
The vector xe ∈ R3 , representing a point after a conformal mapping, is rewrit-
ten as
1
xc = xe + x2e e∞ + e0 . (2.3)
2
Given two conformal points xc and yc , we can define
xc − yc = (yc ∧ xc ) · e∞ (2.4)
and, consequently, the following equality:
(xc ∧ yc + yc ∧ zc ) · e∞ = (xc ∧ zc ) · e∞ (2.5)
is fulfilled as well.
2.3. Spheres and Planes
The equation of a sphere of radius ρ centered at point pe ∈ R3 can be written
as (xe − pe )2 = ρ2 . Since xc · yc = − 12 (xe − ye )2 , where xe and ye are the
Euclidean components, and xc · pc = − 12 ρ2 , we can rewrite the above formula
in terms of homogeneous coordinates. Since xc · e∞ = −1, we can factor the
expression above to  
1
xc · pc − ρ2 e∞ = 0. (2.6)
2
L. Campos et al. Adv. Appl. Clifford Algebras

This equation corresponds to what is termed the inner product null


space (IPNS) representation, which finally yields the simplified equation for
the sphere as s = pc − 12 ρ2 e∞ . Note from this equation that a point is only a
sphere with a zero radius. Alternatively, the dual of the sphere is represented
as a 4-vector s∗ = sI. The advantage of the dual form is that the sphere can
be directly computed from four points as
s∗ = xc1 ∧ xc2 ∧ xc3 ∧ xc4 . (2.7)
If we replace one of these points for the point at infinity, we obtain the
equation of a 3D plane:
π ∗ = xc1 ∧ xc2 ∧ xc3 ∧ e∞ . (2.8)
We put π in standard IPNS form as follows:
π = Iπ ∗ = n + de∞ , (2.9)
where n is the normal vector and d represents the Hesse distance for the 3D
space.

2.4. Circles and Lines


A circle z can be regarded as the intersection of two spheres s1 and s2 as
z = (s1 ∧ s2 ) in IPNS. The dual form of the circle can be expressed by three
points lying on the circle, i.e.,
z ∗ = xc1 ∧ xc2 ∧ xc3 . (2.10)
As in the case of planes, lines can be defined by circles passing through
the point at infinity as
L∗ = xc1 ∧ xc2 ∧ e∞ . (2.11)
The standard IPNS form of the line can be expressed as
L = nIe − e∞ mIe , (2.12)
where n and m represent the line orientation and moment, respectively. The
line in the IPNS standard form is a bivector representing the six Plücker
coordinates.
All these entities are useful for representing the parts of a robotic manip-
ulator; for example, the line is used to express the action axes of each DoF
of the robot.

2.5. Rigid Transformations


Rigid transformations can be expressed in conformal geometric algebra by
carrying out successive plane reflections.
The translation to a vector a ∈ R3 of conformal geometric entities can
be done by carrying out two reflections in parallel planes π1 and π2 . That is,
a , where
Ta QT
1 a
Ta = (n + de∞ )n = 1 + ae∞ = e 2 e∞ (2.13)
2
Inverse Kinematics

The rotation is the product of two reflections at nonparallel planes which


pass through the origin. That is, Rθ QR θ , where
   
θ θ θ
Rθ = cos − sin l = e− 2 l (2.14)
2 2
with l = n2 ∧ n1 , and θ twice the angle between the planes π2 and π1 .
The screw motion, called motor, related to an arbitrary axis L, is M =

T RT and is applied in the same way as a rotor, Mθ QM θ , where


   
θ θ
Mθ = T RT
= cos
θ
− sin L = e− 2 L (2.15)
2 2
2.6. Direct Kinematics
The direct kinematics of a manipulator consists of calculating the position
and orientation of the end-effector of a serial robot using the values of the joint
variables. If the joint variable is a translation, then Mi = Ti = exp−dne∞ for
−θLr
a prismatic joint and a rotation Mi = Ri = exp 2 for a revolute joint. The
direct kinematics for a serial robot is a successive multiplication of motors
given by

Q = M (q)1 . . . M (q)n QM 
(q)n . . . M (q)
n 1
n
= M (q)i Q 
M (q)i=n−i+1
i=1 i=1
T
for a given angular or translation position vector q = [q1 . . . qn ] .

3. Inverse Kinematics
The kinematic configuration of the lower limbs is one of the main factors for
imitating human movements. The humanoid leg is composed of two princi-
pal links. The dimensions of these two links determine the performance of
the bipedal walk, such as the length of a step and the unreachable poses
of the robot. The articulation of the human hip is a perfect ball-and-socket
joint, and is reproduced in this bipedal humanoid robot with three concurrent
revolute joints, which are successively orthogonal. The human knee can be
modeled with a single revolute joint; thus, only one motor is placed in that
joint. Finally, the rotations in a human ankle and foot are complex, but note
that two rotational axes are functionally required in the ankle, so a universal
joint is used. This configuration is basic for emulating human movements [3]
and is what is used in this paper.

A 6 DoF robotic leg (Fig. 1) is used in this work, and all joints are
actuated. The motor actuator of each joint has an embedded controller, which
is used to move each link. This actuator has an internal closed loop, with a
PID controller. This paper is focused on the calculation of the references of
each joint and not on the control of each motor to reach the desired reference.
The tuning of the internal PID is given by the motor manufacturer.
L. Campos et al. Adv. Appl. Clifford Algebras

Figure 1. Structure of a 6 DoF bipedal robot leg

The inverse kinematics of both legs are obtained with the same algo-
rithm and the proper references. For that reason, the formulation of only one
leg is presented. Usually, the bipedal walking algorithm of a humanoid robot
works with a desired trajectory of the body and the feet; this trajectory
is obtained considering the center of mass stability of the robot. Different
methods are used to design these trajectories. In this work, we used a ZPM
algorithm [4] to generate the proper trajectories for bipedal walking. Using
these preestablished trajectories and the proposed algorithm, the joint val-
ues of the 3 DoF hip, the 1 DoF knee, and the 2 DoF ankle are calculated.
There are different methods for solving the inverse kinematics problem, for
example, analytical and numerical methods [6], but these algorithms may
have singularities, also, different frame coordinate systems are needed. Tak-
ing these problems into account, we propose a new method using conformal
geometric algebra.
The desired position and attitude of the body are given as follows:
T
Bodyposition = [xb , yb , zb ] ,
T
Bodyorientation = [αb , βb , γb ] ,
for the x, y, and z position, and the pitch, yaw, and roll with respect to the
world coordinate system. Likewise, the pose of the leg end effector (foot) is
given by
T
Legposition = [xL , yL , zL ]
T
Legorientation = [αL , βL , γL ] .
It is supposed that the position and orientation of the leg are given in
terms of a fixed coordinate system in the body, and for this work we suppose
that this coordinate system is also the world coordinate system. Thus, in
order to simplify the equations, D is defined as the distance between the
Inverse Kinematics

body and the hip joint, and A and B are defined as the upper and lower leg
length, as shown in Fig. 1 [6].
We use three rotors to define the orientation of the leg, given the desired
values for pitch, yaw, and roll, respectively. These motors are defined as
1
RxL = e− 2 αL e23 (3.1)
− 12 βL e31
R yL = e
1
RzL = e− 2 γL e12
and a general rotor describing the entire desired attitude of the leg is given
as
RL = RxL RyL RzL . (3.2)
Then, with the desired Euclidean coordinates, a translator is defined as:
1
TL = e− 2 (xL e1 +yL e2 +zL e3 )e∞ . (3.3)
Using Eqs. (3.2) and (3.3), a motor describing the desired pose of the
leg, in terms of the body frame, is given by
ML = T L R L . (3.4)
A conformal point that describes the fixed frame in the center of the
body, another which describes the initial position of the hip joint using the
known length D, and one last that shows the initial position of the ankle
joint using these A and B constant, are defined as follows:
1
xw = 0e1 + 0e2 + 0e3 + (0e1 + 0e2 + 0e3 )2 e∞ + e0
2
1
xh = −De1 + 0e2 + 0e3 + (−De1 + 0e2 + 0e3 )2 e∞ + e0 (3.5)
2
1
xfw = −De1 − (A + B)e2 + 0e3 + (−De1 − (A + B)e2 + 0e3 )2 e∞ + e0 .
2
In order to find the pose of the ankle joint, the motor of the leg is applied
to Eq. (3.5) as follows:
xf = ML (xfw )M̃L . (3.6)
Two spheres are defined with a center at the points of Eqs (3.5) and
(3.6), and a radius equal to A and B, respectively, as
1
s1 = xh − A2 e∞ (3.7)
2
1
s2 = xf − B 2 e∞
2
and then the wedge product is applied between the two spheres of Eq. (3.7).
The result of the wedge product is a circle, as shown in Fig. 2, and is given
by
Z = s1 ∧ s2 . (3.8)
All possible solutions for the position of the knee of the robot lie in this circle.
In a future work, this result will be able to define a rotor that can be used
to calculate another solution for the inverse kinematics, for example, in the
L. Campos et al. Adv. Appl. Clifford Algebras

Figure 2. Intersection of spheres s1 and s2

case of self collision; and an example of the use of this circle for reconfiguring
a robotic arm is explained in [2].
A line is defined in the e3 coordinate and transformed with the motor
of the leg, in order to find the desired ankle joint, as follows:
L3 = ML (e0 ∧ e3 ∧ e∞ )M̃L . (3.9)

A line normal to the circle of Eq. (3.8) is generated in the form


Lc = Z ∧ e∞ (3.10)

Then, a plane which intersects the circle of Eq. (3.8) in the largest
distance from the center to the edge is formed using Eqs. (3.9) and (3.10)
P = (Lc (e0 ∧ e∞ )) ∧ L3 . (3.11)
This defines two intersection points that represent the intersection of the two
geometric entities of Eqs. (3.8) and (3.11), which are given mathematically
by
pp = Z ∧ (P − I). (3.12)
Equation (3.11) for a particular choice of parameters returns zero which
is helpful, as it denotes an infeasible configuration for the humanoid robot
leg. Moreover, this operation returns to zero when the line Lc of Eq. (3.10)
is parallel to line L3 of Eq. (3.9); this will happen when the reference of
the body must be at the same position in e2 axis as the foot, an obviously
infeasible solution. Figure 3 expresses this statement clearly.
Hence, two possible configurations for the knee joint pose are found, as
shown in Fig. 4. In order to achieve anthropomorphic design, the restriction
of taking the positive point is set. The point pair of the two possible positions
of the knee can be divided as
Inverse Kinematics

Figure 3. Representation of two solutions. On the left,


image a typical condition is shown where plane P has posi-
tive values. On the right, an infeasible configuration with P
approaching to zero

Figure 4. Representation of the plane created by Eq. (3.11)


and the intersection within the circle which leads to the pair
of points defined by Eq. (3.13)

ppd = pp − I (3.13)

ppd + ppd · ppd
xk = .
ppd · e∞
Hitherto, the points xh , xk , and xf , for the desired pose of the body
and the foot have been found. With these three lines representing the links,
distance between each joint are defined using Eqs. (3.5) and (3.13), and are
given by
LinkD = e∞ ∧ xw ∧ xh (3.14)
LinkA = e∞ ∧ xh ∧ xk
LinkB = e∞ ∧ xk ∧ xf ,
as shown in Fig. 5.
Finally, the values of each joint can be calculated with the defined geo-
metric entities. The angle between lines LinkA and LinkB of Eq. (3.14) is
L. Campos et al. Adv. Appl. Clifford Algebras

Figure 5. Lines representing the link distance

the joint value of the knee and is given by


√ 
LinkA · LinkB
q4 = arccos . (3.15)
|LinkA ||LinkB |
To find the joint value of the roll of the spherical joint at the hip, a
reference plane is defined as follows:
P1r = e3 ∧ xh ∧ xk ∧ e∞ , (3.16)
and a parallel plane to the frontal plane of the humanoid robot is given by
P1f = xw ∧ xh ∧ xk ∧ e∞ . (3.17)
Using Eqs. (3.16) and (3.17), the joint value q1 is calculated as

π P 1r · P 1f
q1 = − arccos . (3.18)
2 |P1r ||P1f |

To calculate the yaw of the spherical joint in the hip, the angle between
the links described by the lines LinkD and LinkA of Eq. (3.14) is calculated
by
√ 
π LinkD · LinkA
q2 = − arccos . (3.19)
2 |LinkD ||LinkA |
As regards the universal joint at the ankle, the angle of yaw rotation is
given by the angle between the lines of Eqs. (3.9) and (3.14).
√ 
π LinkB · L3
q5 = − arccos . (3.20)
2 |LinkB ||L3 |
This can be clearly appreciated in Fig. 6.
After that, the angle rotation of the roll of the ankle is calculated, defin-
ing a line parallel to the sagittal plane of the humanoid robot and transformed
by the motor defined in Eq. (3.4)
L31 = ML (e0 ∧ e1 ∧ e∞ )M̃L . (3.21)
Inverse Kinematics

Figure 6. Relation to obtain the amount of rotation of q4 ,


q2 , and q5 joints

Figure 7. Relation to obtain the amount of rotation of q1


and q6 joints

Using this line, the angle is calculated as



LinkB · L31 π
q6 = arccos − . (3.22)
|LinkB ||L31 | 2

The two left angles are represented in Fig. 7.


Finally, the last angle, which describes the value of the pitch of the
spherical joint at the hip, is calculated. First, several rotors and translators
are defined using the home position of the robot and the information obtained
thus far. This will give the virtual position of the ankle.
L. Campos et al. Adv. Appl. Clifford Algebras

Figure 8. Geometric constraints formed to obtain the angle


of joint q3

These are given in the following form:


1
Th31 = e− 2 (xh )e∞
1
Th32 = e− 2 (De1 −Ae2 +0e3 )e∞
1
Rh31 = e− 2 (q1 )e23 (3.23)
− 12 (q2 )e31
Rh32 = e
1
Rh33 = e− 2 (0)e12
1
Rh34 = e− 2 (q4 )e31 .
With Eq. (3.23), a general motor to describe the virtual pose of the
ankle is calculated as
Mh = (Th31 (Rh31 Rh32 Rh33 )T̃h31 )(Th32 (Rh34 )T̃h32 ). (3.24)
Then, with the initial condition of the ankle of Eq. (3.5), the virtual
point that gives the pose of the ankle is calculated as
xvf = Mh (xfw )M̃h . (3.25)
Furthermore, in order to make a robust calculation, a virtual plane is
also defined as follows:
Pvf = e∞ ∧ xw ∧ xvf ∧ xk . (3.26)
After that, a plane is defined to impose a geometric constraint to the
solution, defined as
Pcf = e∞ ∧ xh ∧ xk ∧ xf . (3.27)
Then, we define the distance between the virtual point and the restric-
tion plane, as
(xvf ∧ Pcf )/IE , (3.28)
as shown in Fig. 8.
As Fig. 9 shows, if the distance between the virtual point of the ankle
described in Eq. (3.26) and the restriction plane in Eq. (3.27) is greater than
or equal to zero, the joint value is given by
Inverse Kinematics

q3

Figure 9. Relation to obtain the amount of rotation of q3


(LinkB ∧ xh ) · Pvf
q3 = arccos ; (3.29)
|(LinkB ∧ xh )||Pvf |

otherwise, the solution for q3 is calculated as



(LinkB ∧ xh ) · Pvf
q3 = − arccos . (3.30)
|(LinkB ∧ xh )||Pvf |

The planes and lines defined in the previous equations can be oriented
and translated depending on the needs of the humanoid robot. Defining them
with a different pose to achieve a different configuration helps to avoid obsta-
cles. In regard to preventing self collisions, the geometric restrictions imposed
in Eqs. (3.13) and (3.28) help to restrict the movement of the links. More-
over, the radius of spheres (3.7) facilitates obtaining configurations achievable
within the work space of the bipedal humanoid robot.
These equations can only be applied to a robot that has the same config-
uration as in Fig. 1, i.e., if the robot does not have three joint axes intersecting
at one point, a different algorithm will be required.

4. Applications
The verification of the proposed method to solve the inverse kinematics of a
bipedal robot was tested via simulations and in real time. This was applied
to the MexOne humanoid robot in the Automatic Control Laboratory at
The Center for Research and Advanced Studies of the National Polytechnic
Institute—Guadalajara Campus, shown in Fig. 10. The constants in meters
of the humanoid used to test the inverse kinematics algorithm is also shown.
L. Campos et al. Adv. Appl. Clifford Algebras

Figure 10. Humanoid bipedal robot prototype MexOne


and the leg constants
Body Trajectory in e1

0.1
xb [m]

−0.1
0 1 2 3 4 5 6 7 8 9 10
Body Trajectory in e3

0.04
zb [m]

0.02

0
0 1 2 3 4 5 6 7 8 9 10
Foot Trajectory in e3

0.04
zf [m]

0.02

0
0 1 2 3 4 5 6 7 8 9 10
Foot Trajectory in e2

0.03
yf [m]

0.02
0.01
0
0 1 2 3 4 5 6 7 8 9 10
Time [sec]

Figure 11. Reference trajectories


Inverse Kinematics

q1 q2

−0.25 0.1
−0.3
rad

0
−0.35
−0.1
−0.4
0 2 4 6 8 10 0 2 4 6 8 10

q3 q4
0.01

0.005 0.9
rad

0 0.8
−0.005
0.7
−0.01
0 2 4 6 8 10 0 2 4 6 8 10

q5 q6

−0.4
0.1
−0.45
rad

0
−0.5
−0.1
−0.55
0 2 4 6 8 10 0 2 4 6 8 10
Time [sec] Time [sec]

Figure 12. Left leg joint trajectories

The reference trajectories were calculated for execute two steps, with 5
centimeters length in e3 axis, and 2 centimeters of height in e2 axis. Fig. 11
shows xb , zb , zL , and yL . The reference yb , is considered to be zero, xL is
considered as the D constant, and αb , βb , γb , αL , βL , γL are fixed at zero for
the left leg. These trajectory references are obtained as [4].
In Fig. 12, the joint values of each joint can be observed, in order to
follow the body and leg trajectories obtained by the method described in this
work. Finally, a real time implementation of the experiment is shown in Fig.
13.

5. Conclusions
A novel algorithm for inverse kinematics using conformal geometric algebra
was proposed, proving the benefits of using geometric entities such as planes
and spheres in order to modify the amount of rotation of each joint separately
L. Campos et al. Adv. Appl. Clifford Algebras

Figure 13. Real time experiment

without reconfiguring the entire leg of the humanoid, facilitating obstacle


avoidance and preventing self collisions. The algorithm was tested with a
simple two-step routine with a humanoid robot prototype.

References
[1] Bayro-Corrochano, E.: Geometric Computing: For Wavelet Transforms, Robot
Vision, Learning, Control and Action. Springer, New York (2010)
Inverse Kinematics

[2] Carbajal-Espinosa, O., Loukianov, A., Bayro-Corrochano, E.: Obstacle avoid-


ance for a humanoid arm using conformal geometric algebra. In: 2010 10th IEEE-
RAS International Conference on Humanoid Robots (Humanoids), Nashville,
TN, pp. 524–529 (2010)
[3] Chevallereau, C., Bessonnet, G., Abba, G., Aoustin, Y.: Bipedal Robots: Mod-
eling, Design and Walking Synthesis. Wiley, New York (2013)
[4] Harada, K., Kajita, S., Kaneko, K., Hirukawa, H.: An analytical method for real-
time gait planning for humanoid robots. Int. J. Hum. Robot. 3(01), 1–19 (2006)
[5] Hestenes, D., Sobczyk, G.: Clifford Algebra to Geometric Calculus: a Unified
Language for Mathematics and Physics, vol. 5. Springer, New York (1987)
[6] Kajita, S.: Introduction to Humanoid Robotics. Springer, New York (2014)
[7] Perwass, C.: Geometric Algebra with Applications in Engineering. Springer,
New York (2009)
[8] Pitt, J., Hildenbrand, D., Stelzer, M., Koch, A.: Inverse kinematics of a
humanoid robot based on conformal geometric algebra using optimized code
generation. In: 8th IEEE-RAS International Conference on Humanoid Robots.
Humanoids 2008, Daejeon, Korea, pp. 681–686 (2008)

L. Campos-Macı́as, A. Loukianov and E. Bayro-Corrochano


CINVESTAV-IPN, Unidad Guadalajara
Av. del Bosque 1145. Col. El Bajio
C.P. 45019 Zapopan
Jalisco
Mexico
e-mail: lecampos@gdl.cinvestav.mx

A. Loukianov
e-mail: louk@gdl.cinvestav.mx

E. Bayro-Corrochano
e-mail: edb@gdl.cinvestav.mx

O. Carbajal-Espinosa
Instituto Tecnológico y de Estudios Superiores de Monterrey
Av. General Ramón Corona 2514, Nuevo México
C.P. 45138 Zapopan
Jalisco
México
e-mail: oscar.carbajal@itesm.mx

Received: January 30, 2016.


Accepted: July 1, 2016.

You might also like