Head-Raising of Snake Robots Based on a Predefined Spiral Curve Method

A snake robot has to raise its head to acquire a wide visual space for planning complex tasks such as inspecting unknown environments, tracking a flying object and acting as a manipulator with its raising part. However, only a few researchers currently focus on analyzing the head-raising motion of snake robots. Thus, a predefined spiral curve method is proposed for the head-raising motion of such robots. First, the expression of the predefined spiral curve is designed. Second, with the curve and a line segments model of a snake robot, a shape-fitting algorithm is developed for constraining the robot’s macro shape. Third, the coordinate system of the line segments model of the robot is established. Then, phase-shifting and angle-solving algorithms are developed to obtain the angle sequences of roll, pitch, and yaw during the head-raising motion. Finally, the head-raising motion is simulated using the angle sequences to validate the feasibility of this method.


Introduction
A snake robot is a mobile robot with a long and slender body and plays a crucial role in search and rescue operations, inspection and maintenance [1].Controlling such robots is difficult, and a review of their modeling, implementation, and control can be found in [2].Generally, for given tasks such as searching a trapped person in disaster areas, tracking a flying object and repairing a damaged pipe as a manipulator, the snake robot has to move its body with different motion modes, and head-raising motion is one of them.Snake robots' common motion modes include serpentine [3,4], traveling wave [5,6], concertina [7,8], and sidewinding [9,10] locomotion.Additionally, some researchers sought to find other motion modes such as fusion gait [11] and obstacle-aided locomotion [12].However, these motion modes provide limited visual information.Consequently, snake robots have to raise their heads to observe their surroundings and perform their tasks.Therefore, the motion planning for head-raising of a snake robot is our research object in this paper.
To the best of our knowledge, a few researches on head-raising motion of snake robots have been done, and they can be divided into two types: 2D (two dimensional) head-raising and 3D (three-dimensional) head-raising.This study aims at 3D head-raising.The concepts of 2D and 3D head-raising are illustrated in Figure 1.It should be noted that label 2 and 4 are line segments models of snake robots, which will be utilized in subsequent chapters for simulations.2D head-raising can be found in [13], the authors proposed an improving serpentine input function to achieve the head-raising motion of a snake robot and analyzed the zero-moment point to assess the stability of the robot.As for 3D head-raising [14,15], to realize it is more complicated.In [14], the works were based on an assumption that the head part of the robot is not contact with the ground and regarded as a manipulator, which is able to achieve several sub-tasks in 3D environment.Therefore, essentially speaking, the researchers mainly considered tracking the trajectory of a snake robot's head rather than the head-raising process.Inspired by the work made by Tanka et al, we currently are working on trajectory tracking of the snake robot head by improving our model.There still exists problems to be solved and a video about the trajectory tracking (Concept_of_trajectory_tracking.avi) can be seen in Supplementary Materials.In [15], the authors regarded a snake robot as a serially linked floating-base robot and divided it into base and active modules.The base modules were used to construct the support polygon for maintaining stability during the head-raising process and can be changed to active modules to allow the head to stretch to a given position and orientation.The trajectory functions of individual joints were set as parameterized cubic spline curves, and the head-raising motion was achieved by optimizing these parameters according to some criterions.In summary, existing works of head-raising attempt to find the input functions of individual joints.However, in this study, the input functions (angle sequences with respect to time) are unknown, and they are obtained by shape-fitting and phase-shifting algorithms, which will be introduced in the subsequent chapters.Achieving motion control for a snake robot is difficult because of the kinematic redundancy, which can be solved by the shape control method.Motion control based on a spiral curve belongs to the category of the shape control.It is necessary to introduce the concept of shape control method.This method can not be described in theory, and it is a kind of idea to control the motion of snake robots or hyper-redundant manipulators.The idea of shape control method is employing a geometric curve to constrain a robot's configuration by fitting the continuous curve and discrete link model as closely as possible.If change the shape of the geometric curve with respect to time, the robot can achieve continuous motion.The key points to use this method include two aspects.First, how to find a proper curve to describe the shape of robots should be considered.Second, if the curve is obtained, there should be an approach to accomplish the fitting process.Examples of using shape control method can be found in [16][17][18][19][20][21][22][23][24][25].In [16], the authors presented a geometric spline method for the shape control of planar manipulators with hyper-degrees of freedom.With the fitting of the robotic macro configuration and the referent spline curve, real-time control could be easily accomplished.In [17], the authors presented locomotion control using a phase oscillator network, which can produce a smooth transition of the body shape of a snake robot to avoid obstacles.In [18], the researchers introduced a framework to control the shape of robots, and the framework can be divided into four steps, namely, defining the shape control point, using the shape control point to define the Bezier curves, fitting the curves and the shape of the robot, and changing the parameters of the Bezier curves to control the movement of the snake robot according to the desired gait.In [19], the authors used the shape control point method to control the position and orientation of the head of a robot.In [20], the researchers presented a planar manipulator that moves according to a variable-structure polygon function produced by neural networks.In [21], the authors introduced and used a modal approach to generate a backbone curve and thus capture a hyper-redundant manipulator's macroscopic geometric feature.The backbone curve was represented by the linear combination of a set of shape functions with the appropriate coefficients.Then, inverse kinematics reduced to the solution of these coefficients to avoid the heavy computation required by the Jacobian pseudo-inverse method.In [22], the researchers analyzed the curvature of the sidewinding locomotion of a snake robot and developed algorithms to fit the robot's shape to a continuous curve.In [23], the authors proposed the annealed chain fitting algorithm and keyframe wave extraction algorithm; the former maps the shape of the snake robot to a continuous backbone curve and obtains a set of joint angles, whereas the latter obtains a sequence of backbone curves.A similar modeling strategy can also be found in [24,25].In [25], the researchers considered dynamics during the shape control of hyper-redundant manipulators.

Line segments model
The goal of this paper is to propose a new approach to raise a snake robot's head in 3D environments.This mechanism allows the robot to obtain a 360 • field of view and a large working space.In this paper, inspired by the shape control method, a head-raising motion control method based on a predefined spiral curve is proposed.The robot is represented by several line segments, and the corresponding local coordinate system is established.Every line segment corresponds to a module of the snake robot, and the connection point between adjacent line segments corresponds to a joint involving three degrees of freedom, namely, roll, pitch, and yaw angles, which can be obtained by matrix transformation of the local coordinate system.The predefined curve is introduced to constrain the macro shape of the snake robot, and a phase-shifting algorithm is developed to drive the snake robot along the curve.During the phase-shifting process, the angle trajectories for the head-raising motion in a given time can be obtained.With the angle trajectories, the head-raising motion can be achieved.The contributions of this work are summarized by following remarks: 1.A new shape control curve, the predefined spiral curve, is proposed and it is utilized for 3D head-raising of a snake robot; 2. A shape-fitting algorithm is developed for adhering the line segments model of the snake robot to the predefined spiral curve; 3. Establishment rules of coordinate system are given for line segments model of the snake robot; 4. A phase-shifting and an angle-solving algorithms are presented for obtaining angle trajectories used during head-raising motion.
The remainder of this paper is organized as follows.Section 1 reviews previous researches, analyses the necessity for head-raising and introduces our aim, which is raising a snake robot's head based on a predefined spiral curve in 3D environments.Section 2 introduces the modeling of the head-raising motion; the mathematical expression of the predefined spiral curve is discussed in Subsection 2.1, the shape-fitting and phase-shifting methods in Subsection 2.2, and the establishment of the coordinate system and angle-solving algorithm in Subsection 2.3.Section 3 explains the simulation of the head-raising motion.Section 4 presents the conclusions.

Modeling of Head-Raising Motion
In this section, a predefined spiral curve and a shape-fitting method are introduced to constrain the macro shape of the snake robot, which is composed of serial links represented by serial line segments.However, the serial line segments do not contain the complete information of the snake robot.Therefore, coordinate system is introduced.The snake robot has to move through the predefined spiral curve from initial posture to final posture, and that process is called phase-shifting.With the proposed phase-shifting and angle-solving algorithms, the angle sequences (or angle trajectories) can be used to accomplish the head-raising motion.

Predefined Spiral Curve
From the biological perspective, a snake's head-raising movement is irregular, and it is difficult to completely describe its shape using a mathematical model.Based on our observations, the shape of a snake after raising its head is similar to that of a spiral curve, as described in Figure 2. In addition, the spiral curve can ensure the stability of head-raising.Thus, describing the head-raising movement of a snake robot with a spiral curve is reasonable.A regular spiral curve (Figure 3a) can be expressed as Equation (1).It cannot be utilized to guide the movement of the robot, and has to be modified, because it cannot ensure the stability of head-raising.Then, the predefined spiral curve (Figure 3b) is designed and its mathematical description satisfies Equation ( 2), where x l (t), y l (t), and z l (t) represent the line part; x s (t), y s (t), and z s (t) describe the spiral curve part; and a, b, and c are the adjustment coefficients of the spiral curve.The amplitudes of x s (t) and y s (t) change equally when a is changed and unequally when b is changed.The amplitude of z s (t) is influenced by c. ϕ 0 is the initial phase of the sine and cosine functions, which correspond to the slope of the tangent vector for the initial point.n c is the cycle number of the spiral curve.l link and n are the length and number of the snake robot modules, respectively.t is the independent variable divided into three intervals, which correspond to the line part (defined by LP, interval is (0, t1 )); the base of the spiral curve part, which is in contact with the ground (defined by BS, interval is ( t1 , t2 )); and the rest of the spiral curve (defined by RS, interval is ( t2 , t3 )).ϕ base is the phase value of the second interval.
The predefined spiral curve is composed of a line part and a spiral curve part, as shown in Figure 3b.The line and spiral curve parts constrain the initial and final head-raising postures of the snake robot, respectively.As shown in Figure 3, compared with the regular spiral curve expressed in Equation ( 1), the predefined spiral curve expressed in Equation ( 2) introduces parameter b to ensure that x s (t) and y s (t) change unequally, interval (0, t1 ) to construct LP, ( t1 , t2 ) to construct BS, and ( t2 , t3 ) to construct RS.Additionally, by substituting item ( t3 − t) for t, it can be ensured that x s (t) and y s (t) decrease as z s (t) increases.Obviously, the predefined spiral curve is appropriate for ensuring stability during head-raising.

Shape-Fitting and Phase-Shifting Methods
In this section, a shape-fitting and phase-shifting algorithms are developed, and the former ensures that the snake robot adhere to the predefined spiral curve and the latter drive the robot move along with the curve.Figure 4 shows the concepts of these methods.In Figure 4, two links of robot are shown; the red one represents the robot posture at time t i and the black one corresponds to the robot posture at time t i+1 .The robot moves from posture at time t i to posture at time t i+1 , and this process is called phase-shifting.Two links contain three points; that is, the length between adjacent points equals the length of the robot links.Therefore, the snake links are calculated by point sets and represented by line segments.This process is called shape-fitting.The details of how the shape-fitting and phase-shifting algorithms work are described in the following steps.
Step 1: Initialization The parameters a, b, c, n c , n, l link , t1 , t2 , t3 , ϕ 0 , and ϕ base are initialized.The following constraint equation is used to ensure that line segments model of the robot do not get away from the ground.
where S 1 and S 2 represent the arc lengths of BS and RS, respectively.
Step 2: Determination of basic posture The snake robot is represented by line segments and the corresponding coordinate system.This section describes how the line segments of the basic posture are determined.The succeeding portion discusses the rules of building the coordinate system.
The point sets used to construct the line segments are defined as follows: where i P j is the position of point j at step i of phase-shifting.n step is the number of phases shifted and satisfies Equation (5).
where ∆S i is the arc length at step i of phase-shifting and defined as "phase" in this study.Therefore, shape-fitting reduces to find the point set i P snk at step i, and phase-shifting reduces to move all line segments by changing the position of i P snk along with the predefined spiral curve.
The basic posture is considered the initial configuration before the phase-shifting begins, as shown in Figure 5 and calculated as follows.We set i = 1 to indicate that the line segments are in the basic posture without phase-shifting such that the point sets of the basic posture satisfy Equation (6).
Step 3: One step of phase-shifting For programming purposes, independent variable t is regarded as a discrete vector t d and its mathematical description is expressed as follows: where ∆t 1 and ∆t 2 are the step lengths of discretization in intervals (0, t1 ) and ( t1 , t3 ), respectively.After discretization of t, the predefined spiral curve becomes spatial discrete points.
Phase-shifting is achieved by the movement of the snake's head ( i P 1 ) and the refreshing of the positions of the rest of the points ( i P 2 , i P 3 , ..., i P j , ... i P n+1 ) along with the predefined spiral curve.First, given the phase ∆S i , head i P 1 changes into a new position i+1 P 1 , during which independent variable t is assumed to shift from t i to t i+1 .t i and ∆S i are known, and t i+1 can be obtained using Equation (8).
Second, we query t d to identify the element nearest to t i+1 and record its index as i Inx p 1 .
Finally, the rest of the points ( i P 2 , i P 3 , ..., i P j , ... i P n+1 ) and corresponding indices ( i Inx p 2 , i Inx p 3 , ..., i Inx p j , ..., i Inx p n+1 ) can be obtained by distance judgment going through t d from index i Inx p 1 to index 1.Distance judgment is illustrated in Equation ( 9).
where eps is utilized to deal with the error between continuous function and discrete approximation.
Step 4: Iteration Step 3 is one step of phase-shifting from step i to i + 1.On the basis of Equation ( 5), all of the values of phase ∆S i can be computed manually.Then, step 3 is repeated until the head of the snake ( i+1 P 1 ) moves to the final point of the discrete predefined spiral curve.Therefore, iteration completes the phase-shifting process from basic posture ( 1 P snk ) to final posture ( n step P snk ) of the snake robot (represented by line segments or point sets without considering the coordinate system in this part).

Coordinate System and Angle-Solving Algorithm
The line segments cannot contain all the information of the snake robot links or modules.Therefore, we propose an approach on establishing the coordinate system fixed on line segments.
Figure 5 shows the reference coordinate O x o y o z o , and its origin is [0, 0, 0], with x o -axis [1, 0, 0], y o -axis [0, 1, 0], and z o -axis [0, 0, 1].In determining the local coordinates, several rules are needed.Figure 6 shows how these rules are established and illustrates one link at step i during the phase-shifting process.The i y j -axis is calculated as follows: The i x j -and i z j -axes are on the plane that is vertical to the link vector shown in the left part of Figure 6.Therefore, the i x j -and i z j -axes are not unique, and the horizontal plane is introduced to solve this problem.Moving the horizontal plane to point i P j , the intersecting line between two planes is used to select the i x j -axis, as shown in the right part of Figure 6.The intersecting line has two directions.Thus, the direction is selected by determining whether the angle between i x j -and x o -axes is acute.Afterward, the i z j -axis is determined using the right-hand rule.Figure 7 shows the result of the local coordinates during the entire phase-shifting process.The simulation without showing the coordinates is discussed in the subsequent chapter.After the determination of the coordinate system, the relative rotation matrix between adjacent links can be obtained using Equation (11).
where i R P j ∈ R 3×3 is the orientation matrix of link j relative to the reference coordinate and i R P_rel j ∈ R 3×3 is the orientation matrix of link j relative to i R P j+1 .Then, the relative roll ( i γ j ), pitch ( i β j ), and yaw ( i α j ) angle sequences can be calculated using Equation (12).
i β j = A tan 2(−r 31 , r 11 2 + r 21 2 ) j = 2, 3..., n i = 1, 2, ..., n step i α j = Atan2(r 21 /cos( i β j ), r 11 /cos( i β j )) i γ j = Atan2(r 32 /cos( i β j ), r 33 /cos( i β j )) (12) The line segments model for the snake robot is abstract, therefore we introduce a simplified Solidworks model for the subsequent simulation in Adams environment, as shown in Figure 8.It is part of Solidworks model and contains three modules.This figure provides us with the line segments model (right part) and Solidworks model (left part), and it is convenient for us to understanding where local coordinates are established and how the roll, pitch, and yaw angles are solved.As mentioned before, a line segment ( i l j ) and a local coordinate ( i P j − i x j i y j i z j ) represent a snake robot module, and a point ( i P j ) represents a joint with three degrees of freedom.The three axes are located at centers of rotating shafts and intersected at the i P j .Connecting the i P j and the i P j+1 , the i l j can be determined.Equation ( 11) and ( 12) provide us with the solution of roll, pitch and yaw angles.However, it is significant to determine their rotating sequences, which are also illustrated in Figure 8.It should be pointed out that the rotating sequences depend on specific models, otherwise, the rotating sequences and Equation ( 12) should be modified.
The snake begins to move from basic posture to final posture using the shape-fitting and phase-shifting algorithms.During the phase-shifting process, the phase ∆S i in every step can be selected manually.In this test, ∆S i is assumed constant and equal to (S 1 + S 2 )/n step , where the number of total steps n step equals 500.Table 1 shows the data of i P 1 , i Inx p 1 , i α 1 , i β 1 , and i γ 1 at steps 1, 2, 300, 499, and 500, respectively.Figure 9 shows the phase-shifting process, including the predefined spiral curve (Figure 9a) and snake posture at steps i = 1 (Figure 9b), i = 147 (Figure 9c), and i = 500 (Figure 9d), corresponding to the snake head at t = t1 , t = t2 , and t = t3 , respectively.
We assume that the head-raising motion time is 50 s, that is, t time ∈ (0, 50).With Equation ( 12) and numerical derivation, the roll ( i γ j ), pitch ( i β j ), and yaw ( i α j ) angle sequences; relative angular velocity ( i γj , i βj , i αj ); and angular acceleration ( i γj , i βj , i αj ) can be obtained, as shown in the z-axis of Figure 10.
The xand y-axes represent the joint ID (ID = 1, 2, . . ., 15) and time, respectively.As the snake head moves from t = t1 to t = t2 , the absolute value of i γ 1 initially increases before the third joint point moves to t = t1 and subsequently becomes constant because the first two links are constrained to a semicircle.Meanwhile, the absolute values of i α 1 and i β 1 are zero.Similarly, the motion of the snake head moving from t = t2 to t = t3 can be divided into two stages.Before the third joint point moves to t = t2 , the absolute value of i γ 1 initially decreases in the first stage and then subsequently increases in the second stage.In the meantime, the absolute value of i α 1 increases at varying speed.The absolute value of i β 1 initially increases, subsequently decreases, and finally increases.Unsmooth angles are caused by the unsmooth transition of the piecewise function, which will be improved in future work.Thus, the shapes of the relative velocity and acceleration curve are full of sharp points.Moreover, the curves of the other joint points (ID = 2, 3, . . ., 15) have the same shape with phase lag.Distinguishing between the phase-shifting and head-raising processes is important.The phase-shifting process is used to obtain the joint trajectory and does not exist in reality if the snake robot has no active wheels with which to move its body along the predefined spiral curve.Meanwhile, the head-raising process is the actual head-raising motion produced using the joint trajectory, and in this case, the tail of the snake robot is fixed.Figure 11 shows the two kinds of simulations of head-raising process.Those simulations are in kinematic level and do not take dynamic factors into consideration.The Simulation in labels 1-5 are implemented in Adams, and the roll, pitch and roll angles are integrated into spline curves to guide the model's movement.The simulation in labels 6-9 are carried out using Matlab, based on the following algorithm: (1) Determine the basic posture as Equation ( 6), and set motion step i = 1; (2) Proceed to motion step i = 2.The link n is fixed.Calculate the position of link n − 1 on the basis of angles 2 α n , 2 β n , and 2 γ n ; (3) Make an iteration to calculate all of the positions of the links, that is, link j = n − 2, n − 3, . . ., 1, on the basis of angles ( 2 α n−2 , 2 β n−2 , 2 γ n−2 ), ( 2 α n−3 , 2 β n−3 , 2 γ n−3 ), . . ., ( 2 α 1 , 2 β 1 , 2 γ 1 ); (4) Proceed to motion step i = i + 1 and repeat steps 2 and 3 until i = n step .
In this algorithm, step 2 is important.During the phase-shifting and head-raising processes, their link vectors i l j , as shown in Figure 5, are same in orientation and different in position.Therefore, the position of joint point i P j can be obtained as follows: Considering that the method of head-raising should be adaptive to deal with different situations, more simulations are implemented as described in Figure 12, where different parameters of the predefined spiral curves are adopted and they are listed in Table 2.In Figure 12, only final postures are shown, and more detailed simulations can be found in Supplementary Materials.Compared with the result in Figures 11 and 12a, the radius of the supporting part BS becomes larger when increasing the value of parameter a (Figure 12b-d); the height of every circle becomes larger if the parameter c increases (Figure 12b-d).When changing the parameter b, the amplitudes of x s (t) and y s (t) change unequally.Additionally, the LP part changes accordingly (Figure 12c,d) when changing the parameters l link and n, and it should be noted that ϕ 0 is set to ensure the initial phases of the sine and cosine functions.All the simulations confirm the feasibility and validity of the proposed method.2.

Discussion and Conclusions
In this study, head-raising motion of a snake robot based on a predefined spiral curve is proposed and relative simulations are conducted.Obtaining the angle sequences of the head-raising motion of snake robots is difficult under three-dimensional conditions.Thus, the proposed method adopts the predefined spiral curve to guide the robot in moving, thereby improving the performance of the robot and laying the foundation for accomplishing additional tasks.The predefined spiral curve is parameterized.With changes in the parameters, the curves can adapt to different lengths and numbers of the snake robot modules, spiral numbers, and heights of head-raising.
However, there are some problems to be solved in the future work.First, the predefined spiral curve is a piecewise function and has unsmooth points, thus leading to sharp changes in motion trajectories.Second, our model considers only kinematic planning, that is, the dynamic problem is not considered.Dynamic constraints are important factors for successful implementation of our model on a real robot, and will be added into an improved model in the future work.At the same time, experimental verification will be carried out in the next phase of research, after finishing the design and construction of the platform.The greatest challenge to use our model on a real robot is that the robot has to overcome the gravity during the head-raising, and the actuation system must be equipped with motors which have adequate torques to drive the snake modules.The work in [13] is a successful example although they adopted a different method to raise the robot's head.When designing the prototype, lightweight materials can be used to enable the robot with lighter gravity and stronger driving power.More importantly, our model is adaptive.As illustrated in Figure 12, by decreasing the height, the cycle number and increasing the radius of supporting part, it is feasible for the robot to raise its head while satisfying the dynamic constraints.In some specific situations such as exploring the moon, and searching for resources underwater, the gravity will decrease or be compensated.Then, it will be easier for the robot to raise their head.Third, the head-raising motion forms of snake in the natural world can change over time.To accomplish that, the predefined spiral curve should be made time varying without influencing the stability of the robot body, and this principle will also be the focus of the future research.

Appendix A
Table A1 shows all the symbols utilized in this paper.Step length of discretization in interval (0, t1 ) ∆t 2 Step length of discretization in interval ( t1 , t3 ) i Inx pj Index value of element in t d , which is nearest to t i+1 during phase-shifting process eps Threshold utilized to deal with the error between continuous function and discrete approximation O x o y o z o Reference coordinate i x j x coordinate axis fixed on the snake module j at step i i y j y axis fixed on the snake module j at step i i z j z coordinate axis fixed on the snake module j at step i i l j Link vector connecting i P j and i P j+1 i P j − i x j i y j i z j y Local coordinate fixed on link j − 1 i α j Yaw angle of joint j at step i i β j Pitch angle of joint j at step i i γ j Roll angle of joint j at step i i αj Yaw angular velocity of joint j at step i i βj Pitch angular velocity of joint j at step i i γj Roll angular velocity of joint j at step i i αj Yaw angular acceleration of joint j at step i i βj Pitch angular acceleration of joint j at step i i γj Roll angular acceleration of joint j at step i t time Head-raising motion time i R P j Orientation matrix of link j with respect to the reference coordinate at step i i R P_rel j Orientation matrix of link j with respect to i R P j+1 at step i R x (.) Matrix involving vector rotating around the x axis R y (.) Matrix involving vector rotating around the y axis R z (.) Matrix involving vector rotating around the z axis

Figure 2 .
Figure 2. The similar macro shapes of a snake (label 1), a spiral curve (label 2), the line segments model after the shape-fitting algorithm (label 3) and the simplified simulation model (label 4).

Figure 3 .
Figure 3. Spiral curves: (a) the regular spiral curve, and (b) the predefined spiral curve used in this study.

Figure 5 .
Figure 5. Modeling of the robot's basic posture composed of n line segments and corresponding coordinate system.

Figure 8 .
Figure 8. Local coordinates fixed on the simplified Solidworks model and descriptions of roll, pitch and yaw angles.Label 1 corresponds to the initial configuration.Label 2, 3 and 4 describe the configurations after rotating roll angle, yaw angle and pitch angle, respectively.

Figure 11 .
Figure 11.Head-raising motion process.Labels 1-5 show different states from initial posture to final posture of head-raising in Adams environment.Label 1 is the initial posture and label 5 is the final posture.Label 2 corresponds to the case that the robot forms a supporting configuration.Label 3 and 4 are intermediate states.The labels 6-9 are head-raising simulations of line segments model, implemented in Matlab environment.The labels 6-9 correspond to labels 1, 2, 4 and 5, respectively.

Table 1 .
Data during phase-shifting process.

Table 2 .
Parameters of predefined spiral curves used in head-raising simulations shown in Figures 11 and 12.

Table A1 .
Symbols utilized in this paper.value of line part in the predefined spiral curve y l (t) y value of line part in the predefined spiral curve z l (t) z value of line part in the predefined spiral curve x s (t)x value of spiral curve part in the predefined spiral curve y s (t) y value of spiral curve part in the predefined spiral curve z s (t) z value of spiral curve part in the predefined spiral curve a Adjustment coefficient of the spiral curve, which can be used to change the amplitude of x s (t) and y s (t) equally b Adjustment coefficient of the spiral curve, which can be used to change the amplitude of x s (t) and y s (t) unequally c Adjustment coefficient of the spiral curve, which can be used to change the amplitude of z s (t) ϕ 0 Initial phase of the sine and cosine functions n c Cycle number of the spiral curve l link Length of the snake robot modules n Number of the snake robot modules t Independent variable divided into three intervals: (0, t1 ), ( t1 , t2 ) and ( t2 , t3 ) y s (t) y value of spiral curve part in the predefined spiral curve LP Line part of the predefined spiral curve, corresponding to interval (0, t1 ) BS The base of the spiral curve part, which is in contact with the ground and corresponds to interval ( t1 , t2 ) RS y The base of the spiral curve part, which is in contact with the ground and corresponds to interval ( t2 , t3 ) t1 Value of t connecting LP and BS t2 Value of t connecting BS and RS t3 End value of t ϕ base The phase value of interval ( t1 , t2 ) t i y Discrete value of simulation time i Index value of simulation step j Index value of point P in line segments model of the snake robot i P j Position of point j step i of phase-shifting process n step Number of phases shifted i x snk_jx value of i P j i y snk_j y value of i P j x