3.1. Kinematic Model
For convenience, the joints of the snake-like robot are numbered such that the unit with the roll joint not connected to other units is labeled as Joint 1. The remaining joints are numbered sequentially based on their distance from Joint 1. The robot is divided into three sections: Sections 1 to 5 as the head, Sections 6 to 8 as the middle, and Sections 9 to 10 as the tail, as shown in
Figure 6. The robot’s dimensional parameters are listed in
Table 1, where the joint length is defined as the distance from the steering gear connector to the center of the steering gear disc in the deflection joint.
As a multi-degree-of-freedom robot, each joint angle change of the snake-like robot alters its spatial posture. To accurately describe the mapping between the spatial positions of points on the robot and the joint angles, a coordinate system is established at each joint. The D-H parameter method is used to build the robot’s kinematic model. For convenience in processing the calculation results, a virtual unit is added in front of the robot’s head as the base, as shown in
Figure 7. Here, the coordinate system {h} serves as the reference frame. Odd-numbered coordinate systems denote revolute joint frames, while even-numbered ones represent deflection joint frames.
The junction between two units is a node. Taking the robot’s head as the reference, the position of node
w is
Lw:
In this case, Ns represents the total number of units in the snake robot’s body, and Ls denotes the total length of the robot.
To describe the relationship between the spatial position of each point on the snake robot and the angles of its joints, an improved DH method is used to establish the roll transformation matrix, where
j = 1, 3, 5, 7…, and
αi represents the angle of the
i joint:
The coordinate transformation formula for any point
p on the snake robot between the joint coordinate system
i and the reference coordinate system (coordinate system
h) is as follows:
When pi = (0 1 0)T (where i is an even number), the calculated ph represents the posture of the corresponding unit of the snake robot relative to the reference coordinate system.
3.2. Obstacle-Crossing Gait Planning
There are two phases for the snake robot to cross an eccentric large-diameter obstacle: first, the robot climbs from the cable to the eccentric large-diameter obstacle; second, it returns from the obstacle back to the cable.
Figure 8 illustrates the posture changes of the snake robot as it climbs from the cable onto the eccentric large-diameter obstacle. First, the robot spirals around the cable in a helical posture (
Figure 8a); next, it elongates its body with the tail segment as the base, then spirals the head segment around the obstacle (
Figure 8b); then, continuing with the tail as the base, the robot extends the body further, bringing the middle segment onto the obstacle and spiraling it around the obstacle (
Figure 8c); finally, the robot elongates its body to move forward and pulls the tail segment onto the obstacle (
Figure 8d).
Figure 9 illustrates the posture changes of the snake robot as it moves from the eccentric large-diameter obstacle back to the cable. The process is similar to that in
Figure 8, but reversed. Therefore, this paper provides a detailed analysis of the process in which the robot climbs from the cable onto the eccentric large-diameter obstacle, and later conducts simulations and experimental analysis of both processes.
For the case of the snake robot climbing from the cable onto an eccentric large-diameter obstacle, the robot’s posture curve during the obstacle traversal is first derived. Then, by examining the correspondence between the obstacle traversal posture curve and the robot’s joint positions, the joint angles of the robot are calculated. During the obstacle traversal, the snake robot follows two segments of spirals with different diameters. To avoid internal constraint forces during the robot’s motion, a transition curve is added between the two spiral segments to smoothly connect them. The posture curves of the snake robot in
Figure 8a,d represent equidistant spirals; the posture in
Figure 8b corresponds to the posture curve shown in
Figure 10a, while the posture in
Figure 8c corresponds to the curve in
Figure 10b.
In
Figure 10a, the posture curve of the snake robot consists of Helix A (representing the robot’s tail segment), a transition curve (representing the robot’s middle segment), and Helix B (representing the robot’s head segment). In
Figure 10b, the posture curve of the snake robot is made up of Helix B (representing the middle and head segments of the robot) and the transition curve (representing the robot’s tail segment).
The equations of the curves for Helix A and Helix B are as follows:
In this context, qA and qB are defined as the instantaneous angular parameters governing the motion of the serpentine robot along Helix A and Helix B, respectively; rA and rB represent the wrapping radii of Helix A and Helix B, respectively; rs is the radius of the snake robot’s unit; rt is the radius of the cable or obstacle; hA and hB denote the lead of Helix A and Helix B, respectively; HB is the offset of Helix B along the Z-axis; TsA and TsB refer to the number of turns of Helix A and Helix B, which indicates the maximum number of turns the snake robot can make when the lead is hA or hB; Ls is the total length of the snake robot; Ns represents the total number of units in the snake robot’s body.
3.3. Transition Curve
To ensure a smooth transition between the two helical segments, this study uses quasi-uniform B-spline curves for the smooth blending of the curves. The tangent directions at the endpoints of the quasi-uniform B-spline curve are aligned with the direction of the vectors formed by the last two endpoints. As shown in
Figure 11, the tangent directions at points
P0 and
P4 of the B-spline curve align with the vectors
and
, respectively. Therefore, by appropriately selecting the control points, we ensure that the left and right derivatives at the connection points between the helical curve and the quasi-uniform B-spline curve are equal, achieving a smooth transition between the two. Higher-order B-splines yield smoother curves. To ensure smooth blending between the curves, a cubic quasi-uniform B-spline curve is selected in this study.
The cubic quasi-uniform B-spline curve consists of five control points,
P0 to
P4, where
P0 is the point of intersection between the B-spline curve and Helix A, and
P4 is the intersection between the B-spline curve and Helix B. To determine the equation of the cubic quasi-uniform B-spline curve shown in
Figure 10, the coordinates of the five control points,
P0 to
P4, must first be established. Since the position of point
P0 can vary along the plane of intersection between the obstacle and the cable during the robot’s motion, four control point selection schemes are proposed in this study to reduce computational complexity, as illustrated in
Figure 12.
Selection of point
P0: The point
P0 is placed on the coordinate axis, and the equation of the axis is solved simultaneously with Equation (4). The coordinates of point
P0 are given below, where
k1 represents the slope of the coordinate axis on which
P0 lies.
Selection of point
P1: To ensure a smooth connection between the B-spline curve and Helix A, the tangent direction of Helix A at point
P0 must be the same as the tangent direction of the B-spline curve at
P0. The tangent direction of the B-spline curve at
P0 aligns with the vector
, and to avoid intersection with the cable, the projection length of vector
on the XOY plane must equal the roll radius
rA of Helix A. The coordinate of point
P1 is given by Equation (7), where
j is a scaling factor in the formula for controlling the geometric characteristics of a B-spline curve at the connection point
P0, ensuring a smooth transition between the curve and Helix A:
Selection of point
P2: In the XOY plane, point
P2 is the intersection of another coordinate axis and a circle with a radius of
rB. Here,
L13 represents the distance between points
P1 and
P3 along the Z-axis, which is calculated through Equation (13), and
k2 is the slope of the coordinate axis containing point
P2. The coordinate equation of point
P2 is given by:
Equation (8) has two solutions, from which one is selected based on the rotation direction of Helix A.
Selection of
P3 point. The coordinates of
P3 need to be calculated based on the coordinates of
P4. Similarly, to ensure smooth connection between the B-spline curve and Helix B, the tangent direction of Helix B at
P4 must align with the tangent direction of the B-spline curve at
P4. The tangent direction of the B-spline curve at
P4 coincides with the direction of vector
, and the projection length of vector
in the XOY plane equals the rotation radius
rA of Helix A. Based on this, the coordinates of
P3 in the XOY plane can be determined as follows:
Selection of
P4 point. To ensure that the snake robot does not slip off the cable, in the XOY plane,
P4 is set at the intersection of the coordinate axis and the circle with radius
rB. This axis is the same as the one where
P0 lies. The coordinate equation for
P4 is as follows:
Equation (10) has two solutions, and one is selected based on the rotation direction of Helix A.
Based on the selected five control points, the cubic quasi-uniform B-spline curve is computed, with the knot vector
U = {0, 0, 0, 0, 0.5, 1, 1, 1, 1}. The resulting cubic quasi-uniform B-spline curve function is expressed as follows.
pi represents the control points of the B-spline curve;
u is a continuous parameter variable defined over the range specified by the knot vector
U, which parameterizes points along the curve; and
denotes the basis functions of the B-spline curve:
equivalent to
The appropriate control point scheme is selected based on the position of the connection point between the middle and tail segments of the snake robot. The pre-obstacle crossing posture of the snake robot is shown in
Figure 8a. The position of the connection point between the middle and tail segments of the robot is closest to the positive half-axis of the Y-axis, so the coordinates of the control point follow the scheme in
Figure 12a. Based on this, the cubic quasi-uniform B-spline curve is calculated and combined with the helix to obtain the obstacle crossing posture curve of the snake robot shown in
Figure 8b.