1. Introduction
Biological motion can be generated through a control approach in bio-inspired robotic systems. The snake robot is an application of bio-mimetic robots. The snake robot is designed by serially connecting links. Therefore, it has a high degree of freedom (DOF). Motion control using these types of high DOF system becomes challenging in an unknown and uncertain environment.
Snake robots have the capability to navigate in both terrestrial and underwater environments [Reference Matsuno1]. The motion of a snake robot on the ground is considered a planar motion, but in the case of an underwater environment, the robot can move in a vertical direction along with the planar motion. Therefore, the motion of the snake robot can be considered a 3D motion in underwater conditions. The planar motion of the underwater snake robot has been considered in most of the literature [Reference Onal and Rus2–Reference Pettersen4]. The vertical motion along with horizontal motion of a snake robot can be generated by setting each actuator orthogonal [Reference Transeth, Leine, Glocker and Pettersen5–Reference Cao, Zhang and Zhou7]. Li et al. [Reference Li, Zhang, Tong, Li, Law, Xu, Zhu and Wu8] designed two controllers for the land-based snake robot desired pitch and yaw motions. However, it makes difficult to synchronise vertical and horizontal motions due to instability in pitch motion in the underwater environment. Another way of getting vertical motion in an underwater environment is the buoyancy variation technique that is generally found in biological creatures. In the case of the robotic systems, Woods et al. [Reference Woods, Bauer and Seto9] used a ballast tank (containing water) to change depth using mass variation and simulated vertical motion. Tiwari and Sharma [Reference Tiwari and Sharma10] experimentally studied the depth variation of the spherical object by taking the water from outside. This can be helpful for the snake robot in underwater vertical motion using the buoyancy variation technique. Snake robot also has horizontal motion which is serpentine motion. Hence, with the serpentine horizontal motion and buoyancy variation-based vertical motion, the snake robot can achieve the 3D motion. The 3D motion can be controlled in two parts, that is, horizontal motion control and vertical motion control.
The event-based control technique is helpful for vertical motion control because it is easy to control the pumps. The event controlled techniques have been used in the field of robotics for various applications [Reference Lunze and Lehmann11–Reference Nath and Bera13]. Lunze and Lehmann [Reference Lunze and Lehmann11] used an event-based state feedback approach to generate the control signal. Abbas et al. [Reference Abbas, Narayan and Dwivedy12] used event-triggered adaptive control for upper limb rehabilitation. The control input is generated if an event condition is triggered in the event-based control method. Nath and Bera [Reference Nath and Bera13] used event-based control with integral sliding mode control (SMC) to redesign control gains for the robotic manipulator. There is a need to observe the negative/neutral/positive buoyancy for the vertical motion of the snake robot. Therefore, the event-based control method can be helpful for vertical motion control. Proportional Derivative (PD) controller can also be used to control the water supply of the pump. Now, the snake robot has a horizontal motion. It is controlled with different control techniques by considering the planar motion. The underwater uncertainties such as added mass effect, drag forces and external disturbances need to be estimated and eliminated their effect during the motion. Generally, robust control approaches are used to deal with these uncertainties. Various approaches for implementing a robust controller on a snake robot are described as follows.
The serpentine motion of an underwater snake robot is similar to that of a land-based snake robot [Reference Gray14]. However, the underwater environment is different from the land-based environment. Therefore, to deal with various uncertainties, the controller needs to be designed as per the requirement. The different types of uncertain environments and motion control approaches for a snake robot are explained further. Liljeback et al. [Reference Liljeback, Haugstuen and Pettersen15] proposed cascade control approach for a path following of a snake robot. Bhandari et al. [Reference Bhandari, Raj, Pathak and Yang16] used Takagi–Sugeno-type fuzzy PD controller for motion control of the planar snake robot. Jiang et al. [Reference Jiang, Yang and Shi17] studied trajectory control of the snake robot equipped with the vector thruster in an underwater environment against time-varying disturbances. Li et al. [Reference Li, Pan, Deng and Hu18] did path following of snake robot in unknown friction environment using adaptive control scheme. Kohl et al. [Reference Kohl, Kelasidi, Pettersen and Gravdahl3] proposed an object-oriented control scheme for an underwater snake robot. Zhang et al. [Reference Zhang, Ma, Li, Wang, Guo and Wang19] designed a control scheme for unmatched underwater uncertainties of a snake robot. Rezapour et al. [Reference Rezapour, Pettersen, Liljebäck, Gravdahl and Kelasidi20] proposed a linear control model using virtual holonomic constraints (VHCs) for the land-based snake robot. The VHCs enforce time-independent (autonomous) relations for biological gait patterns on the configured robot. Mohammadi et al. [Reference Mohammadi, Rezapour, Maggiore and Pettersen21] described VHCs using the singular perturbation-based controller for an unknown friction environment. Kohl et al. [Reference Kohl, Kelasidi, Mohammadi, Maggiore and Pettersen22] estimated water currents and motion control using the VHC-based PD controller of the underwater snake robot. Similar VHC approaches have been applied to biped walking robots [Reference Wang, Zhang, Wang and Chen23, Reference Celikovsky and Anderle24] which consist of multi-link joint mechanisms. The SMC approach is one of the robust control approaches which can be used for the snake robot using the VHC approach. Mukherjee et al. [Reference Mukherjee, Mukherjee and Kar25] used SMC with VHCs for the snake robot motion in uncertain friction environments. They also used adaptive SMC [Reference Mukherjee, Kar and Mukherjee26] for improving. Fridman et al. [Reference Fridman, Moreno, Bandyopadhyay, Kamal and Chalanga27] explained the super twisting SMC (STSMC) that could work as a chattering attenuation. The robustness of the STSMC can also be found in the application of n-link rigid body manipulator [Reference Mobayen, Tchier and Ragoub28], upper limb wearable [Reference Fazli, Rakhtala, Mirrashid and Karimi29], lower limb exoskeleton [Reference Mokhtari, Taghizadeh and Mazare30], trajectory tracking of under-actuated unmanned surface vehicles with disturbances [Reference Liu, Ye and Yang31], motion control of the underwater snake robot [Reference Patel and Dwivedy32], underwater vehicle in the presence of disturbances [Reference Hosseini, Noei and Rostami33] and snake robot with tail thrust [Reference Patel and Dwivedy34]. The numerical experiment is also performed by using multibody dynamics platform such as CoppeliaSim (V-REP), Gazebo, Simscape Multibody and Webots in the literature. In the recent literature, the use of these virtual platforms is found that is discussed further. Zhang et al. [Reference Zhang, Ju and Cao35] performed the motion control of a snake using reinforcement learning method in the CoppeliaSim environment. Le and Vo [Reference Le and Vo36] analysed RUU Delta robot using the Simscape environment. Modak and Krishna [Reference Modak and Rama Krishna37] simulated industrial manipulator in Simscape for kinematics and singularity analysis. Cosenza et al. [Reference Cosenza, Niola, Pagano and Savino38] analysed rocker-bogie suspension for robotic rover using the Simscape environment.
From the above-mentioned literature review, the following two technical gaps can be observed:
-
• The motion dynamics equation and control method have not been investigated for the 3D motion of the snake robot using the buoyancy variation method.
-
• The VHC-based control approach using a STSMC scheme has not been reported for the underwater snake robot dynamics with vertical motion of the snake robot which consists of the uncertainty in added mass effect along.
To overcome the above-mentioned technical gap, in the present work, it is proposed to study 3D dynamics of the snake robot in the uncertain underwater environment; the following works have been proposed:
-
• The buoyancy variation technique is proposed for the snake robot by utilising water which generates vertical motion, and also the motion dynamics equation of the snake robot is proposed.
-
• The event-based feedback controller is used for the pumps to control the vertical direction motion of the snake robot.
-
• The STSMC scheme is used for the horizontal motion control of the snake robot with external disturbances and different path following cases. The results are quantified based on chattering indicator (CI) and tracking errors.
-
• A combination of vertical motion and horizontal motion creates the 3D motion of the snake robot.
-
• The results of STSMC are compared with SMC scheme in terms of chattering and error tracking.
-
• The further validation using the Simscape Multibody environment is also performed to verify the proposed method.
The main contribution of this work compared to article [Reference Patel and Dwivedy32] is the 3D motion technique and its dynamics equations by removing existing assumptions (neutral buoyant and added mass effect is negligible) and the robustness testing of the existing control scheme (STSMC) for the proposed dynamics by introducing external environmental disturbances. Moreover, the control scheme integration of planar and vertical motion and verify it in the Simscape Multibody environment.
2. Mathematical model of the underwater snake robot
In this work, the previous assumptions “the added mass effect is negligible [Reference Kohl, Kelasidi, Mohammadi, Maggiore and Pettersen22] and the planar motion of neutrally buoyant snake robot in hypothetical horizontal plane” [Reference Pettersen4] are both removed, and 3D dynamics of the snake robot is proposed. The robot can change the horizontal plane (up and down) to get vertical motion; see Fig. 1. This vertical motion can be achieved by the buoyancy variation technique found in underwater creatures. The proposed technique uses environmental water to change the mass of each link. The event-based/PD controller is used for the pump operation to the inlet and outlet of the water. This is the first time this technique has been implemented for the snake robot as per the authors’ best knowledge. The 3D motion of a snake robot can be described as the forward motion of the snake robot in the X-Y plane and the vertical motion on the Z-axis as shown in Fig. 1. Therefore, motion in the Z-direction is considered independent from the X-Y plane motion. However, the effect due to variation in mass for the vertical motion would result in forward motion during the dynamic condition. Therefore, two different control algorithms are required.
These can be explained using the dynamics of the snake robot. Hence, the kinematics and dynamics of the snake robot are explained in the following subsections.
2.1. Kinematics of the underwater snake robot
Figure 2 shows the motion of a snake robot with $n$ links and $(n-1)$ joints in the X-Y plane.
The planar kinematics is similar to the existing snake robot [Reference Pettersen4]. The snake robot motion in the X-Y plane can be considered as shown in Fig. 2. The angle $\theta _i$ is the orientation of link ‘ $i$ ’ with respect to global $X$ -axis, angle $\phi _i$ is the joint angle between two adjacent links and the centre of mass (CM) position of a link ‘ $i$ ’ describes as $(x_i,y_i)$ . So, it has $(n+2)$ DOF which can be described as $n$ -link angles $(\theta _i)$ and $(p_x,p_y)$ CM position of snake robot. The CM position $(p_x,p_y)$ of the snake robot can be expressed as follows:
where $\mathbf{X} = [x_1, \cdots \cdots, x_n]^T\in \mathbb{R}^{n}$ , $\mathbf{Y} = [y_1, \cdots \cdots, y_n]^T \in \mathbb{R}^{n}$ and $\mathbf{e} = [1, \cdots \cdots, 1]^T, \in \mathbb{R}^{n}$ are addition vectors. The geometric constraint of the robot can be described as
where $\mathbf{A} = [\mathbf{I}_{(n-1)}, \mathbf{0}_{(n-1,1)}] + [\mathbf{0}_{(n-1,1)}, \mathbf{I}_{(n-1)}]\in \mathbb{R}^{(n-1)\times n}$ is the addition matrix, $\mathbf{D} = [\mathbf{I}_{(n-1)}, \mathbf{0}_{(n-1,1)}] - [\mathbf{0}_{(n-1,1)}, \mathbf{I}_{(n-1)}]\in \mathbb{R}^{(n-1)\times n}$ is the subtraction matrix, $\sin \boldsymbol{\theta } = [\sin \theta _1, \cdots \cdots, \sin \theta _n]^T \in \mathbb{R}^n \quad \text{and}\quad \cos \boldsymbol{\theta } = [\cos \theta _1, \cdots \cdots, \cos \theta _n]^T \in \mathbb{R}^{n}$ . By using Eqs. (1) and (2), the final position of each link in the X-Y plane can be written as
where $\mathbf{K} = \mathbf{A}^{T}(\mathbf{DD}^T)^{-1}\mathbf{D}, \in \mathbb{R}^{n \times n}$ . Therefore, the velocity and acceleration of the links are given below:
where $\boldsymbol{S_\theta } = diag(\sin \boldsymbol{\theta }) \in \mathbb{R}^{n\times n}$ is the sine diagonal matrix, $\boldsymbol{C_\theta } = diag(\cos \boldsymbol{\theta }) \in \mathbb{R}^{n\times n}$ is the cosine diagonal matrix and $\boldsymbol{\theta } = [\theta _1\ldots \ldots .\theta _n]^T \in \mathbb{R}^n$ is the link angle vector. The relative tangential velocity ( $v_{t,r}$ ) and normal velocity ( $v_{n,r}$ ) of the snake robot head link in the X-Y direction can be given as follows:
where $\mathbf{v}_c = [v_{cx},v_{cy}]^T$ . $v_{cx}$ and $v_{cy}$ are the water current velocity in $X$ and $Y$ direction, respectively, and $\dot{\mathbf{p}}_{xy}$ is the velocity of the centre of mass. The rotation matrix $ R_{\theta _n} = \begin{bmatrix} \cos \theta _n & -\sin \theta _n\\ \sin \theta _n & \cos \theta _n \end{bmatrix}$ . These kinematic relations are for the snake robot’s planar motion, which moves forward in the X-Y plane. The relative velocity of each link in the X-Y plane can be given as follows:
where the relative velocity of each link can be described as $\mathbf{V}_{rx} = [v_{rx,1}, \dots,v_{rx,n}] \in \mathbb{R}^n$ , $\mathbf{V}_{ry} = [v_{ry,1}, \dots,v_{ry,n}]\in \mathbb{R}^n$ , and the water current velocity in X-Y direction of each link can be expressed as $\mathbf{V}_{cx} = [v_{cx,1}, \dots,v_{cx,n}] \in \mathbb{R}^n$ , $\mathbf{V}_{cy} = [v_{cy,1}, \dots,v_{cy,n}]\in \mathbb{R}^n$ . The relative acceleration is the derivative of Eq. (6), and it can be expressed as follows:
where
The kinematic relation for the Z-direction motion is as follows:
where $Z =[z_1, \dots,z_n]\in \mathbb{R}^n$ is the position vector in Z-direction. The derivative of Eq. (9) gives the velocity in Z-direction as $\dot{p}_z$ . The 3D motion dynamics of the underwater snake robot are given in the following subsection.
2.2. 3D motion dynamics of the underwater snake robot
The free body diagram for a ‘ $i^{th}$ ’ link of a snake robot is given in Fig. 3. Figure 3(a) shows the force and moment balance in the X-Y plane (horizontal), and Fig. 3(b) shows the force balance in Z-direction (vertical).
The force balance equation is using the newton $2^{nd}$ law given for a link ‘ $i$ ’ as
where $(f_{x,i},f_{y,i})$ are the environmental forces acting on the link ‘ $i$ ’, $(h_{x,i},h_{y,i})$ are the joint constraint forces between link ‘ $i$ ’ and ‘ $i+1$ ’, $(h_{x,i-1},h_{y,i-1})$ is the joint constraint force between link ‘ $i-1$ ’ and ‘ $i$ ’ as shown in Fig. 3, $m_b$ is considered buoyancy mass that ‘ $m_b$ ’ kg water may enter or exist from the system by using the pumps, ‘ $g$ ’ is acceleration due to gravity and ‘ $f_{z,i}$ ’ is the environmental force in the vertical direction during vertical motion. It may be noted that the total mass ‘ $m$ ’ can be calculated as $m = m_s + m_w \pm m_b$ in which $m_s$ is the mass of the snake robot and $m_w$ is the mass of water. Some amount of the water ( $m_w$ ) is initially considered inside the link to make the robot neutral buoyant. When the robot gets down, the $m_b$ amount of water is pumped inside the link. To get some position in the ‘ $Z$ ’-direction, the $m_b$ amount of water is discharged from the link using $2^{nd}$ pump, and the robot becomes neutral buoyant at that position level. When the robot moves upward, the $m_b$ amount of the water discharged from the initial $m_w$ water becomes a positive buoyant, and it lifts due to buoyancy force. A robot can become neutral buoyant by taking water inside the link as the exact amount of water discharged earlier. That means Eq. (10c) works when the robot moves in the vertical direction. The shematic diagram of this discussion is shown in Fig. 4. Thus, the snake robot would get 3D motion in underwater conditions.
The moment balance equation of link ‘ $i$ ’ in the X-Y plane is given below:
where $J$ is the mass moment of inertia of link ‘ $i$ ’; $u_i$ is the actuator torque between link ‘ $i$ ’ and ‘ $i+1$ ’; $u_{i-1}$ is the actuator torque between link ‘ $i-1$ ’ and ‘ $i$ ’; $\tau _i = -\lambda _1 \dot{\theta }_i-\lambda _2 \dot{\theta }_i^2-\lambda _3 \ddot{\theta }$ , in which $\lambda _1$ and $\lambda _2$ are the linear and non-linear rotational damping parameters, respectively; and $\lambda _3$ is a rotational added mass effect coefficient. No moment in the $Z$ -direction occurs because all links are symmetric and have equal mass. Equations 10 and 11 can be extended for the whole body of the snake robot as follows:
where $\mathbf{u} = [u_1, \cdots \cdots,u_{n-1}]^T$ , $\mathbf{F}_{x} = [f_{x,1}, \cdots \cdots, f_{x,n}]^T$ , $\mathbf{F}_{y} = [f_{y,1}, \cdots \cdots, f_{y,n}]^T$ , $\mathbf{F}_{z} = [f_{z,1}, \cdots \cdots, f_{z,n}]^T$ , $\mathbf{h}_{x} = [h_{x,1}, \cdots \cdots, h_{x,n}]^T$ , $\mathbf{h}_{y} = [h_{y,1}, \cdots \cdots, h_{y,n}]^T$ , $\boldsymbol{\tau } = [\tau _{1},\cdots \cdots, \tau _{n}]^T$ , . The total force in X-Y direction $\mathbf{F} = [\mathbf{F}_x, \mathbf{F}_y]^T = \mathbf{F_a} + \mathbf{F_d} \in \mathbb{R}^{2n}$ , where $\mathbf{F_d} \in \mathbb{R}^{2n}$ is the drag force and $\mathbf{F_a} \in \mathbb{R}^{2n}$ is the force due to added mass effect. The force $\mathbf{F}_a$ acting on the snake robot due to the added mass effect can be written below:
where
and $\mu$ is the added mass coefficient. The force due to the drag effect ( $\mathbf{F}_d$ ) can be expressed in terms of linear drag force ( $\mathbf{F}_{Ld}$ ) and non-linear drag force ( $\mathbf{F}_{NLd}$ ) such as $\mathbf{F}_d = \mathbf{F}_{Ld} + \mathbf{F}_{NLd}$ . The linear drag force can be expressed as
where $ \mathbf{v}_r = \dot{\mathbf{p}}-\mathbf{v}_c$ , $\mathbf{Q}_{\theta } = - \begin{bmatrix} c_t(\mathbf{C}_{\theta })^2+c_n(\mathbf{S}_{\theta })^2 & (c_t-c_n)\mathbf{S}_{\theta }\mathbf{C}_{\theta }\\ (c_t-c_n)\mathbf{S}_{\theta }\mathbf{C}_{\theta } & c_t(\mathbf{S}_{\theta })^2+c_n(\mathbf{C}_{\theta })^2 \end{bmatrix}$ . The non-linear drag force can be expressed as
The force acting on the robot during motion in $Z$ -direction (vertical) can be explained as follows:
where $\mathbf{A}_p = a_p \mathbf{I}_n$ , $\mathbf{C_D} = c_d \mathbf{I}_n$ . $a_p$ is the projected area of link, and $c_d$ is the vertical drag coefficient. The robot changes its position during motion. So, the acceleration of CM in the X-Y plane can be obtained using Eq. (12a,b) as follows:
$\because \mathbf{e}^T\mathbf{D}^T = 0$ . The substitution of Eq. (16) with Eq. (12c) gives the motion equation in Z-direction as follows:
The motion equations of the multi-link snake robot are given by substituting Eq. (4) with Eq. (12a,b,d), and the angular dynamic equation becomes as in Eq. (19a). The acceleration in X-Y can be deduced after substituting Eqs. (13, 14, 15) with Eq. (17), and the resulting Eq. (19b) becomes the acceleration equation. Vertical CM acceleration of the snake robot (ref. Eq. 19c) can be derived using Eqs. (18) and (9). Therefore, the equation of motion for the snake robot in 3D by using the drag forces and added mass effect are as follows:
where
$\Delta$ is the external disturbances. The equation of motion in Eq. (19a, b) shows the motion of a snake robot in the X-Y plane, and Eq. (19c) shows the motion of a snake robot along the Z-axis. This equation of motion expresses the snake robot moving in the 3D, namely, X-Y-Z motion. Hence, two independent controllers must be designed for the snake robot, one for X-Y plane motion and Z-axis motions. Here, it is noted that the torque $\mathbf{u}$ is responsible for the horizontal motion, and $m_b$ is responsible for the vertical motion. The VHCs are designed for motion control in the X-Y plane, and the event-based controller/PD controller is designed for the motion in the Z-axis. The control approach for the motion of a snake robot for a given dynamics is explained in the next section.
3. Biological gait pattern generation
Lateral undulation motion is the most common gait pattern of the snake both on land and in the water environment. The gait pattern for the snake robot can be generated using the following equation [Reference Mukherjee, Mukherjee and Kar25]:
where $i$ $\in$ $[1,\cdots,n-1]$ , $\alpha$ is the amplitude of the joint angle (rad), $\omega$ is the input frequency (rad/s), $\beta$ (rad) is the phase angle between adjacent joint and $\phi _{0}$ (rad) is the offset angle which makes possible to turn the robot.
3.1. Virtual holonomic constraints (VHCs)
In this method, the actuator torque ‘u’ in Eq. (19) is regulated using the virtual constraint of the undulation gait pattern as mentioned in Eq. (20). In this, $\omega t$ is replaced by a state $\gamma$ . The state offset angle $\phi _0$ affects all the joints, unlike in [Reference Mukherjee, Mukherjee and Kar25, Reference Mukherjee, Kar and Mukherjee26] where it affects only the head. So, the evaluation compensator of the state is described below:
These VHCs enforce an autonomous (time-independent) relation involving configuration variables $(\gamma, \phi _0)$ which does not exist in a mechanical system but is enforced via feedback. The stabilise relation can be written for $n$ generalised coordinates and $n-1$ inputs from Eq. (20).
Let $\Phi _i(\gamma ) = \alpha \sin (\gamma + (i -1)\beta )$ . Therefore, the $\boldsymbol{\Phi }(\gamma ) =[\Phi _1,\Phi _2,\cdots,\Phi _{n-1}]^T$ . Using Eq. (22) $\boldsymbol{\theta }$ can be expressed as
where $\mathbf{b}= [1,\cdots \cdots,n-1]^T \in \mathbb{R}^{n-1}$ , . The VHCs from the above can be expressed by following [Reference Mohammadi, Rezapour, Maggiore and Pettersen21] as
$\mathbf{g}(\gamma,\phi _0,\boldsymbol{\theta })$ is an error function for the system Eq. (19a) with compensator Eq. (21), and it is needed to be zero. In most snake robots, RC servo motors have an inbuilt Proportional Integral Derivative (PID) controller. Therefore, the torque equation can be written as follows [Reference Patel and Dwivedy32, Reference Patel and Dwivedy34]:
where $k_p$ , $k_d$ , ${k_i} \gt 0$ are positive gains. On the satisfaction of VHCs, the dynamical system corresponds to the manifold by substituting Eq. (24) with Eq. (19). Hence, the reduced-ordered dynamic system is written as follows:
where
$\tilde{\Upsilon }_{\theta _n}, \tilde{\Upsilon }_{p}$ are the lumped disturbances in reduced-ordered dynamics of head angle and CM acceleration, respectively. Based on the reduced-order system, the controller would be designed. The benefit of a reduced-ordered system is that the entire robot can be controlled by designing a controller for a single joint. It is noted that the reduced-ordered dynamic system does not have a control input term. Here, the planar motion is controlled by the STSMC, and an event-based control technique controls vertical motion.
4. Controller design
Snake robot travels in an unknown and uncertain environment. Therefore, there is a need for a robust control approach to deal with uncertainties. The control objective is to track the desired path with the desired velocity. As discussed earlier in section 2, the controller is designed in two parts in, namely, horizontal motion control and vertical motion control as described in the following subsection.
4.1. Horizontal motion control
The reduced-order governing equation for a snake robot is given in Eq. (26) in terms of head angle ( $\theta _n$ ) and tangential velocity ( $v_t$ ). Considering ( $\theta _{ref}, v_{ref}$ ) reference head angle and tangential velocity, the error equation can be written as follows:
These error equations for the state vector $\bar{\xi } = [\tilde{\theta }_n, \dot{\tilde{\theta }}_n, \tilde{v}_{t,r}, v_{n,r}, \gamma, \dot{\gamma }, \phi _0, \dot{\phi }_0]^T$ are used in the designing of a sliding surface where the expression is given below:
where $k_n,k_v\gt 0$ is the design parameter. The derivative of sliding surface is given below:
Therefore, Eq. (29) can be rewritten by substituting Eq. ((27) as
Now, Eq. (30) can represent in sliding vector form as
where
The STSMC [Reference Patel and Dwivedy32] scheme is used for the motion control in the X-Y plane. The equivalent control law can be written for $(\dot{\boldsymbol{\sigma }}=0)$ as follows:
The reaching law that helps to reach the initial error function on the sliding surface is given below [Reference Patel and Dwivedy32]:
Therefore, the control law for the horizontal motion is given as follows:
The stability analysis by considering the given control scheme is explained in ref. [Reference Patel and Dwivedy32] and given in appendix using Lyapunov stability analysis. The vertical motion control technique is explained in the next section.
4.2. Motion control in Z-direction
Z-direction motion is open-loop control as it is independent from the X-Y motion control. Z-direction motion is controlled using an event-based technique. As discussed earlier, the Z-direction motion can be controlled by using the inlet and outlet pumps. The schematic diagram of link ‘ $i$ ’ is shown in Fig. 4. To operate these pumps, the following given logic control algorithm can be used. When one pump starts, the mass of the robot gets changes and the robot starts motion in the Z-direction. In this work, the 3V Direct Current (DC) pump has a flow rate of 10 ml/s. It is assumed that the clean water after small filtering goes inside the pump which prevents the pump from blockages. Let us consider that Pump-1 is used for taking water inside the link and Pump-2 for discharging water from the link as shown in Fig. 4. Triggering conditions for the pump based on the feedback system are explained in Algorithm 1. It is noted that at a particular instant, either Pump-1 or Pump-2 operates. Both pumps do not work simultaneously to keep the balance of the snake robot in underwater conditions.
This event-based control technique is triggered when the condition is fulfilled. This event-based controller is responsible for the motion in the vertical direction. Another way to control the Z-direction motion is by using PD control which is described in the following subsection. In this, reference Z-position is required that robot would be reached.
4.3. Z-direction control using PD controller
It is cleared from the previous subsection discussion that the Z-direction motion is possible using the event-based algorithm. The PD-controller can be useful to reach the exact position that is explained further.
In this, the reference Z-position is given by the slider. The PD-based control scheme is used for the controlling of the pump. The controlled signal operates the pumps. The PD controller is given below:
where $k_{pz}$ and $k_{dz}$ are the proportional and derivative gains, respectively. The pump is directly dealt with buoyancy, so the saturation function is used, in which the generated control signal starts the pumps on changing the error sign or achieving the reference position and changing the mass of the link which would help to achieve the reference position in Z-direction.
4.4. Reference trajectory generation for horizontal motion
The reference trajectory can be generated by observing the current velocity in the horizontal direction of the water condition. The water current observer is briefly described in Eq. (36). More detail can be found in ref. [Reference Kohl, Kelasidi, Mohammadi, Maggiore and Pettersen22].
where $\bar{\mathbf{v}}_{c}$ is an estimated current velocity of the water and $k$ is a parameter. Using Eq. (36) reference head angle $(\theta _{ref})$ and velocity $(v_{ref})$ to be calculated for the different geometry of the path following:
where $v, h(p_{xy})$ denotes the desired velocity and path, respectively. $k_t, k_h$ are the design parameters.
4.5. Control law implementation
There are two controllers that work simultaneously. The control law implementation on the robot dynamics is explained in Fig. 5. This gives a clear idea about the implication of STSMC scheme and event-based controller/PD controller simultaneously as shown in the block diagram. The saturation block limits the torque input to the robot dynamics because the motor has limited torque output in real time. The demanding torque of the controller might not be fulfilled by the actuator. Therefore, the saturation function is used to meet the real-time condition of the actuator. The complete implementation gives the 3D motion of the snake robot in underwater conditions.
5. Results and discussion
In this section, the simulation results for the proposed dynamics and control of the snake robot are discussed. The parametric uncertainties are considered for the simulation which is graphically shown in Fig. 6. The details of given uncertainties as mentioned in Eqs. (11, 13, 14, 15) are explained in appendix A. An additional factor to consider is the presence of external disturbances (denoted as $\Delta$ ) during the motion of the snake robot. Hence, it becomes important to account for various types of disturbances in order to assess the robustness of the considered control scheme. These disturbances are treated as extreme scenarios for evaluating the effectiveness of the STSMC. The different type of external disturbances acting on the link of the snake robot is shown in Fig. 7. In this work, four different disturbance cases are considered. The first case is without any external disturbance which can be seen in Fig. 7(a). The subsequent cases are random disturbance (Fig. 7(b)), pulse disturbance (Fig. 7(c)) and high-frequency disturbance (Fig. 7(d)). The link length ( $2l$ ) of a snake robot is considered to be 0.018 m. The mass of a link varies with time to get vertical motion. As given in Eq. 19 for neutral buoyant condition, $m=m_s + m_w$ . Here, solid link mass $m_s= 0.310$ kg, and to make the neutral buoyant, the required mass of water $m_w=0.5947$ kg. Therefore, the neutral buoyant mass $m_n = 0.9047$ kg. The switching law of SMC is used for comparison given below. The equivalent control law is the same as for the STSMC.
The controller parameters are given in Table I, and the parameters of control algorithm 1 are given in Table II.
PID = Proportional Integral Derivative
The lumped parameters of the uncertain parts are considered , for the controller design. It is noted that the controller parameters are kept the same for all the cases considered for the numerical simulation. The 3D motion of the snake robot using the considered control scheme can be seen in Figs. 8 and 9. In these figures, the projection on the X-Y plane reflects the motion of the snake robot in a straight line direction (Fig. 8) and sinusoidal-like path (Fig. 9), and the projection on X-Z plane shows the vertical motion of the robot due to buoyancy variation. The motion of the snake robot is like varying its path in a horizontal plane using the STSMC scheme and vertical motion using the buoyancy variation technique. Hence, it is verified that the proposed control technique achieves the 3D motion of the snake robot. Moreover, the study is not only about achieving the 3D motion of the snake robot but also checking the robustness of the control scheme. It is further explained.
The variation in buoyant mass and total mass are shown in Fig. 10(a,b), respectively. The pump is ON when the condition is triggered as mentioned in algorithm 1.
5.1. Straight line path tracking
Figure 11 shows the error in head angle tracking for different disturbances. It is found that the tracking performance is similar for the various disturbances. There is no deviation found in the head angle tracking. These can also be verified using a sliding surface; see Fig. 12. The sliding surface is meant to be zero to achieve the control objective. The quantified chattering value is discussed in section 5.3 which is found significantly less using the STSMC. The offset angle is used to turn the robot. Figure 13 shows the offset angle during different disturbances. The phase variation has been observed in offset angle due to different disturbances and autonomous motion of the robot. Figure 14 shows the tangential velocity tracking of the snake robot. It is found that the speed of the snake robot has not changed for any disturbance condition.
5.2. Sinusoidal path tracking
Figure 15 shows the head angle tracking of the sinusoidal path tracking of the snake robot. Here, it observed the initially higher angle deviation compared to straight line path tracking. Once the robot’s motion tracking is converged, the tracking error is almost zero.
The sliding surface (error function) of the control objective is shown in Fig. 16 for the sinusoidal path following. The high peak initially observed in the simulated sliding surface tracking result is due to fast reaching.
The offset angle which makes it possible to generate the sinusoidal-like path in joint space control is shown in Fig. 17. The fluctuation in offset angle is observed in Fig. 17 compared to Fig. 13 due to different path tracking. The tracking of velocity is shown in Fig. 18. The velocity tracking is found to be similar to Fig. 14. The above results are qualitatively good. However, the robustness of the control scheme can be done using quantified results explained in the following subsection.
3D motion of a snake robot using the SMC scheme is shown in Fig. 19. When the high-frequency disturbance occurs in the case of sinusoidal path following, robot fails to follow it. So, here, the SMC scheme fails. The parameters of the SMC scheme are selected for the almost same tracking error of tangential velocity and head angle which are given in the next section.
5.3. Quantified results of chattering and tracking error
The robustness of the proposed control scheme is verified using the quantified result of the CI and error tracking. The CI can be defined as mentioned in ref. [Reference Hendel, Khaber and Essounbouli39], that is, variable of $S$ for given time $T$ , as follows:
The quantified chattering effect is shown in Table III for the straight line path following and in Table IV for the sinusoidal path following. The chattering effect results show the effectiveness of the STSMC scheme. The results of proposed control scheme are also compared with SMC scheme. It is observed that the chattering is significantly reduced by using the STSMC compared to SMC. It is also observed that during the high-frequency disturbance, while using the SMC, the robot is not able to follow the sinusoidal path as shown in Fig. 19. In this case, the performance of STSMC scheme is found to be better. The chattering effect trend is similar for both path following cases. During the random disturbances, higher chattering is observed for both cases. However, the chattering is nearer for all cases of disturbances. The error tracking for both cases is shown in Tables V and VI. Almost similar tracking is observed for all disturbances and path following cases. This means that the proposed control technique has enough robust to deal with different disturbances and uncertainties.
The robustness of STSMC control scheme is tested with different path following and external disturbances along with the vertical motion control of the snake robot. Finally, this synchronisation of the control scheme produced the 3D motion of the snake robot. Motion control in Z-direction using PD controller is explained below.
5.4. PD control-based Z-direction control
Motion control in Z-direction using PD controller is explained here. The reference Z-position ( $z_{ref}$ ) is given by the slider/user input in the Simulink. The saturation block is used for it to work with buoyancy control.
Figure 20 shows the motion of snake robot control with STSMC in X-Y direction and PD controller in Z-direction. The robot motion on triggered condition in Z-direction is shown here. The tracking in Z-direction is shown in Fig. 21 which for a given triggered reference, the tracking of Z-position is shown. It is noted that there is a delay in achieving the reference Z-position due to constant buoyancy force. The error tracking in the Z-direction is shown in Fig. 22. The slope indicates how fast the small buoyancy force to achieve the zero error.
5.5. Validation in the Simscape Multibody environment
In this section, further verification of the proposed dynamics is carried out using the Simscape Multibody environment where there is no need of the mathematical model of the snake robot explicitly. The designed control scheme is deployed by taking the feedback from the joint sensor block and position feedback from the transform sensor block. The joint stiffness and friction are also considered for this experiment. It may be noted that the transform sensor is placed on the head link. The tracking results are discussed in the following paragraphs.
Figure 23 shows the 3D motion of the snake robot in the Simscape Multibody environment where the motion is tracked from the CG of the head link. The head link CG of the mathematical model is behind the CG of Simscape model because of the coordinate system. However, the results are similar in trend. Figure 24 shows the vertical motion of a snake robot using the buoyancy variation. The overshoot is observed in Z-direction motion control in the numerical experiment. However, the robot converge the given reference position in vertical motion. That can also be verified by measuring the error in Z-direction tracking as shown in Fig. 25. The video of a motion can be found in Web Link-1 and Web Link-2.
These proposed buoyancy variation techniques and their dynamics will help to develop the further control scheme of the snake robot, which will help to perform the manipulator task in underwater conditions without external forces. The proposed approach makes it possible to have 3D motion of the snake robot in an underwater environment.
6. Conclusion
In this work, a method for the 3D motion control of the snake robot is proposed using the buoyancy variation technique. The VHCs are used for the motion control in the X-Y plane, and the event-based control technique is used for the motion control in the Z-direction. The STSMC is used to estimate the dynamic uncertainties of the snake robot. The robustness of the proposed technique is verified by considering two different path following cases, namely, straight line path and sinusoidal path. The external disturbances are also considered to verify the robustness of the control scheme and discussed. Moreover, the PD controller is used for the motion control and error tracking in the Z-direction. It is also observed that the small change in mass results in the significant velocity in vertical direction in the underwater environment. The complete implementation of the control technique (horizontal and vertical) on proposed motion dynamics equation results in the 3D motion of the snake robot in an underwater environment. Moreover, the proposed mathematical system is also verified using the Simscape Multibody environment where the equation of motion is not required explicitly. In future, the motion dynamics and control for manipulator operation using the snake robot in the underwater environment will be performed.
Supplementary materials
The 3D motion videos of tracking the snake robot are attached to this article. The video of a motion can be found in Web Link-1 and Web Link-2. The supplementary material for this article can be found at http://dx.doi.org/10.1017/S0263574724000821.
Acknowledgements
This work is supported by the IITGTI&DF through the grant number DST/NMICPS/TIH12/IITG/2020.
Author contributions
Patel formulated the dynamic of the snake robot, a control strategy, conducted simulation runs and wrote the manuscript. Dwivedy checked the results and supervised and modified the manuscript. At last, both authors read and approved the final manuscript.
Competing interests
The authors declare no Competing interests exist.
Appendix
A. Uncertainties in Robot Dynamics
All the physical systems undergo several uncertainties such as unknown environmental conditions, unspecified robot parameters and manufacturing defects. Incorporating these unknown uncertainties into a dynamic model poses a significant challenge. Consequently, these uncertainties are treated as integral components of the dynamical system. In the case of the underwater snake robot, the mathematical expression of these uncertain parameters mentioned in Eq. 13 is provided below:
These uncertainties are represented graphically, and the equations of uncertain parameters are generated using the curve fitting tool. These mathematical formulations are used to simulate the snake robot dynamics in Eq. (19). These types of uncertainties are called parametric uncertainties. The graphical representation of the uncertainties is given in Fig. 6.
B. Stability Analysis
The Lyapunov function is considered as below by following reference [Reference Patel and Dwivedy32]:
The derivative of Eq. (41) and substitute Eq. (34) in that the Lyapunov function becomes as shown following.
Hence, Lyapunov stability has been proven by considering $k_1, k_2, k_3\gt 0$ .