Virtual Simulation Platform for Training Semi-Autonomous Robotic Vehicles’ Operators Virtual Simulation Platform for Training Semi-Autonomous Robotic Vehicles’ Operators

This chapter covers the development of a virtual simulation platform for training a semi- autonomous robotic vehicle (SARV) operator via an open-source game engine called Unity3D. The SARV such as remotely operated vehicles (ROVs) is becoming increasingly popular in the maritime industry for risky jobs in inhospitable environments. The primary element in carrying out underwater missions in a hostile environment lies within the skills and experience of an ROV pilot. Training for ROV pilots is essential to prevent damage to expensive field equipment during the real operations. The proposed simulator differs from the existing simulators in the market is the use of modern game engine software to develop a “serious game” for ROV pilot trainee at much lower cost and shorter time-to- market. The results revealed that proposed virtual simulator can develop a high-fidelity virtual reality training for the underwater operation guided by classification society.


Introduction
In recent years, the advancement of technology has dramatically improved the functions of remotely operate vehicle (ROV) [1][2][3] and autonomous underwater vehicle (AUV) [4] to handle the growing spectrum of underwater tasks [5]. Artificial Intelligence is becoming an increasingly common sight in automating machines to carry functions without the need for an actual operator. It will continue to take on a more observatory role [6][7][8]. Nowadays, ROVs and AUVs are commonly used in the maritime industry to carry out underwater tasks. These machines possess the capabilities to carry heavier loads to stay in deeper underwater for a longer duration than the human divers. These machines are operated from shore by a pilot making them very profitable and safer in the maritime industry. The challenge facing these ROV pilots is the ability to run the ROV with minimal information from the ROV feedback systems. As a result, the ROV pilot needs to be sufficiently skilled in maneuvering the vehicle in underwater.
With modern day technology, training simulators are developed to better equip ROV pilots with the necessary skills. Currently, the majority of ROV simulators available in the market are owned and distributed by companies that build ROVs. It is much cheaper to hone a pilot's competencies on a simulator than on the actual ROV as it creates room for the pilot to improve. It would better equip the pilots to deal with different underwater scenarios. Many ROV simulators are equipped with multiple scenes and a wide array of simulated sensors and equipment on the ROV. This paper aims to develop a virtual simulation where ROV pilots can gain experience via a virtual environment using an open-source game development software to produce highly graphical visuals simulations for training purpose. The Unity3D game engine [8][9][10] was identified as a suitable development platform for the project due to its high graphics capabilities, built-in physics engine, well-documented manual, large online community and relatively mild learning curve in comparison with other game engines like the Unreal Engine [11] and CryEngine [12]. The details of designing a low-cost pilot simulator using a game engine are unique to this chapter.
The chapter is organized as follows. Section 2 presents a brief methodology for the training simulator. Section 3 discusses the virtual simulation development and followed by a conclusion.

Comparison of game engines
Game engines have the graphics and physics engines to build better and more realistic simulation. In this section, three commonly used open-source game engines are compared. For example, the commonly used software for game development is namely: Unity3D, Unreal 4 Engine, and CryEngine.
There exists few open source game engine software that provides excellent features and developing tools. Some of the common characters of a game engine are rendering, physics (2D and 3D rigid body), scripting, audio and animation. Depending on the requirements, these game engine software use traditional programming method that requires basic coding to high-level sandbox engine that provides "drag and drops" interface. The main objective is to simulate an ROV operation using high-level sandbox game engine for the ease of usability. The options are more toward the sandbox engine and the more common software for game development such as Unity3D, Unreal Engine and CryEngine. Although the software provides developers with a "drag and drop" interface, the features of each software somehow differ from one another. A brief comparison of various game engines is given below.
Unity3D was first released in 2005. It uses mostly JavaScript or C# or managed code tool chain that makes it simpler to support and develop new workflows and tools. It has large supporting communities that include the asset store for downloading different game characters, particle and sound effects. Due to its popularity, there exists a good educational material and large active user. However, the free version of Unity does not have Profiler that allows the programmer to optimize the game and check the time spent on rendering, and animation during the game. Unity3D supports around 21 platforms (PC, Web, Console, Mobile, etc.) as compared to Unreal Engine 4 supporting only around six platforms. Additionally, the 3D models in Unity3D can merely import as game assets into the software thus improving the efficiency of development.
Unreal Engine was first released in 1998. It provides developers with powerful tools such as access to full source code, simulates and immerse view, persona animation, and cascade visual effects. It is used in a custom workstation with better and optimized performance that implies higher cost and complexity. Unreal has much more extensive download than Unity3D as it requires visual studio for its programming environment and accepts only C++ development language. Unreal engine can produce high-quality graphics with advanced dynamic lightings making it a plus point for the game engine. However, the script used in Unreal Engine 4 can only be written in C++, which can be a drawback for beginners. Similar to Unity3D, Unreal Engine 4 has an asset store to download different game assets. However, the user community is not as large as Unity3D.
CryEngine started in 2002. It is another modern game engine that provides superb features that will create great realistic gameplay. With its pixel accurate displacement mapping, it allows developers to craft and modify a game as precise as possible. Its excellent graphics capabilities exceed those in Unity3D and Unreal Engine. However, a drawback from this game engine is that it requires a slightly higher learning curve before one can use the game engine efficiently and it may be harder for those with no game development background.
It is notable that these three game engines provide great features for the most development process. It can be quite subjective in the selection decision. Depending on the development objectives and requirements, one may pick Unity3D for its capabilities in developing 2D and 3D games, Unreal Engine for its powerful tools or CryEngine for its extreme graphics capabilities. Fortunately, these game engines are freely available for education and research except for Unity3D which requires Pro version for advanced features. On the other hand, the Unreal Engine and CryEngine require a slightly higher learning curve and posing difficulty for most beginners. Based on the following guidelines below, the free version of Unity3D that contains most of the functions will be used (at least for the beginning phase of the project) in developing a simulator for ROV pipeline tracking as it is easy to use, free for research purpose and the presence of wide user community. It may not be the best choice for every programmer, but during the development of the virtual reality simulator, there are no major problems encountered, and hence the choice was good enough.
• Able to communicate with external hardware • Ease to program and use graphical user interface for controlling interaction and animating objects • Able to process multimedia sensory data • Free to use for education and research • Able to hold multiple operating systems • Able to support development with the strong developer community The basic functions of the Unity3D Interface such as creating GameObjects, basics scripts and GameObjects for manipulation will be presented. The virtual environment and writing the scripts for the ROV's control system and manipulators will then follow. Assistance can be sought through the Unity3D manual found online or via Unity3D's online community and forums. As shown in Figure 1, the basic steps to develop the simulator can be seen. The simulator designed must be able to facilitate training of an ROV pilot. The environment of a typical pipeline inspection will be mimicked. After the leak is detected, the ROV will flash a bright red light indicating danger. The pilot will take control of the ROV and press the shutdown button of the BlowOut Preventer (BOP) to stop the leak and the flashing red light. After that, the pilot can continue the control of the ROV to carry out the autonomous inspection tasks. All controller inputs by the pilot are controlled via the joystick controller.

Virtual simulation development
Unity3D is a user-friendly off-the-shelf game development engine. The engine supports high visual graphics and physics to produce realistic 2D and 3D worlds, with readily developed assets available in the Unity3D Asset Store for users to download and import into their projects. A brief overall view of the software can be seen below.

Software interface
The Unity3D interface consists of several tabs and a toolbar (see Figure 2) are used to create all subsystems in the virtual simulation. The games are developed in the scene tab where GameObjects are added. These GameObjects are edited and programmed by combining various components such as textures, mesh, materials and scripts to make the GameObject behaves as required by the developer. As shown in Figure 3, the various components are placed into GameObjects under the virtual environment to produce the desired outcome.

Scene and model development
The scene developed in Unity3D is modeled after a subsea production system placed on the seabed 900 m below the surface. It consists of manifolds, pipelines, BOPs (BlowOut Preventer) and PLETs (Pipeline End Termination). A map of the simulated environment is shown in Figure 4. The scene was developed using models found online and crafted within Unity3D.   The ROV used in the simulation was modeled using an actual ROV used in the industry to fulfill requirement stated by the classification society DNV. It indicates that ROV models available in the simulation should be similar to the ROV in real life. In this proposed simulator, the TRV-M is a light work class ROV manufactured by Submersible Systems. The TRV-M in Figure 5 can dive up to 1000 m deep that possesses the capacity to carry a payload up to 27 kg in any environments.

Autonomous operation
Automation is an area currently being developed in the maritime industry. The autonomousmode component was added to the ROV in the simulator. In the simulation, the ROV begins in its autonomous inspection of the pipeline. It was achieved using a Unity3D function known as pathfinding where the object automatically computes the shortest path and moves itself to the desired point while avoiding the obstacles in the virtual environment. Using the pathfinding algorithm, multiple waypoints were added along the path of the pipeline to guide the ROV during the inspection.

Controller
To create a more realistic simulator, the control system for the ROV in the simulator should be similar to the control system of the ROV. A joystick controller or keyboard is one of the common controllers used in the maritime industry. The joystick controller will require multiple turning axes to accommodate all six degrees of motion similar to the movement of a vessel. The simulated ROV is capable of moving in six degrees of motion that is heave, sway, surge, yaw, pitch, and roll in Figure 6. As shown in Figure 7, the Logitech Extreme 3D Pro is used as the joystick controller to control the ROV movements and functions in the virtual environment. The ROV's controls are scripted and linked to the joystick via a Logitech Profiler. The various buttons and corresponding axis on the joystick are shown in Table 1.

User interface
The user interface (UI) is widely used in many control systems. It is designed to simplify the complicated tasks for the pilot to perform the functions. A well-designed UI can significantly reduce the cognitive load on the end user by merely displaying parameters and having a few buttons. Hence, it allows the user to control the system with focus on essential details [13]. The

Keyboard Joystick
Move forward W Y-axis

Move left A X-axis
Move right D

Move down Z Button 11
Move up X Button 12 Yaw left Q Twist-axis Yaw right E UI designed in this project was created using a GameObject called Canvas, in Unity3D. The Canvas encompasses other objects within the User Interface (UI). Figure 8 shows the UI displaying parameters such as latitude, longitude, depth, heading, speed, run time and small main menu to allow the pilot to restart the practice session.

Simulation results with understanding on maritime standards
By the classification standards in the maritime industry, all virtual simulators are assigned with a "Class" namely: Class A, B, C or Class S [14]. The class of a simulator is assigned based on the requirements of the simulator on the checklist provided by the classification society. The comparisons will be made with the standards proposed by DNV (Det Norske Veritas).
The comparisons are not meant to be exhaustive but should provide adequate information for designing the virtual simulator.

Autonomous Vehicles
From the results presented by the project, according to the standards of the classification society DNV, it can be seen that there are some criteria that the proposed Unity3D simulator could not meet. As seen in Table 2, items 1.1.19, 1.1.20 and 1.1.21 or any items related to the instructor, these requirements were not met because of the simulator was developed for a single purpose to train the ROV pilot in detecting a leak on a pipeline inspection. Therefore, it did not take into account an instructor to test the competency of the ROV pilot. Another observation in Table 3 on the behavioral realism for items 2.1.1, 2.1.2, 2.1.5, 2.1.7 and 2.1.8, the class requirements were not fulfilled as the simulation does not encompass an underwater current acting on the objects in the scene. Simulation of actual underwater currents will affect the virtual objects and ROV to make the simulator more realistic. But one would require real information or data to implement it. It was not performed in this chapter. In Table 4, items 3.1.2, 3.1.4, 3.1.6 and 3.1.8 under the operating environment require a basic version of turbidity, sea state, underwater fog and camera in the virtual scene. However, some items were included such as camera and underwater lighting in the scene as shown in Figure 9. Others were not added due to the lack of actual specifications of these items.
Lastly, as seen in Table 5, casualty simulation was not met. The simulation did not have casualty simulation for the ROV. It did not include other equipment malfunctions besides the leakage that occurred in one of the pipelines (see Figure 10). In summary, the primary simulator produced has shown that Unity3D possesses the good capability to develop a more realistic virtual simulation for training purposes. Further developments of the simulator were performed to meet these class requirements. For example, a pathfinding algorithm (see Figure 11) was used to simulate the autonomous mode of the ROV.
In the virtual simulation, the pathfinding algorithm helps to build the autonomous mode feature in the ROV. Several waypoints were placed in the scene to better guide the ROV along its inspection path. However, using this method, the ROV would pass through the terrain to reach its next point. Few blocks were placed within the terrain to act as obstacles along the pathfinding. They appeared invisible in the simulator as their mesh renders can be switched off. However, the proposed guidance system would only be applicable if the simulated ROV carries out its autonomous functions at a fixed depth. A comprehensive way to create an autonomous guidance system for the ROV was to use a NavMesh algorithm as implemented in Figure 11. Any scene can easily be navigated by a GameObject with a NavMesh agent component. The NavMesh allows the simulated ROV to detect the size and height of objects in the scene that cannot pass through.
The UI can be improved through the implementation of the User Interface where control buttons can be placed on the screen to allow the pilot to toggle them easily. The buttons on the GUI will serve to remind the pilot if a specific function is switched "on" or "off". As shown in Figure 9, the intended ROV GUI for the simulator with a button in the scene to toggle between the multiple camera views and front light on the ROV was implemented. As mentioned, the simulation of underwater currents will help the simulation to look more realistic for the pilot. With the physics supported by Unity3D, the ROV in the simulation can be subjected to these forces and moments caused by the underwater current. It will be implemented in the future works.
The simulation test results will focus on pipeline inspection tasks near to the seabed. The different parts of developing the simulation are integrated together with a scenario set up where there is a gas leakage in one of the jumpers in the top section of the subsea system. First, the ROV's task was to identify the location of the leakage, and second, the ROV will need to deactivate the whole system by pressing the switch on the subsea system. The data for the search operation were exported and plotted into a graph, and a video of the simulation was recorded.  Table 2. Classification standards for physical realism.

Autonomous Vehicles
As seen in Figures 12 and 13, the ROV starts at position (0, −793, 0 m), which is at the center of the subsea production layout. The ROV then rotates about its Y-axis in an anti-clockwise direction shown in Figure 13, where the ROV's heading is facing approximately 190° away from its global coordinate before it starts moving in X and Z-direction again. As shown in Figure 14, the ROV moves along at a constant depth of −793 m for the first 38 s before it moves up as the vehicle is too close to the seabed (to avoid collision). In Figures 15 and 16, the forward and lateral thrust (in N) produced by the ROV increases to reach the targeted location, i.e., to maneuver to the desired position. The thrusts reduce once the gas leakage  and subsea system are found. Figures 12-14 show less fluctuating in the motion along the X, Z-axis, and yaw. The position of the ROV increases along the Z-axis while its position along the X-axis remains quite constant. The ROV makes a turn around the Y-axis (clockwise) to approximately 280° at 87 s where the position of the ROV increases along the X-axis and remain quite constant on the Z-axis. After approximately 140 s later, the ROV has reached the top section of the subsea system where the gas leakage is located in Figure 10.   The left manipulator of the ROV was activated using a button on the GUI control panel to shut down the subsea system due to the leakage. The ROV can reach the targeted position and shut down system successfully after about 202 s. With the presence of the obstacles in the scene, the objects can interact with one another as though in the real environment. There was no obstacle being hit. The ROV pilot managed to find the gas leakage before reaching the targeted top section of the subsea system to deactivate the switch to prevent more leakages from happening. A sample of the simulation results obtained from the ROV simulator is summarized in Table 6.

Conclusions
This chapter has successfully demonstrated the process of developing a virtual simulator using an open-source modern game engine software to develop "serious game" as a training system. By integrating different game objects using event-driven programming that is provided within the development software, it can be seen that modern game engine is capable of producing an appropriate level of accuracy in a fraction amount of time and at a low cost. Pilot training is useful for search and rescue operation, dynamic positioning of the drill string, subsea operation, and inspection tasks. Working at the simulator console, the trainees learn necessary flying skills and experience challenges of offshore operations before their first jobs. The virtual ROV's simulator creates a powerful and an efficient project preview and assessment tool for training. The low-cost ROV's pilot simulator can simulate live inputs from the vessel, rig to position the drill string and co-ordinates work operations efficiently in an offshore environment. It dramatically enhances the current training capability, workplace safety in an uncertain environment and reduces maintenance cost as the present cost of a complete ROV's pilot simulator is quite expensive to use and maintain.
Further research can be made to examine whether a pilot candidate who experienced the training in a simulated environment will perform better than those who do not have prior training. The design of different controllers can be implemented to add robustness to the ROV operation in underwater. Further development could be shown to improve on the simulator to suit the requirements of the classification society and specifications. It will be necessary as ROVs are used in many underwater tasks with more autonomy in its operations. However, it is still not possible to replace the decision-making process of a human operator in the loop.