Next Article in Journal
Microstructure and Mechanical Properties of Magnesium Matrix Composites Interpenetrated by Different Reinforcement
Next Article in Special Issue
Development of a Poppet-Type Pneumatic Servo Valve
Previous Article in Journal
Mono- and Bi-Molecular Adsorption of SF6 Decomposition Products on Pt Doped Graphene: A First-Principles Investigation
Previous Article in Special Issue
Controllers to Chase a High-Speed Evader Using a Pursuer with Variable Speed
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

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

1
State Key Laboratory of Robotics, Shenyang Institute of Automation, Chinese Academy of Sciences, Shenyang 110016, China
2
Institutes for Robotics and Intelligent Manufacturing, Chinese Academy of Sciences, Shenyang 110016, China
3
University of Chinese Academy of Sciences, Beijing 100049, China
4
Intelligent Systems & Biomedical Robotics, School of Creative Technologies, University of Portsmouth, Portsmouth P01 3HE, UK
5
Zienkiewicz Centre for Computational Engineering, Swansea University, Swansea SA1 8EN, UK
*
Author to whom correspondence should be addressed.
Submission received: 12 September 2018 / Revised: 11 October 2018 / Accepted: 17 October 2018 / Published: 23 October 2018
(This article belongs to the Special Issue Advanced Mobile Robotics)

Abstract

:
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.

1. 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.
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:
  • A new shape control curve, the predefined spiral curve, is proposed and it is utilized for 3D head-raising of a snake robot;
  • A shape-fitting algorithm is developed for adhering the line segments model of the snake robot to the predefined spiral curve;
  • Establishment rules of coordinate system are given for line segments model of the snake robot;
  • 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.

2. 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.

2.1. 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.
x s ( t ) = a t sin ( t + φ 0 ) y s ( t ) = a t cos ( t + φ 0 ) z s ( t ) = c t
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 l i n k 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 , t ^ 1 ) ); the base of the spiral curve part, which is in contact with the ground (defined by BS, interval is ( t ^ 1 , t ^ 2 ) ); and the rest of the spiral curve (defined by RS, interval is ( t ^ 2 , t ^ 3 ) ). φ b a s e is the phase value of the second interval.
x l ( t ) = x s ( t ^ 1 ) t ( 0 , t ^ 1 ) y l ( t ) = y s ( t ^ 1 ) t + t ^ 1 t ( 0 , t ^ 1 ) z l ( t ) = 0 t ( 0 , t ^ 1 ) x s ( t ) = a b ( t ^ 3 t ) sin ( t + φ 0 ) t ( t ^ 1 , t ^ 2 ) y s ( t ) = a ( t ^ 3 t ) cos ( t + φ 0 ) 1 t ( t ^ 1 , t 2 ) z s ( t ) = 0 t ( t ^ 1 , t ^ 2 ) x s ( t ) = a b ( t ^ 3 t ) sin ( t + φ 0 ) t ( t ^ 2 , t ^ 3 ) y s ( t ) = a ( t ^ 3 t ) cos ( t + φ 0 ) t ( t ^ 2 , t ^ 3 ) z s ( t ) = c t c t ^ 2 t ( t ^ 2 , t ^ 3 ) t ^ 1 = n l l i n k t ^ 2 = t ^ 1 + φ b a s e t ^ 3 = t ^ 1 + 2 n c π
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 , t ^ 1 ) to construct LP, ( t ^ 1 , t ^ 2 ) to construct BS, and ( t ^ 2 , t ^ 3 ) to construct RS. Additionally, by substituting item ( t ^ 3 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.

2.2. 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 l i n k , t ^ 1 , t ^ 2 , t ^ 3 , φ 0 , and φ b a s e are initialized. The following constraint equation is used to ensure that line segments model of the robot do not get away from the ground.
S 1 + S 2 = t = t ^ 1 t = t ^ 2 x ˙ s ( t ) 2 + y ˙ s ( t ) 2 + z ˙ s ( t ) 2 d t + t = t ^ 2 t = t ^ 3 x ˙ s ( t ) 2 + y ˙ s ( t ) 2 + z ˙ s ( t ) 2 d t < n l l i n k
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:
i P s n k = [ i P 1 , i P 2 , , i P j , , i P n + 1 ] j = 1 , 2 , , n + 1 i = 1 , 2 , , n s t e p i P j = ( i x s n k _ j , i y s n k _ j , i z s n k _ j )
where i P j is the position of point j at step i of phase-shifting. n s t e p is the number of phases shifted and satisfies Equation (5).
i = 1 i = n s t e p Δ S i = S 1 + S 2
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 s n k at step i, and phase-shifting reduces to move all line segments by changing the position of i P s n k 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).
1 P s n k = ( x s ( t ^ 1 ) y s ( t ^ 1 ) + n l l i n k 0 ) ( x s ( t ^ 1 ) y s ( t ^ 1 ) + ( n 1 ) l l i n k 0 ) ( x s ( t ^ 1 ) y s ( t ^ 1 ) + ( n j + 1 ) l l i n k 0 ) ( x s ( t ^ 1 ) y s ( t ^ 1 ) 0 ) T
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:
t d = [ 0 , Δ t 1 , 2 Δ t 1 , , t ^ 1 , t ^ 1 + Δ t 2 , t ^ 1 + 2 Δ t 2 , , t ^ 3 ]
where Δ t 1 and Δ t 2 are the step lengths of discretization in intervals ( 0 , t ^ 1 ) and ( t ^ 1 , t ^ 3 ) , 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).
Δ S i = t = t i t = t i + 1 x ˙ ( t ) 2 + y ˙ ( t ) 2 + z ˙ ( t ) 2 d t
Second, we query t d to identify the element nearest to t i + 1 and record its index as i I n x 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 I n x p 2 , i I n x p 3 , , i I n x p j , , i I n x p n + 1 ) can be obtained by distance judgment going through t d from index i I n x p 1 to index 1. Distance judgment is illustrated in Equation (9).
l l i n k e p s i P j i P j 1 l l i n k + e p s
where e p s 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 s n k ) to final posture ( n s t e p P s n k ) of the snake robot (represented by line segments or point sets without considering the coordinate system in this part).

2.3. 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:
i y j = i p j + 1 i p j i p j + 1 i p j
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).
i R P _ r e l j = ( i R P j + 1 ) 1 ( i R P j ) j = 2 , 3 , n i = 1 , 2 , , n s t e p i R P j = i x j i y j i z j = r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33
where i R P j R 3 × 3 is the orientation matrix of link j relative to the reference coordinate and i R P _ r e l 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 s t e p i α j = A t a n 2 ( r 21 / c o s ( i β j ) , r 11 / c o s ( i β j ) ) i γ j = A t a n 2 ( r 32 / c o s ( i β j ) , r 33 / c o s ( i β j ) )
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.

3. Simulation on Head-Raising Motion

According to the proposed algorithms, the phase-shifting process can be simulated. The parameters of the predefined curve are as follows: a = 9.7 , b = 1 , c = 48.5 , n c = 2.5 , n = 16 , l l i n k = 97 (mm), t ^ 1 = 1 , 552 (rad), t ^ 2 = 1 , 555.1 (rad), t ^ 3 = 1 , 567.7 (rad), φ 0 = 1.6022 (rad), and φ b a s e = p i (rad). According to Equation (3), the arc lengths of BS ( S 1 ) and RS ( S 2 ) can be calculated as S 1 = 431.8891 (mm) and S 2 = 1 , 032.6 (mm). The discrete independent variable is selected as t d = [ 0 , 0.1 , 0.2 , , t ^ 1 , t ^ 1 + 0.001 , t ^ 1 + 0.002 , , t ^ 3 ] with Δ t 1 = 0.1 and Δ t 2 = 0.001 . To facilitate reading, all the symbols utilized in this paper are concluded in Appendix part, as shown in Table A1.
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 s t e p , where the number of total steps n s t e p equals 500. Table 1 shows the data of i P 1 , i I n x 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 = t ^ 1 , t = t ^ 2 , and t = t ^ 3 , respectively.
We assume that the head-raising motion time is 50 s, that is, t t i m e ( 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 x- and y-axes represent the joint ID ( I D = 1 , 2 , , 15 ) and time, respectively. As the snake head moves from t = t ^ 1 to t = t ^ 2 , the absolute value of i γ 1 initially increases before the third joint point moves to t = t ^ 1 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 = t ^ 2 to t = t ^ 3 can be divided into two stages. Before the third joint point moves to t = t ^ 2 , 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 ( I D = 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 s t e p .
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:
i l j 1 = i l j R z ( i α j ) R y ( i α j ) R x ( i α j ) i P j = i P j 1 + i l j 1 R z ( i α j ) = cos ( i α j ) s i n ( i α j ) 0 sin ( i α j ) cos ( i α j ) 0 0 0 1 R y ( i β j ) = cos ( i β j ) 0 sin ( i β j ) 0 1 0 s i n ( i β j ) 0 cos ( i β j ) R z ( i γ j ) = 1 0 0 0 cos ( i γ j ) s i n ( i γ j ) 0 sin ( i γ j ) cos ( i γ j )
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 Figure 11 and Figure 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 l i n k 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.

4. 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.

Supplementary Materials

The following are available online at https://0-www-mdpi-com.brum.beds.ac.uk/2076-3417/8/11/2011/s1, Video S1: Concept_of_trajectory_tracking.avi; it introduces the concept of trajectory tracking using an improved model in our future work. Video S2: PS_Fig9.avi; it describes the process of phase-shifting (Figure 9). Video S3: HR_Fig11.avi; it shows the process of head-raising using the line segments model of the snake robot (Figure 11). Video S4: SA_Fig11.avi; it shows the simulation of head-raising in Adams environment (Figure 11). Video S5: HR_Fig12a.avi; it displays the head-raising process of Figure 12a. Video S6: HR_Fig12b.avi; it displays the head-raising process of Figure 12b. Video S7: HR_Fig12c.avi; it displays the head-raising process of Figure 12c. Video S8: HR_Fig12d.avi; it displays the head-raising process of Figure 12d.

Author Contributions

Conceptualization, J.L. and Z.J.; Formal analysis, X.Z. and J.L.; Funding acquisition, J.L.; Investigation, J.L., X.Z., Z.J. and C.Y.; Methodology and Simulation, X.Z.; Software and Programming, X.Z.; Supervision, J.L., Z.J. and C.Y.; Validation, J.L.; Writing—original draft, X.Z.; Writing—review and editing, Z.J., C.Y. and J.L.

Funding

This work was partially supported by the National Science Foundation of China (Grant No. 51775541), Research Fund of China Manned Space Engineering (Grant No. 030201), Engineering and Physical Sciences Research Council (EPSRC) (Grant No. EP/S001913/1). And the APC was funded by the National Science Foundation of China (Grant No. 51775541).

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

The following abbreviations are used in this manuscript:
2DTwo dimensional
3DThree dimensional

Appendix A

Table A1 shows all the symbols utilized in this paper.
Table A1. Symbols utilized in this paper.
Table A1. Symbols utilized in this paper.
SymbolDefinition
x l ( t ) x 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
aAdjustment coefficient of the spiral curve, which can be used to change the amplitude of x s ( t ) and y s ( t ) equally
bAdjustment coefficient of the spiral curve, which can be used to change the amplitude of x s ( t ) and y s ( t ) unequally
cAdjustment 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 l i n k Length of the snake robot modules
nNumber of the snake robot modules
tIndependent variable divided into three intervals: ( 0 , t ^ 1 ) , ( t ^ 1 , t ^ 2 ) and ( t ^ 2 , t ^ 3 )
y s ( t ) y value of spiral curve part in the predefined spiral curve
LPLine part of the predefined spiral curve, corresponding to interval ( 0 , t ^ 1 )
BSThe base of the spiral curve part, which is in contact with the ground and corresponds to interval ( t ^ 1 , t ^ 2 )
RSy The base of the spiral curve part, which is in contact with the ground and corresponds to interval ( t ^ 2 , t ^ 3 )
t ^ 1 Value of t connecting LP and BS
t ^ 2 Value of t connecting BS and RS
t ^ 3 End value of t
φ b a s e The phase value of interval ( t ^ 1 , t ^ 2 )
t i y Discrete value of simulation time
iIndex value of simulation step
jIndex 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 s t e p Number of phases shifted
i x s n k _ j x value of i P j
i y s n k _ j y value of i P j
i z s n k _ j z value of i P j
Δ S i Arc length at step i and defined as “phase”
i P s n k Point set at step i
t d y Discrete vector of t
Δ t 1 Step length of discretization in interval ( 0 , t ^ 1 )
Δ t 2 Step length of discretization in interval ( t ^ 1 , t ^ 3 )
i I n x p j Index value of element in t d , which is nearest to t i + 1 during phase-shifting process
e p s 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 coordinate 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 t i m e 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 _ r e l 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

References

  1. Transeth, A.A.; Pettersen, K.Y.; Liljebäck, P. A survey on snake robot modeling and locomotion. Robotica 2009, 27, 999–1015. [Google Scholar] [CrossRef]
  2. Liljebäck, P.; Pettersen, K.Y.; Stavdahl, Ø.; Gravdahl, J.T. A review on modelling, implementation, and control of snake robots. Robot. Auton. Syst. 2012, 60, 29–40. [Google Scholar] [Green Version]
  3. Liu, J.; Wang, Y.; Li, B.; Ma, S. Path planning of a snake-like robot based on serpenoid curve and genetic algorithms. In Proceedings of the 5th World Congress on Intelligent Control and Automation, Hangzhou, China, 15–19 June 2004; pp. 4860–4864. [Google Scholar]
  4. Saito, M.; Fukaya, M.; Iwasaki, T. Serpentine locomotion with robotic snakes. IEEE Control Syst. Mag. 2002, 22, 64–81. [Google Scholar] [CrossRef]
  5. Chen, L.; Wang, Y.; Ma, S.; Li, B. Analysis of traveling wave locomotion of snake robot. In Proceedings of the 2003 IEEE International Conference on Robotics, Intelligent Systems and Signal Processing, Changsha, China, 8–13 October 2003; pp. 365–369. [Google Scholar]
  6. Kalani, H.; Akbarzadeh, A.; Safehian, J. Traveling wave locomotion of snake robot along symmetrical and unsymmetrical body shapes. In Proceedings of the 41st International Symposium on Robotics and 6th German Conference on Robotics, Munich, Germany, 7–9 June 2010; pp. 62–68. [Google Scholar]
  7. Liu, J.; Wang, Y.; Li, B.; Chen, L.; Ma, S. Serpentine locomotion with robotic snakes. Chin. J. Mech. Eng. 2005, 41, 108–113. [Google Scholar] [CrossRef]
  8. Virgala, I.; Dovica, M.; Kelemen, M.; Prada, E.; Bobovsky. Snake robot movement in the pipe using concertina locomotion. Jixie Gongcheng Xuebao/Chin. J. Mech. Eng. 2005, 41, 108–113. [Google Scholar] [CrossRef]
  9. Chen, L.; Wang, Y.; Ma, S.; Li, B. Study of lateral locomotion of snake robot. Robot 2003, 25, 246–249. [Google Scholar]
  10. Tanev, I.; Ray, T.; Buller, A. Evolution, robustness, and adaptation of sidewinding locomotion of simulated snake-like robot. In Genetic and Evolutionary Computation Conference; Springer: Berlin, Germany, 2004; pp. 627–639. [Google Scholar]
  11. Wang, K.; Gao, W.; Ma, S. Snake-like robot with fusion gait for high environmental adaptability: Design, modeling, and experiment. Appl. Sci. 2017, 7, 1133. [Google Scholar] [CrossRef]
  12. Sanfilippo, F.; Azpiazu, J.; Marafioti, G.; Transeth, A.A.; Stavdahl, Ø.; Liljebäck, P. Study of lateral locomotion of snake robot. Appl. Sci. 2017, 7, 336. [Google Scholar] [CrossRef]
  13. Ye, C.; Ma, S.; Li, B.; Wang, Y. Head-raising motion of snake-like robots. In Proceedings of the 2004 IEEE International Conference on Robotics and Biomimetics, Shenyang, China, 22–26 August 2004; pp. 595–600. [Google Scholar]
  14. Tanaka, M.; Matsuno, F. Modeling and control of head raising snake robots by using kinematic redundancy. J. Intell. Robot. Syst. 2014, 75, 53–69. [Google Scholar] [CrossRef]
  15. Cappo, E.A.; Choset, H. Planning end effector trajectories for a serially linked, floating-base robot with changing support polygon. In Proceedings of the 2004 American Control Conference, Portland, OR, USA, 4–6 June 2014; pp. 4038–4043. [Google Scholar]
  16. Wu, W.; Hong, Y.; Wang, G. Geometrical spline approach to shape control of super redundant planar manipulator. Mach. Tool Hydraul. 2004, 4, 70–72. [Google Scholar]
  17. Nor, N.M.; Ma, S. Body shape control of a snake-like robot based on phase oscillator network. In Proceedings of the 2013 IEEE International Conference on Robotics and Biomimetics, Shenzhen, China, 12–14 December 2013; pp. 274–279. [Google Scholar]
  18. Liljebäck, P.; Pettersen, K.Y.; Stavdahl, O.; Gravdahl, J.T. A control framework for snake robot locomotion based on shape control points interconnected by Bézier curves. In Proceedings of the 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, Algarve, Portugal, 7–12 October 2012; pp. 3111–3118. [Google Scholar]
  19. Tanaka, M.; Tanaka, K. Shape Control of a snake robot with joint limit and self-collision avoidance. IEEE Trans. Control Syst. Technol. 2017, 25, 1441–1448. [Google Scholar] [CrossRef]
  20. Liu, J.; Wang, Y.; Ma, S.; Li, B. Shape control of hyper-redundant modularized manipulator using variable structure regular polygon. In Proceedings of the 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems, Sendai, Japan, 28 September–2 October 2004; pp. 3924–3929. [Google Scholar]
  21. Chirikjian, G.S.; Burdick, J.W. A modal approach to hyper-redundant manipulator kinematics. IEEE Trans. Robot. Autom. 1994, 10, 343–354. [Google Scholar] [CrossRef] [Green Version]
  22. Burdick, J.W.; Radford, J.; Chirikjian, G.S. A “sidewinding” locomotion gait for hyper-redundant robots. Adv. Robot. 1995, 9, 195–216. [Google Scholar] [CrossRef]
  23. Hatton, R.L.; Choset, H. Generating gaits for snake robots by annealed chain fitting and keyframe wave extraction. Auton. Robot. 2010, 28, 271–281. [Google Scholar] [CrossRef]
  24. Tavakkoli, S.; Dhande, S.G. Shape synthesis and optimization using intrinsic geometry. J. Mech. Des. 1991, 113, 379–386. [Google Scholar] [CrossRef]
  25. Mochiyama, H.; Shimemura, E.; Kobayashi, H. Shape control of manipulators with hyper degrees of freedom. Int. J. Robot. Res. 1999, 18, 584–600. [Google Scholar] [CrossRef]
Figure 1. The concepts of 2D and 3D head-raising. Label 1 and 2 represent 2D head-raising, and label 3 and 4 show 3D head-raising.
Figure 1. The concepts of 2D and 3D head-raising. Label 1 and 2 represent 2D head-raising, and label 3 and 4 show 3D head-raising.
Applsci 08 02011 g001
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 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).
Applsci 08 02011 g002
Figure 3. Spiral curves: (a) the regular spiral curve, and (b) the predefined spiral curve used in this study.
Figure 3. Spiral curves: (a) the regular spiral curve, and (b) the predefined spiral curve used in this study.
Applsci 08 02011 g003
Figure 4. Concepts of shape-fitting and phase-shifting.
Figure 4. Concepts of shape-fitting and phase-shifting.
Applsci 08 02011 g004
Figure 5. Modeling of the robot’s basic posture composed of n line segments and corresponding coordinate system.
Figure 5. Modeling of the robot’s basic posture composed of n line segments and corresponding coordinate system.
Applsci 08 02011 g005
Figure 6. Establishment of local coordinates.
Figure 6. Establishment of local coordinates.
Applsci 08 02011 g006
Figure 7. Local coordinates during entire head-raising process.
Figure 7. Local coordinates during entire head-raising process.
Applsci 08 02011 g007
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 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.
Applsci 08 02011 g008
Figure 9. Phase-shifting process: (a) predefined spiral curve, (b) i = 1 , t = t ^ 1 , (c) i = 147 , t = t ^ 2 , (d) i = 500 , t = t ^ 3 .
Figure 9. Phase-shifting process: (a) predefined spiral curve, (b) i = 1 , t = t ^ 1 , (c) i = 147 , t = t ^ 2 , (d) i = 500 , t = t ^ 3 .
Applsci 08 02011 g009
Figure 10. Angle, angular velocity, and angular acceleration during phase-shifting process.
Figure 10. Angle, angular velocity, and angular acceleration during phase-shifting process.
Applsci 08 02011 g010
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.
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.
Applsci 08 02011 g011
Figure 12. Head-raising motion process with different parameters of the predefined spiral curve, and the parameters are listed in Table 2.
Figure 12. Head-raising motion process with different parameters of the predefined spiral curve, and the parameters are listed in Table 2.
Applsci 08 02011 g012
Table 1. Data during phase-shifting process.
Table 1. Data during phase-shifting process.
Step iHead i P 1 (mm)Index of Head i In x p 1 Yaw Angle i α 1 (rad)Pitch Angle i β 1 (rad)Roll Angle i γ 1 (rad)
1(151.8, −12.8, 0)15,520000
2(151.3, −15.7, 0)15,541−0.004700
300(57.3, −61.8, 188.1)22,544−0.89640.2259−0.3775
499(−0.546, 0.015, 606.7)31,174−2.50012.1308−0.8348
500(−0.0036, −0.003, 609.4)31,230−2.53092.1658−0.8225
Table 2. Parameters of predefined spiral curves used in head-raising simulations shown in Figure 11 and Figure 12.
Table 2. Parameters of predefined spiral curves used in head-raising simulations shown in Figure 11 and Figure 12.
Figure Numberabc n c φ 0 (rad)n l link (mm)
Figure 119.7148.52.50.5 pi1697
Figure 12a9.71201.50.5 pi1697
Figure 12b601600.80.5 pi1697
Figure 12c201600.91.5 pi1250
Figure 12d201.5600.91.5 pi1250

Share and Cite

MDPI and ACS Style

Zhang, X.; Liu, J.; Ju, Z.; Yang, C. Head-Raising of Snake Robots Based on a Predefined Spiral Curve Method. Appl. Sci. 2018, 8, 2011. https://0-doi-org.brum.beds.ac.uk/10.3390/app8112011

AMA Style

Zhang X, Liu J, Ju Z, Yang C. Head-Raising of Snake Robots Based on a Predefined Spiral Curve Method. Applied Sciences. 2018; 8(11):2011. https://0-doi-org.brum.beds.ac.uk/10.3390/app8112011

Chicago/Turabian Style

Zhang, Xiaobo, Jinguo Liu, Zhaojie Ju, and Chenguang Yang. 2018. "Head-Raising of Snake Robots Based on a Predefined Spiral Curve Method" Applied Sciences 8, no. 11: 2011. https://0-doi-org.brum.beds.ac.uk/10.3390/app8112011

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop