Keywords

1 Introduction

Many human-made vertical structures require periodic maintenance and inspection tasks. For example, the glass facades of skyscrapers must be cleaned, and the welded unions in the metallic skeletons of the buildings must be checked. Tasks like these are dangerous for human operators, who must work in environments difficult to access and are exposed to risks such as falling from height, contamination (e.g. inspections in nuclear or chemical facilities) or electrocution (e.g. maintenance of power transmission lines). To eliminate these risks, during the last two decades many researchers have been investigating the possibility of automating the execution of these tasks using climbing robots. Reference [11] presents an exhaustive analysis of the applications and design of climbing robots, as well as a comprehensive review of the locomotion and adhesion technologies.

Three-dimensional (3D) truss structures are present in many vertical structures such as bridges, towers and skeletons of buildings. These structures are typically constituted by a network of beams connected at structural nodes, and a high degree of mobility is required to explore them. Climbing robots for 3D trusses can be classified into two main types [13]: continuous-motion and step-by-step robots. Continuous-motion robots are faster, use wheels, and employ magnetism or friction to adhere to the structure [3, 14]. However, they usually have more difficulties to negotiate obstacles and their wheels may slip. Step-by-step robots have two grippers connected by a kinematic chain which has some degrees of freedom (DOF). Their name reflects their locomotion method: in each motion cycle, one gripper is fixed to the structure, whereas the kinematic chain moves the other gripper to the next attachment point of the structure, where it will be fixed. Then, the previously fixed gripper is released and a new motion cycle begins. During each motion cycle, these robots are equivalent to typical robot manipulators. Hence, they have a higher mobility that facilitates the avoidance of obstacles, but they are heavier, slower, and more complex.

The architecture of the kinematic chain of step-by-step robots can be serial, parallel, or hybrid. Serial architectures have larger workspaces than parallel ones, but they are less rigid and have a limited payload. The serial architectures have been the most explored ones in step-by-step climbing robots, with many different designs proposed by different authors. For example, [5] presents a 6-DOF robot to explore 3D metallic structures. Since the robot is powered by a battery, the movements are optimized to reduce the energy consumption and increase its autonomy. Another 4-DOF serial climbing robot is presented in [13]. Other authors propose robots inspired by inchworms, with 5 and 8 DOF [8, 12]. Reference [10] presents a similar modular robot whose number of DOF can be increased connecting more modules in series. Finally, [16] presents 3-DOF robots that can individually explore 3D trusses or can be combined with other robots to form more complex kinematic chains with increased maneuverability.

Parallel climbing robots have also been studied. These architectures offer a higher payload-to-weight ratio than serial robots, but their workspace is more limited. In [2], the authors propose using a Gough-Stewart platform for climbing truss structures, pipelines and palm trees. The robot adheres to the structure using grippers or embracing it with its annular platforms.

Finally, hybrid climbing robots are composed of some serially connected parallel mechanisms, and they have the advantages of both architectures: high payload, maneuverability, and stiffness. A hybrid robot for climbing 3D structures is proposed in [15], where the authors combine a 3-RPR parallel robot with a rotation module connected in series. Another hybrid robot is proposed in [7]. In this case, the robot is biped and each leg is the serial combination of two 3-RPS parallel robots. Hence, the complete robot has 12 DOF.

This chapter presents a novel 10-DOF hybrid robot for climbing 3D truss structures. The robot is biped and each leg is the serial combination of two parallel mechanisms. The design of the robot makes it especially suitable to maneuver in 3D truss structures and perform transitions between planes with different orientations. In this chapter, we solve the forward kinematic problem of this robot. Also, we analyze a simplified case of the inverse kinematic problem in which the robot adopts planar and symmetric postures. As the simulations show, these postures suffice for exploring 3D structures. Finally, we study the workspace of the robot to assess the feasibility of exploring 3D structures using the planar and symmetric postures when the conditions of the problem (design parameters of the robot, initial position, etc.) change.

This chapter is organized as follows. The architecture of the robot is described in Sect. 2. Next, the forward kinematic problem is solved in Sect. 3. In Sect. 4, a simplified yet useful version of the inverse kinematic problem is solved. Then, Sect. 5 presents a tool that simulates the forward kinematics of the robot. This tool is used to demonstrate the execution of some example trajectories in a 3D structure. Section 6 analyzes the workspace of the robot to further study the usefulness of the aforementioned simplified inverse kinematic problem. Finally, the conclusions are exposed in Sect. 7.

Fig. 1
figure 1

a 3D model of the climbing robot. b A parallel module

2 Description of the Robot

Figure 1a shows a 3D model of the biped climbing robot. The robot has two identical legs (A and B) connected to the hip through revolute joints driven by motors (angles \(\theta _A\) and \(\theta _B\)). Each leg has three links: a core link and two platforms. The lower platform is the foot of the leg and carries the gripper that fixes the robot to the structure (the grippers are not considered in the kinematic analysis presented in this chapter). The upper platform is connected to the hip through the aforementioned revolute joint. Each platform is connected to the core link by means of two prismatic actuators in parallel and a passive slider.

Fig. 2
figure 2

Kinematics of a generic leg \(j\in \left\{ A,B\right\} \)

The mechanism composed of the core link, one platform, and the two prismatic actuators that connect these two elements, is a closed-loop linkage that will be called hereafter “parallel module”. The parallel modules are planar mechanisms that can be represented schematically as shown in Fig. 1b. Hence, each leg is the serial combination of the parallel modules 1 (which is connected to the foot) and 2 (which is connected to the hip). The prismatic actuators of each parallel module lie in opposite sides of the plane \(\varPi _j\), which is one of the planes of symmetry of the core link of the leg j (see the side view in Fig. 1a). This is indicated with dashed lines in Fig. 2.

Figure 1a also shows some reference frames attached to different parts of the robot. In this chapter, the X, Y, and Z axes of reference frames will be represented in red, green, and blue colors, respectively. The frames \(H_A\) and \(H_B\) are fixed to the hip of the robot, whereas the frames A and B are respectively attached to the feet of the legs A and B.

The robot has 10 DOF: the rotation angles \(\theta _A\) and \(\theta _B\), and the four prismatic actuators of each leg. In the next sections, the forward and inverse kinematic problems of the robot will be analyzed. After that, we will simulate the forward kinematics to demonstrate its ability to explore 3D structures.

3 Forward Kinematics

In this section, the forward kinematic problem (FKP) of the robot is solved. The problem considered here consists in calculating the position and orientation of one foot with respect to the other foot when the joint coordinates are known: the angles \(\theta _A\) and \(\theta _B\) and the lengths \((l_ ij ,r_ ij )\) of the linear actuators of the parallel modules (\(i\in \left\{ 1,2\right\} \), \(j\in \left\{ A,B\right\} \)). First, the forward kinematics of the parallel modules is analyzed.

3.1 FKP of the Parallel Modules

Figure 1b shows the i-th parallel module of the leg j (\(i\in \left\{ 1,2\right\} \), \(j\in \left\{ A,B\right\} \)). A parallel module is a closed-loop planar mechanism composed of a mobile platform connected to a base through two prismatic actuators with lengths \(l_ ij \) and \(r_ ij \). The platform is constrained to only translate vertically and rotate. The forward kinematics consists in calculating the position \(y_ ij \) and the orientation \(\varphi _ ij \) of the mobile platform in terms of \(l_ ij \) and \(r_ ij \). According to Fig. 1b, the relationship between \((l_ ij ,r_ ij )\) and \((y_ ij ,\varphi _ ij )\) is:

$$\begin{aligned} (p\cos \varphi _ ij -b)^2+(y_ ij +p\sin \varphi _ ij )^2&= r_ ij ^2 \end{aligned}$$
(1)
$$\begin{aligned} (p\cos \varphi _ ij -b)^2+(y_ ij -p\sin \varphi _ ij )^2&= l_ ij ^2 \end{aligned}$$
(2)

These equations can be combined to obtain an equivalent system. Adding together Eqs. (1) and (2) yields Eq. (3), whereas subtracting Eqs. (2) from (1) results in Eq. (4):

$$\begin{aligned} 4bp\cos \varphi _ ij&= 2y_ ij ^2+2b^2+2p^2-l_ ij ^2-r_ ij ^2 \end{aligned}$$
(3)
$$\begin{aligned} 4y_ ij p\sin \varphi _ ij&= r_ ij ^2 - l_ ij ^2 \end{aligned}$$
(4)

Solving \(\cos \varphi _ ij \) from Eq. (3) gives:

$$\begin{aligned} \cos \varphi _ ij = \frac{2y_ ij ^2+2b^2+2p^2-l_ ij ^2-r_ ij ^2}{4bp} \end{aligned}$$
(5)

Squaring Eq. (4):

$$\begin{aligned} 16y_ ij ^2p^2(1-\cos ^2\varphi _ ij ) = (r_ ij ^2 - l_ ij ^2)^2 \end{aligned}$$
(6)

Finally, substituting Eqs. (5) into (6) yields a cubic equation in \(\varUpsilon _ ij =y_ ij ^2\):

$$\begin{aligned} \varUpsilon _ ij ^3+k_2^ ij \varUpsilon _ ij ^2+k_1^ ij \varUpsilon _ ij +k_0^ ij =0 \end{aligned}$$
(7)

where:

$$\begin{aligned} k_2^ ij&= 2b^2+2p^2-l_ ij ^2-r_ ij ^2 \end{aligned}$$
(8)
$$\begin{aligned} k_1^ ij&= \left[ (b+p)^2-\frac{l_ ij ^2+r_ ij ^2}{2}\right] \left[ (b-p)^2-\frac{l_ ij ^2+r_ ij ^2}{2}\right] \end{aligned}$$
(9)
$$\begin{aligned} k_0^ ij&= b^2(l_ ij +r_ ij )^2(l_ ij -r_ ij )^2/4 \end{aligned}$$
(10)

Equation (7) always has three roots, two of which may be complex. For a given strictly positive root \(\varUpsilon _ ij \) of Eq. (7), two solutions are obtained for \(y_ ij = \pm \sqrt{\varUpsilon _ ij }\). For each of these two values of \(y_ ij \), \(\cos \varphi _ ij \) is calculated from Eq. (5), whereas \(\sin \varphi _ ij \) is obtained from Eq. (4):

$$\begin{aligned} \sin \varphi _ ij = \frac{r_ ij ^2 - l_ ij ^2}{4y_ ij p} \end{aligned}$$
(11)

Once \(\cos \varphi _ ij \) and \(\sin \varphi _ ij \) are known, \(\varphi _ ij \) is unequivocally determined in \(\left( -\pi ,\pi \right] \). If \(\varUpsilon _ ij =0\), then \(y_ ij =0\) and \(\cos \varphi _ ij \) is calculated using Eq. (5). However, \(\sin \varphi _ ij \) cannot be calculated from Eq. (11) since \(y_ ij =0\). Instead, \(\sin \varphi _ ij \) is calculated as follows:

$$\begin{aligned} \sin \varphi _ ij = \pm \sqrt{1-\cos ^2\varphi _ ij } \end{aligned}$$
(12)

obtaining two solutions. It is shown in [9], using Sturm’s Theorem, that Eq. (7) cannot have more than two non-negative roots. Since each non-negative root of Eq. (7) yields two different pairs \((y_ ij ,\varphi _ ij )\), the FKP of each parallel module has four solutions at most.

Note that swapping the values of \(r_ ij \) and \(l_ ij \) neither affects Eq. (7) nor Eq. (5), but it changes the sign of \(\sin \varphi _ ij \) in Eq. (11). Hence, swapping \(r_ ij \) and \(l_ ij \) changes the sign of \(\varphi _ ij \), leaving \(y_ ij \) unchanged. This can be observed in Fig. 1b, where swapping \(r_ ij \) and \(l_ ij \) is equivalent to rotating the figure \(\pi \text{ rad }\) about the vertical Y axis. This fact will be exploited in Sect. 4 to analyze the inverse kinematics.

3.2 FKP of the Complete Robot

The forward kinematics of the complete robot consists in calculating the position and orientation of one foot with respect to the other foot when the ten joint coordinates are known. The problem will be solved using Homogeneous Transformation Matrices (HTMs). An HTM has the following form [4]:

$$\begin{aligned} \mathbf {T}_{m/n} = \left[ \begin{array}{c c} \mathbf {R}_{m/n} &{} \mathbf {t}_{m/n} \\ \mathbf {0}_{1\times 3} &{} 1 \end{array}\right] \end{aligned}$$
(13)

where \(\mathbf {0}_{1\times 3}=\left[ 0,0,0\right] \). The matrix \(\mathbf {T}_{m/n}\) encodes the position and orientation of a frame m with respect to another frame n. Indeed, \(\mathbf {R}_{m/n}\in \mathbb {R}^{3\times 3}\) is a rotation matrix whose columns are the vectors of the frame m expressed in the basis formed by the vectors of the frame n, whereas \(\mathbf {t}_{m/n}\in \mathbb {R}^{3\times 1}\) is the position of the origin of the frame m in coordinates of the frame n.

The forward kinematics of one leg can be easily solved using HTMs. Figure 2 represents a generic leg \(j\in \left\{ A,B\right\} \). Each leg has two parallel modules whose bases are attached to the core link. The platform of the parallel module 1 is the foot of the leg, whereas the platform of the parallel module 2 is connected to the hip of the robot by means of a revolute joint. The variables \((y_{1j}, \varphi _{1j}, y_{2j}, \varphi _{2j})\) are obtained from \((l_{1j},r_{1j}, l_{2j}, r_{2j})\) as explained in Sect. 3.1. All the reference frames of Fig. 2 are contained in the plane \(\varPi _j\), which is one of the planes of symmetry of the core link of the leg j (see Fig. 1a). The transformation between the frame j (fixed to the foot) and the frame \(F_j\) (fixed to the core link) is:

$$\begin{aligned} \mathbf {T}_{F_j/j} = \left[ \begin{array}{c c c c} \cos \varphi _{1j} &{} \sin \varphi _{1j} &{} 0 &{} y_{1j}\sin \varphi _{1j} \\ -\sin \varphi _{1j} &{} \cos \varphi _{1j} &{} 0 &{} y_{1j}\cos \varphi _{1j} \\ 0 &{} 0 &{} 1 &{} 0 \\ 0 &{} 0 &{} 0 &{} 1 \end{array}\right] \end{aligned}$$
(14)

Similarly, the transformation between the frame \(G_j\) (attached to the platform of the parallel module 2) and the frame \(F_j\) is:

$$\begin{aligned} \mathbf {T}_{G_j/F_j} = \left[ \begin{array}{c c c c} \cos \varphi _{2j} &{} -\sin \varphi _{2j} &{} 0 &{} 0 \\ \sin \varphi _{2j} &{} \cos \varphi _{2j} &{} 0 &{} y_{2j}-h \\ 0 &{} 0 &{} 1 &{} 0 \\ 0 &{} 0 &{} 0 &{} 1 \end{array}\right] \end{aligned}$$
(15)

where h is a geometric constant. Finally, a rotation \(\theta _j\) about the Y axis of the frame \(G_j\) transforms it into the frame \(H_j\), which is attached to the hip:

$$\begin{aligned} \mathbf {T}_{H_j/G_j} = \left[ \begin{array}{c c c c} \cos \theta _j &{} 0 &{} \sin \theta _j &{} 0 \\ 0 &{} 1 &{} 0 &{} 0 \\ -\sin \theta _j &{} 0 &{} \cos \theta _j &{} 0 \\ 0 &{} 0 &{} 0 &{} 1 \end{array}\right] \end{aligned}$$
(16)

The position and orientation of the frame \(H_j\) with respect to the frame j is obtained as follows:

$$\begin{aligned} \mathbf {T}_{H_j/j} = \mathbf {T}_{F_j/j}\mathbf {T}_{G_j/F_j}\mathbf {T}_{H_j/G_j} \end{aligned}$$
(17)

which completes the FKP of any generic leg j. Once the forward kinematics of each leg is solved, it is straightforward to calculate the position and orientation of the foot of one leg \(k\in \left\{ A,B\right\} {\setminus }\left\{ j\right\} \) with respect to the foot of the other leg j:

$$\begin{aligned} \mathbf {T}_{k/j} = \mathbf {T}_{H_j/j}\mathbf {T}_{H_k/H_j}\mathbf {T}_{k/H_k} \end{aligned}$$
(18)

where \(\mathbf {T}_{k/H_k}=\left( \mathbf {T}_{H_k/k}\right) ^{-1}\) and \(\mathbf {T}_{H_k/H_j}\) is the HTM that encodes the position and orientation of the frame \(H_k\) with respect to the frame \(H_j\):

$$\begin{aligned} \mathbf {T}_{H_k/H_j} = \left[ \begin{array}{c c} \mathbf {I} &{} \mathbf {t}_{H_k/H_j} \\ \mathbf {0}_{1\times 3} &{} 1 \end{array}\right] \end{aligned}$$
(19)

which is constant because both frames are attached to the same rigid body (the hip). \(\mathbf {I}\) is the \(3\times 3\) identity matrix. Moreover, according to Fig. 1a: \(\mathbf {t}_{H_B/H_A} = \left[ t,0,0\right] ^T = -\mathbf {t}_{H_A/H_B}\), where t is the distance between the parallel axes of the revolute actuators.

Note that, in theory, there are \(4^4=256\) different solutions to the FKP of the complete robot. This is because the kinematic chain between the feet has four parallel modules connected in series and the FKP of each module has four real solutions at most.

4 Inverse Kinematics

The inverse kinematic problem (IKP) consists in finding the values of the joint coordinates necessary to attain a desired relative position and orientation between the feet of the robot, and it is necessary for planning trajectories. In this robot, ten joint coordinates are used to place and orient one foot with respect to the other foot, which makes it redundant. Hence, the IKP is underconstrained and one should expect infinitely many solutions. This redundancy makes it difficult to solve the general IKP of this robot. Fortunately, many important movements necessary to explore a 3D structure (e.g., walking in one dimension, changing between planes, etc.) can be executed using the configuration analyzed in this section, which reduces the number of variables and simplifies the IKP.

Fig. 3
figure 3

The Planar Symmetric Inverse Kinematic (PSIK) problem

The configuration considered in this section is depicted in Fig. 3, where the foot j is fixed to the structure and the foot k is mobile (\(j,k\in \{A,B\},j\ne k\)). It is assumed that the Z axes of the frames attached to the feet are parallel and point in the same direction. Moreover, the origin of the frame attached to the foot k is contained in the XY plane of the frame attached to the foot j. In this situation, any variation in the length of the prismatic actuators of the parallel modules only produces planar motions of the frame k in the XY plane of the frame j. In this case, the position and orientation of the frame k relative to the frame j can be calculated as follows:

$$\begin{aligned} \mathbf {T}_{k/j} = \mathbf {T}_{G_j/j}\left[ \begin{array}{c c} \mathbf {I} &{} \left[ t,0,0\right] ^T \\ \mathbf {0}_{1\times 3} &{} 1 \end{array}\right] \left( \mathbf {T}_{G_k/k}\right) ^{-1} \end{aligned}$$
(20)

where \(\mathbf {T}_{G_j/j}=\mathbf {T}_{F_j/j}\mathbf {T}_{G_j/F_j}\). Moreover, it is assumed that the joint coordinates of the parallel modules of the two legs are related as follows:

$$\begin{aligned} l_ ik =r_ ij ,\quad r_ ik =l_ ij \quad (i=1,2) \end{aligned}$$
(21)

This means that the joint coordinates of the parallel module i of the legs k and j are swapped. According to Sect. 3.1, this translates into:

$$\begin{aligned} y_ ik =y_ ij ,\quad \varphi _ ik =-\varphi _ ij \quad (i=1,2) \end{aligned}$$
(22)

It can be graphically checked that Eq. (22) implies that the legs k and j are symmetric with respect to the line L, which is the axis of symmetry of the hip of the robot. Substituting Eqs. (22) into (20), the matrix \(\mathbf {T}_{k/j}\) can be written only in terms of the variables of the leg j and has the following expression:

$$\begin{aligned} \mathbf {T}_{k/j} = \left[ \begin{array}{c c c c} -c(2\omega ) &{} -s(2\omega ) &{} 0 &{} \mu \left( 1-c(2\omega )\right) \\ s(2\omega ) &{} -c(2\omega ) &{} 0 &{} \mu \cdot s(2\omega ) \\ 0 &{} 0 &{} 1 &{} 0 \\ 0 &{} 0 &{} 0 &{} 1 \end{array}\right] \end{aligned}$$
(23)

where \(s(x)=\sin x\), \(c(x)=\cos x\) and:

$$\begin{aligned} \mu&= \left[ t-2(h-y_{1j}-y_{2j})\sin \varphi _{2j}\right] /\left[ 2\cos (\varphi _{1j}-\varphi _{2j})\right] \end{aligned}$$
(24)
$$\begin{aligned} \omega&= \varphi _{1j} - \varphi _{2j} +\pi /2 \end{aligned}$$
(25)

Thus, under the condition of planar and symmetric motion, the position and orientation of the foot k relative to the foot j can be defined by two parameters \((\mu ,\omega )\), which are indicated in Fig. 3. We define the Planar Symmetric Inverse Kinematic (PSIK) problem, which consists in calculating the joint coordinates \((l_{1j},r_{1j},l_{2j},r_{2j})\) needed to achieve a desired position and orientation \((\mu ,\omega )\). Since the joint coordinates do not appear explicitly in Eqs. (24) and (25), the kinematic equations of the parallel modules of the leg j must be included:

$$\begin{aligned} (p\cos \varphi _{1j}-b)^2+(y_{1j}+p\sin \varphi _{1j})^2&= r_{1j}^2 \end{aligned}$$
(26)
$$\begin{aligned} (p\cos \varphi _{1j}-b)^2+(y_{1j}-p\sin \varphi _{1j})^2&= l_{1j}^2 \end{aligned}$$
(27)
$$\begin{aligned} (p\cos \varphi _{2j}-b)^2+(y_{2j}+p\sin \varphi _{2j})^2&= r_{2j}^2 \end{aligned}$$
(28)
$$\begin{aligned} (p\cos \varphi _{2j}-b)^2+(y_{2j}-p\sin \varphi _{2j})^2&= l_{2j}^2 \end{aligned}$$
(29)

Hence, the PSIK problem requires calculating \((l_{1j},r_{1j},l_{2j},r_{2j},y_{1j},\varphi _{1j},y_{2j},\varphi _{2j})\) from Eqs. (24)–(29). Like the general inverse kinematic problem, the PSIK problem is underconstrained since eight unknowns must be obtained from six equations. However, the PSIK problem involves less variables and simpler equations. In the following section, we will show that some postures necessary to negotiate obstacles in a 3D structure can be analyzed solving the PSIK problem. Also, we will describe a method to choose appropriate solutions to the PSIK problem assuming that the lengths of the prismatic actuators of the parallel modules have upper and lower limits: \(l_ ij \) and \(r_ ij \) must be in \([\rho _0,\rho _0+\varDelta \rho ]\), where \(\rho _0>0\) is the minimum length of the actuators and \(\varDelta \rho >0\) is their stroke.

5 Simulation

In this section, we will simulate the movements of the complete robot in an example 3D structure to validate the kinematic analyses of Sects. 3 and 4, and demonstrate the ability of the robot to explore the structure. More specifically, we will show how the robot can walk on a beam, perform transitions between different faces of the beams, and negotiate structural nodes.

To demonstrate these movements, we have developed a Java simulation tool that can be downloaded from http://arvc.umh.es/parola/climber.html (the latest version of Java may be required). The simulator implements the equations derived in Sect. 3 to solve the forward kinematics. As shown in Fig. 4, the simulator has a graphical window that shows the robot in the 3D test structure. The tool also has a window with a control panel where the user can modify the values of the ten joint coordinates, change the foot that is attached to the structure, or reset the simulation. It is important to remark that the simulation tool only implements the kinematic equations, without considering the dynamics of the robot (gravity is neglected) or the collisions between the robot and the structure. These advanced topics will be analyzed in the future.

Fig. 4
figure 4

Interface of the tool developed to simulate the forward kinematics of the robot

Three reference frames are shown in the graphical window of the simulator: the world frame W (which is attached to one of the corners of the beam \(b_1\) of the structure) and the frames A and B (which are attached to the feet of the legs). The fixed foot is indicated in orange color. When the user modifies the value of a joint coordinate, the forward kinematics is solved and the position and orientation of the free foot with respect to the frame W is calculated as follows:

$$\begin{aligned} \mathbf {T}_{k/W} = \mathbf {T}_{j/W}\mathbf {T}_{k/j} \end{aligned}$$
(30)

where \(\mathbf {T}_{k/j}\) is defined in Sect. 3.2, j denotes the fixed leg, and k denotes the mobile leg (\(j,k\in \left\{ A,B\right\} ,j\ne k\)). As shown in Fig. 4, the translation and rotation submatrices of \(\mathbf {T}_{A/W}\) and \(\mathbf {T}_{B/W}\) are indicated to the user in an output window of the tool. According to Sect. 3.2, there are 256 solutions to the forward kinematics of the complete robot since each parallel module can have up to four different solutions. However, it will be shown next that only one solution is valid.

For the following simulations, we will assume that \(b=p=4 \text{ cm }\), \(\rho _0 = 19\) cm, and \(\varDelta \rho = 6\) cm, which means that the prismatic actuators must satisfy: \(r_ ij ,l_ ij \in \left[ 19,25\right] \text{ cm }\). Solving the forward kinematics of a parallel module for these ranges of the joint coordinates, and plotting the solution \(y_ ij \) versus \(r_ ij \) and \(l_ ij \), results in the four surfaces shown in Fig. 5. Each surface is associated with one of the configurations labeled as follows: \(H^+\), \(X^+\), \(H^-\), and \(X^-\). The solutions \(H^+\) and \(X^+\) are indicated in Fig. 5; the solutions \(H^-\) and \(X^-\) are their respective mirror images with respect to the base of the parallel module. According to the design of the robot (see Sect. 2), the only valid solution is \(H^+\), since the other solutions are impossible due to mechanical interferences between different links of the legs. Moreover, Fig. 5 also provides a criterion for selecting the valid solution: the solution \(H^+\) always has the highest \(y_ ij \) coordinate.

Fig. 5
figure 5

Solution surfaces of the FKP of a parallel module for \(b=p=4 \text{ cm }\). The surfaces \(H^+\) and \(H^-\) are almost parallel to the surfaces \(X^+\) and \(X^-\), respectively

Once the only valid solution to forward kinematics has been characterized, we will simulate the execution of an example trajectory in the structure, which is composed of the three beams \(b_1\), \(b_2\), and \(b_3\) indicated in Fig. 4. At the beginning of the trajectory, the robot lies on the face \(f_1\) of the beam \(b_1\), and the objective is to move the robot to the face \(f_4\) of the beam \(b_3\), negotiating the structural node where the three beams intersect. Next, we will show that such a trajectory can be executed by a sequence of basic movements that can be used to reach any other point of the structure. The values of the remaining geometric parameters of the robot are: \(t=15.6 \text{ cm }\), \(h=16 \text{ cm }\), which correspond to the design parameters of the prototype currently under development. Moreover, the side of the square cross section of the beams measures \(12 \text{ cm }\), and the distance between the face \(f_2\) of the beam \(b_2\) and the origin of the frame W is \(88 \text{ cm }\).

5.1 Phase 1: Walking Along a Beam

At the beginning of the trajectory (see Fig. 6a), the foot A is attached to the face \(f_1\) of the beam \(b_1\), and the frame A has the following position and orientation:

$$\begin{aligned} \mathbf {t}_{A/W} = \left[ \begin{array}{c} 6 \\ -40 \\ 5 \end{array}\right] \text{ cm, } \mathbf {R}_{A/W} = \left[ \begin{array}{c c c} 0 &{} 0 &{} 1 \\ 1 &{} 0 &{} 0 \\ 0 &{} 1 &{} 0 \end{array}\right] \end{aligned}$$
(31)

The number “6” in \(\mathbf {t}_{A/W}\) means that the frame A is centered in the beam, whereas the number “5” is the size f of the feet, indicated in Fig. 1a. Initially, the joint coordinates have the following values: \(\theta _A=\theta _B=0\), \(r_ ij =l_ ij =21 \text{ cm }\) (\(i\in \left\{ 1,2\right\} \), \(j\in \left\{ A,B\right\} \)). Starting from this configuration, Table 1 describes a simple sequence of movements that allows the robot to reach the vertical beam \(b_2\). In each step of the given sequence, we indicate only the joint coordinates that change with respect to the previous step.

Fig. 6
figure 6

Example trajectory where the robot moves along a beam of the structure

5.2 Phase 2: Concave Change of Plane

Once the beam \(b_2\) has been reached, it can be climbed to negotiate the structural node defined by the intersection of the three beams. The next objective is to perform a concave transition between the faces \(f_1\) and \(f_2\). Note that at the end of the previous phase (Fig. 6f), the Z axes of the frames attached to the two feet point in the same direction. Hence, the postures needed to change between these faces can be obtained solving the PSIK problem defined in Sect. 4.

Table 1 Sequence of movements in the first phase of the simulated trajectory

Figure 7a indicates the input parameters needed to solve the PSIK problem: \(\mu =27.4 \text{ cm }\), \(\omega =\pi /4\) rad, and \(j=B\). Substituting these values and the geometric parameters of the robot into Eqs. (24)–(29) yields:

$$\begin{aligned} \frac{15.6-2(16-y_{1B}-y_{2B})\sin \varphi _{2B}}{2\cos (\varphi _{1B}-\varphi _{2B})}&= 27.4 \end{aligned}$$
(32)
$$\begin{aligned} \varphi _{2B} - \pi /4&= \varphi _{1B} \end{aligned}$$
(33)
$$\begin{aligned} (4\cos \varphi _{1B}-4)^2+(y_{1B}+4\sin \varphi _{1B})^2&= r_{1B}^2 \end{aligned}$$
(34)
$$\begin{aligned} (4\cos \varphi _{1B}-4)^2+(y_{1B}-4\sin \varphi _{1B})^2&= l_{1B}^2 \end{aligned}$$
(35)
$$\begin{aligned} (4\cos \varphi _{2B}-4)^2+(y_{2B}+4\sin \varphi _{2B})^2&= r_{2B}^2 \end{aligned}$$
(36)
$$\begin{aligned} (4\cos \varphi _{2B}-4)^2+(y_{2B}-4\sin \varphi _{2B})^2&= l_{2B}^2 \end{aligned}$$
(37)

As discussed in Sect. 4, infinitely many solutions exist since there are eight variables to be solved from six equations. Next, we describe a way of choosing a proper solution to this underconstrained problem. First, Eq. (33) is used to eliminate \(\varphi _{1B}\) from Eq. (32). Then, \(\varphi _{2B}\) is solved from the resulting equation:

$$\begin{aligned} \varphi _{2B} = \sin ^{-1}\left( \frac{13.7\sqrt{2}-7.8}{y_{1B}+y_{2B}-16}\right) \end{aligned}$$
(38)
Fig. 7
figure 7

A trajectory that includes a concave transition between different planes

This solution can be substituted into Eqs. (33)–(37) to express the joint coordinates \(\left\{ l_{1B},r_{1B},l_{2B},r_{2B}\right\} \) in terms of \(\left\{ y_{1B},y_{2B}\right\} \), which can be chosen so that \(l_{iB},r_{iB}\in \left[ 19,25\right] \) (\(i=1,2\)). Figure 8 represents the curves of the \(\left( y_{1B},y_{2B}\right) \) plane in which each joint coordinate equals 19 or 25; any point inside the shaded region R enclosed by these curves is a valid solution to the PSIK problem. For example, the solution \(y_{1B}=y_{2B}=22 \text{ cm }\) yields: \(r_{1B}\approx 20.59536194\), \(l_{1B}\approx 23.40761347\), \(r_{2B}\approx 23.65623783\), and \(l_{2B}\approx 20.34961301\), all in cm (these accurate values are valid only for the simulation; in a real implementation we will have to deal with the finite precision of the sensors). This solution is used to perform a transition between the faces \(f_1\) and \(f_2\) (see Fig. 7a). After performing this transition, the foot A is attached to the beam \(b_2\), and the sequence of movements described in Table 2 is used to complete this phase.

Fig. 8
figure 8

Region of valid solutions to the PSIK problem

Table 2 Sequence of movements in the second phase of the simulated trajectory

5.3 Phase 3: Convex Change of Plane

At the end of phase 2, the Z axes of the frames attached to the feet are parallel to the beam \(b_2\) and point in the same direction. Hence, the PSIK problem can be solved to determine the joint coordinates that permit performing a convex transition from the face \(f_2\) to the face \(f_3\) (the face \(f_3\) is defined in Fig. 9). Substituting \(\mu =11 \text{ cm }\), \(\omega =3\pi /4\) rad, and \(j=B\) in Eqs. (24)–(29), and following the procedure detailed in Sect. 5.2, we can obtain the region of the \((y_{1B},y_{2B})\) plane where \(l_{iB},r_{iB}\in \left[ 19,25\right] \text{ cm }\) (\(i=1,2\)). It can be checked that the solution adopted in the previous section \((y_{1B}=y_{2B}=22 \text{ cm })\) is also valid here, obtaining in this case: \(r_{1B}\approx 24.85374622\), \(l_{1B}\approx 19.20940403\), \(r_{2B}\approx 21.99688208\), and \(l_{2B}\approx 22.00311791\) (all in cm). For these values of the joint coordinates, the robot can perform a transition between the faces \(f_2\) and \(f_3\) (see Fig. 9a). After that, the foot A can be attached to the face \(f_3\).

Fig. 9
figure 9

A trajectory that includes a convex transition between different planes

Table 3 Sequence of movements in the third phase of the simulated trajectory

After attaching the foot A to the face \(f_3\), the sequence of movements described in Table 3 is executed. After executing this sequence, solving exactly the same PSIK problem as in Sect. 5.2 permits the foot A of the robot to be attached to the face \(f_4\) of the beam \(b_3\), which completes the trajectory.

6 Workspace of the PSIK Problem

In the previous section, it has been shown that the robot can explore orthogonal 3D structures combining the following three basic movements: (1) moving along a beam using the rotations \(\{\theta _A,\theta _B\}\) of the hip (Fig. 6), (2) performing a concave transition between two beams (Fig. 7), and (3) performing a convex transition between two faces of the same beam (Fig. 9). Moreover, the robot can perform the last two movements adopting planar and symmetric postures, which simplifies the inverse kinematic problem (PSIK problem defined in Sect. 4). However, this has been shown using an example where the geometry of the robot and of the structure, as well as the initial position of the robot, have particular values that guarantee the existence of solutions to the problem of exploring the structure.

The objective of this section is to determine if the robot will be able to explore 3D structures adopting planar and symmetric postures if its geometry deviates from the design used in Sect. 5, if the robot starts at a different position, or if the geometry of the structure is different. Regarding the geometry of the structure, we will analyze what happens when the width of the cross section of the beams varies, assuming that the structure is still orthogonal. To this end, we will study the workspace of the PSIK problem, which is the set of pairs \((\omega ,\mu )\) (variables defined in Fig. 3) that can be attained satisfying the joint limits. This workspace can be used to assess the ability of the robot to execute the three basic movements defined in the previous paragraph using the planar and symmetric postures of the PSIK problem, for different designs of the robot.

Figure 10a–f show the PSIK workspaces for different choices of the geometric design parameters of the robot, obtained using a Monte Carlo algorithm [1]. Each subfigure of Fig. 10 shows the different PSIK workspaces that are obtained when the corresponding geometric parameter of the robot is varied, keeping the remaining parameters at the default values used in Sect. 5, which are: \(b=p=4\), \(t = 15.6\), \(h=16\), \(\varDelta \rho =6\), and \(\rho _0=19\) (all in cm). The curves that have the same color in each subfigure of Fig. 10 enclose the PSIK workspace corresponding to each geometry, i.e., these curves are the boundaries of the workspaces. This is illustrated in Fig. 10a, where the PSIK workspace for the default geometry, denoted by \( WS _d\) and enclosed by the red curves, has been shaded. It is evident from Fig. 10 that the shape of the PSIK workspace is most sensitive to the parameters p and \(\varDelta \rho \), whereas the shape changes little with b.

Figures 10a–f also show three vertical lines at \(\omega = \pi /4\), \(\omega = \pi /2\), and \(\omega = 3\pi /4\). The lines \(\omega = \pi /4\) and \(\omega = 3\pi /4\) represent the concave (Fig. 7a) and convex (Fig. 9a) transitions, respectively. The line \(\omega =\pi /2\) represents a posture that can be used to move the robot along a beam like an inchworm, extending and retracting the legs as shown in Fig. 11. This is an alternative gait to the one shown in Fig. 6, which uses the rotations of the hip to move along a beam. The segment of these vertical lines that lies within the PSIK workspace of a given geometry is the set of lengths \(\mu \) that can be achieved for the corresponding value of \(\omega \). For example, for the default workspace \( WS _d\) in Fig. 10a and \(\omega = \pi /4\), \(\mu \) must be between \(\mu _1\) and \(\mu _2\). Next, we will analyze Fig. 10 to discuss if the robot can perform convex and concave transitions using the planar and symmetric postures of the PSIK problem in three cases.

Fig. 10
figure 10

PSIK workspaces for different values of the geometric design parameters of the robot. In the axes, \(\mu \) is in cm and \(\omega \) is in rad. a Varying p. b Varying b. c Varying \({\rho }_{0}\). d Varying \(\varDelta \rho \). e Varying t. f Varying h

Fig. 11
figure 11

An inchworm-like gait to move along a beam

Case 1: The Geometry of the Robot is Modified. Can the robot perform convex and concave transitions if its geometry is different from the default one? As Fig. 10 shows, the vertical lines \(\omega =\pi /4\) and \(\omega =3\pi /4\) (which represent the concave and convex transitions) intersect the PSIK workspace for most of the geometries, which means that both transitions are possible. However, for some designs obtained by increasing p or decreasing \(\varDelta \rho \), the workspace is too small and does not intersect these vertical lines. Thus, these designs should be avoided.

Case 2: The Initial Position of the Robot is Modified. Even if the PSIK workspace intersects the vertical line \(\omega = \pi /4\), the robot may be unable to perform a concave transition between two beams (e.g. to climb to the beam \(b_2\) in the example of Sect. 5.2) if the distance between the robot and the new beam is not adequate. This is because, according to Fig. 10, for most of the geometries the feasible concave transitions (those obtained intersecting the PSIK workspace and the line \(\omega = \pi /4\)) require \(\mu \) to be between a minimum value \(\mu _1\) and a maximum value \(\mu _2\) (e.g. see the default PSIK workspace \( WS _d\) in Fig. 10a). As a result, if the robot is too close (\(\mu <\mu _1\)) or too far (\(\mu >\mu _2\)) from the beam \(b_2\), the concave transition will be impossible.

This can be a problem if the distance between the robot and the new beam cannot be adjusted continuously, but only by means of discrete increments, like when using the gait shown in Fig. 6. With this gait, which uses the rotations \(\{\theta _A,\theta _B\}\) of the hip, the robot can only travel a distance equal to an integer multiple of t. Thus, depending on the initial position of the robot, approaching the beam \(b_2\) using this gait may eventually place the robot at a point too close or too far from the beam, without the possibility to finely adjust its position to make possible the execution of a concave transition.

Nevertheless, this can be avoided if the inchworm-like gait of Fig. 11 is used to approach the beam \(b_2\). With \(\omega =\pi /2\), the robot travels a distance equal to \(2\mu \), where \(\mu \) can take any value from the line \(\omega =\pi /2\) which lies inside the PSIK workspace for the considered geometry. Thus, using this gait permits the robot to continuously adjust its position along the beam \(b_1\) to position itself at a proper distance from the beam \(b_2\) to climb it performing a concave transition.

Case 3: The Width of the Beams is Modified. Even if the PSIK workspace intersects the vertical line \(\omega = 3\pi /4\), the robot may be unable to perform a convex transition between different faces of a beam if the distance \(\mu \) necessary to execute this transition (shown in Fig. 9a) is too large, since the point representing this transition in the \((\omega ,\mu )\) plane may lie outside the PSIK workspace of the considered geometry. For example, the convex transition of Fig. 9a, which is represented by the point P in Fig. 10d, can be performed using the default geometry because P lies inside the default PSIK workspace, but if the stroke of the linear actuators is decreased to \(\varDelta \rho =5\) cm, P will lie outside the workspace and the transition will be infeasible.

As Fig. 9a shows, the distance \(\mu \) necessary to perform a convex transition equals the sum of the size f of the foot (indicated in Fig. 1a) and 0.5 times the width of the cross section of the beam. This assumes that the fixed foot of the robot is placed at the middle of the cross section of the beam, which will be the most typical case, especially if grippers are used to adhere to the structure. Thus, if f is too large, and/or the beam is sufficiently wide, the robot may be unable to perform a transition between different faces of a beam.

In case the beams of a given structure are too wide to allow the robot to execute convex transitions between different faces of the beams, the design of the robot should be modified. One possibility is to reduce the size f of the feet. Another possibility is to modify some of the design parameters of Fig. 10 to increase the maximum value of \(\mu \) that can be attained with \(\omega = 3\pi /4\). Note that this maximum value changes little with the parameters \(\{b,\rho _0,h\}\), whereas it increases when increasing \(\{t,\varDelta \rho \}\) or decreasing p.

To sum up, the analysis presented in this section reveals that by choosing an appropriate design for the robot, the planar and symmetric postures of the PSIK problem provide a relatively high flexibility to explore 3D structures using the basic movements defined in this section. This is partly thanks to the possibility of precisely adjusting the position of the robot along a beam by means of the inchworm-like gait of Fig. 11. This result suggests that the architecture of the robot studied in this chapter may be modified to design a simpler robot based on the PSIK problem, with an actuation scheme in which a single actuator may simultaneously drive various joints, producing symmetric movements. This symmetry in the movements was previously identified by Balaguer et al. [6] as one of the key criteria for designing climbing robots, since this symmetry reduces the number of actuators and hence the overall weight of the robot.

7 Conclusion

This chapter has presented the kinematic analysis of a novel biped climbing robot with a hybrid serial-parallel architecture. The forward kinematic problem has been solved, obtaining the relative position and orientation between the feet in terms of the joint coordinates. The inverse problem is more difficult due to the redundancy of the robot. Hence, a simplified inverse problem which considers planar and symmetric postures has been analyzed. Using a developed simulation tool, it has been shown that the simplified problem is sufficient to perform some important movements which are necessary to explore 3D structures. Also, the workspace of this simplified inverse kinematic problem has been analyzed in depth for different designs of the robot. This analysis has shown that the planar and symmetric postures of the simplified problem are also useful when the robot starts at other positions or when the width of the beams varies, provided that the geometric parameters of the robot are chosen properly.

To exploit all the possibilities offered by the proposed kinematic architecture, the general inverse kinematic problem of the robot will be solved in the future. Other problems that will need to be addressed include the determination of the workspace and singularities of the complete robot (not just the PSIK workspace), the dynamic modeling, and the planning of trajectories avoiding collisions in more complex structures. Also, considering the flexibility of the planar and symmetric postures of the PSIK problem, we will optimize the architecture of the robot to obtain a more lightweight robot able to perform these planar and symmetric movements using less actuators, as discussed at the end of Sect. 6.