Keywords

1 Introduction

Different from the continuous path of wheeled and tracked robots, multi-legged robots works by leaving discontinuous path or rather the spot exactly, minimizing the damage to the environment and much more flexible in dealing with complicated circumstance. It has one or several individual rotational joints or translational joints at each leg. Several legs like that working together make the flexibility and diversity of the robot greatly enhanced. Since the robot can modify the pose and the orthocenter position by adjusting the legs’ layout and forms, it is not easy for the robot to be tipped over. Even if it happened in unanticipated and undesirable events, for example, like earthquake or intentional attacks, the robot can easily fix it in the way which insects do.

The hexapod wall-climbing robot is designed based on those assets, but required to operate not mainly on the ground. Fortunately, in recent years, climbing robots have become lighter, more adaptable to a wide variety of surfaces, and much more sophisticated in their functional capabilities. These advances have been driven by improved manufacturing techniques, increased microcontroller computational power, and novel strategies for wall-climbing [1].

In this paper, we report on the procedure and principle we design. And a prototype is produced to test the gaits.

2 Design and Modeling

2.1 Concept and Morphology

Tripod gait is quite effective and stable, which has been evolved for billion years in nature by insects. So we prefer to imitate insects in both gait and structure, but with a little difference as depicted in Fig. 1, which is actually the difference between the symmetric configuration and the radial symmetric configuration.

Fig. 1.
figure 1

Symmetric configuration and radial symmetric configuration

The benefits of radial symmetry if compared to symmetry are obvious:

  1. 1.

    Each leg is equivalent to one another, which stands for the universality that they could share exactly the same structure and could be fabricated in one assembly line. It is cost effective in mass production.

  2. 2.

    And moreover, each gait we designed is appropriate for 6 direction. It is meaningless for a robot to tell the head from the tail. We can order it to walk even in a way which is impossible for a real insect, for example, backward. Just a single gait enables the robot to reach almost any position on a plane.

2.2 Mathematic Modeling

Now let’s consider the robot’s mathematic model regardless of the concrete realization and mechanism. Here are four dimensions need to be decided, which are the distance of each adjacent two hip joints L0, the length of the coxa L1, the length of the femur L2 and the length of the tibia L3.

Normal Solution of Kinematics.

First we mark each leg from No. 1 to No. 6, as showed in Fig. 1.

For the convenience to describe, a coordinate established at the center of the robot as the body frame, and the same to each part of legs. Homogeneous transfer matrix is the main tool we used. Here we consider the Leg No. 6 only, and define three variables which are theta, phi and psi. Specifically, let theta stand for the angular displacement between the body frame and the coxa, while phi stands for the one between coxa and femur and psi stands for the one between femur and tibia (Fig. 2).

Fig. 2.
figure 2

Coordinates established on Leg No. 6

According to these coordinates, the Homogeneous transfer matrix of C5 with reference to C1 could be easily calculated.

$$ {}_{5}^{1} T_{6} \text{ = }{}_{2}^{1} T_{6} \bullet {}_{3}^{2} T_{6} \bullet {}_{4}^{3} T_{6} \bullet {}_{5}^{4} T_{6} \text{ = }\left[ {\begin{array}{*{20}c} X & X & X & {\# 14} \\ X & X & X & {\# 24} \\ X & X & X & {\# 34} \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] $$
(1)

Where alphabet X is used to stand for the part that we don’t care.

$$ \begin{aligned} \# 14 & = \frac{{L0 + [L1 + L3\cos (\varphi + \psi )\text{ + }\cos \varphi ](\cos \theta - \sqrt 3 \sin \theta )}}{2}, \\ \# 24 & = \frac{\sqrt 3 L0 + [L1 + L3\cos (\varphi + \psi ) + L2\cos \theta ](\sin \theta + \sqrt 3 \cos \theta )}{2}, \\ \# 34 & = - L3\sin (\varphi + \psi ) - L2\sin \varphi \\ \end{aligned} $$

Single leg can be considered as a mechanical arm with 3 DOF (Degree Of Freedom)s. On this occasion, all the three DOFs are used to control the position of the tip of the leg. Another three DOFs about orientation are constrained by the mechanism to fit the surface well. Now we only concentrate on the position vector, and let the rotation matrix alone.

Equation (2) is a function about theta, phi and psi. If we input the angular displacements, the position information will be given by this equation. That’s the job normal solution does. It will be helpful in further research.

$$ P_{6} = \left[ {\begin{array}{*{20}c} {p_{x} } \\ {p_{y} } \\ {p_{z} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\# 14} \\ {\# 24} \\ {\# 34} \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {f(\theta ,\varphi ,\psi )} \\ {g(\theta ,\varphi ,\psi )} \\ {h(\varphi ,\psi )} \\ \end{array} } \right] $$
(2)

Similarly, equations about other legs are available in the same way.

Inverse Solution of Kinematics.

What if we want the tip of the leg to reach a specific position? Here comes the inverse solution. It is the basis of robot control, expressing the mapped relation from the position of the tip to the angular displacements, which is exactly the reverse process compared with normal solution, as the name implies.

The inverse solution methods are generally divided into closed-form solution methods and numerical methods. Closed-form solution method is desirable because it is faster and easily identify all possible solutions [2]. But only the robot, which satisfy Pieper Criterion, can be described by closed solution. Pieper outlined two conditions for finding a closed-form joint solution to a robot manipulator in which either three adjacent joint axes are parallel to one another or they intersect at a single point [3]. No doubt the leg has closed solution, since it only has three DOFs. Now we are going to find it out.

First, multiply a matrix on both sides of Eq. (1), as follows:

$$ ({}_{2}^{1} T_{6} \bullet {}_{3}^{2} T_{6} )^{ - 1} \bullet {}_{5}^{1} T_{6} \text{ = }({}_{2}^{1} T_{6} \bullet {}_{3}^{2} T_{6} )^{ - 1} \bullet {}_{2}^{1} T_{6} \bullet {}_{3}^{2} T_{6} \bullet {}_{4}^{3} T_{6} \bullet {}_{5}^{4} T_{6} $$
$$ \left[ {\begin{array}{*{20}c} X & X & X & {\# 14} \\ X & X & X & {\# 24} \\ X & X & X & {\# 34} \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} X & X & X & {L1 + L3\cos (\varphi + \psi ) + L2\cos \varphi } \\ X & X & X & 0 \\ X & X & X & { - L3\sin (\varphi + \psi ) - L2\sin \varphi } \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] $$
(3)

In Eq. (3), we use alphabet X to represent the part that we don’t care, too.

And here:

$$ \begin{aligned} \# 14 & = \frac{{p_{x} (\cos \theta - \sqrt 3 \sin \theta )}}{2} + \frac{{p_{y} (\sin \theta + \sqrt 3 \cos \theta )}}{2} - L0\cos \theta \\ \# 24 & = \frac{{ - p_{x} (\sin \theta + \sqrt 3 \cos \theta )}}{2} + \frac{{p_{y} (\cos \theta - \sqrt 3 \sin \theta )}}{2} + L0\sin \theta \\ \# 34 & = p_{z} \\ \end{aligned} $$

A monadic equation #24 = 0 could be found. So we can solve theta:

$$ \theta = \arctan \left( {\frac{{p_{y} - \sqrt 3 p_{x} }}{{p_{x} + \sqrt 3 p_{y} - 2L0}}} \right) $$
(4)

Another extraneous root has been removed, for the angular displacement range is narrower than (–90, 90) degree. Since Eq. (4) has been solved, we have:

$$ \left\{ {\begin{array}{*{20}c} {L3\cos (\varphi + \psi ) + L2\cos \varphi \text{ = }A} \\ { - L3\sin (\varphi + \psi ) - L2\sin \varphi \text{ = }p_{z} } \\ \end{array} } \right. $$
(5)

Where

$$ A\text{ = }\# 14 - L1\text{ = }\frac{{p_{x} (\cos \theta - \sqrt 3 \sin \theta )}}{2}\text{ + }\frac{{p_{y} (\sin \theta \text{ + }\sqrt 3 \cos \theta )}}{2} - L0\cos \theta - L1 $$

We can square both sides of the equations, and plus them together. And we can get:

$$ \psi { = \pm }\arccos \left( {\frac{{A^{2} + p_{z}^{2} - L3^{2} - L2^{2} }}{2L3L3}} \right) $$
(6)

With Eqs. (5) and (6), the last variable phi can be also deduced. But on account of the dependency on psi, phi also has two situations:

$$ \varphi = \arcsin \left( {\frac{{ - p_{z} }}{{\sqrt {(L3\cos \psi + L2)^{2} + (L3\sin \psi )^{2} } }}} \right) - \arctan \left( {\frac{L3\sin \psi }{L3\cos \psi + L2}} \right) $$

Now the inverse solution for Leg No. 6 has been finished. Other legs can be dealt with in the same way. We will not repeat the process.

Model Optimization.

Up to now, variables L0, L1, L2 and L3 are considered as known quantities all along. But the truth is that they are not. Now we are going to discuss about these variables, to make the robot be faster and lighter.

Variable L0 controls the size of body. The body is the container of devices such as the vacuum pump or the circuit. It has nothing to do with the velocity directly but has relation to the weight of the robot. Theoretically, the smaller L0 is the lighter the body is, provided that it is large enough to contain all the devices required and will not cause the interference of legs. Based on this principle it is determined to be 64 mm.

Variables L1, L2 and L3 directly impact the velocity it moves. The speed of hexapod can be increased by increasing the stride frequency and also increasing the stride length within workspace limits of the joints [4]. So, there are two ways:

  1. 1.

    Reduce the cycle time or enhance the frequency of walking.

  2. 2.

    Increase the interval of each step.

It is not easy for a robot to enhance the frequency if the mechanism and actuator are kept unchanged, for that actuators are required to reciprocate much faster and the process is accompanied by acceleration and deceleration. It is not possible and profitable for a specific motor. So we try in the second way.

The interval of steps is constrained by the physical features of the sucker, which enables the robot to walk on the wall. It is set at the tip of each leg, and generates vacuum with the vacuum pump together. Pneumatic adhesion technique may be regarded as the best choice for climbing a vertical wall with higher payload [5]. Spherical hinge on this kind of sucker allow the leg to rotate about the tip in three DOFs. These passive DOFs and other three DOFs which are talked in normal solution and inverse solution above, constitute the complete six DOFs.

However, the spherical hinge does not have unlimited working space, as Fig. 3 shows, usually 35° or 30°, which depends on specific types. Attempt to attach the wall in a too small intersection angle with the wall may result in the plunge of the whole robot.

Fig. 3.
figure 3

Overall dimension of the sucker

So L1, L2 and L3 need to be designed to find a largest interval of step in the constraint of the suckers, showed by Fig. 4.

Fig. 4.
figure 4

Sketch of half cycle

Set h = 25 mm, s = 60 mm. So that the main body is close enough to the wall to reduce the torque generated by gravity, and the robot looks not too big or too small. Benefit from the development of computer science, we utilize MATLAB to calculate the combination which is almost close to the best one. Here is the pseudo-code:

The way to calculate max step with temporary dimensions is based on the normal and inverse solutions we discussed before.

The fact is that L1 tends to be small while L3 tends to be large, if we want to maximize the interval. Within the constraint of mechanism, the best combination seems to be L0 = 64 mm, L1 = 24 mm, L2 = 94 mm, and L3 = 110 mm. And the longest interval by calculation equals 109.2 mm, which means it can walk 218.4 mm within one cycle by the tripod gait.

2.3 Virtual and Real Prototypes

Virtual Modeling.

Suckers, and steering motors are selected in a repetitive iteration process by virtual modeling, as Fig. 5 depicts. Leg parts are made of sheet metal, exactly the aluminum, to strengthen rigidity. And in order to lighten the leg, holes are dug.

Fig. 5.
figure 5

Virtual prototype built in solidworks

The designed weight is about 2.4 kg. For a robot to climb on a wall with vacuum suckers, the suckers must generate sufficiently big force to support. The suction force is determined by several main factors such as gauge pressure, the number, the diameter and the arrangement of the suckers [6]. According to the checking formula, let’s check whether the suckers are qualified:

Here static friction coefficient \( \mu \,\,{ \approx }\,\,0.5 \), numbers of legs in support phase \( n = 3 \), vacuum degree \( \Delta P\text{ = }60 \) KPa, diameter of suckers \( D = 50 \) mm, safety factor \( S = 4 \), total mass \( M = 2.4 \) kg, distance from orthocenter to wall \( H{ \le }50 \) mm.

$$ \left\{ {\begin{array}{*{20}c} {\mu \cdot n \cdot \Delta P \cdot \pi \cdot \frac{{D^{2} }}{4} \ge S \cdot M \cdot g} \hfill \\ {\Delta P \cdot \pi \cdot \frac{{D^{2} }}{4} \cdot \left( {3s + \frac{3}{2}L0} \right) \ge M \cdot g \cdot H} \hfill \\ \end{array} } \right. $$
(7)

The first inequation of In Eq. (7) aims to check the whether the maximum friction force is able to hold the gravitational force when in tripod gait. While the second one attempts to check whether the torque generated by 3 suckers and vacuum pump is able to hold the gravitational torque with one leg up and two legs down, which is the most dangerous situation in tripod gait.

The next step is to check the steering motors. Suppose the robot attaches on a vertical wall and tries to move one step upward. Simulation time is 5 s, so the average velocity is about 22 cm/s. The process is showed by Fig. 6.

Fig. 6.
figure 6

The simulation of one step by tripod gait

The maximum torque showed in Fig. 7 is about 1254 Nmm which is less than rated torque of the steering motor, 1300 Nmm. By the way, the Steering Motor No. 9 is installed on the joint which articulates femur and tibia of Leg No. 3.

Fig. 7.
figure 7

The torque curve and angular velocity curve of part of steering motors

Prototype.

The prototype is made as Fig. 8 depicts. The real weight is 2.307 kg. The photo is taken when the robot is attaching on wardrobe door with six suckers working and all steering motors kept motionless.

Fig. 8.
figure 8

Prototype

An Arduino system is put to use as a slave computer, while a laptop running a series of LabVIEW program as a master computer. Commands are transferred by serial line.

Gas route chart is showed in Fig. 9.

Fig. 9.
figure 9

Gas route chart

3 Gait Planning Analysis

A gait is a cyclic motion pattern that produces locomotion through a sequence of foot contacts with the ground. The legs provide support for the body of the robot meanwhile propel the robot forward. Gaits can differ in a variety of ways, and different gaits produces different styles of locomotion [7].

3.1 Swing Phase Planning

All the simulation and analysis above are based on the tripod gait, which demands Leg No. 1, 3, 5 and Leg No. 2, 4, 6 working in different phase alternatively, swing phase or support phase. It goes without saying that the tips of legs working in support phase is drawing a line, pushing the robot forward. But how about the legs working in swing phase?

There are several common motion curves are listed in Table 1:

Table 1. Common motion curves

The height-width ratio reflect the locomotivity. Normally, the larger ratio means a better locomotivity but a slower speed. While the arc length is related to the time cost in swing phase. Considering the contact quality between the sucker and surface and other factors, cycloid seems to be the most suitable for the motion curves in swing phase. The outline of Leg No. 6 in swing phase is showed as Fig. 10.

Fig. 10.
figure 10

Cycloid in swing phase

3.2 Tetrapod Gait

The load carrying capacity with tripod gait is very small, but moves quite fast. Empirically, the load carrying capacity is direct proportion to the quantity of legs working in support phase, while the speed is inversely proportion to it.

If we assume legs in swing phase cost the same time, then speed will decrease to the 1/3 of the one when tripod gait is applied. Legs in support phase shares a better force condition if uniform distributed as far as possible. That’s why we choose that order showed in Fig. 11.

Fig. 11.
figure 11

Tetrapod gait order

But because there are always 4 legs in support phase in any time, the load carrying capacity will increase to 4/3 of the one when tripod gait is applied, which includes the self-weight. If we take this part away, the capacity is about 800 g.

3.3 Wave Gait

We further on this way. Now if there are always 5 legs in support phase, the speed will decrease to the 1/6 of the one when tripod gait is applied or 1/2 of the one when tetrapod gait is applied. The order does not matter anymore in this case, here order showed in Fig. 12 is chosen.

Fig. 12.
figure 12

Wave gait order

The load carrying capacity will increase to 5/3 of the one when tripod gait is applied or 5/4 of the one when tetrapod gait is applied, which also includes the self-weight. If we take this part away, the capacity reaches about 1600 g, which is quite impressive for such a small robot.

3.4 Turn Gait

Strictly speaking, the turn gait is not an independent kind of gait, more like supplement to other gaits, to help the robot spin on the spot. For an instance, to tripod gait, Leg No. 1, 3, 5 are raised up and move to their new positions, while Leg No. 2, 4, 6 keep in support phase. Secondly, the Leg No. 1, 3, 5 turn into support phase then Leg No. 2, 4, 6 raise up to move to the new positions [8]. It is almost the same for the robot in other gait, but only the order changed accordingly to remain the number of legs in support phase, preventing the robot from falling down.

4 Conclusions

In this paper, a hexapod wall-climbing robot has been proposed and made. It has 18 steering motors, 6 suckers and 1 vacuum pump. Mathematic model has been studied and optimized. Tripod, tetrapod and wave gait are planned. Tripod gait has been tested on the prototype, and the experiment expresses the validity of the normal and inverse solution, as well as the stability of the tripod gait. More attention could be paid to the non-tripod gait and adaptive gait in the future.