Keywords

1 Introduction

It has long been recognized that legged robots can provide a superior mobility platform for complex environment to wheeled or tracked ones. This is a result of the abilities of legs to use discrete footholds to contact with the ground and adapt to various terrains. Legged robots include single-legged hoppers, two-legged humanoid robots, quadruped robots, hexapod robots, and octopod robots. In recent years, hexapods have gained the interest of international research community, as they possesses the preferred all-round performance in the field of robotics for their better static stability, more flexibility and terrain adaptability, compared to other types [13]. However, hexapods are still unable to traverse highly fractured and unstable terrain, e.g., large obstacles and high steps. In most cases, they detect the surroundings with multiple sensors and execute obstacle avoidance behaviors [4]. This would largely restrict the applications of hexapod, especially climbing stairs, which is a fundamental and also challenging behavior for small robot [5].

Several attempts have been made by various research groups to solve this problem. RHex had been designed with small size, compliant legs and one actuator per leg in a reliable manner, which was the first to be able to climb full-scale stairs [6]. RiSE [7] was constructed later to be the first legged robot capable of walking on diverse terrain in both the ground and scansorial regimes, without the use of suction, magnets, or adhesives. A novel hexapod named ‘ASTERISK’ [8] was proposed for ladder climbing. By alternately changing its posture and distributing the weight on supporting legs based on its force margins, ASTERISK could achieve a stable climbing behavior.

In contrast to the aforementioned configurations, rectangular hexagonal ones are more widely used. Our previous work presented a multiple chaotic central pattern generators model for the hexapod locomotion, with learning mechanism to handle some malfunction compensation [9]. For this kind of hexapod, an additional body joint has been added for climbing over obstacles. Bartsch et al. [10] presented their Space Climber with the body joint to enable the robotic system to adapt to the surface structure. The design of the body joint was based on its leg actuators. AMOS-WD06 was proposed by Manoonpong et al. [11] with 19 active degrees of freedom (DoFs) to realize sensor-driven omni-directional walking. Neural control and learning mechanisms were performed in the six-legged prototype without modeling of this machine or dynamic analysis of its climbing behaviors. Besides, the most frequent sequence used by cockroaches when climbing high obstacles was to first elevate their front of the body upward, and then raise their center of mass (COM) to the level of the top of the obstacle. This had been verified by movement observation of cockroaches conducted by Watson et al. [12] and Harley et al. [13]. During climbing attempts, cockroaches bend their body to swing their front leg and redirect their middle legs to successfully reach the top of the block or misses.

Inspired by biology observations and previous works, here in this paper, an addition neck joint was integrated into the body between the front and rear compartments. To achieve the torque mathematic model, especially the moment curve of the neck joint, full kinematics and dynamics were analyzed in this paper. Conventional method was to use free body diagrams to analysis the torque distribution of six-legged robot, provided that the robot remains stationary or keeps moving at the same speed [14, 15]. Then Lagrange-Euler formulation, together with Denavit-Hartenberg (D-H) description of links, was used to calculate the dynamics of the robot. Least square method and minimization of norm joint torques method were proposed in [16, 17]. Compared with these works, a compact form of dynamics of hexapod was presented in this contribution, using the robot screw theory and exponential product equations. As a superior alternative to the use of D-H method [18], product of exponentials (POEs) representation, combined with the geometric significance of the twists, were used here to calculate the joint torques of our climbing robot. Torque distributions were achieved in a convenient, compact and systematic form by deriving the description of kinetic and potential energy. The sum of the squares of each joint torque was computed as the index of energy consumption, which was straightforward and determined. Torque distribution and tip-point distribution were then compared to obtain a more energy efficiency for the hexapod performance.

The remaining part of the paper is organized as follows: Sect. 2 describes the walking platform which would execute the climbing tasks. Kinematics, dynamics model and torque distribution analysis are presented in Sect. 3. Simulation results and experimental performances are stated and discussed in Sect. 4. Finally, conclusions and future works are listed in Sect. 5.

2 Walking Platform

A six-legged walking machine was developed to realize field experiments. The body is made up of two parts, connected with an extra neck joint, which can be activated to rotate around the lateral axis (maximum 30°). The hexapod has six identical legs, each of which consists of three linkages. The six legs are defined as leg j (j = 1, 2, …0.6), as shown in Fig. 1a. Considering the natural counterpart, the three links are named coxa, femur and tibia, respectively. Correspondingly, the three rotation joints in each leg are denominated as TC (the thoraco-coxal joint enables forward and backward movements), CTr (the coxa-trochanteral joint, enables elevation and depression of the leg), and FTi (the femur-tibia joint enables extension and flexion of the tibia). A single leg serves as a three-revolute kinematical chain, with the tarsus segment ignored. Besides, a spring-sensor system was installed on each tibia to absorb the impact force when the tip point touches down the ground. With the force sensor, the contact force could be measured and serves as feedback to the control loop, which would be discussed in our future work but it is not the focus here. The central control board is based on an ARM (CortexM3, LPC1752) processor and all the signals from the sensors are fused in the central control module.

Fig. 1
figure 1

a Prototype of the hexapod robot; b reference frames assigned at the robot

3 Kinematics, Dynamics and Torque Distribution

In Fig. 1b, the hexapod robot was at its initial position, with the body paralleling to the ground. To describe the position and orientation, several reference coordinate systems were set: the absolute reference frame (the inertial frame) W 0, body frame W b (attached to the geometric center of the body), neck joint frame W k (located in the cone vertex of the straight bevel gears), and single leg frame W j , which was attached to the tip point of jth leg. Let point p be an arbitrary point on the robot, according to the theory of rigid body transformations,

$$p_{{W_{0} }} = p_{{W_{0} W_{b} }} + R_{{W_{0} W_{b} }} p_{{W_{b} }}$$
(1)

where \(p_{{W_{0} }}\), \(p_{{W_{b} }}\) are the coordinates of an relative to frames W 0 and W b , respectively, and \(R_{{W_{0} W_{b} }}\) is the rotation matrix. By (1), the problem is transformed from global frame to local coordinate system. As the relative position between W b and W k remains unchanged during the locomotion, W k serves as the basic frame rather than W b to simplify the description of the transmission system on the neck joint.

3.1 Kinematics and Dynamics

The twist parameters for the revolute joint axes are given by

$$\omega_{1} = \left( {\begin{array}{*{20}c} 0 \\ { - 1} \\ 0 \\ \end{array} } \right)\;\omega_{2} = \left( {\begin{array}{*{20}l} 0 \hfill \\ 0 \hfill \\ 1 \hfill \\ \end{array} } \right)\;\omega_{3} = \left( {\begin{array}{*{20}l} 1 \hfill \\ 0 \hfill \\ 0 \hfill \\ \end{array} } \right)\;\omega_{4} = \left( {\begin{array}{*{20}l} 1 \hfill \\ 0 \hfill \\ 0 \hfill \\ \end{array} } \right)$$
(2)

and four axis points are chosen as

$$q_{1} = \left( {\begin{array}{*{20}l} 0 \hfill \\ 0 \hfill \\ 0 \hfill \\ \end{array} } \right)\;q_{2} = \left( {\begin{array}{*{20}l} {x_{0} } \hfill \\ {y_{0} } \hfill \\ 0 \hfill \\ \end{array} } \right)\;q_{3} = \left( {\begin{array}{*{20}c} 0 \\ {y_{0} + l_{1} } \\ {z_{0} } \\ \end{array} } \right)\;q_{4} = \left( {\begin{array}{*{20}c} 0 \\ {y_{0} + l_{1} + l_{2} } \\ {z_{0} } \\ \end{array} } \right)$$
(3)

where \(x_{0}\), \(y_{0}\) and \(z_{0}\) are initial positions of the axis with the values (in mm) of 76, –76.5 and 6.8, respectively. And l 1(41), l 2(60) and l 3(123) are lengths of the three links. The joint twists are then given by

$$\xi_{1} = \left[ {\begin{array}{*{20}c} 0 \\ 0 \\ 0 \\ 0 \\ { - 1} \\ 0 \\ \end{array} } \right]\;\xi_{2} = \left[ {\begin{array}{*{20}c} {y_{0} } \\ { - x_{0} } \\ 0 \\ 0 \\ 0 \\ 1 \\ \end{array} } \right]\;\xi_{3} = \left[ {\begin{array}{*{20}c} 0 \\ {z_{0} } \\ { - l_{1} - y_{0} } \\ 1 \\ 0 \\ 0 \\ \end{array} } \right]\;\xi_{4} = \left[ {\begin{array}{*{20}c} 0 \\ {z_{0} } \\ { - l_{1} - l_{2} - y_{0} } \\ 1 \\ 0 \\ 0 \\ \end{array} } \right]$$
(4)

The forward kinematics follows the POE formula, taking leg 1 for analysis as shown in Fig. 2a and

$$g_{{W_{k} j}} (\theta_{j} ) = e^{{\widehat{{\xi_{1} }}\theta_{1} }} e^{{\widehat{{\xi_{2} }}\theta_{2} }} \ldots e^{{\widehat{{\xi_{4} }}\theta_{4} }} g_{{W_{k} j(0)}}$$
(5)
Fig. 2
figure 2

a Kinematics and dynamics of leg 1; b joint angles of coxa, femur and tibia

Equation (5) maps the variables from the joint space to the workspace. For the inverse kinematics of the fore legs, the Paden-Kahan sub-problems were introduced here to solve the joint track from the pre-defined tip point trajectories. Rotating about certain axis can be solved as,

$$\theta_{i} = \arctan 2\left( {w_{i}^{T} \left( {u_{i}^{\prime } \times v_{i}^{\prime } } \right),u_{i}^{\prime T} v_{i}^{\prime } } \right)$$
(6)

where \(u^{\prime}_{i}\) and \(v^{\prime}_{i}\) are projected vectors from the rotating points about its axis. The inverse kinematics problem here corresponds to four times rotating a point about one axis each, which could be resolved by substituting these parameters into (6). And the results are described in Fig. 2b.

To each link, a coordinate frame \(L_{i}\) is attached to the COM of ith link as shown in Fig. 2a, with the same rotation matrix as the TC-joint frame.

$$g_{{W_{k} L_{i} }} (0) = \left[ {\begin{array}{*{20}c} {\text{I}} & {\left( {\begin{array}{*{20}l} {r_{i1} } \hfill \\ {r_{i2} } \hfill \\ {r_{i3} } \hfill \\ \end{array} } \right)} \\ 0 & 1 \\ \end{array} } \right]$$
(7)

where \(r_{i1}\), \(r_{i2}\) and \(r_{i3}\) have been given in Table 1. The body velocity of the center of mass of the ith link is given by \(V_{{W_{k} L_{i} }}^{b} = J_{{W_{k} L_{i} }}^{b} (\theta_{i} )\dot{\theta }_{i}\), where \(J_{{W_{k} L_{i} }}^{b}\) is the body Jacobian corresponding to \(g_{{W_{k} L_{i} }}\), with the form of

$$J_{i} = J_{{W_{k} L_{i} }}^{b} \left( {\theta_{i} } \right) = \left[ {\xi_{1}^{ + } \; \ldots \;\xi_{i}^{ + } \;0\; \ldots \;0} \right]$$
(8)

And \(\xi_{i}^{ + }\) is the instantaneous joint twist relative to the ith link frame. Each body Jacobian is calculated separately as follows,

$$\xi_{j}^{ + } = Ad_{{e^{{\widehat{{\xi_{j} }}\theta_{j} }} \cdots e^{{\widehat{{\xi_{i} }}\theta_{i} }} g_{{W_{k} L_{i} (0)}} }}^{ - 1} \xi_{j} \;(j \le i)$$
(9)

where \(Ad_{g}^{ - 1}\) is inverse adjoint transformation associated with g, which maps one coordinate system into another. \(Ad_{g}^{ - 1}\) is defined as, \(Ad_{g}^{ - 1} = \left[ {\begin{array}{*{20}c} {R^{T} } & { - R^{T} \hat{p}} \\ 0 & {R^{T} } \\ \end{array} } \right]\), where \(\hat{p}\) is the cross product operation as \(\hat{p} = \left[ {\begin{array}{*{20}c} 0 & { - p_{3} } & {p_{2} } \\ {p_{3} } & 0 & { - p_{1} } \\ { - p_{2} } & {p_{1} } & 0 \\ \end{array} } \right]\).

Table 1 Physical parameters of the hexapod

The inertia tensor \(\Im\) is expressed in the body frame, and it is a symmetric matrix \(\left( {\Im \in \Re^{3 \times 3} } \right)\), as defined by \(\Im_{i} { = }\left[ {\begin{array}{*{20}c} {^{i} I_{xx} } & {^{i} I_{xy} } & {^{i} I_{xz} } \\ {^{i} I_{yx} } & {^{i} I_{yy} } & {^{i} I_{yz} } \\ {^{i} I_{zx} } & {^{i} I_{zy} } & {^{i} I_{zz} } \\ \end{array} } \right]\). These parameters are also concluded in Table 1. The generalized inertial matrix M is given by \({\text{M}}_{i} = \left[ {\begin{array}{*{20}c} {m_{i} {\text{I}}} & 0 \\ 0 & {\Im_{i} } \\ \end{array} } \right]\).

Next, the inertial matrix for the robot leg is calculated by

$$M\left( \theta \right) = \left[ {\begin{array}{*{20}c} {M_{11} } & {M_{12} } & {M_{13} } & {M_{14} } \\ {M_{21} } & {M_{22} } & {M_{23} } & {M_{24} } \\ {M_{31} } & {M_{32} } & {M_{33} } & {M_{34} } \\ {M_{41} } & {M_{42} } & {M_{43} } & {M_{44} } \\ \end{array} } \right] = J_{1}^{T} {\text{M}}_{1} J_{1} + J_{2}^{T} {\text{M}}_{2} J_{2} + J_{3}^{T} {\text{M}}_{3} J_{3} + J_{4}^{T} {\text{M}}_{4} J_{4}$$
(10)

which results in 16 components of \(M(\theta )\). The coriolis and centrifugal forces are computed from the 16 elements in inertial matrix via the formula \(C_{ij} (\theta ,\dot{\theta }) = \sum\nolimits_{k = 1}^{n} \varGamma_{ijk} \dot{\theta }_{k}\) where n is the degree of freedom \(\left( {n = 4} \right)\), and \(\varGamma _{ijk} = \frac{1}{2}(\frac{{\partial {\text{M}}_{ij} }}{{\partial \theta_{k} }} + \frac{{\partial {\text{M}}_{ik} }}{{\partial \theta_{j} }} - \frac{{\partial {\text{M}}_{kj} }}{{\partial \theta_{i} }})\).

The effects of gravitational forces on each leg are computed as

$$V(\theta ) = m_{1} gh_{1} (\theta_{1} ) + m_{2} gh_{2} (\theta_{2} ) + m_{3} gh_{3} (\theta_{3} ) + m_{4} gh_{4} (\theta_{4} )$$
(11)

where V is the potential energy of the leg, and \(h_{i}\) is the height of the COM for ith link, which can be calculated by kinematics above mentioned. By deriving \(M(\theta )\), \(C(\theta ,\dot{\theta })\) and \(N(\theta ,\dot{\theta })\), the inverse dynamics model of our hexapod can be achieved by substituting all the parameters into the following equation,

$$\tau_{j} = [M(\theta )\ddot{\theta } + C(\theta ,\dot{\theta })\dot{\theta } + V(\theta )]_{j}$$
(12)

3.2 Torque Distribution

Torque distribution for climbing can be achieved by inverse dynamics and trajectory planning. The results will be shown in next section. For flat terrain walking, the hexapod can be treated as quasi-static rigid system. It is assumed here leg j, …r are in swing phase and the rest in stance phase are expressed as leg s. The general matrix form of force/moment equation can be written as,

$$A_{s} F_{s} + B_{c} W = 0$$
(13)

where A s is a coefficient matrix representing the position of supporting legs and \(F_{s}\) is the force vector of supporting legs. A s and \(F_{s}\) meet the conditions of matrix multiplication. A s is determined by the duty factor(gait) of hexapod with the form of \(A_{s} = \left[ \begin{aligned} I_{3} \; \ldots \;I_{3} \hfill \\ \hat{t}_{j} \; \ldots \;\hat{t}_{s} \hfill \\ \end{aligned} \right]\), where \(\hat{t}_{j}\) is the cross production form of tip point of jth leg and \(I_{3}\) is a 3 × 3 unit matrix. \(B_{c}\) is a coefficient matrix representing the position of COM with the form of \(B_{c} = \left[ {\begin{array}{*{20}c} {I_{3} } & {O_{3} } \\ {\hat{t}_{COM} } & {I_{3} } \\ \end{array} } \right]\) and W is the global body force/moment vector as \(W = \left[{\begin{array}{*{20}c} {\begin{array}{*{20}c}{\!\!F_{x} } & {F_{y} } & {F_{z} } & {M_{x} } & {M_{y} } & {M_{z} } \\ \end{array} } \\ \end{array} }\!\! \right]^{T}\). By solving Eq. (13), force distribution of tip point can be achieved when the hexapod walking on flat ground. By substituting \(F_{s} = J_{s} \tau_{s}\) into this formula, torque distribution of the hexapod during walking on even terrain can be obtained and used for further analysis, where \(J_{s}\) is a diagonal matrix with the inverse of body Jacobian \(J_{j}^{T}\) as the elements of the principal diagonal.

4 Results and Discussion

The results of torque calculation and torque distribution analysis were presented in this section. The torque of the neck joint was described in Fig. 3, with the output of its actuator (Dynamixel RX-28). In our first version of the design, all joints were driven by this digital actuator with a maximum torque of 28.3 kgf cm as shown by the red lines in Fig. 3, which could hardly raise the fore part of the robot. Based on the analysis of dynamic modeling, RX-64 is then used for neck joint with a torque of 64 kgf cm and the other joints remain the previous actuators. Using model-based method here, our hexapod can climb a high step up to 75 % of its tibia length to realize climbing behavior for outdoor application of hexapod. The driving torques for each rotational joint were estimated in Fig. 4. TC joint provides relatively smaller output torque during climbing, because it only needs to keep rotating along vertical axis while CTr joint and FTi joint provide higher output joint with almost the same values with opposite rotations. Simulations in Webots [19] (Fig. 5) and experimental tests (Fig. 6) were conducted to verify our design of the climbing hexapod.

Fig. 3
figure 3

Torque curve of the neck joint during climbing a high steps about 75 % of its leg length

Fig. 4
figure 4

Comparison of torque values of the TC, CTr and FTi joints of the hexapod while the neck joint rotate for 30° to reach the top of a stair

Fig. 5
figure 5

Snapshots of the climbing behavior for the hexapod in simulation environment

Fig. 6
figure 6

Snapshots of the hexapod prototype with climbing behavior: a Start climbing. b Front legs on the stair. c Climb entirely onto the stair

In this paper, to compute the actuator torques, the equations of motion were derived first. The kinematic variables of the hexapod were assumed to be given. The dynamics of the hexapod was described based on the robot screw theory, which made explicit use of POE equations and joint twist for representing a Lagrange derivation. It only needed to calculate the kinetic and potential energies rather than all the forces acting on the robot to reduce modeling errors. Body velocity of the COM of each link (Fig. 7d) was computed for the torque distribution analysis (Fig. 7a–c). Force and torque of the tip point were calculated by the force/moment equation. Compared with tip point forces, torque distribution was a more energy-efficient approach for hexapod control, as it could make full use of frictions and inter-actions between each joint.

Fig. 7
figure 7

Torque distribution and force analysis in tip points for each leg: a Leg 1 and leg 2. b Leg 3 and leg 4. c Leg 5 and leg 6. d Body velocity of each joint during walking

5 Conclusions

In this paper, a hexapod with a neck joint for climbing over high obstacles were presented. Screw theory and Lagrange method were used to calculate the kinematics, dynamics and torque distribution. Improvement was made based on the analysis and estimation of joint torques. Force and torque distribution of tip point were calculated for a more energy-efficient way. Future works include optimization of the trajectory and torque distribution for a more flexible climbing behavior.