A Snake-Like Robot with Envelope Wheels and Obstacle-Aided Gaits

: Most of the current snake-like robots can only work in a speciﬁc environment, or only have a good movement e ﬀ ect in a certain gait. This paper presents a design for a snake-like robot to improve the adaptability of various environments. Each standard module of the snake-like robot has three degrees of freedom: yawing, rolling, and telescoping. The envelope passive wheels are used to enable the robot to move in complex environments such as a narrow passage. We veriﬁed some simple movements such as serpentine movement and rectilinear movement and designed a method for recovering from rollover when the robot is in straight state. In addition, two novel gaits, obstacle-aided concertina gait, and obstacle-aided gait through narrow corner, are proposed in this paper. We demonstrated the feasibility for passing the narrow corner by these gaits in experiments.


Introduction
The snake is a reptile without limbs, but its body has a lot of joints. This unique structure of body allows the snake to adapt to various environments. Snakes change their gaits to move in different environments. Snake-like robots are generally designed by imitating snakes' simple and repetitive joints. They are expected to achieve a variety of tasks through these highly redundant degrees of freedom. Snake-like robots can swing their body to move like a real snake, while their slender body makes it able to move into a narrow space. Meanwhile, the snake-like robot's extremity is similar to the robotic arm and can perform some complicated movements. Thus, snake-like robots can be successfully applied in nonstructural environments, such as disaster rescue, human body cavity examination, and industrial pipe inspection [1,2]. Currently, the control methods for snake-like robots have been widely studied, with the goal of researchers to realize snake-like robots that can work in any environment.
Hirose started the research [3][4][5][6] of snake-like robots and developed various snake-like robots with active cord mechanism (ACM). The ACM-R5H [7] is an amphibious snake-like robot, which can move over rough terrain, dive underwater, and swim back to the water surface. The latest version ACM-R8 [8] using joints with a parallel link mechanism can climb stairs and reach doorknobs in addition to the features explained above. Ma completed numerous studies on 3D snake-like robots and developed research on the algorithm [9][10][11][12][13][14][15][16]. Wright, Cornell, and their team have designed a set of modular snake-like robots [17]. Ariizumi and Matsuno presented a dynamic analysis comparing three snake-like robot gaits: lateral undulation, sidewinding locomotion, and sinus-lifting motion [18]. Yang Hu and Lin Zhang proposed a new type of flexible joint mechanism that is enabled by metal powder bed additive manufacturing technique [19]. Chen and Bing's team presented a hybrid neuromorphic computing paradigm by combining the neurorobotics platform (NRP) with the neuromorphic snake-like robot achieve those joints technically that most of the snake-like robots are designed by connecting about ten joints. The snake-like robot used in this paper also adopts this form.

Envelope Wheels
Passive wheels are usually mounted on the bottom or sides of the snake-like robot, as shown in Figure 1. However, it's difficult to achieve 3D motions with such passive wheels. A kind of envelope passive wheels is designs in this paper to solve this problem.

Passive Wheels and DOF Setting
A snake has hundreds of tiny joints, each of which has only a small range of movement. For most snakes, the lateral range of the vertebra is 10° to 20°, and the pitch range is 2° to 3°. It is so difficult to achieve those joints technically that most of the snake-like robots are designed by connecting about ten joints. The snake-like robot used in this paper also adopts this form.

Envelope Wheels
Passive wheels are usually mounted on the bottom or sides of the snake-like robot, as shown in Figure 1. However, it's difficult to achieve 3D motions with such passive wheels. A kind of envelope passive wheels is designs in this paper to solve this problem. The simplified sectional view of the envelope passive wheels designed in this paper is shown in Figure 2. The body of the snake-like robot is designed like a cylinder with a plurality of passive wheels circumferentially mounted. Each of the passive wheels is formed into a spindle shape. The outer contour of these passive wheels can envelope into a circle. When the snake-like robot moves, the robot body can always keep the passive wheel in contact with the outside because the outer edge of the passive wheels always keeps the envelope circular.  Figure 3 shows the parameters of the envelope wheels. The center of the enveloping circle of wheels is and , the diameter of the two circles are and .
= must be satisfied. The distance between and is . Assuming the number of passive wheels per joint is , the diameter of the joint section is . Then the size of an envelope wheel is determined by the outer-envelope angle and the diameter of wheel . The above parameters affect the inner-envelope angle and the space-angle between two envelope wheels . In order to install the envelope wheels, the above parameters must meet the following constraints for preventing interference.
There is a relationship in the following among , , and : The simplified sectional view of the envelope passive wheels designed in this paper is shown in Figure 2. The body of the snake-like robot is designed like a cylinder with a plurality of passive wheels circumferentially mounted. Each of the passive wheels is formed into a spindle shape. The outer contour of these passive wheels can envelope into a circle. When the snake-like robot moves, the robot body can always keep the passive wheel in contact with the outside because the outer edge of the passive wheels always keeps the envelope circular.

Passive Wheels and DOF Setting
A snake has hundreds of tiny joints, each of which has only a small range of movement. For most snakes, the lateral range of the vertebra is 10° to 20°, and the pitch range is 2° to 3°. It is so difficult to achieve those joints technically that most of the snake-like robots are designed by connecting about ten joints. The snake-like robot used in this paper also adopts this form.

Envelope Wheels
Passive wheels are usually mounted on the bottom or sides of the snake-like robot, as shown in Figure 1. However, it's difficult to achieve 3D motions with such passive wheels. A kind of envelope passive wheels is designs in this paper to solve this problem. The simplified sectional view of the envelope passive wheels designed in this paper is shown in Figure 2. The body of the snake-like robot is designed like a cylinder with a plurality of passive wheels circumferentially mounted. Each of the passive wheels is formed into a spindle shape. The outer contour of these passive wheels can envelope into a circle. When the snake-like robot moves, the robot body can always keep the passive wheel in contact with the outside because the outer edge of the passive wheels always keeps the envelope circular.  Figure 3 shows the parameters of the envelope wheels. The center of the enveloping circle of wheels is and , the diameter of the two circles are and .
= must be satisfied. The distance between and is . Assuming the number of passive wheels per joint is , the diameter of the joint section is . Then the size of an envelope wheel is determined by the outer-envelope angle and the diameter of wheel . The above parameters affect the inner-envelope angle and the space-angle between two envelope wheels . In order to install the envelope wheels, the above parameters must meet the following constraints for preventing interference.
There is a relationship in the following among , , and :  Figure 3 shows the parameters of the envelope wheels. The center of the enveloping circle of wheels is O 0 and O 1 , the diameter of the two circles are R 0 and R 1 . R 0 = R 1 must be satisfied. The distance between O 0 and O 1 is L. Assuming the number of passive wheels per joint is n, the diameter of the joint section is r 0 . Then the size of an envelope wheel is determined by the outer-envelope angle ϕ 0 and the diameter of wheel l. The above parameters affect the inner-envelope angle ϕ i and the space-angle between two envelope wheels ϕ s . In order to install the envelope wheels, the above parameters must meet the following constraints for preventing interference.
There is a relationship in the following among ϕ o , ϕ i , and l: Therefore, when ϕ o and l are taken, it is necessary to make nϕ i < 2π, and a certain angle ϕ s should be remained as the space for mounting the passive wheels' brackets. The angle of ϕ s depends on the strength of the material.
Therefore, when and are taken, it is necessary to make 2 , and a certain angle should be remained as the space for mounting the passive wheels' brackets. The angle of depends on the strength of the material.

DOF Setting of Joints
In order to maximize the effect of passive wheels proposed in this paper, the snake-like robot designed in this paper uses the radial rolling joint to complete the three-dimensional movements. Therefore, the snake-like robot designed has three degrees of freedom for each joint of yaw, roll, and telescopic. A common snake-like robot has only one or two degrees of freedom in a single joint. This paper adds a degree of freedom to each joint. As shown in Figure 4, in the coordinate system of each module, the -axis is the radial axis, and each joint can rotate around the -axis and the -axis. In addition, it can linearly telescope along the -axis. These three degrees of freedom are respectively driven by a motor.  fixed in extern represents the world coordinate system. Points to represents the intersection of the yawing and rolling joints' axes of each module from tail to head. The moving coordinate systems , , … , are used to describe the attitude of each module. In the ith moving coordinate , variables and represent the axis of rolling joint and yawing joint, respectively. The positive direction of is determined along the telescoping joint from tail to head. The positive direction of is determined vertical to the ground in origin state.

DOF Setting of Joints
In order to maximize the effect of passive wheels proposed in this paper, the snake-like robot designed in this paper uses the radial rolling joint to complete the three-dimensional movements. Therefore, the snake-like robot designed has three degrees of freedom for each joint of yaw, roll, and telescopic. A common snake-like robot has only one or two degrees of freedom in a single joint. This paper adds a degree of freedom to each joint. As shown in Figure 4, in the coordinate system of each module, the x-axis is the radial axis, and each joint can rotate around the x-axis and the z-axis. In addition, it can linearly telescope along the x-axis. These three degrees of freedom are respectively driven by a motor.
Therefore, when and are taken, it is necessary to make 2 , and a certain angle should be remained as the space for mounting the passive wheels' brackets. The angle of depends on the strength of the material.

DOF Setting of Joints
In order to maximize the effect of passive wheels proposed in this paper, the snake-like robot designed in this paper uses the radial rolling joint to complete the three-dimensional movements. Therefore, the snake-like robot designed has three degrees of freedom for each joint of yaw, roll, and telescopic. A common snake-like robot has only one or two degrees of freedom in a single joint. This paper adds a degree of freedom to each joint. As shown in Figure 4, in the coordinate system of each module, the -axis is the radial axis, and each joint can rotate around the -axis and the -axis. In addition, it can linearly telescope along the -axis. These three degrees of freedom are respectively driven by a motor.  fixed in extern represents the world coordinate system. Points to represents the intersection of the yawing and rolling joints' axes of each module from tail to head. The moving coordinate systems , , … , are used to describe the attitude of each module. In the ith moving coordinate , variables and represent the axis of rolling joint and yawing joint, respectively. The positive direction of is determined along the telescoping joint from tail to head. The positive direction of is determined vertical to the ground in origin state.  Figure 5 shows the coordinate system of a snake-like robot with connecting the joints above in serial. Oxyz fixed in extern represents the world coordinate system. Points O 0 to O n+1 represents the intersection of the yawing and rolling joints' axes of each module from tail to head. The moving coordinate systems O 0 x 0 y 0 z 0 , O 1 x 1 y 1 z 1 , . . . , O n x n y n z n are used to describe the attitude of each module.
In the ith moving coordinate O i x i y i z i , variables x i and z i represent the axis of rolling joint and yawing joint, respectively. The positive direction of x i is determined along the telescoping joint from tail to head. The positive direction of z i is determined vertical to the ground in origin state. The positive direction of y i is determined by the right-hand law in the Cartesian coordinate system. Axis y i and z i (i = 1, 2, . . . , n) are parallel to each other and all x i (i = 1, 2, . . . , n) are collinear when the robot is shaped Appl. Sci. 2019, 9, 3749 5 of 17 as a line. Variables l i , α i , and γ i represent the telescoping displacement, rolling angle and yawing angle of the ith module, respectively. The transformation of two adjacent coordinates can be calculated as: Coordinates and posture of every joint point can be calculated with Equation (3) and variables l i , α i , and γ i are used as inputs. It available to create the mathematical model of gaits on the base of the aforementioned coordinate system and the mechanism.
Appl. Sci. 2019, 9, x 5 of 17 The positive direction of is determined by the right-hand law in the Cartesian coordinate system. Axis and ( = 1,2, … , ) are parallel to each other and all ( = 1,2, … , ) are collinear when the robot is shaped as a line. Variables , , and represent the telescoping displacement, rolling angle and yawing angle of the th module, respectively. The transformation of two adjacent coordinates can be calculated as:

Advantages of Design
This design has several advantages as following: 1. Each module has three degrees of freedom of yawing, rolling, and telescoping, improving the movement ability greatly, which is conducive to the development of complex gaits and the cooperation and switching of multiple gaits. 2. The envelope wheels enable the robot to keep at least one wheel contacting the terrain, which makes it possible to continue the movement relying on the frictions from obstacles when the robot cannot keep close to the ground. This enormously improves the terrain adaptability. 3. The combination of rolling-yawing joints allows the robot to cope with abnormal conditions such as rollover flexibly. This DOF setting shows favorable fit with the envelope wheels.

Modular Design of Robot
The snake-robot used in this paper is modular in design. Each module has a separate power supply assembly and a wireless communication control system is used, which increases the agility and mobility.

Joint Mechanism
A module of the snake-like robot used in this paper has three degrees of freedom, each of which is driven by a motor. The yaw motor's swing axes is orthogonal against the roll motor and the telescopic motor. Movement can be realized by changing the rotation of the roll motor. When the robot performs the plane movement, the roll motor is at the zero position, with the yaw motor's axis parallel to the ground. The telescopic motor drives the screw to rotate, thereby completing the telescopic function. The motors configuration diagram is shown in Figure 6.

Advantages of Design
This design has several advantages as following:

1.
Each module has three degrees of freedom of yawing, rolling, and telescoping, improving the movement ability greatly, which is conducive to the development of complex gaits and the cooperation and switching of multiple gaits.

2.
The envelope wheels enable the robot to keep at least one wheel contacting the terrain, which makes it possible to continue the movement relying on the frictions from obstacles when the robot cannot keep close to the ground. This enormously improves the terrain adaptability.

3.
The combination of rolling-yawing joints allows the robot to cope with abnormal conditions such as rollover flexibly. This DOF setting shows favorable fit with the envelope wheels.

Modular Design of Robot
The snake-robot used in this paper is modular in design. Each module has a separate power supply assembly and a wireless communication control system is used, which increases the agility and mobility.

Joint Mechanism
A module of the snake-like robot used in this paper has three degrees of freedom, each of which is driven by a motor. The yaw motor's swing axes is orthogonal against the roll motor and the telescopic motor. Movement can be realized by changing the rotation of the roll motor. When the robot performs the plane movement, the roll motor is at the zero position, with the yaw motor's axis parallel to the ground. The telescopic motor drives the screw to rotate, thereby completing the telescopic function. The motors configuration diagram is shown in Figure 6. Appl. Sci. 2019, 9, x 6 of 17 The casing of one module is designed to be cylindrical with the envelope passive wheels installed in the center of the module. A front view of a casing with envelope wheels is shown in Figure 7a. The size of these passive wheels is chosen properly to meet Equations (1) and (2). In addition, a passive support rotating arm is mounted on the swing axes of the yaw motor and a color of small bearings are used to support the yaw motor bracket to strengthen the joint. A complete module is shown in Figure 7b. For every module, the materials are mainly selected as polylactic acid (PLA) or UV Curable Resin. Only some components which require higher strength or smoothness are made of steel. This design can decrease the weight effectively. Some sizes and materials of per module are given in Table 1. Several joints can be articulated to form a complete snake-like robot as shown in Figure 8. Single module quality (g) 950 The casing of one module is designed to be cylindrical with the envelope passive wheels installed in the center of the module. A front view of a casing with envelope wheels is shown in Figure 7a. The size of these passive wheels is chosen properly to meet Equations (1) and (2). In addition, a passive support rotating arm is mounted on the swing axes of the yaw motor and a color of small bearings are used to support the yaw motor bracket to strengthen the joint. A complete module is shown in Figure 7b. The casing of one module is designed to be cylindrical with the envelope passive wheels installed in the center of the module. A front view of a casing with envelope wheels is shown in Figure 7a. The size of these passive wheels is chosen properly to meet Equations (1) and (2). In addition, a passive support rotating arm is mounted on the swing axes of the yaw motor and a color of small bearings are used to support the yaw motor bracket to strengthen the joint. A complete module is shown in Figure 7b. For every module, the materials are mainly selected as polylactic acid (PLA) or UV Curable Resin. Only some components which require higher strength or smoothness are made of steel. This design can decrease the weight effectively. Some sizes and materials of per module are given in Table 1. Several joints can be articulated to form a complete snake-like robot as shown in Figure 8. Single module quality (g) 950 For every module, the materials are mainly selected as polylactic acid (PLA) or UV Curable Resin. Only some components which require higher strength or smoothness are made of steel. This design can decrease the weight effectively. Some sizes and materials of per module are given in Table 1. Several joints can be articulated to form a complete snake-like robot as shown in Figure 8. Length of telescopic joint (mm) 30 7 Diameter with wheels (mm) 140 8 Diameter without wheels (mm) 110 9 Single module quality (g) In order to make the snake-like robot able to move steadily, some properties such as range, torque of joints must be considered.
For this design, the joint with the highest torque requirement is the yawing joint, which is used to achieve motions such as swinging, lifting, and so on. To make the robot able to achieve 3D movements, a yawing joint is required to lift two modules in this design. The minimum lifting torque can be calculated as: where is number of lifted modules, and takes 2, is one module's length, is one module's weight, takes 9.8 / . Thus T euqals 5.4 N ⋅ m after calculated.
As this calculation, the maximum output torque of yawing motor is selected as 6 N ⋅ m and the range is ±90°, which can meet the requirements in this prototype. Conversely, the rolling joint requires a bigger range of motion to make each module well rotate along the axis, but doesn't need a large torque. In the prototype, the maximum output torque of this motor is selected as 1.3 N ⋅ m and the range is ±140°. Because the telescopic joint is driven by screw, which highly improves the force of telescopic motor, this motor needs to use a 360° continuous rotating motor without a highly requirement of torque, which is actual 0.9 N ⋅ m. The parameters of motors are shown in Table 2, where the velocity of each motor is the maximum speed of the motor selected. Assuming that the parameters of serpentine curve are same with that used in previous studies, per yawing joint will rotate on average approximately 193° during one cycle in total. In order to ensure every yawing joint keeps synchronic, it is necessary to keep the same control cycle of each module. Our previous work has verified that splitting the position of a joint into 23 segments and then sending the position every 0.115 s to the motor can get good result of motion. So, control cycle takes 0.115s. If the curve of one cycle is discretized into 8 segments, the maximum velocity of serpentine gait can be calculated as: where parameters , , ∆ , , , and ∆ stand for the number of discretized segments, the length of per module, angle of one cycle, angular velocity of yawing motor, and additional time due to speed control, respectively. And = 0.29 , ∆ = 193°= 3.37 , = 5 / , ∆ = 0.115 × 23 = 2.645 s. Thus equals 0.11 / after calculated.
If using circular arcs to approximate the serpentine curve, the speed along the forward direction of the snake-like robot is approximately: In order to make the snake-like robot able to move steadily, some properties such as range, torque of joints must be considered.
For this design, the joint with the highest torque requirement is the yawing joint, which is used to achieve motions such as swinging, lifting, and so on. To make the robot able to achieve 3D movements, a yawing joint is required to lift two modules in this design. The minimum lifting torque can be calculated as: where n is number of lifted modules, and takes 2, L is one module's length, m is one module's weight, g takes 9.8 N/kg. Thus T euqals 5.4 N · m after calculated. As this calculation, the maximum output torque of yawing motor is selected as 6 N · m and the range is ±90 • , which can meet the requirements in this prototype. Conversely, the rolling joint requires a bigger range of motion to make each module well rotate along the axis, but doesn't need a large torque. In the prototype, the maximum output torque of this motor is selected as 1.3 N · m and the range is ±140 • . Because the telescopic joint is driven by screw, which highly improves the force of telescopic motor, this motor needs to use a 360 • continuous rotating motor without a highly requirement of torque, which is actual 0.9 N · m. The parameters of motors are shown in Table 2, where the velocity of each motor is the maximum speed of the motor selected. Assuming that the parameters of serpentine curve are same with that used in previous studies, per yawing joint will rotate on average approximately 193 • during one cycle in total. In order to ensure every yawing joint keeps synchronic, it is necessary to keep the same control cycle of each module. Our previous work has verified that splitting the position of a joint into 23 segments and then sending the position every 0.115 s to the motor can get good result of motion. So, control cycle takes 0.115 s. If the curve of one cycle is discretized into 8 segments, the maximum velocity of serpentine gait can be calculated as: where parameters k, L, ∆ϕ, k, ω, and ∆t stand for the number of discretized segments, the length of per module, angle of one cycle, angular velocity of yawing motor, and additional time due to speed control, respectively. And L = 0.29 m, ∆ϕ = 193 • = 3.37 rad, ω = 5 rad/s, ∆t = 0.115 × 23 = 2.645 s.
Thus v equals 0.11 m/s after calculated.
If using circular arcs to approximate the serpentine curve, the speed along the forward direction of the snake-like robot is approximately: v f equals 0.07 m/s (4.3 m/min) after calculation. Considering the load, the actual velocity should be less than this result.

Electrical System
In the design of the control system, U i represents the control system of the i-th module, as shown in Figure 9. Power and control components are integrated into the control system of each unit. The control commands are sent to the wireless communication chip by the host computer through the serial port. Then each unit's wireless communication chip receives the same commands and sends it to the micro-processing unit (MPU). After decoding the control command, pulse-width-modulation (PWM) signal, the specific control information, will be sent to the motors to drive them for completing the movement. The commands of the gait are sent by the host computer, and the lower computer only needs to read the commands and execute them. In addition, each unit uses an independent power system and with a rechargeable battery, so there is no need to supply power from an external cable.

Electrical System
In the design of the control system, represents the control system of the -th module, as shown in Figure 9. Power and control components are integrated into the control system of each unit. The control commands are sent to the wireless communication chip by the host computer through the serial port. Then each unit's wireless communication chip receives the same commands and sends it to the micro-processing unit (MPU). After decoding the control command, pulsewidth-modulation (PWM) signal, the specific control information, will be sent to the motors to drive them for completing the movement. The commands of the gait are sent by the host computer, and the lower computer only needs to read the commands and execute them. In addition, each unit uses an independent power system and with a rechargeable battery, so there is no need to supply power from an external cable.  Figure 10a shows an assembled module. The envelope passive wheels are mounted around the casing, which makes the friction isotropic around the body and reduces the friction coefficient in the longitudinal direction. An assembled module without casing is shown in Figure 10b, the battery and control system are mounted inside, which improve the stability and agility when other modules are out of control. This allows the change of the numbers of modules in different environments. A complete snake-like robot with 8 modules is shown in Figure 11. Figure 10a shows an assembled module. The envelope passive wheels are mounted around the casing, which makes the friction isotropic around the body and reduces the friction coefficient in the longitudinal direction. An assembled module without casing is shown in Figure 10b, the battery and control system are mounted inside, which improve the stability and agility when other modules are out of control. This allows the change of the numbers of modules in different environments. A complete snake-like robot with 8 modules is shown in Figure 11.

Control Command Code
A control command designed for the wireless communication module in this paper is shown in Figure 12. A complete control command code consists of 25 bytes, of which 0-4 bytes are the master control and setting, 5 and 6 bytes are the telescopic joint control code, and the others are the rolling and yawing motors control code. Since the motor that controls the telescopic joint has only three states of elongation, contracting, and stop, two bits are required to control the state of one telescopic motor. This control system allows the control of 8 telescopic motors at the same time. For example, when byte 5 is 0 × 01, it means that the telescopic motor of No. 1 is selected to be activated. Currently, if byte 6 is 0 × 01, the telescopic motor rotates forward to elongate. If byte 6 is 0 × 00, the motor is reversed to contract.
Byte 7-24 represents the rolling and yawing motors. Since one byte is 8 bits can represent 2 = 256 position states, with the angle range of the two motors as 180° and 280°, the control accuracy can reach 1.09° and 0.73°, respectively. It can meet the control needs in the case of low accuracy. In addition, it is feasible to improve accuracy by increasing the length of the control code.

Obstacle-Aided Concertina Gait
In our previous study [32], we proposed obstacle-aided rectilinear gait modeled on the base of a 2D snake-like robot, which enables a snake-like robot to advance in a narrow path by locking its tail or head by yawing joints and then pull its body forward by telescoping joints. However, the efficiency will decrease when the telescoping joints move slowly or the ground is very smooth. Therefore, the obstacle-aided concertina gait as shown in Figure 13 is proposed to improve the efficiency. This gait is modeled on the base of the snake-like robot designed in this paper, which uses yawing and rolling joints. Figure 13 can be treated as a side view of a snake-like robot in a narrow path. Modules in this Figure 11. A complete snake-like robot.

Control Command Code
A control command designed for the wireless communication module in this paper is shown in Figure 12. A complete control command code consists of 25 bytes, of which 0-4 bytes are the master control and setting, 5 and 6 bytes are the telescopic joint control code, and the others are the rolling and yawing motors control code.

Control Command Code
A control command designed for the wireless communication module in this paper is shown in Figure 12. A complete control command code consists of 25 bytes, of which 0-4 bytes are the master control and setting, 5 and 6 bytes are the telescopic joint control code, and the others are the rolling and yawing motors control code. Since the motor that controls the telescopic joint has only three states of elongation, contracting, and stop, two bits are required to control the state of one telescopic motor. This control system allows the control of 8 telescopic motors at the same time. For example, when byte 5 is 0 × 01, it means that the telescopic motor of No. 1 is selected to be activated. Currently, if byte 6 is 0 × 01, the telescopic motor rotates forward to elongate. If byte 6 is 0 × 00, the motor is reversed to contract.
Byte 7-24 represents the rolling and yawing motors. Since one byte is 8 bits can represent 2 = 256 position states, with the angle range of the two motors as 180° and 280°, the control accuracy can reach 1.09° and 0.73°, respectively. It can meet the control needs in the case of low accuracy. In addition, it is feasible to improve accuracy by increasing the length of the control code.

Obstacle-Aided Concertina Gait
In our previous study [32], we proposed obstacle-aided rectilinear gait modeled on the base of a 2D snake-like robot, which enables a snake-like robot to advance in a narrow path by locking its tail or head by yawing joints and then pull its body forward by telescoping joints. However, the efficiency will decrease when the telescoping joints move slowly or the ground is very smooth. Therefore, the obstacle-aided concertina gait as shown in Figure 13 is proposed to improve the efficiency. This gait is modeled on the base of the snake-like robot designed in this paper, which uses yawing and rolling joints. Figure 13 can be treated as a side view of a snake-like robot in a narrow path. Modules in this Since the motor that controls the telescopic joint has only three states of elongation, contracting, and stop, two bits are required to control the state of one telescopic motor. This control system allows the control of 8 telescopic motors at the same time. For example, when byte 5 is 0 × 01, it means that the telescopic motor of No. 1 is selected to be activated. Currently, if byte 6 is 0 × 01, the telescopic motor rotates forward to elongate. If byte 6 is 0 × 00, the motor is reversed to contract.
Byte 7-24 represents the rolling and yawing motors. Since one byte is 8 bits can represent 2 8 = 256 position states, with the angle range of the two motors as 180 • and 280 • , the control accuracy can reach 1.09 • and 0.73 • , respectively. It can meet the control needs in the case of low accuracy. In addition, it is feasible to improve accuracy by increasing the length of the control code.

Obstacle-Aided Concertina Gait
In our previous study [32], we proposed obstacle-aided rectilinear gait modeled on the base of a 2D snake-like robot, which enables a snake-like robot to advance in a narrow path by locking its tail or head by yawing joints and then pull its body forward by telescoping joints. However, the efficiency will decrease when the telescoping joints move slowly or the ground is very smooth. Therefore, the obstacle-aided concertina gait as shown in Figure 13 is proposed to improve the efficiency. This gait is modeled on the base of the snake-like robot designed in this paper, which uses yawing and rolling joints. Next, the rolling and yawing joints between first and second modules rotate little ranges, making the first module close to the wall so that this module can be locked in the position as the 3rd step. Finally, the yawing joint between second and third modules puts down as the 4th step. After that, the first module unlocks by rotating the rolling and yawing joints between first and second modules as the 5th step. Then a cycle of obstacle-aided concertina gait is completed.

Obstacle-Aided Gaits through Narrow Corner
The above gait enables the snake-like robot to advance in a narrow path. However, it is difficult to continue when it encounters a corner in a narrow passage. Especially when the corner width is lower than length of one module as shown in Figure 14. This paper proposes a method through the corner based on the above design. The mechanical analysis of the robot is shown in Figure 15. When a module is going to cross the corner, the modules should be lift as shown in Figure 15. Assuming the modules are first to third from left, there are 4 joints (rolling and yawing joints of first and third modules) rotating during a cycle, their torques are , , , and , respectively. The equivalent forces are and perpendicular to the outer wall, which are offset  Figure 13 can be treated as a side view of a snake-like robot in a narrow path. Modules in this figure are defined first to fourth from left to right. In the initial state, the joints are set in zero states and the yawing joints are parallel to the ground. The whole robot acts like a line. Firstly, the yawing joint between first and second modules rotates to make these two tail modules lift as shown in the 1st step, then this joint rotates to zero while the following joint rotates as shown in the 2nd step. These two steps make the robot advance for a distance.
Next, the rolling and yawing joints between first and second modules rotate little ranges, making the first module close to the wall so that this module can be locked in the position as the 3rd step. Finally, the yawing joint between second and third modules puts down as the 4th step. After that, the first module unlocks by rotating the rolling and yawing joints between first and second modules as the 5th step. Then a cycle of obstacle-aided concertina gait is completed.

Obstacle-Aided Gaits through Narrow Corner
The above gait enables the snake-like robot to advance in a narrow path. However, it is difficult to continue when it encounters a corner in a narrow passage. Especially when the corner width is lower than length of one module as shown in Figure 14. Next, the rolling and yawing joints between first and second modules rotate little ranges, making the first module close to the wall so that this module can be locked in the position as the 3rd step. Finally, the yawing joint between second and third modules puts down as the 4th step. After that, the first module unlocks by rotating the rolling and yawing joints between first and second modules as the 5th step. Then a cycle of obstacle-aided concertina gait is completed.

Obstacle-Aided Gaits through Narrow Corner
The above gait enables the snake-like robot to advance in a narrow path. However, it is difficult to continue when it encounters a corner in a narrow passage. Especially when the corner width is lower than length of one module as shown in Figure 14. This paper proposes a method through the corner based on the above design. The mechanical analysis of the robot is shown in Figure 15. This paper proposes a method through the corner based on the above design. The mechanical analysis of the robot is shown in Figure 15. This paper proposes a method through the corner based on the above design. The mechanical analysis of the robot is shown in Figure 15. When a module is going to cross the corner, the modules should be lift as shown in Figure 15. Assuming the modules are first to third from left, there are 4 joints (rolling and yawing joints of first and third modules) rotating during a cycle, their torques are , , , and , respectively. The equivalent forces are and perpendicular to the outer wall, which are offset by support, and and parallel to the outer wall. and are not drawn in Figure 15. and When a module is going to cross the corner, the modules should be lift as shown in Figure 15. Assuming the modules are first to third from left, there are 4 joints (rolling and yawing joints of first and third modules) rotating during a cycle, their torques are T 1Roll , T 1Yaw , T 2Roll , and T 2Yaw , respectively. The equivalent forces are F 1 and F 2 perpendicular to the outer wall, which are offset by support, and F 1 and F 2 parallel to the outer wall. F 1 and F 2 are not drawn in Figure 15. F 1 and F 2 have the decomposition of F 1x , F 1y , F 2x , and F 2y as the figure. To simplify the analysis, it is assumed that the friction coefficients between the robot and the wall and the ground are stable. Set the friction coefficient of the wall and ground are µ w and µ g , the mass of the robot is m. The following conditions must be met to make the robot forward Figure 16 shows the process of the obstacle-aided gait through narrow corner based on a snake-like robot with 5 modules. Phases a-d is the process of the first module passing through the corner, which can be called a cycle. Each subsequent module's passing through the corner is based on this process. The first cycle will be analyzed in detail below. To simplify the analysis, it is assumed that the friction coefficients between the robot and the wall and the ground are stable. Set the friction coefficient of the wall and ground are and , the mass of the robot is . The following conditions must be met to make the robot forward Figure 16 shows the process of the obstacle-aided gait through narrow corner based on a snake-like robot with 5 modules. Phases a-d is the process of the first module passing through the corner, which can be called a cycle. Each subsequent module's passing through the corner is based on this process. The first cycle will be analyzed in detail below. Figure 16. Obstacle-aided gait through narrow corner.
Firstly, the snake robot acts like a straight line while the yawing joint axis is parallel to the ground, as shown by Phase (a). Secondly, as is shown in Phase (b), the yawing joints of modules 1 and 2 rotate by 90° and 45°, making the modules 1 and 2 lifted. Then the rolling joint and yawing joint of module 2 rotate to press the wall while the rolling joint of module 1 rotates to make the body roll on the wall and pull the module 1 around the corner so that the first module passes through the corner as Phase (c) and (d) show. After completing the first cycle, module 2 begins to pass through the corner, and the motion process is similar. Finally, the robot can directly pass the corner by lifting the module 5 vertically and advances by rectilinear gait then laying down this unit when space is enough.

Recovery from Rollover
During movement, a snake-like robot often turns to rollover due to slippage, gullies, etc., Firstly, the snake robot acts like a straight line while the yawing joint axis is parallel to the ground, as shown by Phase (a). Secondly, as is shown in Phase (b), the yawing joints of modules 1 and 2 rotate by 90 • and −45 • , making the modules 1 and 2 lifted. Then the rolling joint and yawing joint of module 2 rotate to press the wall while the rolling joint of module 1 rotates to make the body roll on the wall and pull the module 1 around the corner so that the first module passes through the corner as Phase (c) and (d) show. After completing the first cycle, module 2 begins to pass through the corner, and the motion process is similar. Finally, the robot can directly pass the corner by lifting the module 5 vertically and advances by rectilinear gait then laying down this unit when space is enough.

Recovery from Rollover
During movement, a snake-like robot often turns to rollover due to slippage, gullies, etc., especially in line state. Using the roll joints can realize the recovering function from the rollover simply, as shown in Figure 17.

Experiments and Results
Based on the above design and analysis, we built a prototype. As shown in Table 1, the length and diameter of each module without wheels are 290 mm and 110 mm, respectively. The diameter of each module is 140 mm after wheels are installed. Firstly, we achieve the obstacle-aided gait through the narrow corner which is proposed in this paper and complete the recovery from rollover test, respectively. Then two basic 2D gaits experiments, serpentine gait and rectilinear gait, are presented to test the efficiency of the gaits which have been implemented in the previous studies. Furthermore, we provide a video named "A Snake-Like Robot with Envelope Wheels and Obstacle-Aided Gaits" to demonstrate the processes of the experiments (see Video S1).

Obstacle-Aided Gaits
A snake-like robot with four modules is used to complete the obstacle-aided gait through the narrow corner. A snake-like robot with four modules is used to complete the obstacle-aided gait through the narrow corner. The movement as shown in Figure 16 is performed to cross the corner when the snake-like robot reaches a suitable position. At other times, the obstacle-aided concertina gait as shown in Figure 13 is performed to push the snake robot forward in the narrow passage and bring the robot to a proper position.
The process of the gait is shown in Figure 18, where the images in the upper right of each figure are the front views against the corner and the images in the lower left are the top views. In order to make the process clearer, three simplified pictures are attached under the real pictures in Figure 18a, which shows the process of the first module's crossing the corner. And Figure 18b shows the process of obstacle-aided concertina gait, which lets the robot advance in the narrow path. Figure 18c gives some pictures during the process of 2nd, 3 rd , and 4th modules' crossing the corner.
The width of the narrow path in this experiment is approximately 150 mm, a little wider than the diameter of the robot. The width of exit of the path is approximately 230 mm. It takes about 45 s to pass through the path on average and the speed of the obstacle-aided concertina gait is about 84 cm/min. The idea of this method is to restore the gesture of a joint by the relative reversal of the roll motors between each two joints. Taking a snake-like robot with 4 modules as an example, when the snake-like robot turns to rollover, the yaw joint is perpendicular to the ground, making it impossible to move forward by serpentine movement. At this time, starting from the end, the rolling joint of the 4th module rotates by 90 • , and the rolling joint of 3rd module adversely rotates by the same angle, making the yawing joint of the 4th module restored to the parallel with ground. Then the rolling joints of the 3rd and 2nd modules repeat the same process, and so on, finally the robot recovers from the rollover.

Experiments and Results
Based on the above design and analysis, we built a prototype. As shown in Table 1, the length and diameter of each module without wheels are 290 mm and 110 mm, respectively. The diameter of each module is 140 mm after wheels are installed. Firstly, we achieve the obstacle-aided gait through the narrow corner which is proposed in this paper and complete the recovery from rollover test, respectively. Then two basic 2D gaits experiments, serpentine gait and rectilinear gait, are presented to test the efficiency of the gaits which have been implemented in the previous studies. Furthermore, we provide a video named "A Snake-Like Robot with Envelope Wheels and Obstacle-Aided Gaits" to demonstrate the processes of the experiments (see Video S1).

Obstacle-Aided Gaits
A snake-like robot with four modules is used to complete the obstacle-aided gait through the narrow corner. A snake-like robot with four modules is used to complete the obstacle-aided gait through the narrow corner. The movement as shown in Figure 16 is performed to cross the corner when the snake-like robot reaches a suitable position. At other times, the obstacle-aided concertina gait as shown in Figure 13 is performed to push the snake robot forward in the narrow passage and bring the robot to a proper position.
The process of the gait is shown in Figure 18, where the images in the upper right of each figure are the front views against the corner and the images in the lower left are the top views. In order to make the process clearer, three simplified pictures are attached under the real pictures in Figure 18a, which shows the process of the first module's crossing the corner. And Figure 18b shows the process of

Recovery from Rollover
A recovery from the rollover experiment was carried out as shown in Figure 19. Firstly, the snake was pushed down manually to make the yawing joints parallel to the ground. Then the rolling joints rotated to adjust per yawing joint back to origin state where the yawing joints are vertical to the ground. The module under adjustment is indicated by the yellow frame. The width of the narrow path in this experiment is approximately 150 mm, a little wider than the diameter of the robot. The width of exit of the path is approximately 230 mm. It takes about 45 s to pass through the path on average and the speed of the obstacle-aided concertina gait is about 84 cm/min.

Recovery from Rollover
A recovery from the rollover experiment was carried out as shown in Figure 19. Firstly, the snake was pushed down manually to make the yawing joints parallel to the ground. Then the rolling joints rotated to adjust per yawing joint back to origin state where the yawing joints are vertical to the ground. The module under adjustment is indicated by the yellow frame.

Verification of Gaits
In order to test the efficiency of the gaits which have been implemented in our previous research, serpentine and rectilinear gaits are performed. The control and set positions are the same with [32].
A snake-like robot with 8 modules and 7 yawing joints is used to complete the serpentine gait and rectilinear gait. Figure 20 gives the process of the serpentine gait. The velocity of this gait can reach about 2.5 m/min on rough ground, which is less than this value but still acceptable. t = 0 t = 1 t = 2 t = 3 t = 4 t = 5 t = 6 t = 7 t = 8 The two-wave rectilinear gait is implemented as shown in Figure 21, where the yellow frame indicates the joint that is executing the telescopic movement. It takes about 15 s for one telescoping joint to totally stretch or contract once, since the telescoping joint is driven by the screw. The speed of the two-wave rectilinear gait is approximately 2 cm/min. Figure 19. Process of recovery from the rollover movement.

Verification of Gaits
In order to test the efficiency of the gaits which have been implemented in our previous research, serpentine and rectilinear gaits are performed. The control and set positions are the same with [32].
A snake-like robot with 8 modules and 7 yawing joints is used to complete the serpentine gait and rectilinear gait. Figure 20 gives the process of the serpentine gait. The velocity of this gait can reach about 2.5 m/min on rough ground, which is less than this value but still acceptable.

Verification of Gaits
In order to test the efficiency of the gaits which have been implemented in our previous research, serpentine and rectilinear gaits are performed. The control and set positions are the same with [32].
A snake-like robot with 8 modules and 7 yawing joints is used to complete the serpentine gait and rectilinear gait. Figure 20 gives the process of the serpentine gait. The velocity of this gait can reach about 2.5 m/min on rough ground, which is less than this value but still acceptable. The two-wave rectilinear gait is implemented as shown in Figure 21, where the yellow frame indicates the joint that is executing the telescopic movement. It takes about 15 s for one telescoping joint to totally stretch or contract once, since the telescoping joint is driven by the screw. The speed of the two-wave rectilinear gait is approximately 2 cm/min. The two-wave rectilinear gait is implemented as shown in Figure 21, where the yellow frame indicates the joint that is executing the telescopic movement. It takes about 15 s for one telescoping joint to totally stretch or contract once, since the telescoping joint is driven by the screw. The speed of the two-wave rectilinear gait is approximately 2 cm/min.

Conclusions and Discussion
In this paper, a solution for improving the terrain adaptability of snake-like robots is proposed. It mainly includes two parts: One is the use of the envelope passive wheels, which makes the snake-like robot have good contact with the terrain to improve the robot's ability to cope with terrain changes. The other is that each module has three degrees of freedom of yawing, rolling, and telescoping, which shows a very good fit with the envelope passive wheels. In addition, each joint independent control and power supply system is used in the prototype with wireless communication. Serpentine movement is the most efficient form for snake-like robots, but this gait cannot move in narrow terrain. This article focuses on the way of the snake-like robot's movement in narrow terrain and some methods are proposed. The robot can flexibly utilize its joints and terrain to complete some obstacle-aided movements in a narrow terrain and pass through a narrow corner, and has the recovery ability for the abnormal state such as rollover. We also verified that the snake-like robot with our solution can complete the basic serpentine and rectilinear movement performed in previous robots. The experiments show this solution significantly improves the terrain adaptability of the snake-like robot.
This paper makes two contributions. Firstly, previous research is fused on a new robot with envelope wheels and the 3-DOF, which means the previously implemented gaits also fused, improving the environmental adaptability. Secondly, based on the new snake-like robot, two new obstacle-aided gaits are proposed and realized. The obstacle-aided concertina gait gives a new way for snake-like robots to advance in narrow passage. And the obstacle-aided gait through narrow corner enable the snake-like robot to pass through the corner in narrow terrain.
However, this study has certain limitations. First, we only integrated the basic gait of serpentine and rectilinear with some actions in narrow terrain added. However, this is not enough to realize snake-like robots which can work in any environment. Secondly, the movement of snake-like robots depends on friction deeply. The study on friction is significant to improve the efficiency of movement. This paper does less study on this. Third, movement with various gaits has different efficiency, a snake-like robot should be able to achieve gait transition, which is worth researching. A biological snake can change its gait according to its own perception of the environment. But a robot can only rely on human observation to change the state of movement, making it difficult to move

Conclusions and Discussion
In this paper, a solution for improving the terrain adaptability of snake-like robots is proposed. It mainly includes two parts: One is the use of the envelope passive wheels, which makes the snake-like robot have good contact with the terrain to improve the robot's ability to cope with terrain changes. The other is that each module has three degrees of freedom of yawing, rolling, and telescoping, which shows a very good fit with the envelope passive wheels. In addition, each joint independent control and power supply system is used in the prototype with wireless communication. Serpentine movement is the most efficient form for snake-like robots, but this gait cannot move in narrow terrain. This article focuses on the way of the snake-like robot's movement in narrow terrain and some methods are proposed. The robot can flexibly utilize its joints and terrain to complete some obstacle-aided movements in a narrow terrain and pass through a narrow corner, and has the recovery ability for the abnormal state such as rollover. We also verified that the snake-like robot with our solution can complete the basic serpentine and rectilinear movement performed in previous robots. The experiments show this solution significantly improves the terrain adaptability of the snake-like robot.
This paper makes two contributions. Firstly, previous research is fused on a new robot with envelope wheels and the 3-DOF, which means the previously implemented gaits also fused, improving the environmental adaptability. Secondly, based on the new snake-like robot, two new obstacle-aided gaits are proposed and realized. The obstacle-aided concertina gait gives a new way for snake-like robots to advance in narrow passage. And the obstacle-aided gait through narrow corner enable the snake-like robot to pass through the corner in narrow terrain.
However, this study has certain limitations. First, we only integrated the basic gait of serpentine and rectilinear with some actions in narrow terrain added. However, this is not enough to realize snake-like robots which can work in any environment. Secondly, the movement of snake-like robots depends on friction deeply. The study on friction is significant to improve the efficiency of movement. This paper does less study on this. Third, movement with various gaits has different efficiency, a snake-like robot should be able to achieve gait transition, which is worth researching. A biological snake can change its gait according to its own perception of the environment. But a robot can only rely on human observation to change the state of movement, making it difficult to move facing obstacles usually. Thus, the control system must be improved, more methods to perceive the environment should be added and proper feedback should be introduced to the control system. These are necessary for the snake-like robot to change gaits in different terrains.
In addition, our work on the snake-like robot in narrow terrain is far from enough. The solution proposed in this paper has further ability of movement. We will integrate more gaits and tap the potentials of the three-degree-of-freedom module and do more work on the friction of different gaits to improve the efficiency in our future research. The control system will be improved including introducing proper feedback and adding sensors to help assist the robot to select gait by itself, finally improving the robot's autonomous movement ability.