You are currently viewing a new version of our website. To view the old version click .
Applied Sciences
  • Article
  • Open Access

19 March 2024

Kinematic Tripod (K3P): A New Kinematic Algorithm for Gait Pattern Generation

,
and
1
XLIM Institute, UMR CNRS 7252, University of Limoges, 87060 Limoges, France
2
Unidad Tamaulipas, Cinvestav, Km. 5.5 Carretera Victoria—Soto La Marina, Victoria 87130, Mexico
*
Authors to whom correspondence should be addressed.
This article belongs to the Special Issue Advances in Robot Path Planning, Volume II

Abstract

Insects are good examples of ground locomotion because they can adapt their gait pattern to propel them in any direction, over uneven terrain, in a stable manner. Nevertheless, replicating such locomotion skills to a legged robot is not a straightforward task. Different approaches have been proposed to synthesize the gait patterns for these robots; each approach exhibits different restrictions, advantages, and priorities. For the purpose of this document, we have classified gait pattern generators for multi-legged robots into three categories: precomputed, heuristic, and bio-inspired approaches. Precomputed approaches rely on a set of precalculated motion patterns obtained from geometric and/or kinematic models that are performed repeatedly whenever necessary and that cannot be modified on-the-fly to adapt to the terrain changes. On the other hand, heuristic and bio-inspired approaches offer on-line adaptability, but parameter-tuning and heading control can be difficult. In this document, we present the K3P algorithm, a real-time kinematic gait pattern generator conceived to command a legged robot. In contrast to other approaches, K3P enables the robot to adapt its gait to follow an arbitrary trajectory, at an arbitrary speed, over uneven terrain. No precomputed motions for the legs are required; instead, K3P modifies the motion of all mechanical joints to propel the body of the robot in the desired direction, maintaining a tripod stability at all times. In this paper, all the specific details of the aforementioned algorithm are presented, as well as different simulation results that validate its characteristics.

1. Introduction

Locomotion is the act of moving from place to place. To move forward, legged animals, as do insects, use their limbs in a gait pattern. When considering each leg individually, a cycle of the gait pattern is divided into two phases: swing and support. In the swing phase, the limb rises from the ground and moves in the desired direction of movement; the support phase begins when the limb lands and supports a fraction of the total weight of the animal. During the whole cycle, static and/or dynamic equilibrium conditions must be kept for the gait pattern to be stable.
Static stability is achieved when the projection on the ground of the robot’s center of mass (CoM) falls inside the support polygon, defined as the convex hull of all feet in support phase [1,2]. Dynamic stability occurs when the zero moment point (ZMP)—the point with respect to which reaction forces at the contacts between the feet and the ground do not produce any moment in the horizontal direction—is maintained inside the support polygon throughout the gait. Gait patterns whose stability is determined by dynamic conditions allow for faster displacements of the robot because the CoM projection can be located outside of the support polygon for short periods of time [3,4]. Therefore, in order to guarantee stable locomotion, gait synthesizing algorithms must coordinate all limbs of the robot to make it move in the desired direction, while satisfying the static or dynamic equilibrium condition. In general, the stable locomotion is achieved by using precomputed gait patterns for given trajectory and terrain conditions, or by using parametric-adjusting of the gait by heuristic or bio-inspired approaches to cope with trajectory and terrain changes.
The algorithm we propose, called K3P for kinematic tripod, is a real-time kinematic gait generator capable of on-the-fly computing of the limb motions of a legged robot in order to move along an unknown arbitrary trajectory on uneven terrain, while maintaining static equilibrium, maximizing horizontal displacement of the feet contact points, and avoiding collisions between two consecutive limbs. In this paper, we describe some related approaches, analyze the performance of K3P in a virtual test scenario, and use torque estimations to measure the viability of the synthesized gait pattern.

3. Robot Description and Nomenclature

In this section, we will describe the radial hexapod robot on which the K3P algorithm was tested, as well as the nomenclature used (see Table 1). Figure 2a shows the structure of the robot, the main body is circular and the six limbs are evenly distributed along its perimeter; with the center of mass (CoM) at the origin of the B reference frame [14,19,29]. Each limb has three DoF as shown in Figure 2b. By convention, all Z axes are coaxial with the rotation’s axis of each joint. With respect to B, the mounting point for the i-th limb is denoted by the M i reference frame. The first joint provides the protraction and retraction movements, marked by the variable θ s in the S reference frame. The L reference frame is located in the second DoF, denoted as θ L ; it provides the depression and elevation movements. The third DoF is marked as θ k in the K reference frame, providing flexion and extension movements. The length of every link are l c , l f , and l t for the coxa, femur, and tibia, respectively. The supporting point S P is at the point where the limb makes contact with the ground, supporting the body of the robot.
Table 1. Nomenclature.
Figure 2. The mechanical description of the radial hexapod tested with K3P. (a) The radial hexapod as tested with the K3P algorithm. (b) A detailed mechanical description for one of the legs of the radial hexapod.
The six limbs are divided into two subsets, three non-contiguous limbs form the odd legs subset, while the rest are grouped in the even legs subset (see Figure 2a). Each subset defines a tripod support structure with its own reference frame, E and O, for the even and odd subsets, respectively. The subset supporting the robot defines the parity of the gait κ ; if κ = 1 , even limbs support the robot.
To deal with spatial relationships between two reference frames, say frame b with respect to frame a, we used rigid body transformations in homogeneous coordinates denoted as
A a b = R a b t a b 0 1
where R a b S O ( 3 ) denotes the rotation matrix of frame b with respect to a and t a b is the position vector of origin of b, also with respect to a.
From the mounting point of the i-th limb, marked as M i in Figure 2b, the links and joints of each limb form a kinematic chain. The corresponding Denavit–Hartenberg (DH) parameters [38] are summarized in Table 2. Since all limbs are equal, these parameters are valid for all limbs of the radial hexapod. These parameters allow us to compute the rigid body transformation between link n with respect to n 1 , A n 1 n . Finally, the rigid body transformation from frame N with respect to the base link ( n = 0 ) is given by
A 0 N = n = 1 N A n 1 n
Table 2. Denavit–Hartenberg parameters for every leg.
Therefore, with these relations, we can compute from the six sets of joint parameters θ s , θ L , θ k , the position of all six leg tips SP i with respect to B. Also, the inverse kinematic model can be solved for each leg, so the joint parameters can be obtained from the position of each point SP i . Moreover, thanks to these physical dimensions and parameters, we can predict the maximum extension of the gait l m a x , given a desired body clearance l h and limb l g clearance over the floor.

4. The K3P Algorithm

In this section, the K3P algorithm will be described (see Algorithm 1), beginning with the description, the objectives of the algorithm, and finally, a global overview. Subsections A to H will discuss the details of every phase of the algorithm.
The main objective of the K3P algorithm is to drive the CoM along an arbitrary trajectory at an arbitrary speed v c , while the two subsets of limbs perform a cyclic gait pattern, swing–support, to follow the movement of the robot’s CoM and to maintain the static stability criteria. The real-time operation of the K3P algorithm is obtained by an update rate Δ t at which the position of every limb is computed and updated. At the initial state, the two subsets of legs are landed and supporting the body of the robot. The movement begins with the odd subset starting the swing phase, while the even subset remains in the support phase of the gait cycle and propels the CoM B along the desired trajectory by updating the even tripod configuration according to the given velocity v c . Concurrently, K3P also drives the tripod on the swing phase forward ahead in the direction encoded by v c .
Algorithm 1 K3P
Require: 
r ˙ d , X B k , l h , l m a x , l g , K p , K d , l ρ , l φ , θ l , θ k
  1:
if  κ = 1   then  z k mean ( [ A B E P e ] z )
  2:
     A B m k A B O ,     A B f k A B E
  3:
else  z k mean ( [ A B O P o ] z )
  4:
     A B m k A B E ,     A B f k A B O
  5:
if  η = 0   then
  6:
     X D k X B k + [ r ˙ Δ t , l h z k , 0 , 0 , ψ ˙ Δ t , v x , v y , l h z k Δ t , 0 , 0 , ψ ˙ ] T
  7:
else  X D k X B k
  8:
e k = X D W , k X B W , k
  9:
u K p e k + K d e k t ,     X B k + 1 = X B k + u Δ t
  10:
A W B k Υ ( X B k ) ,    A W B k + 1 Υ ( X B k + 1 ) ,     X m B , k Υ 1 ( A B m k )
  11:
A B f k + 1 A k + 1 1 W B { A W B A B f } k
  12:
ρ r ˙ [ q ˙ ] ψ ,     θ r l m a x 2 ρ
  13:
X L B , k 1 2 l m a x , 0 , l g , 0 1 × 9 T if | ρ | l ρ 1 2 l m a x cos θ r , sign ( θ r ) 1 2 l m a x sin θ r , l g , 0 1 × 9 T
  14:
e L , k X L B , k X m B , k
  15:
u L K p e L , k + K d e L , k t
  16:
X m B , k + 1 X m B , k + u L Δ t
  17:
Δ z [ X m B , k + 1 ] z [ X m B , k ] z
  18:
if  η = 1 any ( Z i )   then  [ p i ] z [ p i ] z + Δ z
  19:
else if  η = 1 all ( Z i )  then  κ ( 1 ) κ ,     η 1
  20:
else if  η = 1   then  highest [ p m ] z highest [ p m ] z Δ z
  21:
else if  η = 1 none ( Z i )   then  η 0
  22:
if  κ = 1  then  A B O k + 1 Υ ( X m B , k + 1 ) ,     A B E k + 1 A B f
  23:
else  A B E k + 1 Υ ( X m B , k + 1 ) ,    A B O k + 1 A B f ,
  24:
Θ s , Θ l , Θ k   Inverse kinematics  A B O k + 1 , A B E k + 1 , P
  25:
A f m A B m A B f 1 ,     l g a i t r m f
  26:
r i = A B O p { 1 , 3 , 5 } , r i = A B E p { 2 , 4 , 6 } φ i = arccos r i r i 1 i [ 1 , 6 ]
  27:
if  l g a i t l m a x any  ( φ i l φ ) any  ( Θ L θ L ) any  ( Θ K θ K )  then
  28:
     η 1
  29:
Execute  Θ s , Θ l , Θ k
The act of landing the swing tripod to receive the robot’s weight and to allow the other tripod to take off is called a phase shift of the gait cycle. These phase shifts must be performed in such a way that the projection of the CoM on the ground remains at the interior of the supporting polygon at all times, and the total number of phase shifts along the trajectory is kept at minimum, so the step length is maximum. To decide a phase shift of the gait cycle, the algorithm K3P makes use of three different criteria, named K 3 P 1 , K 3 P 2 , and K 3 P 3 , in order to minimize the number of phase shifts during walking while guaranteeing a static stable gait. These criteria are described in subsection F.
The KP3 algorithm uses different frames to describe the configuration of the hexapod robot and to compute the gait: the main reference frame B attached to the robot’s body and CoM, a frame E to describe the tripod formed by the even subset of limbs, and a frame O to describe the odd subset. While in the support phase, any of the two subsets defines a tripod-supporting structure, standing on the ground, so the support polygon corresponds to a triangle at ground level. All support points S P i are described with respect to either E or O reference frames, depending on whether they belong to the even or odd subset (see Figure 2a). As will be shown later, the actual configuration of the robot can be computed from these frames at any time.
In the following subsections, we will introduce some key aspects that give shape to K3P, starting by describing how the CoM is propelled forward along the desired trajectory, given an arbitrary speed command v c . We will also cover how K3P seamlessly distinguishes the forward and turn maneuvers and how K3P performs the phase shift of the gait cycle using the three aforementioned criteria.

4.1. Gait Cycle

From the odd and even subsets of limbs, the supporting tripod of the gait cycle is determined by the parity κ of the gait cycle. If κ = 1 , the even subset is fixed to the ground, supporting the body of the robot, while the odd subset is moving over ground level, further ahead of the CoM, in a swing motion; the opposite occurs for κ 1 . For each case, the rigid body transformations at time instant k of the swing A B m and supporting legs A B f can be obtained using the position of frames E and O, both with respect to B, using the inverse kinematic models of the limbs (lines 1 and 3 of Algorithm 1).

4.2. Propelling Forward the Body of the Robot

The position and orientation of the robot’s body frame B, as well as their corresponding derivatives, with respect to the world reference frame W, describe the desired trajectory of the robot. This target trajectory can be expressed by the state vector:
X B W , k = [ r , q , r ˙ , q ˙ ] T
where r = ( x , y , z ) T corresponds to the three-dimensional coordinates of B, while vector q = ( θ , ϕ , ψ ) T contains the three Euler angles that define the orientation of the robot’s body, both with respect to the world frame W.
K3P works at a fixed rate, so after every time step Δ t , the desired position X D W , k for the CoM of the robot is determined by the commanded velocity vector r ˙ d = ( r ˙ , q ˙ ) T and the current position of the robot (see line 7 of Algorithm 1). This is only carried out if the robot is moving η = 0 , otherwise X D W , k remains the same. The [ r ˙ ] z component is updated to manage any elevation changes of the terrain. To determine [ r ˙ ] z with respect to B, the difference between the average height of the leg tips S P of the supporting tripod (see lines 1 and 3 of Algorithm 1), and the commanded clearance height is divided by Δ t .
The spatial difference between X B W , k and X D W , k defines an error metric (line 10 of Algorithm 1), which is fed to a PD controller; the result is a control command u to propel B in the direction encoded in v c (line 11 of Algorithm 1). Diagonal matrices K p and K d contain the proportional and derivative gains.

4.3. Tripod in Support Phase

Given the desired position of the center of mass X B k + 1 (line 11 of Algorithm 1) and the current tripod supporting the robot A f B k (lines 1 and 3 of Algorithm 1), K3P defines the new configuration for the support tripod (line 13 of Algorithm 1) constrained by
A f W k = A f W k + 1 .
Such a constrain implies that all limbs corresponding to the support tripod remain fixed to the ground with respect to W. In consequence, the gait generated is slip-free and none of the limbs loses contact with the ground. We can solve for A f B k + 1 :
{ A B W A f B } k = { A B W A f B } k + 1 A f B k + 1 = A B W k + 1 1 { A B W A f B } k
where A B W k and A B W k + 1 are determined by the present and desired poses of B. From these matrices, the inverse kinematic model for the supporting legs can be solved.

4.4. Tripod in Swing Phase

As described earlier, K3P defines dynamically the desired position for the CoM; thus, K3P also defines dynamically the desired position for the tripod during the swing phase. The target position L for the swing tripod is defined with respect to B based on three different parameters: the maximum gait distance l m a x (see Figure 3a); the instantaneous turning radius of the hexapod ρ ; and the swing tripod clearance l g .
Figure 3. The position in the X Y W plane and the orientation ψ of the robot, while traversing the lemniscate on uneven terrain. (a) The theoretical maximum gait for the radial hexapod. (b) The dexterous work envelope of two opposite limbs (represented with dotted lines). (c) The shaded area represents the best trade-off between clearance and longest horizontal travel.
The first parameter l m a x is determined by the dexterous work envelope of two opposite limbs. Figure 3b displays such a dexterous work envelope when θ k [ 0 , 3 π 4 ] and θ L [ π 4 , π 2 ] . The envelope defines the horizontal travel distance that a limb can perform. In order to keep phase shifts at minimum, a good compromise between body clearance l h and the maximum gait distance l m a x has to be found. In Figure 3c, we plot the maximum limb extension vs. the clearance; the shaded area represents the range of walk heights for which the K3P algorithm can guarantee a horizontal travel distance of 70% of maximum limb extension. Therefore, K3P considers l m a x to be equal to the 70% of the theoretical maximum extension of the legged robot (see Figure 3a), with a walking height within the shaded range in Figure 3c.
The second parameter that determines the location of frame L is based on the instantaneous turning radius ρ of the CoM B. Such a turning radius is given by the ratio between the current velocity r ˙ = x ˙ , y ˙ , z ˙ and the angular velocity around the Z B axis [ q ˙ ] ψ (line 12 of Algorithm 1). If ρ is above a given threshold l ρ , then L is located straight ahead 1 2 l m a x meters from B in the direction of r ˙ (see Figure 4a); otherwise, it is located over the instantaneous circular trajectory such that the arc length from B to L is equal to 1 2 l m a x (see Figure 4b). Determining the most suitable position for L based on the magnitude of the instantaneous turning radius ρ is how the algorithm differentiates from straight and turning maneuvers.
Figure 4. The two situations that may occur when driving the subset of legs during the swing phase of the gait. (a) Gait forward, ρ l ρ , reference frame E moves towards L, which is located straight ahead from B, along the x axis, d m a x meters. (b) Turning gait, ρ < l ρ . Reference frame L is located d m a x meters ahead over the momentaneous trajectory around the turning point C.
The third and last parameter l g represents how high the tripod will be raised during the swing phase. This parameter is expressed as a percentage of clearance l h and it can be changed dynamically, depending of the roughness of the terrain.
The desired position for the tripod in the swing phase is computed in line 13 of Algorithm 1. Similar to Section 4.2, an error metric e L , k is fed to a PD controller to generate a control command u L over the subset legs in the swing phase, lines 14 and 15 of Algorithm 1, respectively. Then, the position of the tripod performing the swing phase at time instant k + 1 can be computed (line 16 of Algorithm 1).

4.5. Joint Reconfiguration

In lines 9 and 16 of Algorithm 1, the new positions of the body body frame B and both tripods O and E are obtained, using PD controllers on their target positions.
After the corresponding location for the tripods in the support and swing phases have been updated to follow the movement of the CoM B, their corresponding state vectors X B W , k + 1 , X O B , k + 1 and X E B , k + 1 define the spatial relationships between reference frames W, B, O, and E. From here, it is possible to obtain the positions of each leg tip S P i with respect to the robot’s body and, using the inverse kinematics of the 3 DoF RRR limb (line 24 of Algorithm 1), we can compute the values for all articular joints [ θ s , θ l , θ k ] 1 , 2 , , 6 [6].
At this moment, K3P tests the stability of the arrangement at time instant k + 1 by measuring the Euclidean distance from the projection of B on the support polygon to all edges; in case the minimum distance falls below a predefined threshold l t h d , K3P will command the robot to come to a halt. This rarely occurs because the phase shift tests K 3 P 1 , 2 , 3 , which will be introduced in the following section, were designed to guarantee a stable gait.

4.6. Phase Shift

While the robot is walking, a phase shift occurs when the two tripods toggle the phase of the gait they are in. The tripod in the support phase takes off to begin the swing phase and the swing tripod lands to start supporting the main body of the robot. In order to maintain the robot in static equilibrium throughout the walking cycle, the K3P algorithm determines when to shift phases based on three different criteria, named K 3 P 1 , K 3 P 2 , and K 3 P 3 . In particular, K3P1 and K3P2 ensure a collision-free gait pattern.
The first condition K 3 P 1 ensures that every step is as long as mechanically possible for the robot, before the CoM approaches the border of the support polygon too closely, and the gait becomes unstable. For the tripod in the swing phase, K 3 P 1 measures the horizontal traveled distance from the starting point to the current position of its origin, if the traveled distance reaches the maximum travel distance l m a x (see Figure 5a), K 3 P 1 will trigger a phase shift (line 25 of Algorithm 1).
Figure 5. First two criteria that trigger a phase shift. (a) K 3 P 1 . The linear distance between centroids at start and end positions is limited to l m a x meters. (b) K 3 P 2 . As the even legs turn counter-clockwise, the angle φ cannot be smaller than φ m .
The second condition K 3 P 2 avoids collisions between two consecutive limbs during a turning maneuver (line 26 of Algorithm 1). K 3 P 2 works by measuring the angle φ , formed by the projections on the X Y B plane of two consecutive position vectors t B S P , i . If φ is smaller than a certain threshold, this criterion triggers a phase shift (see Figure 5b).
Together, the criteria K 3 P 1 and K 3 P 2 reduce the number of phase shifts when the robot is walking, allowing it to make big steps while advancing and/or turning; additionally, these criteria are enough to control the robot in open-loop blind-walking if all position controllers driving each joint are accurate enough. That said, K3P incorporates the inherent position information of all limbs as a third criterion, named K 3 P 3 , to make sure they are working properly. K 3 P 3 tests the stability of the inverse kinematics solution; so all joint angles of every limb [ θ s , θ l , θ k ] 1 , 2 , , 6 remain within a certain range of operation, avoiding the proximity to the mechanical limits and singularities that otherwise could lead to an unstable walking pattern.
If any of these criteria are met, then the algorithm K3P commands a shift phase of the gait cycle (line 27 of Algorithm 1). The CoM stops its motion to wait for the subset of legs in the swing cycle to land on the ground and begin the stand phase; while the opposite occurs for the subset of legs in stand phase.

4.7. Uneven Terrain

When a phase shift has been triggered, the tripod in the swing phase has to land. If the surface is uneven, the limbs have to adapt to the elevation changes of the surface. In contrast to the tripod control strategy, where the three legs are commanded simultaneously, during landing, each limb is controlled individually and the three landing events are treated separately. By utilizing interoceptive information, the position of each leg is always known. K3P considers that the swing phase has ended only when all three limbs of the swinging tripod have touched the surface, and therefore, it can begin the support phase of the gait cycle (line 19 of Algorithm 1). To adapt to changes in elevation, K3P must receive information when every S P has touched the surface and updates their height with respect to its corresponding reference frame (E or O). The update process is carried out according to the displacement Δ z performed by the tripod in swing phase while landing (lines 18 and 20 of Algorithm 1). The displacement update Δ z for the i-th limb (line 17 of Algorithm 1) is expressed as the difference of the z components of two consecutive state vectors of the moving tripod.
The swing phase ends when all limbs have landed, and at this moment, their positions with respect to B have been adapted to the elevation of the terrain below the robot. In order to perceive ground contact, we consider using inexpensive ToF distance sensors (for example, VL53L0X by ST semiconductor). Eventually, when a tripod restarts its swing phase, the limbs take off, starting from the lowest limb (line 20 of Algorithm 1). The update process Δ z is applied only to those limbs at the same elevation with respect to B, making the limbs separate from the ground in the opposite order on which they landed and move at unison once all the limbs of the tripod have taken off.
Using this approach, the K3P algorithm does not require prior information about the terrain texture. In the Results section, simulations obtained with predefined values of l h and l g are shown. However, it is possible to adapt these parameters during execution based on information obtained, for example, from visual data regarding terrain conditions, allowing a higher-level trajectory planning module to modify these parameters.
However, it is important to highlight the limitations of the algorithm: the gait pattern generator will fail when encountering obstacles of significant height, such as large debris or stairs. Additionally, the terrain must be rigid; hence, viscous terrains cannot be considered either.

4.8. Torque Estimation

To test the mechanical viability of the K3P algorithm driving the hexapod robot, we estimated the torques exerted on the knee K, swing S, and lift L joints, as they represent the electric actuators which exert a torque to drive every limb in the commanded direction. Considering that every limb consists of one or more concentrated masses m j , the way to estimate the torque τ S , i for the any given joint, say ϑ , is
τ ϑ , i = j = 1 J t C o G , j ϑ × m j g
where g is the gravity vector with respect to W, m j is the mass for the j-th link, and t C o G , j ϑ is the position vector for the CoM of the j-th link with respect to reference frame ϑ . Table 3 lists the three joints of interest along the CoM coordinates for every concentrated mass m j that exerts a torque on the j-th joint. Using Equation (2), the torques on the knee, swing, and lift joints were estimated, and the results will be shown when we describe the simulation process.
Table 3. Parameters for torque estimation with respect to listed reference frames.

5. Test Results

In this section, we show the test results of the K3P algorithm when commanding an hexapod robot with a radial base of 0.65 m in a virtual uneven terrain. The numerical values for all physical dimension and parameters are listen in Table 4. The results shown in this section were obtained from computations on Matlab in order to simulate the kinematics of the robot.
Table 4. Simulation parameters.
During the simulation, the speed commands v c for the robot were generated so that it describes a lemniscate trajectory. We chose the lemniscate trajectory because it defines two turns in opposite directions and two almost straight segments for the robot to travel. The parametric equations of the lemniscate r d ( s ) is shown in Equation (3):
r d ( s ) = x d ( s ) y d ( s ) z d ( s ) ψ d ( s ) = a sin ( s ϵ ) b sin ( 2 s ϵ ) c sin ( 3 s ϵ ) arctan 2 ( y ˙ d , x ˙ d )
For this numerical example, the robot is commanded to follow a lemniscate covering a rectangular region of 3.5 m long and 2.3 m wide; the values for all parameters of the lemniscate equations are listed in Table 4. For a given speed value v B and time step Δ t , we iteratively computed the increment for the parameter Δ s that yields an equal incremental displacement Δ r d = v B Δ t . This incremental displacement is then used as the input command for the K3P algorithm v c (Section 4.2) as
v c = v x v y v z ψ ˙ = x ˙ d ( s + Δ s ) y ˙ d ( s + Δ s ) z ˙ d ( s + Δ s ) arctan 2 ( y ˙ d + Δ s , x ˙ d + Δ s )
Figure 6a shows how K3P drove the hexapod around the lemniscate trajectory over uneven terrain, as well as the trail of all limbs; the initial state of the robot was
X B W , 0 = [ 0 , 0 , 0.16 , 0 1 × 9 ] T
Figure 6. K3P driving the hexapod robot over uneven terrain, describing the lemniscate trajectory. (a) Walk gait around the lemniscate over uneven terrain (lighter colors indicate higher elevations of the terrain). (b) Desired ( x d ( t ) and y d ( t ) ) and actual ( x ( t ) and y ( t ) ) trajectories. (c) The transient ψ response. (d) Walking height z ( t ) vs. terrain elevation z d ( t ) .
Figure 6b shows the trajectory described by the CoM of the robot, overlapping the desired trajectories in the X Y W plane. Figure 6c shows the transient response at the beginning of the trajectory when the hexapod aligns itself with the lemniscate trajectory from its initial state; the shaded areas represent the moments at which the even subsets of legs are at the swing phase of the gait cycle. The reader can verify that after every phase shift is triggered, the desired angle of orientation ψ d ( t ) equals ψ ( t ) ; this causes the robot to stop spinning while the swinging tripod lands. Figure 6d displays how K3P adapts to the elevation of the terrain z d ( t ) as measured from right below B. K3P tries to maintain a constant walking height z ( t ) with respect to the surface elevation ≈0.16 m (Section 4.7). Figure 7 shows several footprints of the hexapod right after a phase shift occurs, and both subsets of legs are touching the ground. The corresponding locations of B 1 , 2 , , 15 are shown to display that the gait is stable because B is within the support polygon of the vehicle. Furthermore, Figure 7 shows where the turning radius is smaller than the threshold ρ m = 0.8 m used in the simulation to better determine the desired location L for the swing tripod, as discussed in Section 4.4.
Figure 7. The stability of the walking gait. Consecutive orange dots over the trajectory represent the location of B where ρ < 0.8 m.
Figure 8a represents the first 40 s of simulation when the hexapod traverses the lemniscate trajectory; the shaded areas show when the even tripod is in the swing phase, while the white areas show where the odd tripod is performing the swing phase of the gait cycle. At every change in shading, the graph shows the criterion triggering the phase shift at the specific moment in time it occurred: number 1 for K3P 1 , number 2 for K3P 2 , and 3 for K3P 3 . At the beginning of the simulation, when the hexapod robot aligns with the lemniscate, K 3 P 2 triggers the phase shift because the legs were getting too close to each other during the turning maneuver; this corresponds to the transient response in the ψ angle as displayed in Figure 6c. Then, K 3 P 1 triggers the phase shift because the traveled distance of the swinging tripod is longer than l m a x . The dotted lines correspond to the thresholds 1 2 l m a x and φ m , for the maximum gait distance and minimum angle between two consecutive legs, respectively. Moreover, to display that K3P is capable of commanding the robot to move at an arbitrary velocity through an arbitrary trajectory, the graph in Figure 8a displays a change in velocity, commanded right after the fourth phase shift at t 22 s. The velocity is doubled from v = 0.02 m/s to v = 0.04 m/s; the change in velocity can be observed from the duration of the swing phase, where they become narrower after t 22 s because it takes less time for the robot to cover the maximum traveled distance l m a x . Note, however, that the change in speed can be commanded at any given time, changing immediately the duty factor β .
Figure 8. The phase shifts and torques generated when the hexapod robot traverses the lemniscate. Only the first 40 s of simulation are shown. (a) The phase shifts triggered during the first 40 s of the simulation. The commanded speed starts at v = 0.02 m/s; after the fourth phase shift ( t 22 s), it was changed to v = 0.04 m/s. (b) For the odd tripod, the torques exerted on the L and K joints around the z axis.
After running the simulation, we estimated the torques exerted on every joint of the robot. We modeled the robot as a set of discrete masses, listed in Table 5, whereby the overall mass of the robot is approximately 1.6 kg. Figure 8b shows the resulting torques on the knee and lift joints for the odd subset of limbs during the same period of time and phase shifts as previously discussed for Figure 8a. Torques for the even subset of limbs are in the same order of magnitude, since the robot is symmetrical. Because the axis of rotation of the knee and lift joints are coaxial with the two axes [K ] z and [ L ] z , in Figure 8b, we only show [ τ L , i ] z and [ τ K , i ] z . We omitted the torque exerted on the swing joint, because [ τ S , i ] z 0 . As it can be observed, the maximum torques exerted on the lift and knee joints occur when the even tripod is in the support phase of the gait cycle; furthermore, the maximum absolute values were 1.36 Nm and 0.60 Nm for the [ τ L , i ] z and [ τ K , i ] z axes, respectively, which are manageable for commercially available servo motors.
Table 5. Discrete masses that form the robot.
As mentioned in Section 4.4, the K3P algorithm can command the swing tripod to increase or decrease the maximum clearance of the robot. Figure 9 displays two different values of clearance when the robot travels in a straight line uphill: the first (see Figure 9a) with a clearance equal to 50% of l h and the second with a clearance of 90%. The latter causes the support point S P to travel almost as high as the CoM B. If required, the walk clearance can be updated at any moment to better adapt to the terrain’s changes in elevation. Section 4.4 also shows the profile of every gait cycle that the K3P algorithm describes. Right after a phase shift is triggered, the limbs are taken to land to begin the support phase of the gait cycle.
Figure 9. The trajectories of S P 1 when K3P drives the hexapod uphill (black solid line) at two different settings for the maximum height. The hexapod robot moves from left to right, the trajectory of B is also shown. For simplicity, we only show the trajectory for leg number 1. (a) The limbs are swinging at 50% of clearance. (b) The limbs are swinging at 90% of clearance.

6. Conclusions

In this article, the K3P algorithm is proposed as a novel approach for dynamic gait generation for hexapod robots. This new algorithm is based on a kinematic planner for the legs organized as tripods. The core of K3P are three shift phase conditions, K 3 P 1 , 2 , 3 , that ensure the static slip-free stability of the robot throughout its operation, without requiring any precomputed paths or trajectories whatsoever.
The methodology and numerical results are presented for a radial hexapod traversing a lemniscate trajectory, shown as a versatile methodology when commanding an hexapod. Compared to other approaches, K3P does not require any precomputed information from the trajectory to be followed, nor the trajectory for every support point S P i , nor precomputed gait patterns. Instead, all trajectories for every tripod were dynamically generated in real-time and made possible that B described a smooth arbitrary trajectory at an arbitrary velocity while the support points remained still over the uneven surface that the robot was walking on. Additionally, K3P is able to dynamically change the clearance of the robot, and we studied the trade-off between clearance vs. step length, given the physical dimensions of the robot.
The K3P algorithm is executable on commercially available embedded computers, using fast linear algebra computation libraries, such as Lapack. Modern CPUs support instruction sets enabling parallelization, such as Single Instruction Multiple Data (SIMD), while GPUs can further enhance the algorithm’s execution speed. The possibility of implementing the algorithm on an FPGA can also be considered. Consequently, K3P algorithm finds application in real-time scenarios for robot control. However, it can also be utilized in offline contexts. For example, K3P could serve as a teaching tool for neural networks, with K3P criteria employed to reinforce the learning process of walking.
Because the K3P algorithm performs at real-time and under static stability, it can change the direction of movement of the robot at any given moment. This can be useful if the robot performs in an ever-changing environment with static and dynamic obstacles, e.g., humans or other mobile robots. Such is the case in collaborative robotics; in this emerging research field, robots perform alongside humans or other robots [25]. K3P can offer a development opportunity in collaborative robotics because it can make the robot stop or perform an immediate change in direction of movement when close to a moving obstacle or in a dangerous situation.
The viability of the algorithm is proven by estimating the torques exerted on the knee and lift joints, which are below the maximum torque of commercially available electric servo motors.
As it was shown in the previous section, the K3P algorithm can drive a hexapod robot over irregular terrain without planning in advance every step of the robot at an arbitrary speed. This key design choice for K3P has an important implication: a higher-level trajectory planner can determine the most suitable path for the robot to follow, so that all traversed portions of the terrain can support a footstep. Therefore, K3P can be described as a low-level kinematic planner for a hexapod robot operating in open loop. Its features would allow us to use it alongside different abstraction models of a hexapod to make the robot change its shape when walking in confined environments [39]. Changing the shape of the robot when walking can be useful to adapt to not only uneven terrain as shown here, but to also adapt to constrained and unstructured environments such as a tunnel.

7. Future Work

As future work, we plan to test K3P with an actual robot. The main purpose will be to integrate this algorithm as a low-level feature, allowing for higher-level algorithms to plan the desired trajectory for the robot. Additionally, we plan to integrate an Inertial Measurement Unit as a loop back sensor to work in a closed-loop scheme for the position and pose of the robot; this would make it possible for the robot to display some level of adaptation to sudden external perturbations (mud, gliding, external agents, etc.).

Author Contributions

Conceptualization, J.G.R.-T.; methodology, J.G.R.-T. and D.S.-G.; software, D.S.-G.; validation, J.G.R.-T., D.S.-G. and E.R.-T.; formal analysis, J.G.R.-T. and D.S.-G.; investigation, J.G.R.-T. and D.S.-G.; resources, J.G.R.-T. and D.S.-G.; data curation, D.S.-G.; writing—original draft preparation, D.S.-G.; writing—review and editing, J.G.R.-T., D.S.-G. and E.R.-T.; visualization, D.S.-G. and E.R.-T.; supervision, J.G.R.-T. All authors have read and agreed to the published version of the manuscript.

Funding

The research of the second and third authors was partially funded through Conahcyt-SNII grants 70840 and 44223, respectively.

Institutional Review Board Statement

Not applicable.

Data Availability Statement

Code and tests can be found in the K3P repository, available online https://github.com/djaniel/k3p (accessed on 15 March 2024).

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Zhang, C.; Jiang, X.; Teng, M.; Teng, J. Research on gait planning and static stability of hexapod walking robot. In Proceedings of the 8th International Symposium on Computational Intelligence and Design (ISCID), Hangzhou, China, 12–13 December 2015; Volume 2, pp. 176–179. [Google Scholar] [CrossRef]
  2. Manglik, A.; Gupta, K.; Bhanot, S. Adaptive gait generation for hexapod robot using genetic algorithm. In Proceedings of the IEEE 1st International Conference on Power Electronics, Intelligent Control and Energy Systems (ICPEICES), Delhi, India, 4–6 July 2016; pp. 1–6. [Google Scholar] [CrossRef]
  3. Jalal, A.; Behzad, M.; Fariba, B. Modeling gait using CPG (Central Pattern Generator) and neural network. In Proceedings of the Biometric ID Management and Multimodal Communication (BioID 2009), Madrid, Spain, 16–18 September 2009; pp. 130–137. [Google Scholar] [CrossRef]
  4. Smaldone, F.M.; Scianca, N.; Modugno, V.; Lanari, L.; Oriolo, G. ZMP constraint restriction for robust gait generation in humanoids. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), Paris, France, 31 May–31 August 2020; pp. 8739–8745. [Google Scholar] [CrossRef]
  5. Booysen, T.; Marais, S. The development of a remote controlled, omnidirectional six legged walker with feedback. In Proceedings of the 2013 Africon, Pointe aux Piments, Mauritius, 9–12 September 2013; pp. 1–6. [Google Scholar] [CrossRef]
  6. Isvara, Y.; Rachmatullah, S.; Mutijarsa, K.; Prabakti, D.E.; Pragitatama, W. Terrain adaptation gait algorithm in a hexapod walking robot. In Proceedings of the 13th International Conference on Control Automation Robotics Vision (ICARCV), Singapore, 10–12 December 2014; pp. 1735–1739. [Google Scholar] [CrossRef]
  7. Zhai, Y.; Gao, P.; Sun, Y.; Zhao, S.; Jiang, Z.; Li, B.; Hu, Y.; Zhang, J. Gait planning for a multi-motion mode wheel-legged hexapod robot. In Proceedings of the IEEE International Conference on Robotics and Biomimetics (ROBIO), Qingdao, China, 3–7 December 2016; pp. 449–454. [Google Scholar] [CrossRef]
  8. Wang, B.; Zhang, K.; Yang, X.; Cui, X. The gait planning of hexapod robot based on CPG with feedback. Int. J. Adv. Robot. Syst. 2020, 17, 1729881420930503. [Google Scholar] [CrossRef]
  9. Nishii, J. Legged insects select the optimal locomotor pattern based on the energetic cost. Biol. Cybern. 2000, 83, 435–442. [Google Scholar] [CrossRef] [PubMed]
  10. Ji, W.S.; Cho, B.K. Development of a walking algorithm for stair formed obstacle for the hexapod walking robot LCR200. In Proceedings of the 14th International Conference on Control, Automation and Systems (ICCAS 2014), Gyeonggi-do, Republic of Korea, 22–25 October 2014; pp. 1614–1616. [Google Scholar] [CrossRef]
  11. Chou, Y.C.; Yu, W.S.; Huang, K.J.; Lin, P.C. Bio-inspired step crossing algorithm for a hexapod robot. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, San Francisco, CA, USA, 25–30 September 2011; pp. 1493–1498. [Google Scholar] [CrossRef]
  12. Lin, P.; Komsuoglu, H.; Koditschek, D.E. Sensor data fusion for body state estimation in a hexapod robot with dynamical gaits. IEEE Trans. Robot. 2006, 22, 932–943. [Google Scholar] [CrossRef]
  13. Kriengkomol, P.; Kamiyama, K.; Kojima, M.; Horade, M.; Mae, Y.; Arai, T. New tripod walking method for legged inspection robot. In Proceedings of the IEEE International Conference on Mechatronics and Automation, Harbin, China, 7–10 August 2016; pp. 1078–1083. [Google Scholar] [CrossRef]
  14. Marais, S.T.; Nel, A.L.; Robinson, P.E. Reflex assisted walking for a hexapod robot. In Proceedings of the Pattern Recognition Association of South Africa and Robotics and Mechatronics International Conference (PRASA-RobMech), Stellenbosch, South Africa, 30 November–2 December 2016; pp. 1–6. [Google Scholar] [CrossRef]
  15. Kottege, N.; Parkinson, C.; Moghadam, P.; Elfes, A.; Singh, S.P.N. Energetics-informed hexapod gait transitions across terrains. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), Seattle, WA, USA, 26–30 May 2015; pp. 5140–5147. [Google Scholar] [CrossRef]
  16. Sun, Y.; Jing, Z.; Dong, P.; Chen, W.; Huang, J. Locomotion Control for a Land-Air Hexapod Robot. In Proceedings of the 6th IEEE International Conference on Advanced Robotics and Mechatronics (ICARM), Chongqing, China, 3–5 July 2021; pp. 887–892. [Google Scholar] [CrossRef]
  17. Rahme, M.; Abraham, I.; Elwin, M.L.; Murphey, T.D. Dynamics and domain randomized gait modulation with Bezier curves for sim-to-real legged locomotion. arXiv 2020, arXiv:2010.12070. [Google Scholar] [CrossRef]
  18. Chavali, R.A.; Kent, N.; Napoli, M.E.; Howard, T.M.; Travers, M. Inferring Distributions of Parameterized Controllers for Efficient Sampling-Based Locomotion of Underactuated Robots. In Proceedings of the American Control Conference (ACC), Philadelphia, PA, USA, 10–12 July 2019; pp. 5767–5773. [Google Scholar] [CrossRef]
  19. Hauser, K.; Bretl, T.; Latombe, J.; Wilcox, B. Motion planning for a six-legged lunar robot. In Algorithmic Foundation of Robotics VII; Selected Contributions of the Seventh International Workshop on the Algorithmic Foundations of Robotics; Springer: Berlin/Heidelberg, Germany, 2008; Volume 47, pp. 301–316. [Google Scholar] [CrossRef]
  20. Stoian, V.; Vladu, I.C. A control algorithm for hexapod mobile robot gait in fault conditions. In Proceedings of the 20th International Conference on System Theory, Control and Computing (ICSTCC), Sinaia, Romania, 13–15 October 2016; pp. 349–354. [Google Scholar] [CrossRef]
  21. Chen, G.; Han, Y.; Li, Y.; Shen, J.; Tu, J.; Yu, Z.; Zhang, J.; Cheng, H.; Zhu, L.; Dong, F. Autonomous gait switching method and experiments of a hexapod walking robot for Mars environment with multiple terrains. Intell. Serv. Robot. 2024, 1–21. [Google Scholar] [CrossRef]
  22. Currie, J.; Beckerleg, M.; Collins, J. Software Evolution of a Hexapod Robot Walking Gait. In Proceedings of the 15th International Conference on Mechatronics and Machine Vision in Practice, Auckland, New Zealand, 2–4 December 2008; pp. 305–310. [Google Scholar] [CrossRef]
  23. Wang, B.; Cui, X.; Sun, J.; Gao, Y. Parameters optimization of central pattern generators for hexapod robot based on multi-objective genetic algorithm. Int. J. Adv. Robot. Syst. 2021, 18, 17298814211044934. [Google Scholar] [CrossRef]
  24. Seljanko, F. Hexapod walking robot gait generation using genetic-gravitational hybrid algorithm. In Proceedings of the 15th International Conference on Advanced Robotics (ICAR), Tallinn, Estonia, 20–23 June 2011; pp. 253–258. [Google Scholar] [CrossRef]
  25. Liu, M.; Li, M.; Pang, J. Fault-tolerant gait implementation of hexapod robot based on finite state automata. In Proceedings of the 29th Chinese Control And Decision Conference (CCDC), Chongqing, China, 28–30 May 2017; pp. 6800–6805. [Google Scholar] [CrossRef]
  26. Mrva, J.; Faigl, J. Tactile sensing with servo drives feedback only for blind hexapod walking robot. In Proceedings of the 10th International Workshop on Robot Motion and Control (RoMoCo), Poznan, Poland, 6–8 July 2015; pp. 240–245. [Google Scholar] [CrossRef]
  27. Kurosawa, M.; Sasaki, T.; Ohara, M.; Tanaka, T.; Hayakawa, Y.; Kaneko, M.; Uchikoba, F.; Saeki, K.; Saito, K. Gait Pattern Generation of Hexapod-Type Microrobot Using Interstitial Cell Model Based Hardware Neural Networks IC. In Proceedings of the International Conference on Electronics Packaging (ICEP), Niigata, Japan, 17–20 April 2019; pp. 316–319. [Google Scholar] [CrossRef]
  28. Sun, Q.; Gao, F. An online gait planner of hexapod robot to safely pass through crowded environment based on tactile sense and virtual dynamic model. In Proceedings of the 9th International Conference on Human System Interactions (HSI), Portsmouth, UK, 6–8 July 2016; pp. 176–182. [Google Scholar] [CrossRef]
  29. Liu, Y.; Ding, L.; Gao, H.; Liu, G.; Deng, Z.; Yu, H. Efficient force distribution algorithm for hexapod robot walking on uneven terrain. In Proceedings of the IEEE International Conference on Robotics and Biomimetics (ROBIO), Qingdao, China, 3–7 December 2016; pp. 432–437. [Google Scholar] [CrossRef]
  30. Ijspeert, A. Central pattern generators for locomotion control in animals and robots: A review. Neural Netw. 2008, 21, 642–653. [Google Scholar] [CrossRef] [PubMed]
  31. Zhong, B.; Zhang, S.; Xu, M.; Zhou, Y.; Fang, T.; Li, W. On a CPG-Based Hexapod Robot: AmphiHex-II with Variable Stiffness Legs. IEEE ASME Trans. Mechatron. 2018, 23, 542–551. [Google Scholar] [CrossRef]
  32. Thor, M.; Manoonpong, P. A Fast Online Frequency Adaptation Mechanism for CPG-Based Robot Motion Control. IEEE Robot. Autom. Lett. 2019, 4, 3324–3331. [Google Scholar] [CrossRef]
  33. Jose Hugo Barron-Zambrano, C.T. FPGA implementation of a configurable neuromorphic CPG-based locomotion controller. Neural Netw. 2013, 45, 50–61. [Google Scholar] [CrossRef] [PubMed]
  34. Yu, H.; Gao, H.; Ding, L.; Li, M.; Deng, Z.; Liu, G. Gait Generation with Smooth Transition Using CPG-Based Locomotion Control for Hexapod Walking Robot. IEEE Trans. Ind. Electron. 2016, 63, 5488–5500. [Google Scholar] [CrossRef]
  35. Li, W.; Chen, W.; Wu, X.; Wang, J. Parameter tuning of CPGs for hexapod gaits based on Genetic Algorithm. In Proceedings of the IEEE 10th Conference on Industrial Electronics and Applications (ICIEA), Auckland, New Zealand, 15–17 June 2015; pp. 45–50. [Google Scholar] [CrossRef]
  36. Morantes, G.; Cappelleto, J.; Fernández, G.; Clotet, R.; Torrealba, R.; Guerrero, S. Comparison of CPG topologies for bipedal gait. In Proceedings of the IEEE Ecuador Technical Chapters Meeting (ETCM), Auckland, New Zealand, 15–17 June 2015; pp. 1–6. [Google Scholar] [CrossRef]
  37. Čížek, P.; Milička, P.; Faigl, J. Neural based obstacle avoidance with CPG controlled hexapod walking robot. In Proceedings of the International Joint Conference on Neural Networks (IJCNN), Anchorage, AK, USA, 14–19 May 2017; pp. 650–656. [Google Scholar] [CrossRef]
  38. Corke, P.I. A Simple and Systematic Approach to Assigning Denavit-Hartenberg Parameters. IEEE Trans. Robot. 2007, 23, 590–594. [Google Scholar] [CrossRef]
  39. Russell, B.; Tirthankar, B.; Marko, B.; Lorenz, W.; Marco, H.; Navinda, K. Walking Posture Adaptation for Legged Robot Navigation in Confined Spaces. IEEE Robot. Autom. Lett. 2019, 4, 2148–2155. [Google Scholar] [CrossRef]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.