Spatial Trajectory Tracking of Wall-Climbing Robot on Cylindrical Tank Surface Using Backstepping Sliding-Mode Control

Wall-climbing robots have been well-developed for storage tank inspection. This work presents a backstepping sliding-mode control (BSMC) strategy for the spatial trajectory tracking control of a wall-climbing robot, which is specially designed to inspect inside and outside of cylindrical storage tanks. The inspection robot is designed with four magnetic wheels, which are driven by two DC motors. In order to achieve an accurate spatial position of the robot, a multisensor-data-fusion positioning method is developed. The new control method is proposed with kinematics based on a cylindrical coordinate system as the robot is moving on a cylindrical surface. The main purpose is to promote a smooth and stable tracking performance during inspection tasks, under the consideration of the robot’s kinematic constraints and the magnetic restrictions of the adhesion system. The simulation results indicate that the proposed sliding mode controller can quickly correct the errors and global asymptotic stability is achieved. The prototype experimental results further validate the advancement of the proposed method; the wall-climbing robot can track both longitudinal and horizontal spatial trajectories stably with high precision.


Introduction
As kinds of pressure vessels, cylindrical storage tanks are commonly used for the storage of oil or radioactive chemical liquids. Generally, storage tanks are welded from pieces of cambered plates. Thus, weld lines are distributed on the surface of the tank. Since the special media inside the vessels could cause corrosion or defects on the welds, such as pits, cracks and holes, it is very necessary to regularly check the security performance of the tanks. Currently, inspection and maintenance work are all carried out manually, usually based on ultrasound or other nondestructive techniques (NDTs). This kind of inspection requires workers to move slowly and precisely over surface, so the whole process takes a long time. With the development of robotic technologies, many kinds of inspection robots have been designed to take the place of manual maintenance [1][2][3][4][5][6]. As the robot can carry devices and instruments for detection or reconstruction, this leads to a reduction in inspection time and costs, as well as an improvement of the accuracy and repeatability.
During the inspection process, the mobile robot is required to follow the weld lines or to track a given trajectory. Thus, the accuracy of trajectory tracking and fast responses are required. In order to achieve this, numerous control strategies have been developed for tracking control of wall-climbing robots. For example, Kuo et al. [7] used a traditional PID controller for trajectory tracking of a wheeled wall climbing robot; Gimenez et al. [8] chose an adaptive control method to reduce the effect of gravity factors. Dian et al. [9] presented an improved dual-heuristic dynamic programming method for magnetic wheeled mobile robots. In [10], the authors introduced a nonlinear model predictive control (NMPC)-based tracking control method for a novel wall-climbing robot.
Sliding-mode control (SMC) is another control method that has been successfully applied in tracking control for wall-climbing robots. The key advantages of SMC are the robustness to system uncertainties and external disturbances, easy implementation and fast response. These features make SMC an attractive control approach for the tracking problem of wall-climbing robots, as the robot system is affected by adsorption force and gravity. Wu et al. [11] designed a sliding-mode controller with integral action for the tracking control of a climbing robot. Xin et al. [12] proposed a backstepping adaptive fuzzy sliding-mode control (BFASMC) method to improve the robustness and control precision of trajectory tracking for a wall-climbing robot. In [13], an adaptive extended state-observer-based nonsingular terminal sliding-mode control (NTSMC) was presented for aircraft-skin inspection robots.
In this paper, a differential wheeled wall-climbing robot is specially designed for the inspection of cylindrical storage tanks, which is equipped with an onboard camera and four magnetic wheels driven by two DC motors. This robot is subjected to nonholonomic constraints. As we know, a proper choice of tracking errors can eliminate the geometric constraints. In order to measure the spatial coordinates of the robot's position, a spatial positioning method based on multisensor data fusion is proposed. To verify the accuracy and stability of the positioning method, positioning stability experiments are performed, and the results are analysed. Considering that the robot is moving on the surface of a cylinder, a cylindrical coordinate system is chosen to represent the three-dimensional position of the robot as well as the tracking errors. In this case, a hybrid control strategy is proposed for trajectory tracking problems based on the combination of backstepping control and sliding-mode control. The simulation results indicate that the performance of the control system is guaranteed. The prototype experimental results further validate the advancement of the proposed method.
This paper is organized as follows. Section 2 introduces the mechanical design of the climbing robot. Section 3 describes the three-dimensional positioning of the robot, including the multisensor positioning and positioning accuracy analysis. In Section 4, we present the strategy of BSMC for trajectory tacking. In addition, a numerical simulation is included. Section 5 demonstrates the real prototype experiments, and the experimental results are discussed.

Robot System Design
To ensure the safety and stability of wall-climbing robots, a sufficient adsorption capacity has to be considered first. According to different working environments, various adsorption techniques can be selected, such as negative pressure adsorption [14,15], bionic adsorption [16,17], thrust adsorption [18,19] and magnetic adsorption [20][21][22]. Generally, permanent magnet adsorption is used for metal walls, which can provide a large adsorption force without requiring external energy consumption. Many types of magnetic crawler robots have been investigated, such as climbing robots with magnetic wheels [23][24][25], omnidirectional climbing robots [10,26,27] and magnetic crawler climbing robots [28][29][30][31]. Among them, wall-climbing robots with magnetic wheels are widely used in the inspection task of storage tanks, bridges and ships. These kinds of wall-climbing robots are designed to carry a variety of equipment and instruments instead of manual operations. Some different wall-climbing robots have been investigated for storage tank inspection and maintenance. For example, an autonomous climbing robot was designed in [32], which can work inside and outside spherical storage tanks, a noncontacted permanent-magnet-adsorbed wallclimbing robot was introduced in [33] for the inspection of the spherical tank.
In our earlier studies, a series of wall-climbing robots were developed and tested [34,35], which could effectively move on tank surfaces. In this section, a new design of a wall-climbing robot is proposed, which is equipped with an onboard camera and four magnetic wheels driven by two motors. One main advantage of differential wheeled robots is that they can change the heading direction by adjusting the angular velocities of two driving motors, such as following a curvilinear trajectory or turning around. The modular magnetic wheels provide a reliable adsorption force for the climbing robot, and these wheels can also be easily installed and disassembled. In addition, we design a variety of inspection and maintenance mechanisms, which can be simply assembled on the robot for automated operations. At the same time, a system software is developed for remote control and monitoring of the robot.

Design Considerations
Due to the special working environment, the inspection robot should have the capability of absorbing and climbing on vertical arc-shaped walls. As a result, a lot of issues have to be considered when designing the robot.

•
Adsorption stability: a strong adsorption force is essential to keep the robot moving steadily on inclined or vertical walls without sliding. • Climbing ability: a sufficient driving force can ensure the moving ability and load capacity of the inspection robot, especially when running on vertical surfaces. • Load capacity: when carrying different equipment, the robot should overcome gravity and high-altitude resistance. Sufficient driving force and a lighter robot body can increase its load capacity. • Obstacle-crossing capability: the robot should be able to smoothly pass small obstacles on the walls, e.g., weld seams, solder joints, etc. • Inspection and maintenance capabilities: in order to perform automated tasks, the robot should be able to carry different equipment for inspection and maintenance.

Mechanical Design
In order to meet the design requirements, we present a robot design scheme of four bilateral-driven magnetic wheels. The robot had a lightweight body, with two motors providing sufficient driving force for moving on the walls. The prototype of the robot is shown in Figure 1 and the parameters of the robot are shown in Table 1. The dimension of the robot was 365 mm × 300 mm × 140 mm. The self-weight of the robot was 7.5 kg and the adsorption force of each magnetic wheel was 150 N. Its maximum payload and maximum climbing speed were 10.1 kg and 0.3 m/s, respectively.  The designed robot was composed of four magnetic wheels, two drive components, a vision component, a multilayer robot frame and two control components. Figure 2 describes the mechanical structure of the drive component and the magnetic wheel. The drive component included a DC motor, a synchronous belt and a motor mounting bracket. The motor was installed on the robot frame through the motor mounting bracket and connected with the wheel shaft. The synchronous belt was used to drive two magnetic wheels on the same side by one motor. The design of four bilateral-driven magnetic wheels could effectively reduce the robot's weight and volume. The encoders on both sides were used to record the robot's climbing speed and running distance. The modular magnetic wheel component was designed to provide sufficient adsorption force for the robot. As shown in Figure 2, the magnetic wheel was composed of a synchronous pulley, a wheel shaft, a bearing holder, a bearing, two magnetic conductive wheel bodies, a protective shell, an annular permanent magnet and an end cover. The end covers could be easily disassembled to quickly replace the magnetic wheels. The annular NdFeB permanent magnet was embedded in the wheel as the source of the adsorption force. The magnetic wheel body was designed to be as light as possible, without losing its magnetic conductive performance. The drive shaft was connected to a motor or an encoder, and the driving force could be transmitted to the magnetic wheel on the same side through the synchronous belt. The bearing holder and bearing were designed to enhance the rotation stability of the wheels and could be easily installed on the robot frame.
The vision component was used to identify weld seams and monitor the tank surface, which included a camera and two brackets. The multilayered robot frame had more space for the lithium battery and the control computer.
For automated inspection and maintenance, we also investigated some additional machineries, for instance, a flaw detection machinery, grinding machinery and cleaning machinery. As shown in Figure 3a, the flaw detection machinery mainly included a lifting motor and two ultrasonic probes. The ultrasonic signals were used to detect internal defects in weld seams. The lifting motor could change the height of the ultrasonic probes. In the grinding machinery ( Figure 3b) and cleaning machinery (Figure 3c), grinding heads and cleaning brushes were driven by motors. These additional machineries could be easily installed on the robot. Additional inspection and maintenance machineries effectively reduce the manual work intensity and save operating time.

Three-Dimensional Positioning of the Wall-Climbing Robot
In order to achieve the accurate spatial positioning of the wall-climbing robot, multiplesensor information was measured and fused. The sensors used for robot positioning included an ultrawideband (UWB) sensor, an inertial measurement unit (IMU) and encoders. The UWB positioning system adopted the time-of-arrival (TOA) positioning technique to measure the absolute spatial coordinates of the robot. The IMU and the encoders were used to record the running speed and inclination angle of the robot, which could estimate the relative spatial coordinates of the robot.

Spatial Coordinate Measurement by UWB
The UWB positioning system included UWB robot tags and UWB anchors, which were used to estimate the spatial coordinates of the robot on the tank surface. Generally, UWB anchors are placed at certain locations with known coordinates, and the UWB robot tag is mounted on the robot. When the robot is running on the cylindrical tank, the spatial position, velocity and inclination angle of the robot are constantly changing. As shown in Figure 4, the three-dimensional Cartesian coordinate system XYZ was constructed, and the current position of the robot on the surface of the tank was (x c , y c , z c ). R was the radius of the tank, and θ was the angle of the robot position on the XY coordinate plane relative to the X axis. The forward linear velocity of the robot was v c , and the inclination angle of the robot was α c .
As shown in Figure 5, there were multiple UWB anchors with known coordinates (x i , y i , z i ) around the tank, which were labelled as: Anchor 1, Anchor 2, Anchor 3, . . ., Anchor n, and the coordinate of the UWB robot tag was (x c , y c , z c ). The distances between the UWB robot tag and the UWB anchors measured by the positioning system were d i (i = 1, 2, . . . , n). The spatial position of the robot could be obtained by four sets of valid distance values. According to the geometric relationship of the positions, the relationship between the distance d i and the spatial coordinate (x i , y i , z i ) was expressed as: By calculating the difference between the equations, we had: which could be described in the following matrix form: where Then, the coordinates of the UWB robot tag was:  Therefore, the robot coordinate (x c , y c , z c ) could be estimated based on the measurement data of four UWB anchors. Due to the installation positions of UWB anchors about the cylindrical tank, the signal of the UWB anchors could be blocked, and some errors could occur. As shown in Figure 6, when the UWB signal was blocked, the power of the first path decreased from about −74 dBm to −84 dBm. By analysing the power level of the first path (signal receiving power of the direct path), the availability of UWB anchor measurement data could be determined. The best four sets of measurement data were selected to calculate the spatial coordinates of the robot. The power level of the first path directly reflected the state of the propagation path of the first path signal received by the UWB anchor. When the robot ran out of the range of a UWB anchor, the power of the first path was significantly reduced. As a result, the measurement data could be inaccurate, and this UWB anchor was considered to be invalid. If there were less than four available UWB anchors to be used by the robot, the UWB positioning system became invalid. In order to facilitate the calculation and estimation of the robot coordinates, the position of the robot in the spatial Cartesian coordinate system (x, y, z) was transformed into the coordinates of the cylindrical coordinate system (R, θ, h), where R is the radius of the cylinder, which is a constant, θ is the angle of the robot position relative to the X coordinate axis, and h is the height of the robot on the Z coordinate axis. The conversion relationship from (x, y, z) to (θ, h) is described in Algorithm 1. In order to reduce the influence of disturbance, when |x| < 0.03, the robot was considered to be on the Y coordinate axis. By means of the UWB positioning technique, the cylindrical coordinates of the robot were calculated.

Multisensor Positioning Data Fusion
Since different kinds of sensors have their own errors and defects, multisensor data fusion methods were used to reduce errors and obtain a higher positioning accuracy. By complementing the data from different sensors, a higher precision spatial positioning of the wall-climbing robot could be obtained. Specifically, the cumulative error generated by the encoders and IMU could be corrected by the UWB positioning data, and the encoders and IMU positioning data could also compensate for the low accuracy of the UWB positioning.
During the robot positioning system, the cylindrical absolute coordinate (θ c , h c ) could be computed by the UWB positioning subsystem. At the same time, the rotational speeds of the wheels were recorded by the encoders. Based on robot kinematics, the forward linear velocity v c and rotational angular velocity ω c of the robot was expressed as: where φ i (i = 1, 2) is the angular velocity of the robot's wheels, r is the radius of the magnetic wheels, and l is the distance between the two wheels. The speeds of the magnetic wheels on the same side of the robot were equal to each other. The IMU sensor was installed on the side of the robot, and it consisted of a three-axis accelerometer, a three-axis gyroscope, and a three-axis magnetometer. According to the Madgwick algorithm [36], the inclination angle α c of the robot on the vertical wall was measured by the IMU. When a robot moves on the surface of a cylindrical tank, the forward linear velocity v c and the inclination angle α c can be used to obtain the robot's velocities θ c ,ḣ c in the cylindrical coordinate system: In order to achieve a more precise spatial positioning of the robot, the Kalman filter was used to fuse the information acquired by different sensors. As the spatial coordinate information and velocity information of the robot were obtained by the UWB sensor, encoders and IMU, the state vector at time k in the Kalman filter could be written as: where (θ k , h k ) and (θ k ,ḣ k ) are the coordinate components and the velocity components of the robot motion state at time k, respectively.
The state transition equation of the robot system was: where X k−1 is the state vector at time k − 1, F is the state transition matrix, and Γ · w k−1 is the noise of the robot system. Assuming that the robot climbs on the surface of a cylindrical tank at a constant speed, then we have: where T is the data acquisition cycle of different sensors, including the coordinate data (θ k , h k ) acquisition cycle T 1 and the velocity data θ k ,ḣ k acquisition sampling cycle T 2 . u x and u y are Gaussian white noises with mean value zero and variance σ 2 .
The observation equation of the robot system was: where H is the observation matrix of the system, and v k is the measurement noise.
Since the position information measured by the UWB sensor was (θ k , h k ), while the velocity information measured by the encoders and the IMU was θ k ,ḣ k , their corresponding observation matrices were different, which could be expressed as: Once the measurement data from any sensor were received, the Kalman filter was updated. The predictions and updates were performed in sequence, so as to obtain a better result.
Based on the state equation and measurement equation of the robot positioning system, the Kalman filter prediction equation was constructed as follows: where X (k|k−1) is the prediction vector at time k predicted by the positioning data at time k − 1, X (k−1|k−1) is the optimal estimation vector at time k − 1, and w (k) is noise.
The covariance of the robot system at time k was where P (k−1|k−1) is the covariance matrix of the robot system at time k − 1, and Q is the covariance of the system noise.
The optimal estimation vector of the robot system at time k was: where Z (k) is the measured value; it is composed of two sets of data: (θ c , h c ) and θ c ,ḣ c . The H's corresponding to different measurement data are H uwb and H encoder . Kg (k) is the Kalman filter gain. R is the covariance matrix of the observed noise, including R uwb and R encoder . A larger R means that the observed data are more volatile and less credible, so the influence of the observed amount on the final estimation result is smaller when the state is updated; on the contrary, if R is smaller, it means the observed data are more credible and will have more influence on the result. Under this data fusion framework, if the UWB positioning signal is temporarily lost, the state of the Kalman filter can also be updated by the encoders and the IMU sensor. The reason why these two sensors are used at the same time is because the wheels of the wallclimbing robot may be slipping. If the encoders or IMU signal is lost, UWB can be applied for positioning alone. Under normal circumstances, all sensors are functional, and they can correct and complement each other, thus improving the overall positioning accuracy.

Robot-Positioning Accuracy Analysis
To verify the accuracy and stability of the fusion positioning method, positioning stability experiments were implemented. In the experiments, the robot rested at the spatial Cartesian coordinate point (1.9, 0, 1). Figure 7 shows the comparison of the robot coordinate stability using two positioning methods, UWB positioning (positioning only by the UWB subsystem) and fusion positioning (positioning by the UWB subsystem, IMU, encoders), respectively. Obviously, the UWB positioning error was larger, and large error peaks occurred occasionally. Since the robot was in a static state, the real coordinates of the robot were fixed. The coordinates estimated by the fusion positioning method fluctuated slightly, but the fluctuations generated by the UWB sensor were basically eliminated, and the robot positioning stability was enhanced.
Furthermore, motion-positioning experiments were performed to test the positioning accuracy of the robot when it moved along the arc surface of the cylindrical tank. In the experiment, the robot started from the initial spatial Cartesian coordinate point (1.9, 0, 1), moved laterally along the storage tank and returned to the initial point. The trajectory of the robot was an arc in space. Within the positioning range of the UWB positioning system, the two positioning results were tested and compared, respectively. Figure 8 illustrates the XY coordinates of the two positioning results. A circle with a radius of 1.9 m represented a cylindrical surface. The original UWB positioning results were distributed on both sides of the tank, and the error of the initial UWB positioning data in the direction of the cylinder radius was ±0.2 m. After data filtering and data conversion, the results of fusion positioning basically stayed on the circle with a radius of 1.9 m, which meant that for a moving wall-climbing robot, the fusion positioning method was able to guarantee the accuracy and stability of the positioning.

Kinematic Analysis
As shown in Figure 9, in a cylindrical coordinate system with origin O, polar axis x and longitudinal axis z, we assumed a centre of mass of the mobile robot located at point P (R, θ, h), where R is the radius of the base circle of the cylinder, θ is the angular coordinate and h is the height. Based on differential-drive wheels, the robot moved under nonholonomic constraints. Assembled encoders were used to measure the angular velocities of two driving wheels. Two independent PID controllers were developed to accurately control the speeds. During the robot motion process, the simplified expression of the robot kinematics was given as below: where α is the robot's orientation angle, v is the linear velocity and w is the angular velocity.
The vector q = [h θ α] T describes the pose (i.e., position and orientation) of the mobile robot on a cylindrical surface. In order to make sure that the desired trajectory satisfied the no-slipping, pure-rolling condition, it was created by a virtual reference robot with pose q d = [h d θ d α d ] T and the desired linear velocities v d = 0; the reference robot was given bẏ where v d and w d are the desired linear velocity and angular velocity, respectively.

Tracking Error Analysis
The tracking errors in the trajectory tracking problem can be described as q e = [h e θ e α e ] T . The error matrix or mismatch matrix can be written as Taking the time derivative of Equation (20) and substituting in Equations (18) and (19), the corresponding error derivatives are obtained:
This conclusion was used to design the switching function of the controller in the following part.
The object of the designed SMC controller was to decrease the error [h e θ e α e ] T to zero. The backstepping method was chosen to design our controller. When the height error h e = 0, define the Lyapunov function: Taking the derivative of Equation (24), we havė The system is asymptotically stable ifV θ ≤ 0. Assume α e = − arctan( 1 R · v d · θ e ), Equation (25) can be written as: If the system enters the sliding mode, to guarantee h e = 0 and α e = − arctan( 1 R · v d · θ e ), a switching function is presented as follows: where C 1 is a real positive parameter. The stability of the sliding surfaces s 1 = 0 and s 2 = 0 are proved as follows: • If s 1 converges to zero, h e decreases to zero exponentially with a time constant determined by C 1 ; • If s 2 converges zero, α e → − arctan( 1 R · v d · θ e ). Based on Lyapunov function V θ , error differential equation Equation (22) and Lemma 1, we can obtain that when h e → 0 and α e → − arctan( 1 R · v d · θ e ), θ e converges to zero, which means α e converges to zero as well.
The system states goes to the sliding surface s = 0 within a limited time under control. The tracking error q e = [h e θ e α e ] T converges to zero as t → ∞, due to the asymptotic stability of this sliding mode. If the system states tend to stay on the sliding surface, the condition s T · s < 0 must be satisfied, and a generally used reaching law is described as: where P and Q are the positive integer constants.
From Equation (27), we have the derivative of s 1 According to Equation (21),ḧ e can be obtained: Substituting Equation (30) in Equation (28), we have: Then, substituting Equation (31) in Equation (32), the forward control velocityv can be calculated as:v = Q 1 · s 1 + P 1 · sgn(s 1 ) + C 1 ·ḣ e +v d · cos α e − v d · sin α e ·α e + R ·θ e · w + R · θ e ·ẇ (33) In this paper, we considered the desired forward velocity v d as a constant. From Equation (27), the derivative of s 2 iṡ To simplify the formula, let K = 1 , substituting K in Equation (34),ṡ 2 can be expressed as:ṡ and substituting Equation (35) in Equation (29), we can obtain the following equation: Similarly, substituting Equations (22) and (23) in Equation (36), the steering control velocity w is given by Therefore, based on the chosen sliding surfaces, the control law was designed to guarantee the asymptotic position and heading direction tracking with the reference trajectory. Equations (33) and (37) are the controllers for the kinematic model.

Stability Analysis
Let us define V as a Lyapunov like function, which is given by V = 1 2 · s T · s. The time derivative of the function is given aṡ For a stable control law,V ≤ 0. For Q i , P i ≥ 0,V is negative semidefinite.

Numerical Simulation
Numerical simulations were performed to verify the feasibility of the spatial trajectory tracking controller. In the simulation, the maximum forward linear velocity of the robot was 0.23 m/s, and the maximum rotational angular velocity was 0.94 rad/s. The simulation parameters were set as follows: the initial height error was 0.1 m, the angular coordinate error was −0.05 rad, and the rotation angle error was π/4 rad. The robot tracked with a forward linear velocity of 0.15 m/s. The controller parameters were as follows: C 1 = 0.5, Q 1 = 1.5, P 1 = 0.02, Q 2 = 2 and P 2 = 0.01. Figure 10 shows the simulation results of the robot tracking the set point. The height error h e , angular coordinate error θ e and the rotation angle error α e of the robot gradually converged to zero. The simulation results indicated that the designed controller could adjust the robot velocities according to the error and the robot could successfully track the spatial trajectory. In the subsequent experiments, the relevant parameters of the tracking controller were optimized and adjusted to ensure the actual wall-climbing robot stably tracked the spatial trajectory on tank surfaces.

Prototype Experiments
In order to verify the tracking control performance of the real robot on the tank surface, we conducted experiments with the wall-climbing robot on a laboratory platform. As shown in Figure 11, the experimental platform was a cylindrical tank with a diameter of 3.8 m, a height of 2.8 m and a thickness of 10 mm. The cylindrical tank was welded by multiple arcshaped plates. UWB sensors were distributed and installed around the tank. In order to ensure the accuracy of positioning, the positions of the UWB anchors were relatively scattered, and the heights of the UWB anchors were also different. The coordinate positions of each UWB anchor in the tank coordinate system were: (6, −3, 1), (5, 0, 1.9), (9, 0, 4) and (5, 3, 1.3). During the experiment, four UWB anchors could only cover one side of the tank, a larger number of UWB anchors could increase the coverage of the UWB positioning. A laser tracker was used to measure and record the real spatial coordinates of the robot.
The spatial trajectory tracking experiments included longitudinal trajectory tracking and horizontal trajectory tracking. In the spatial trajectory tracking experiments, the robot was adsorbed on the vertical arc-shaped wall of the cylindrical tank and its spatial position was measured according to the fusion positioning system. During the spatial trajectory tracking, the real-time position coordinates and rotation angles of the robot were recorded.

Longitudinal Trajectory Tracking
In the spatial longitudinal trajectory tracking experiments, the starting point of the robot was selected as (1.9, 0 • , 1) in the cylindrical coordinate system, the robot was expected to track a selected spatial longitudinal trajectory (upward along the h coordinate axis), and the desired forward linear velocity was 0.15 m/s. Figure 12 demonstrates the process of the experiments. The robot's spatial position and running trajectory is displayed in real time on the virtual storage tank, where the red dot represents the real-time spatial position of the robot, and the green line segment borders the robot's running trajectory.  Figure 13 shows the results of the robot's spatial longitudinal trajectory tracking experiments. According to the desired spatial trajectory, as the robot's height coordinates increase, the arc angle and inclination angle of the robot should converge to the desired value of zero. Because of the limitations of the motor, there was a certain error in the speed of each motor, and the posture of the robot had slight oscillations. As shown in Figure 13a, in the tracking experiments, the robot's angular coordinate error had a slight fluctuation, but could be quickly and continuously corrected. The maximum angular coordinate error was 0.01 rad; if converted to the three-dimensional Cartesian coordinate system XYZ, the maximum Y coordinate error of the robot was 0.019 m. In Figure 13b, we can see that the orientation angle error of the robot was also continuously adjusted during the tracking process, and it was kept within ±5 • . During the tracking process, the linear velocity of the robot was basically maintained at about 0.15 m/s, with small fluctuations. The angular velocity was continuously adjusted by the controller to reduce the angular coordinate error and orientation angle error. The experimental results indicated that the designed BSMC tracking controller enabled the robot to track the spatial longitudinal trajectories with an excellent stability and precision.

Horizontal Trajectory Tracking
As illustrated in Figure 14, in the spatial horizontal trajectory tracking experiments, the robot tracked a horizontal arc trajectory on the tank surface. Similar to the spatial longitudinal trajectory tracking experiments, the starting point of the robot was selected as (1.9, 0 • , 1) in the cylindrical coordinate system, the angular coordinates of the robot continued to increase when the robot was moving, and the expected height coordinates of the horizontal arc trajectory were a constant value of 1 m. The expected forward linear velocity of the robot was 0.15 m/s. The robot height error and orientation angle error are shown in Figure 15a,b. Since the initial height error was 0.3 m, and the orientation angle error was −2.5 • , the robot tracking error had large fluctuations at the beginning. Moreover, during the horizontal movement of the wall-climbing robot, due to the influence of gravity, there were slight slips that led to errors. Through a continuous adjustment by the controller, the height error and orientation angle error of the robot were continuously reduced. In the stable tracking stage, the height coordinate error of the robot was kept within ±0.02 m, and the orientation angle error was ±6 • . During the tracking process, the linear velocity of the robot basically remained stable at around 0.15 m/s (Figure 15c). Because of the large errors in the height and orientation angle of the robot, the angular velocity of the robot needed to be corrected more significantly, and there were large fluctuations in the angular velocity profile (Figure 15d). In general, the horizontal trajectory tracking could still be achieved. The experimental results show that the robot could complete the tracking of the spatial horizontal arc trajectories, at a maximum height error of 0.02 m and a maximum orientation angle error of 6 • . The tracking controller based on the BSMC could realize a relatively high-precision tracking performance and could reduce the deviation due to the influence of gravity.

Conclusions
In this paper, a robotic system for cylindrical storage tank inspection was presented. The designed wall-climbing robot adopted the magnetic adsorption form to realize movement on vertical walls. The vision component and additional mechanism installed on the robot were designed for automated inspection and maintenance. In order to achieve the accurate spatial positioning of the robot, a multisensor-data-fusion positioning method was developed. The sensors used for the robot positioning included a UWB sensor, an IMU and encoders. The positioning experimental results showed that the fluctuations generated by the UWB sensor were basically eliminated, the fusion positioning method could improve the accuracy and stability of the robot positioning. In addition, a hybrid control strategy, BSMC, was proposed for spatial trajectory tracking based on the combination of backstepping control and sliding-mode control. Simulation results showed that the controller could quickly correct the errors. Meanwhile, the global asymptotic stability and performance of the control system were guaranteed. Furthermore, prototype experiments were conducted on our laboratory platform to verify the performance of the designed controller. The results indicated that the wall-climbing robot could track both longitudinal and horizontal spatial trajectories stably with a high precision. Consequently, combined with the multisensordata-fusion positioning technique, the designed sliding-mode controller could realize a precise spatial trajectory tracking of the wall-climbing robot on the cylindrical tank.
In future work, first, we will continuously improve the comprehensive performance of the robotic system. For example, the robot's chassis structure will be modified to accommodate surfaces with different curvatures in order to be used for the inspection of more types of storage tanks, such as spherical tanks. Furthermore, we will continue to improve the anti-interference ability and fast tracking ability of the controller, so as to complete the inspection task in a shorter time.
Author Contributions: J.X., robot design, controller design, experimental results analysis and original draft preparation; J.L., robot design, robot experiments and manuscript review; J.C., software debugging and data collection; A.S. and X.W., supervision, review and validation. All authors have read and agreed to the published version of the manuscript. Data Availability Statement: All data included in this study are available upon request by contact with the corresponding author.

Conflicts of Interest:
The authors declare no conflict of interest.