Design and Implementation of Autonomous Underwater Vehicle Simulation System Based on MOOS and Unreal Engine

: An effective autonomous underwater vehicle (AUV) simulation system can greatly improve development efficiency and reduce the cost and risk of actual equipment operation. In this paper, a comprehensive simulation system is developed using Mission Oriented Operating Suite (MOOS) and Unreal Engine 4 (UE4). The former provides an open-source development framework and application components, which are widely used in the field of underwater robots. The latter is a well-known game development engine that has realistic effects and various plugins. As far as we know, there are few simulation systems based on MOOS and UE4. Moreover, a modular architecture for the simulation system is designed and implemented in the paper. The developed system consists of four subsystems, including the simulation editing and controlling subsystem, shore-based operation subsystem, simulation engine subsystem, and three-dimensional (3D) visualization subsystem. These subsystems have modular characteristics and independent functions and communicate with each other through network sockets. Through the system, users can customize simulation scenarios, send missions and control simulation progress from the graphic user interface. And the system can be used in operation training, software testing, algorithm verification of AUV, etc.


Introduction
Because of its autonomy and intelligence, AUV has a wide range of applications in the ocean exploration field, such as seabed mapping, mineral investigation, pipeline monitoring, hydrological survey, and military reconnaissance [1][2][3].However, AUV faces many challenges when working in an underwater environment, including acoustic communication with a small bandwidth and large delay, rapidly increasing water pressure with increasing depth, an ocean current that significantly affects vehicle motion, and no signal from the global positioning system (GPS) or Beidou navigation satellite system (BDS) due to severe attenuation of the radio.So the development of AUV requires particular technologies of navigation [4], localization [5], communication [6], trajectory tracking [7], path planning [8], and mechanical structure [9], which are different from other robots.Correspondingly, the cost of developing an AUV is relatively high, especially if it is equipped with valuable sensors.And the accidental damage or sinking of AUV during experiments or sea trials can cause huge losses.Therefore, it is very necessary to have an effective and friendly simulation system used to verify the algorithms and functions before experiments or sea trials [10,11], just as other robots such as mechanical arms, mobile ground robots, and aerial robots [12].
Typically, due to the characteristic of the underwater environment, the simulation of AUV mainly involves hydrodynamics and acoustic sensor modeling.There are already some relatively mature simulation systems available, such as UWSim, UUVSimulator, and HoloOcean.UWSim [13] is an open-source software developed based on OpenScene-Graph and osgOcean.It includes a sensor model, vehicle dynamic model, and 3D display module.The software depends on the robot operating system (ROS) to install and run.However, the 3D effect is not satisfactory, and the software is not being actively maintained.UUVSimulator [14] is a simulation system based on ROS and Gazebo, and it is open source.It has more accurate models and a better 3D display than UWSim.But compared to game engines, such as UE4, the 3D effect is less realistic.And the functions are relatively not comprehensive and friendly, especially for the operators.Aqua Underwater Simulator [15] is an open-source simulator built on UE4 and ROS, especially for the "Aqua" robot, which is a kind of vision-based sensing robot.It has a more realistic 3D display effect than UWSim and UUVSimulator.However, the types of sensors and robots supported by the simulator are relatively limited.And all sensors and dynamic models are integrated into UE4, which is not applicable in console mode.Stonefish [16] is another open-source simulator that consists of a library written in C++ and a ROS package.It involves a sensor model and hydrodynamics model and has a realistic 3D rendering effect which is developed based on OpenGL.According to the literature, the Stonefish library is not using any external graphics engine.But it increases the difficulty of learning and secondary development and does not make full use of available resources in the community of some mature engines, such as UE and Unity.HoloOcean [17] is an open source underwater robotics simulator built on UE4.It has a realistic 3D display effect and provides the application programming interface (API).However, the function of HoloOcean is not comprehensive.All the models of vehicles and sensors are integrated into UE4, which is not applicable in console mode.In addition to that, not all resources in HoloOcean are open access.
Through the investigation of existing simulation systems, it can be seen that most of them depend on ROS or provide ROS interactive interfaces.And there are few simulation systems developed based on MOOS.However, MOOS is a popular and universal system framework, especially for underwater vehicles [18][19][20][21].And there has been a simulation system developed for the simulation of underwater vehicles in MOOS.The system can simulate path planning tasks, a simple dynamic model of AUV, and some sensors such as Doppler Velocity Log (DVL).But it only supports 2D display in the graphic control interface and is not friendly for the operators.
In this paper, a simulation system based on MOOS and UE4 [22] is developed based on the following requirements: algorithm verification; modularization; realistic 3D display; easy to transplant control software to a physical vehicle; supporting hardware in the loop; comprehensive functions; friendly operation; support scenario customization and operator training.The simulation system is developed according to the physical Sailfish AUV [21,23,24], shown in Figure 1.The diameter of AUV ranges from 180 mm to 533 mm, and the weight ranges from ten kilograms to 2 tons.Although the simulation system is developed based on Sailfish AUV, it provides a common architecture that can be extended to the simulation of MOOS-based AUV.The simulation system designed and developed in the paper has the following key features.1.The combination of MOOS and UE4 is researched and developed.And the functional modules in the system are relatively comprehensive and complete compared with other simulation systems.Moreover, a modular architecture for the simulation system is designed and implemented.The entire simulation system is divided into four parts: simulation editing and controlling subsystem, shore-based operation subsystem, simulation engine subsystem, and 3D visualization subsystem.Different subsystems have modular characteristics, and independent functions, that communicate with each other in JSON format over network sockets.2. The system provides user-friendly operation, especially for the training of AUVs.The user can customize the simulation scenario and control the simulation process through a graphic user interface.For example, the user can set the simulation time, sensor parameters, and entity properties and can also start, end and pause the simulation process.An XML file of the simulation scenario can be generated in the simulation editing and controlling subsystem.In addition to that, the simulation system has an independent shore-based operation interface and a realistic 3D visualization subsystem.3. The system is designed with a highly modular architecture to facilitate the substitution and deletion of subsystems or modules.Different systems and modules can be run and used as needed.The navigation and control software in the simulation engine subsystem is developed based on that in the physical AUV.They are distributed in different modules in the system.In this way, the algorithm verified in the simulation system can be quickly deployed into the physical AUV.The rest of the paper is organized as follows.Section 2 introduces the detailed functions and implementation of the simulation system.In Section 3, some simulation experiments are shown to verify the functions.Finally, conclusions and future work are given.

Functional Modules
The basic composition and data flow in the simulation system is shown in Figure 2. It consists of four subsystems, and each subsystem communicates with each other through TCP/IP socket.The function, design, and implementation of four subsystems are introduced in detail as follows.

Simulation Editing and Controlling Subsystem
In the system, simulation editing and controlling subsystem have two functions.One function is to edit the simulation scenario, such as simulation time, obstacle information, sensor parameters, and AUV information.The simulation scenario can be saved as XML file to facilitate retention and reuse.Another function is to control the simulation process, such as starting, ending, and pausing simulation.These two functions are operated through graphic user interface, which is developed using QT.The simulation scenario and control commands are eventually sent to the simulation engine subsystem.
The composition of simulation editing and controlling subsystem is shown in Figure 3.It has three layers which are interaction layer, functional layer, and data layer.Interaction layer contains a graphic user operation interface.Functional layer implements the core functions of simulation editing and controlling subsystem, which involves scenario configuration, XML file management, interaction with data layer, interaction with simulation engine subsystem, map loading, display, etc.Data layer has two forms to store data, which are database and XML files, respectively.Database involves specific parameters of different types of AUV or obstacles or sensors and the XML file stores information about the simulation scenario.For the scenario configuration in the functional layer, simulation editing module provides users with an intuitive way to create or modify, which is mainly composed of environment configuration, obstacle configuration, vehicle configuration, and sensor configuration.Environment configuration describes the global scenario information, such as date, time, sea state, weather, velocity, and direction of ocean current.Obstacle configuration is to set the information of obstacles, including type, shape, size, and location, which is used to verify the obstacle avoidance ability of AUV.Vehicle configuration is to set AUV information, including vehicle type, starting position, and sensors on board.The types of vehicles supported in the simulation system are as follows: light AUV (outer diameter: 210 mm), medium AUV (outer diameter: 324 mm), and heavy AUV (outer diameter: 533 mm).Sensor configuration is to set parameters used in sensor models, such as maximum altitude of DVL, coefficient of Gaussian noise for sensor data, and range and angle of view of forward-looking sonar.The basic flow of one simulation editing is shown in Figure 4.In the graphic interface, the left part marked as "1" is the configuration area of the simulation scenario which provides an interface to set scenario information.There is a tree widget that displays the value of various elements parsing from the XML file.Users can directly modify the values in the tree widget or pop-up a sub-window to set the values by clicking configuration buttons.There are four configuration buttons which are global environment configuration button, vehicle configuration button, obstacle configuration button, and sensor configuration button.At the bottom of left part marked as "2", there are four buttons used to parse, save, create, and delete XML files of simulation scenarios.The middle part marked as "3" is the map display area which is used to mark entities in the electronic chart.The right part is the simulation control area marked as "4" and entity configuration area marked as "5".In the simulation control area, user can start, end and pause the simulation process.In the entity configuration area, user can customize the vehicle, such as sensors onboard, initial position, and vehicle type.

Shore-Based Operation Subsystem
Shore-based operation subsystem has the same graphic user interface as the physical AUV equipment.Users can send commands and tasks to virtual AUVs in the simulation engine subsystem.Figure 6 shows the graphic user interface in shore-based operation subsystem.The interface is roughly divided into four areas.The area marked as "1" is menus area.From these menus, user can set mission information, debug control parameters, select communication channels, control onboard sensors, set emergency parameters and customize graphic view, etc.The area marked as "2" is used to display the information received from AUV, such as position, depth, temperature, onboard sensor status, and warning information.The area marked as "3" is a map in which the trajectory of AUV is plotted.The area marked as "4" is the attitude and speed dashboard for AUV.The area marked as "5" involves control commands to AUV, such as start, float, pause, and continue.

Simulation Engine Subsystem
Simulation engine subsystem is the core of the simulation system.It mainly includes four functional modules, including dynamic simulation modules, sensor simulation modules, navigation and control modules, and MOOS framework components.After starting the simulation, simulation engine subsystem instantiates the scenario from simulation editing and controlling subsystem and drives the digital simulation models to generate the simulation data.The architecture of the simulation engine subsystem is shown in Figure 7.In the simulation engine subsystem, navigation and control modules include the modules of navigation, path planning, trajectory tracking, and motion controlling.In the subsystem, navigation function is implemented based on federated Kalman filter (FKF) [25].Path planning integrates functions of global path planning and obstacle avoidance, in which global path planning mainly includes zigzag traversal planning and multi-vehicle cooperative traversal planning [26].Trajectory tracking uses line-of-sight (LOS) method to achieve the desired trajectory [27].Motion controlling function uses proportion-integration-differentiation (PID) controller to achieve the desired speed, depth, and heading [28].Due to the modular characteristics of MOOS, other kinds of navigation and control algorithms can easily replace the above modules and be verified in the system.
For obstacle avoidance, AUV uses forward-looking sonar to detect obstacles.When an obstacle is detected, the distance between the obstacle and AUV, the relative position between them, and the position of next way point of AUV are used to determine whether obstacle avoidance is necessary.Considering the size and speed of AUV, the detected obstacles can be divided into effective and ineffective obstacles according to whether the obstacle is within the safe area.Based on the central axis of AUV, the safe distance is 4 m.If all or part of the obstacle is within the safe area, the obstacle is an effective obstacle.Otherwise, it is an ineffective obstacle.Figure 8  ( )  In addition to the navigation and control system, AUV dynamics and sensors are modeled as follows.

Vehicle dynamic simulation module
In the simulation engine subsystem, vehicle dynamic simulation module is responsible for modeling the hydrodynamics of the vehicle and outputting the velocity and attitude of the vehicle.In this module, Runge Kutta algorithm is implemented in C++ language, and iteration method is used to solve the nonlinear differential equation.In addition to that, Eigen library is used to complete the matrix calculation during the construction of the vehicle mathematical model.By setting the appropriate step size and simulation time to determine the integral interval, the higher computational efficiency is achieved.After calculation, the velocity and attitude of the vehicle are published to MOOSDB and can be subscribed to by other modules in MOOS.
In the dynamic model of AUV, there are two coordinate systems which are worldfixed coordinate system  − E and body-fixed coordinate system xyz o − shown in Figure 10, and the notations are summarized in Table 1.
Since the spatial motion of AUV in six degrees of freedom is strongly coupled and highly non-linear, the construction of accurate AUV dynamic model is difficult and costly.In the paper, the model represented by the following Equation ( 3) is used [29,30].
where I M is the inertia matrix (including added mass), is the linear and angular velocity vector with coordinates in the body-fixed frame,  is the linear and angular accelerations, describes the control inputs including forces and moments acting on the body in the body-fixed frame,

) ( C
is the matrix of Coriolis and centripetal terms (including added mass),

) ( D
is the damping matrix, ) (P g is the gravitational and buoyant forces and torques vector.The hydrodynamic coefficient used in the dynamic model is based on Sailfish AUV [28,31,32].

Sensor simulation module
Sensor simulation module models common sensors used in AUV, such as DVL, depth sensor, inertial measurement unit (IMU), and camera.

•
Depth sensor Depth sensor is used to measure the depth of AUV according to the underwater pressure.Here, the outputted value of depth sensor is simulated by adding Gaussian noise to the real depth value of global AUV position shown below [17,33].• DVL sensor DVL sensor is used to measure the velocity in the sensor frame based on the Doppler effect of acoustic waves.Here, the outputted velocity value of DVL sensor is simulated by adding Gaussian noise to the true linear velocity v [14].

•
IMU sensor IMU sensor is used to measure angular velocity and linear acceleration in the sensor frame.In the model, the biases are added in addition to the Gaussian noise.And the derivatives of these biases are white Gaussian noise as follows [34,35].
where m w and m  describe angular velocity and linear acceleration after adding bi- ases and Gaussian noise, respectively.m b  and m b  are biases on the measured angular velocities and accelerations, respectively, and their derivatives are white Gaussian noise shown as Equations ( 7) and ( 8).
• GPS sensor Due to the severe attenuation of GPS signal underwater, GPS is only available after AUV floats to the surface.It is used for navigation and calibration when AUV is at the surface.In the simulation, the sensor is modeled as the following, in which p is the real position of AUV and g w is white Gaussian noise.
) , 0 ( , • Camera Underwater photography is one of important environmental perception tools which can be used in object detection [36], image processing [37], visual navigation [38], and so on.With realistic 3D display and support for multi-view cameras in UE4, underwater camera simulation is feasible and has high-fidelity imagery [15].

•
Forward-looking sonar Forward-looking sonar is mainly used to detect obstacles and targets.In the simulation, a multi-beam forward-looking sonar is simulated based on its working principle.The sonar emits ultrasound beams in the forward direction and detects those reflected from object surfaces.And the ultrasound beams can be modeled as a set of rays [39,40].Here, the ultrasound beams of sonar are described using rays in UE4, as shown in Figure 11.Ray detection is one of very useful features in UE.It can return the distance between AUV and obstacle automatically, which can be used to model the sonar.

Figure 11.
Multi-beam forward-looking sonar simulation using ray detection.

Three-Dimensional Visualization Subsystem
Three-dimensional visualization subsystem is used to vividly display the simulation scene and motion of AUV.It receives the simulation data from simulation engine subsystem and displays the trajectory and attitude of AUV in 3D marine environment.In order to show a more realistic effect, Unreal Engine 4.27 is used to develop the visualization subsystem.In order to improve the display effect, a number of plug-ins are used in the subsystem, such as plug-ins named Oceanology and Ultra Dynamic Sky.The plug-in named Oceanology is used to render the marine environment, and Ultra Dynamic Sky is used to render the sky at different times and display the effect of different weather.The logical functions of 3D visualization subsystem consist of three modules, including service connection module, entity management module, and user interface module.The 3D display effect at different times in 3D visualization subsystem is shown in Figure 12. Figure 13 shows the flow chart of service connection.First, according to the service IP address and service port configured in user interface, TCP Socket client object is created and connects to the TCP Socket server in the simulation engine.Then the socket event handler function of connection success, connection error, connection disconnection, and data receiving are bound, respectively.After receiving data from the socket, a data-receiving event is generated and sent to the entity management module for data parsing.The entity management module is used to manage Actors of simulation entities in UE scene, including creating, updating, and deleting Actors.The detailed process is shown in Figure 14.First, simulation data from simulation engine are received through TCP socket and parsed to obtain the information of simulation entities.The information includes identity number (ID), latitude and longitude, speed, attitude, and name.After parsing, the information of entities is stored in the mapping data structure.Then, it is checked whether the simulation entities parsed from the simulation data already exist in the 3D scene.If they exist, Actors in UE scene for the entities are updated, such as location and attitude.Otherwise, the corresponding Actors are created and displayed in the UE scene.

Results
In this chapter, some simulation experiments are carried out in the simulation system to verify the functions.Moreover, the results of some real experiments of physical AUVs are selected for comparison.

Heading Control Simulation
Heading control simulation is used to verify the motion control algorithm of AUV in the simulation system.The control parameters can be input from the configuration window in the shore-based operation subsystem.The motion parameter configuration window is shown in Figure 15, where the desired heading angle is set to 90 degrees, and the desired speed is 1 m/s in the desired values area.In the control parameters area, PID parameters for motion control of AUV are configured..The initial heading angle of the vehicle is 0 degrees.After the simulation begins, the heading angle would be gradually adjusted from 0 to 90 and then stable at 90 degrees.Figure 16 shows the diagram of heading control data.The blue line shows the real heading angle of AUV, and the red dotted line is the desired heading angle.The next experiment shows the effect of ocean currents on vehicle motion control.The current parameters are edited in the simulation editing subsystem.Here, the current velocity is set to 0.5 m/s, and the direction is 45 degrees.As shown in Figure 16b, it can be seen that the overshoot phenomenon is obvious in the process of heading control and then become to be stable after control, which is reasonable.A set of heading control data in an experiment of physical AUV is shown in Figure 17 for comparison.In the experiment, the speed is 1 m/s, and the desired heading angle is from 0 to 90 degrees.It can be seen that the heading angle of AUV is more unstable due to complex environmental impacts such as ocean currents, but the trend is toward 90 degrees.In addition to that, there are some other differences between real experiments and simulations, such as greater steady-state error, higher overshoot, and longer transition time from 0 to 90 degrees.The comparison also shows that the dynamic model of AUV in the simulation system needs further optimization in future research.The following Figure 18 shows the 3D display of the heading control simulation.

Line Tracking Simulation
Line tracking is the basic function for trajectory tracking of AUV.This experiment is to verify the tracking algorithm of AUV in the simulation system.Scenario information is configured in the simulation editing subsystem, such as the initial position of the vehicle, which is (120.306066E, 36.043011N).Then, the parameters of the task, such as waypoint, speed, and control parameters, are configured in the task setting window of the shorebased operation subsystem shown in Figure 19 The trajectories of AUV are plotted in Figure 20. Figure 20(a) shows the trajectory in the simulation, in which the blue dotted line is the real trajectory of AUV, and the red dotted line is the desired trajectory.It can be seen that the real trajectory of AUV follows the desired line trajectory.Figure 20(b) shows the trajectory in an experiment of the physical AUV, in which the two way-points are (120.295926E, 36.050886N) and (120.294596E, 36.050860N), the speed is 1.5 m/s and depth is 0 m.By comparing the two trajectories, it can also be seen the trajectory in simulation is more stable since there are no complex environmental impacts, such as the changing ocean current.In future research, we will consider adding more realistic environmental impacts into the simulation system.

Zigzag Traversal Simulation
Zigzag traversal task is very common in ocean exploration for AUV.The task is configured through a graphic interface which is similar to the configuration in Section 3.2.The parameters of the task are configured as shown in Figure 21, in which there are seven waypoints configured in the waypoints information area and the speed is 1.5 m/s, the depth is 0m and the forward-looking distance is 10m configured in the control parameters area..The trajectories of AUV after zigzag traversal task are plotted in Figure 22. Figure 22(a) shows the trajectory in the simulation, in which the blue dotted line is the real trajectory of AUV, and the red dotted line is the desired trajectory.It can be seen that the real trajectory of AUV follows the desired zigzag traversal trajectory.Figure 22(b) shows the trajectory in an experiment of the physical AUV in which there are eight way-points and the speed is 1.5 m/s.By comparing the two trajectories, it can also be seen that the real trajectory in simulation is more idealistic since there are no complex environmental impacts, but there is still a small bulge which is reasonable when AUV is turning.

Obstacle Avoidance Simulation
Firstly, information such as the positions of obstacles and the parameters of forwardlooking sonar are configured in the simulation editing subsystem.There are two obstacles configured at a depth of 2 m and the position of (120.31068E, 36.04285N) and (120.312071E, 36.042829N), respectively.The type is a cylinder, and the radius is 3 m.For forwardlooking sonar, the main parameters include the field of view set to 130 degrees and the max range set to 100 m, according to the parameters of Teledyne BlueView M900 sonar.Then, the obstacle avoidance task is input in the shore-based operation subsystem shown in Figure 23, including waypoints, speed, and working area.In the shore-based operation subsystem, the speed is set to 1 m/s; the depth is 0 m, and four way-points are (120.311082E, 36.042825N), (120.311666E, 36.The trajectories of AUV after the obstacle avoidance task are plotted in Figure 24, in which the blue dotted line shows the real trajectory of AUV, and the positions of obstacles are marked using a red pentagon.It can be seen that the vehicle can move according to the desired path and complete the obstacle avoidance autonomously, although the parameters need to be adjusted further to optimize the trajectory.

Multi-Vehicle Cooperative Traversal Simulation
The simulation system supports the preliminary simulation of multi-vehicle cooperative tasks shown in Figures 26 and 27.Firstly, all the vehicles used in the cooperative traversal simulation are configured in the simulation editing subsystem, mainly including the types of vehicles, and initial position and sensor types.Secondly, the parameters and roles of vehicles are set in the cooperative task configuration window of the shore-based operation subsystem.The types of roles for the vehicles include Searcher 1, Searcher 2, and Confirmer 1.The Searchers divides the search area in half and traverses respectively in the area through a zigzag path, and Confirmer 1 moves back and forth in a straight path and collects information.The search area is configured in the region vertices part in Figure 26(a).And in the cooperative configuration part, the speed is set to 1.5m/s, depth is 0m and distance between survey line is 40m.In Figure 26

Discussion
In the above chapter, the functions of the simulation system are verified using five kinds of experiments for AUV.From the results, it can be seen that the system can simulate the basic control and task execution of AUV.Furthermore, in the simulation system, each of the four subsystems is implemented by separate processes and communicates with each other through TCP/IP socket.And each subsystem function is relatively independent so that each simulation subsystem can run independently and support console-based simulation.In addition, although the simulation engine subsystem is based on the physical AUV, it is implemented based on MOOS architecture, which provides support for the secondary development of other MOOS-based AUVs.However, there are still some imperfections in this system, and the contents that need to be further researched in the next step are as follows: 1. Sonar sensor simulation.This system lacks a more realistic simulation of the sonar sensor.The following research will focus on better simulation of side-scan sonar and forward-looking sonar based on UE4. 2. The accuracy of the simulation system.Optimize the sensor and dynamic models to reduce the difference between the simulation system and the physical system.And research on migration from simulation systems to physical systems is also needed.3. Universality and extensibility of the simulation system.By defining the universal interface, make the simulation system expandable and universal, which is convenient for adding models of different entities, such as different vehicles and sensors.

Figure 2 .
Figure 2. The basic composition and data flow in the simulation system.

Figure 3 .
Figure 3. Composition of simulation editing and controlling subsystem.

Figure 4 .
Figure 4. Basic flow of simulation editing.The graphic user interface of simulation editing and controlling subsystem is shown in Figure5.

Figure 5 .
Figure 5. Graphic user interface in simulation editing and controlling subsystem.

Figure 6 .
Figure 6.Graphic user interface in shore-based operation subsystem.

Figure 7 .
Figure 7. Architecture of the simulation engine subsystem.

Figure 8 .
Figure 8.The diagram of effective and ineffective obstacles.(a) Effective obstacle when all the obstacle is within the safe area; (b) Effective obstacle when part of the obstacle is within the safe area; (c) Ineffective obstacle.
r is used to control the deviation degree of the new waypoint and d is used to control the relative position of the vehicle at the next waypoint.The diagram of the new waypoint calculation is shown in Figure 9.The red star, which represents the obstacle, is on the left of AUV, and the right boundary angle is r  .The blue ball shows the new waypoint calculated as the next waypoint of AUV.

Figure 9 .
Figure 9.The diagram of new waypoint for obstacle avoidance.
position and orientation vector with coordinates in the earth-fixed frame.

p
describes the real depth value of global AUV position, d w is Gaussian noise, and d z is the outputted value of depth sensor.

Figure 12 .
Figure 12.Display effect at different times in 3D visualization subsystem.(a) Display effect at noon; (b) Display effect in the morning; (c) Display effect in the evening.

Figure 13 .
Figure 13.Flow chart of service connection.

Figure 14 .
Figure 14.Flow chart of entity management module.

Figure 16 .
Figure 16.Diagram of heading control data.(a) Diagram of heading control data with no ocean current; (b) Diagram of heading control data when adding ocean current.

Figure 17 .
Figure 17.Heading control data in a sea trial.

Figure 18 .
Figure 18.Three-dimensional display of heading control simulation.

Figure 19 .
Figure 19.The simulation of waypoint tracking task.(a) Configuration window of waypoint tracking task; (b) Display of position in the map of shore-based operation subsystem.

Figure 20 .
Figure 20.The trajectory of line tracking task.(a) The trajectory in the simulation; (b) The trajectory in an experiment of the physical AUV.

Figure 21 .
Figure 21.The simulation of zigzag traversal task.(a) Configuration window of zigzag traversal task; (b) Display of position in the map window of shore-based operation subsystem.

Figure 22 .
Figure 22.The trajectory of zigzag traversal task.(a) The trajectory in the simulation; (b) The trajectory in an experiment of the physical AUV.

Figure 23 .
Figure 23.The simulation of obstacle avoidance.(a) Configuration window of obstacle avoidance in shore-based operation subsystem; (b) Display in the map window of shore-based operation subsystem.

Figure 24 .
Figure 24.The trajectory of AUV in obstacle avoidance task.The following Figure25shows the 3D display of obstacle avoidance simulation.
(b), the trajectories of three AUVs are drawn in three colors where the red one and the green one represent the trajectory of two searchers, respectively, and the blue one shows the trajectory of Confirmer 1.

Figure 26 .
Figure 26.The diagram of cooperative traversal task.(a) Configuration window of cooperative traversal task in shore-based operation subsystem; (b) Display of trajectory in the map of shore-based operation subsystem.

Figure 27 .
Figure 27.Three-dimensional display of cooperative traversal task.