According to subsection 2.1, the solution to the
inverse kinematics depends on two binary variables
σ
1
, σ
2
∈ { −1, 1} when the desired orientation satis-
fies r
2
33
6= 1. Each combination of these binary vari-
ables will yield a different feasible region R
f
, which
corresponds to a different branch of the solution to
the inverse kinematics. Thus, when r
2
33
6= 1, the so-
lution to the inverse kinematics will have four dif-
ferent branches, identified by the four possible com-
binations (σ
1
, σ
2
) of these binary variables: (1, 1),
(1, −1), (−1, 1), (−1, −1). If the desired orienta-
tion satisfies r
2
33
= 1, then according to subsection 2.2
only the binary variable σ
2
is involved in the solu-
tion of the inverse kinematics. Thus, the inverse kine-
matic problem will only have two different branches
in that case, one branch corresponding to σ
2
= 1 and
the other branch corresponding to σ
2
= −1.
3 OBTAINING THE WORKSPACE
USING THE INVERSE
KINEMATICS
In this section, we will describe how the solution to
the inverse kinematic problem, described in Section
2, can be used to obtain the workspace of the serial-
parallel robot studied in this paper, including its ex-
ternal boundaries and internal barriers.
According to the previous section, the solution to
the inverse kinematic problem of the serial-parallel
robot studied in this paper can be summarized as fol-
lows. Given a desired position and orientation be-
tween the feet of the robot, encoded by the homoge-
neous transformation matrix T
A
B
defined in Eq. (1),
the solution to the inverse kinematics depends on r
33
:
• If the desired orientation satisfies r
2
33
6= 1, then the
solution to the inverse kinematics can be repre-
sented by a feasible region R
f
in the ϕ
1B
-y
B
plane,
such that any point of this region corresponds to a
posture that allows the robot to attain the desired
position and orientation T
A
B
satisfying the joint
limits of the linear actuators and guaranteeing that
the legs of the robot do not interfere. Moreover,
there exist four different branches for the solution,
i.e. four different feasible regions R
f
correspond-
ing to the four possible combinations of the binary
variables σ
1
and σ
2
.
• If the desired orientation satisfies r
2
33
= 1, the so-
lution to the inverse kinematics can be represented
by a feasible region R
f
in the ϕ
1B
-ϕ
2B
-y
B
space,
such that any point of R
f
yields a posture that al-
lows the robot to attain the desired position and
orientation T
A
B
satisfying the joint limits of the
linear actuators and guaranteeing that the legs of
the robot do not interfere. In this case, there exist
two different branches for the solution, i.e. two
different feasible regions R
f
, one region per each
value of the binary variable σ
2
.
Once the solution to the inverse kinematics is
available (including all the branches of this solution),
the workspace boundaries and barriers can be ob-
tained using a discretization algorithm explained next.
The workspace of this robot can be defined as the
set of positions and orientations that the foot B can at-
tain with respect to the foot A. Such a workspace is a
six-dimensional set, since the position and orientation
of the foot B relative to the foot A can be represented
by three translations p = [p
x
, p
y
, p
z
]
T
and three rota-
tions r = [α, β, γ]
T
(where α, β and γ are Euler angles).
To calculate the workspace, the six-dimensional space
of the variables {p
x
, p
y
, p
z
, α, β, γ} is discretized into a
regular grid of nodes. For example, we may approx-
imate each axis of this six-dimensional space by n
d
nodes regularly distributed between two limits, which
yields an overall grid of n
6
d
nodes. Then, for each node
of this grid, the inverse kinematic problem if solved to
check if the node is attainable by each branch of the
solution of the inverse kinematics.
For each branch i of the solution to the inverse
kinematics, we create a list WS
i
of the nodes that
can be reached using that branch. After the algorithm
has checked all the nodes of the grid, the list WS
i
is
an approximation of the workspace associated to the
branch i, since it contains all the positions and orien-
tations that can be reached with that branch. Then,
the boundaries of the workspace associated to the i-th
branch can be approximated by the nodes contained in
WS
i
which have at least one unreachable neighboring
node (i.e., a neighboring node not contained in WS
i
).
After obtaining the boundaries of the workspaces as-
sociated to the different branches, the boundaries of
all the branches can be joined to obtain the bound-
aries and barriers of the complete workspace.
To determine if an arbitrary node of the grid is at-
tainable using a given branch i of the inverse kinemat-
ics, the feasible region R
f
associated to that branch is
calculated using the Monte Carlo algorithm described
in (Peidro et al., 2015). If the region R
f
is empty, then
it is considered that the node is not attainable by the i-
th branch, and the node is not included in the list WS
i
(see Figure 3). The mentioned Monte Carlo algorithm
generates the region R
f
by randomly sampling points
in the ϕ
1B
-y
B
plane (or in the ϕ
1B
-ϕ
2B
-y
B
space, if
r
2
33
= 1). If the posture generated by each randomly
sampled point satisfies the joint limits of the linear ac-
tuators, and if the legs do not interfere, then that point
is stored as a point of the feasible region R
f
. In this