Method for controlling a remotely operated seaborne robot field
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- FNV IP BV
- Filing Date
- 2024-07-25
- Publication Date
- 2026-06-24
AI Technical Summary
Remotely operated seaborne robots, such as USVs and ROVs, are vulnerable to collisions with objects in their environment due to latency in command implementation and limited field of view, which can lead to damage and operational disruptions.
A computer-implemented method that allows a remotely operated seaborne robot to locally predict potential collisions by determining the distance and velocity relative to objects in its environment, and to execute safe operating commands, such as steering or deceleration, to prevent impacts.
This method reduces the risk of collisions by enabling the robot to react promptly to potential impacts based on real-time positioning and velocity data, thereby enhancing operational safety and efficiency without increasing power consumption.
Smart Images

Figure EP2024071189_27022025_PF_FP_ABST
Abstract
Description
METHOD FOR CONTROLLING A REMOTELY OPERATED SEABORNE ROBOT FIELD
[0001] The disclosure relates to methods and systems for controlling a remotely operated seaborne robot, such as an uncrewed surface vessel or a remotely operated vehicle. More particularly, the disclosure relates to a method and system for locally predicting whether there would be an impact of the remotely operated seaborne robot with an object and determining a safe operating command for preventing the impact. Unlocking insights from Geo-Data, the present invention further relates to improvements in sustainability and environmental developments: together we create a safe and liveable world.BACKGROUND
[0002] There is general and ongoing need for methods and systems to improve the efficiency and safety of subsea surveying and other subsea tasks. In subsea surveying, at least one sensor is provided underneath the surface of a body of water, such as seas, rivers, or lakes. These sensors are provided to capture surveying data which relates to characteristics of the subsea environment. This surveying data may for example be related, but not limited, to the geometry of the seabed, detecting, e.g., boulders, and mapping the seabed for various subsea operations. Surveying data may also be related to detecting subsurface objects, buried below the seabed, such as pipelines, unexploded ordinances such as sea mines, or the like. Further, the surveying data may be related to the soil types below the seabed, which may be relevant to pre-engineering surveys for, e.g., wind farm foundations.
[0003] Traditional vessels are large, have a high weight and require a large crew to operate the vessel during survey and other missions. As such, they have a high energy expenditure and are generally considered environmentally unfriendly. In addition, offshore missions often require heavy equipment during sensor deployment, leading to potentially hazardous situations for crewmembers.
[0004] Attempts have been made to reduce environmental impact of survey and other types of missions and to simultaneously improve safety. Remotely operated seaborne robots, such as uncrewed surface vessels (USVs) and remotely operated vehicles (ROVs) may be used to perform survey or other types of missions. USVs are vessels which travel on the surface of a body of water and are typically used for survey operations as they can be deployed to collect measurements without needing to be crewed, while being remotely operated by an operator located in a remote operating centre. ROVs are submersible craft that can be deployed to collect measurements and perform tasks without needing to be crewed, while also being remotely operated by an operator located in a remote operating centre. This means that USVs and ROVs can be lighter, smaller, and thus use less fuel. In addition, since no crew is required on board USVs and ROVs, the safety during survey missions improves.
[0005] Remotely operated seaborne robots, such as USVs and ROVs are vulnerable to collisions (interchangeably described herein as impacts) with objects in their environment. Damage to USVs and ROVs can hinder and even halt the progress of survey and other missions. Collisions with objects can occur due to latency in the implementation of commands issued by a remote operating centre due to the time it takes to process and analyse sensor data received from a USV or ROV at the remoteoperating centre and for operating commands to be generated in response to the received data and communicated back to the USV or ROV. This latency increases the risk of collisions with objects during USV and ROV remote operation.
[0006] Access to only a limited field of view in the sensor data, for example, provided by a camera, sent to the remote operating centre can also increase the risk of collisions with objects if remote operators are unable to see them. There is also the risk of remote operators simply missing objects in the sensor data, resulting in a collision and damage to the USV or ROV. There are additionally limitations relating to bandwidth availability in communication between the USV or ROV and the remote operating centre, which can negatively affect quality of data received, and therefore increase the risk of collisions.
[0007] Remotely operated seaborne robots, such as USVs and ROVs require fuel or another form of stored energy to operate, which is often limited. As such, the size of a survey area that a USV or ROV can cover is limited by their energy capacity. When surveying a body of water that exceeds the energy capacity of the USV or ROV, multiple trips and refuelling / recharging are required. There is a need for methods and systems that can address the risk of collisions with objects without compromising on operational efficiency in terms of energy consumption.OVERVIEW
[0008] According to a first example of the present disclosure, there is provided a computer- implemented method of controlling a remotely operated seaborne robot, the method being carried out by the remotely operated seaborne robot. In some implementations, the method comprises identifying an object in an environment of the remotely operated seaborne robot. In some implementations, the method further comprises determining a distance between the object and the remotely operated seaborne robot. In some implementations, the method further comprises determining a velocity of the remotely operated seaborne robot relative to the object. In some implementations, the method further comprises predicting, based on the determined distance and the determined velocity, whether there would be an impact of the remotely operated seaborne robot with the object. The prediction of whether there would be an impact is done based on the current distance and velocity information. The prediction of the impact is thus solely based on positioning and velocity information of the robot and the object at that moment in time and may change at a next moment in time. A remote operating command may steer away or decelerate the robot such that impact is prevented. In some implementations, the method further comprises, if the prediction is that there would be an impact of the remotely operated seaborne robot with the object, determining a safe operating command for preventing the impact. In some implementations, the method further comprises executing the safe operating command. If the safe operating command is determined and executed at the remotely operated seaborne robot, it is still considered a ‘remotely operated seaborne robot’, even though the command of the remote operating centre is negated.
[0009] Advantageously, an impact with the object can be locally detected and locally accounted for and acted on at the remotely operated seaborne robot. A safe operating command is locallydetermined so as to prevent an impact with the object. This reduces the risk of object collisions resulting from latency and field of view issues that can occur with remotely operated seaborne robots.
[0010] Additionally, the use of the distance between the object and the remotely operated seaborne robot and the velocity of the remotely operated seaborne robot relative to the object enables the remotely operated seaborne robot to accurately determine when a collision with the object is likely.
[0011] In some implementations, the method further comprises receiving, from a remote operating centre, a remote operating command for controlling the remotely operated seaborne robot. In some implementations, determining a safe operating command comprises determining whether the remote operating command will prevent the impact with the object. In some implementations, determining a safe operating command comprises determining a direction which is considered safe, and another direction which is considered unsafe, and assessing the remote operating commands on the basis of its direction. In some implementations, the method further comprises, if the remote operating command is determined to prevent the impact with the object, adopting the remote operating command as the safe operating command.
[0012] Advantageously, any remote operating command for controlling the remotely operated seaborne robot can be analysed locally at the remotely operated seaborne robot to determine whether it would prevent the impact with the object and, if it does, the remote operating command can be adopted so as to prevent an impact. Alternatively, a locally generated local safe operating command can be adopted where this is not the case. As such, where an operators operating command would necessarily prevent an impact, it would be adopted without any noticeable disruption to the operator.
[0013] In some implementations, the step of determining whether the remote operating command will prevent the impact with the object comprises comparing the remote operating command with a locally generated safe operating command.
[0014] Advantageously, this enables the remotely operated seaborne robot to accurately determine whether the remote operating command will prevent the impact with the object.
[0015] In some implementations, the step of determining whether the remote operating command will prevent the impact with the object comprises determining whetherthe remote operating command would change the direction of the remotely operated seaborne robot so that the remotely operated seaborne robot would move away from the object.
[0016] Advantageously, this enables the remotely operated seaborne robot to accurately determine whether the remote operating command will prevent the impact with the object.
[0017] In some implementations, if the determination is that there will not be an impact of the remotely operated seaborne robot with the object, the remote operating command is executed.
[0018] Advantageously, remote operating command are executed without interruption when the determination is that there will not be an impact of the remotely operated seaborne robot with the object.
[0019] In some implementations, determining a safe operating command comprises generating a local safe operating command for preventing the impact. In some implementations, determining a safe operating command comprises, if the remote operating command is not determined to prevent the impact with the object, adopting the local safe operating command as the safe operating command.
[0020] In some implementations, determining a safe operating command comprises generating a local safe operating command for preventing the impact.
[0021] In some implementations, the further comprises receiving, from a remote operating centre, a remote operating command for controlling the remotely operated seaborne robot. In some implementations, if the determination is that there will not be an impact of the remotely operated seaborne robot with the object, the remote operating command is executed.
[0022] Advantageously, remote operating commands are executed without interruption when the determination is that there will not be an impact of the remotely operated seaborne robot with the object.
[0023] In some implementations, the method further comprises calculating a time to stop representing the time the remotely operated seaborne robot would need to come to a stop relative to the object based on the determined velocity. In some implementations, the method further comprises calculating a time to collision representing the time it would take for the remotely operated seaborne robot to collide with the object based on the determined velocity and the determined distance. In some implementations, the method further comprises the step of predicting whether there would be an impact of the remotely operated seaborne robot with the object is based on the time to stop and the time to collision.
[0024] The use of a time to stop (TTS - the time remotely operated seaborne robot would need to come to a stop) and a time to collision (TTC - the time it would take for the remotely operated seaborne robot to collide with the object) in determining when a collision with the object is likely further improves the accuracy of this determination.
[0025] In some implementations, calculating the time to stop is further based on a maximum possible deceleration of the remotely operated seaborne robot and / or a maximum possible acceleration of the remotely operated seaborne robot and / or a collision vector, defining a collision direction, in the form of a vector pointing from the object towards the remotely operated seaborne robot or from the remotely operated seaborne robot towards the object.
[0026] In some implementations, the step of predicting whether there would be an impact of the remotely operated seaborne robot with the object comprises determining whether the time to collision is equal to or less than a first threshold time, wherein the first threshold time is greater than or equal to the time to stop.
[0027] This enables the remotely operated seaborne robot to detect when the time to collision (time it would take for the remotely operated seaborne robot to collide with the object) approaches the time to stop (time the remotely operated seaborne robot would need to come to a stop), thereby identifying a risk of a collision and enabling action to be taken.
[0028] In some implementations, the step of determining a safe operating command comprises generating a first local safe operating command for controlling the remotely operated seaborne robot to come to a stop relative to the object. In some implementations, the step of determining a safe operating command comprises, if the time to collision is equal to or less than the first threshold time, adopting the first local safe operating command as the safe operating command.
[0029] Here, the remotely operated seaborne robot is being controlled to reduce the relative velocity to the object to zero when the TTC is lower than a first threshold time above the TTS. Any TTC lower than the first threshold time is considered to be of highest risk of a collision, resulting in maximum breaking and a complete stop of the remotely operated seaborne robot relative to the object.
[0030] In some implementations, the step of predicting whether there would be an impact of the remotely operated seaborne robot with the object comprises determining whether the time to collision is equal to or less than a second threshold time, wherein the second threshold time the greater than the first threshold time.
[0031] This introduces tiered threshold times above the TTS that can be detected by the remotely operated seaborne robot, meaning that different adjustments can be made to the operating commands depending on how much greater the TTC is than the TTS.
[0032] In some implementations, the step of determining a safe operating command comprises generating a second local safe operating command for limiting the velocity of the remotely operated seaborne robot to below a first velocity. In some implementations, the step of determining a safe operating command comprises, if the time to collision is equal to or less than the second threshold time, adopting the second local safe operating command as the safe operating command.
[0033] Here, the remotely operated seaborne robot is being controlled to limit it’s velocity to be below a first velocity when the TTC is lower than a second threshold time above the TTS greater than the first threshold time. Any TTC lower than the second threshold time is considered to be of less high risk of a collision, resulting in a limiting of the velocity of the remotely operated seaborne robot to a first maximum velocity rather than maximum breaking and a complete stop of the remotely operated seaborne robot relative to the object. This provides a buffer beyond the first threshold time were velocity of the remotely operated seaborne robot is reduced, reducing the severity of any maximum braking required, should the remotely operated seaborne robot cross the first threshold time. Other actions can be taken in addition to or alongside breaking and / or limiting the velocity, such as steering the remotely operated seaborne robot or the like.
[0034] In some implementations, the step of predicting whether there would be an impact of the remotely operated seaborne robot with the object comprises determining whether the time to collision is equal to or less than a third threshold time, wherein the third threshold time the greater than the second threshold time.
[0035] In some implementations, the step of determining a safe operating command comprises generating a third local safe operating command for limiting the velocity of remotely operated seaborne robot to below a second velocity when the time to collision is equal to or less than the third threshold time. In some implementations, the step of determining a safe operating command comprises, if the time to collision is equal to or less than the third threshold time, adopting the third local safe operating command as the safe operating command, wherein the second velocity is greater than the first velocity.
[0036] In some implementations, the object is virtual and comprises at least one geofence, the geofence at least partially defining an outer boundary of the object. In some implementations, the atleast one geofence is located on either side of a docking location for docking the remotely operated seaborne robot.
[0037] In this manner, the geofences can act to guide the remotely operated seaborne robot into the docking location as operating commands that would take the remotely operated seaborne robot away from the docking location are adjusted to prevent that from happening.
[0038] In some implementations, the at least one geofence forms a funnel shape that narrows towards the docking location.
[0039] This further helps guide the remotely operated seaborne robot into the docking location.
[0040] In some implementations, the docking location is provided on a floating dock or a seaborne vessel, such as an uncrewed surface vessel, USV.
[0041] In some implementations, the method further comprises sending sensor data to a or the remote operating centre. Here, sensor data is sent to the operator, based on which the operator can provide operating commands to the remotely operated seaborne robot.
[0042] In some implementations, the remotely operated seaborne robot is a remotely operated vehicle, ROV, or a remotely operated uncrewed surface vessel, USV.
[0043] According to a second example of the present disclosure, there is provided a remotely operated seaborne robot comprising one or more processors; a computer readable medium comprising instructions that, when executed by the one or more processors, cause the remotely operated seaborne robot to perform any of the methods disclosed herein.
[0044] According to a third example of the present disclosure, there is provided a computer readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform any of the methods disclosed herein.
[0045] According to a fourth example of the present disclosure, there is provided a computer program comprising instructions which, when the program is executed by one or more processors, cause the one or more processors to perform any of the methods disclosed herein.BRIEF DESCRIPTION OF THE DRAWINGS
[0046] In order to describe the manner in which the above-recited and other advantages and features of the disclosure can be obtained, a more particular description of the principles briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only exemplary implementations of the disclosure and are therefore not to be considered to be limiting of its scope, the principles herein are described and explained with additional specificity and detail through the use of the accompanying drawings in which:
[0047] Figure 1 shows an example system for operating remotely operated seaborne robots;
[0048] Figure 2 shows a schematic representation of an example remotely operated seaborne robot;
[0049] Figure 3 shows a method of controlling a remotely operated seaborne robot;
[0050] Figure 4 shows an optional detailed implementation of a step in the method of Figure 3;
[0051] Figure 5 shows thresholds of a control scheme for an example remotely operated seaborne robot;
[0052] Figure 6 shows a schematic representation of an example remotely operated seaborne robot and an example docking location; and
[0053] Figure 7 shows a block diagram of a computing device which can be used to implement the disclosed methods.DETAILED DESCRIPTION OF THE DRAWINGS
[0054] The following is a description of certain embodiments of the invention, given by way of example only and with reference to the drawings.
[0055] Various implementations of the disclosure are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure. Thus, the following description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding of the disclosure. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring the description. A reference to an implementation in the present disclosure can be a reference to the same implementation or any other implementation. Such references thus relate to at least one of the implementations herein.
[0056] The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. Alternative language and synonyms may be used for any one or more of the terms discussed herein, and no special significance should be placed upon whether or not a term is elaborated or discussed herein. In some cases, synonyms for certain terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification including examples of any terms discussed herein is illustrative only and is not intended to further limit the scope and meaning of the disclosure or of any example term. Likewise, the disclosure is not limited to various implementations given in this specification.
[0057] The following examples will be described, to aid understanding, in the context of remotely operated seaborne robots, such as an uncrewed surface vessel (USV) and a remotely operated vehicle (ROV) that is surveying or carrying out a mission in a body of water. It will, however, be appreciated that the disclosed methods and systems may be applied to other surface, air, land, underwater, mixed type (e.g., amphibious), or space vehicles to survey a region of air, earth, or space. The remotely operated seaborne robots may be operating in a region of interest, e.g., a body of water. Said region of interest, may also be known as a survey or mission area. It is noted that a survey or mission area is not limited to a two-dimensional plane but may encompass a depth of water below the surface of the body of water. In other words, the survey area or region of interest may be a space defined in three dimensions. To aid understanding, the body of water described herein is to be an ocean, but may also be a sea, a lake, a river, or the like.
[0058] As will be described further herein, an object may be a physical object such as a rock formation, subsea structure or the like. An object could also be virtual object, such as an exclusion zone and / or a geofence or the like. An object could also be another vessel, or floating structure, animals, or vegetation. Objects are also understood to encompass other remotely operated seaborne robots, for example where USVs / ROVs operate in fleets or swarms.
[0059] A remotely operated seaborne robot is any vehicle suitable for operating on and / or in a body of water that is remotely operated by an operator located at a remote operating centre. Examples include USVs and ROVs, but they could also encompass untethered AUVs (Autonomous Underwater Vehicles), where their control is, at least in part, monitored and controlled from an operating centre.
[0060] A safe operating command for preventing the impact is any command that results in a remotely operated seaborne robot avoiding a collision or impact with an object. It could involve a command to alter one of the velocity, acceleration, direction of travel of a remotely operated seaborne robot, so as to avoid a collision with an object. It could involve, for example, a command to move or steer a remotely operated seaborne robot away from an object or past an object.
[0061] Turning now to Figure 1 , a system 100 for operating remotely operated seaborne robot, controlled according to the methods described herein, is shown. The system 100 comprises a remote operating centre 102, two example remotely operated seaborne robots in the form of a ROV 104 and a USV 106, a communication network 108 and objects 110 in the environment of the remotely operated seaborne robots. The environment for the purposes of illustration may be the ocean, or another body of water.
[0062] The remote operating centre 102 may be located anywhere remote from the remotely operated seaborne robots 104 and 106. In other words, the remote operating centre 102 is not located on the remotely operated seaborne robots 104 and 106. The remote operating centre 102 could be land based or it could be aboard a seaborne vessel or an offshore structure, such as a stationary rig. Remote operating commands for controlling the remotely operated seaborne robots 104 and 106 are generated at the remote operating centre 102 by an operator and transmitted to the remotely operated seaborne robots 104 and 106 via the communication network 108. The operator may be a human operator, or a computer configured to operate remotely operated seaborne robots. Data sent by the remotely operated seaborne robots 104 and 106, such as sensor data, can also be received at the remote operating centre 102 via the communication network 108.
[0063] The ROV 104 is an example of a remotely operated seaborne robot. The ROV 104 is a submersible craft that can be deployed to collect measurements and perform tasks without needing to be crewed, while also being remotely operated by an operator located in a remote operating centre.
[0064] The USV 106 is an example of a remotely operated seaborne robot generally used to perform survey missions. USVs are vessels which travel on the surface of a body of water and are typically used for survey missions as they can be deployed to collect measurements without needing to be crewed, while being remotely operated by an operator located in a remote operating centre.
[0065] Both the ROV 104 and the USV 106 are operated by remote operating commands received from the remote operating centre 102 and / or by commands generated by autonomous features that either assist the operator or take over control from the operator, like automatic navigation. They alsosend sensor and any other data back to the remote operating centre 102 via communication network 108 to, amongst other things, enable the operator at the remote operating centre 102 to accurately control the ROV 104 and the USV 106.
[0066] The communication network 108 may be any suitable communication network 108, for example a Local Area Network (LAN), an intranet, an extranet, or the Internet. In some example implementations, the communication network 108 may comprise or consist of a wired communication between the remote operating centre 102 and the remotely operated seaborne robots 104 and 106.
[0067] The objects 110 in the environment of the remotely operated seaborne robots 104 and 106 can be any area of the environment that is to be avoided by the remotely operated seaborne robots 104 and 106. For example, one or more of the objects 110 could be a physical object, such as a rock formation, subsea structure, other vessels / vehicles, animals, or the like. One or more of the objects 110 could also be virtual object, such as an exclusion zone or geofence at least partially defining an outer boundary of the object 110.
[0068] Remotely operated seaborne robots 104 and 106 are at risk of collisions (interchangeably described herein as impacts) with obstacles in their environment due to a number of reasons. An operator in the remote operating centre 102 operating a remotely operated seaborne robot 104 and 106 may have only a limited amount of information about the environment of the remotely operated seaborne robot 104 and 106 due received data from the remotely operated seaborne robot 104 and 106 (such as sensor data from sensors of the remotely operated seaborne robot 104 and 106) not providing comprehensive information about the environment of the remotely operated seaborne robot 104 and 106. For example, a camera on the remotely operated seaborne robot 104 and 106 may only have a limited field of view. Latency leads to an increased risk of collisions due to the time it takes to process and analyse data (such as sensor data) received from remotely operated seaborne robot 104 and 106 at the remote operating centre 102 and for operating commands to be generated in response to the received data and communicated back to the USV or ROV. In addition, an operator could simply miss details in the data received from a remotely operated seaborne robot 104 and 106, which could result in a collision. The costs of a collision can be very high, both in terms of damage to the remotely operated seaborne robot 104 and 106 and operational downtime. There are additionally limitations relating to bandwidth availability in communication between the USV or ROV and the remote operating centre, which can negatively affect quality of data received, and therefore increase the risk of collisions.
[0069] Another key factor in the design consideration of remotely operated seaborne robots 104 and 106 is power consumption. The longer a remotely operated seaborne robot 104 and 106 can go without needing to refuel / recharge, the more efficiently it is able to carry out any particular mission. The provision of a fully autonomous control system to avoid the aforementioned latency issues on a remotely operated seaborne robot 104 and 106 would detrimentally affect performance as power consumption would be greatly increased in order to effect such a system. As such, the length and complexity of missions a remotely operated seaborne robot 104 and 106 could carry out without needing to refuel / recharge would be greatly reduced. Furthermore, a fully autonomous system is disadvantageous since unforeseen circumstances at sea, changing project parameters, or other needs of human intervention may be necessary. In addition, maritime regulations do not allow for fully autonomous operations. Finally, fullyautonomous systems require highly complex processing and redundancy in sensors and data processing. The present solution of human control with assisted intervention in high-risk situations for impact provides a safe and reliable working environment.
[0070] The method described in relation to Figure 3 enables controlling a remotely operated seaborne robot 104 and 106 in such a way that the risk of collisions with objects 110 is reduced without providing an undue burden on the power consumption of the remotely operated seaborne robot 104 and 106, as would be the case were a fully autonomous control system provided on the remotely operated seaborne robot 104 and 106. Power consumption when compared to fully autonomous control is greatly reduced and operational safety is greatly improved.
[0071] Turning now to Figure 2, a schematic representation of a remotely operated seaborne robot 104 and 106, such as the remotely operated seaborne robots 104 and 106 depicted in Figures 1 , 5 and 6, suitable for performing the method described in relation to Figures 3 and 4 is depicted. The remotely operated seaborne robot 104 and 106 comprises a processor module 202, a memory module 204, a communication module 206, a sensor module 208 and a drive module 210.
[0072] The remotely operated seaborne robot 104 and 106 may include the computing device 700 shown in Figure 7. In some examples, the remotely operated seaborne robot 104 and 106 may include the computing device 700 in place of some of the modules depicted in Figure 2, such as the processor module 202, memory module 204 and communication module 206 as equivalent functionality would be provided by the processor 702, main memory 704, static memory 706 and network interface device 708 of the computing device 700.
[0073] The processor module 202 is configured to control the operations of the remotely operated seaborne robot 104 and 106. For example, the processor module 202 may control the remotely operated seaborne robot 104 and 106 to perform the methods described herein, such as the method described in relation to Figures 3 and 4. The processor may be equivalent to the processor 702 of the computing device 700 and may have the same features as the processor 702, as described below.
[0074] The memory module 204 may store any data associated with the remotely operated seaborne robot 104 and 106, for example instructions for the processor module 202 and sensor data produced by the sensor module 208. The memory module 204 may be equivalent to either or both of main memory 704 and static memory 706 of the computing device 700 and may have the same features as either or both of main memory 704 and static memory 706, as described below.
[0075] The communication module 206 comprises components required to facilitate communication of the remotely operated seaborne robot 104 and 106 with the remote operating centre 102. The communication module 206 may be equivalent to the network interface device 708 of the computing device 700 and may have the same features as the network interface device 708, as described below.
[0076] The sensor module 208 comprises components of the remotely operated seaborne robot 104 and 106 for obtaining sensor data which can be sent to the remote operating centre 102 by the communication module 206. The sensor module 208 may include sensing apparatus, such as at least one or more of the following: cameras, motion sensors, lights for illuminating the field of view of cameras, Sonar and / or LiDAR equipment, USBL (Ultra-short baseline), INS (internal navigation system), IMU (motion sensor), DVL (doppler velocity logs), UVSVP (Underwater Vehicle SoundVelocity Profiler), devices that measure sound velocity, temperature, pressure, GNSS (Global navigation Satellite System), Multibeam Echosounder, or the like. The sensor module 208 may be used to detect objects 110 in the environment of the remotely operated seaborne robot 104 and 106.
[0077] The drive module 210 comprises components of the remotely operated seaborne robot 104 and 106 for controlling movement of the remotely operated seaborne robot 104 and 106 about its environment. The drive module 210 may include at least one motor, at least one propulsion and / or manoeuvring means, such as a propellor or thruster.
[0078] The remotely operated seaborne robot 104 and 106 may include other modules and component that are not depicted in Figure 2. Such components may be components related to the mission being undertaken, such as manipulators, cutting arms, water samplers and the like.
[0079] Turning to Figure 3, a computer-implemented method of controlling a remotely operated seaborne robot 104 and 106 is shown. The method is carried out by the remotely operated seaborne robot 104 and 106. The method may, in particular, provide a method of controlling a remotely operated seaborne robot according to examples of remotely operated seaborne robots 104 and 106 operating in a system 100 as described herein.
[0080] The method begins, at step 302, identifying an object 110 in an environment of the remotely operated seaborne robot 104 and 106. The object 110 could be any object of the type described herein. The object 110 may be identified in sensor data obtained by the sensor module 208. For example, the object could be detected in sensor data provided by a camera of sensor module 208. In an example implementation, the object 110 may be identified using sensor data as follows. Sensor data is collected from sensors like cameras / LIDAR / SONAR / radar / and others. The data from these sensors is processed. Raw sensor data can be noisy or contain irrelevant information, so the data may be cleaned, processed, filtered and / or otherwise organised to remove noise and to enable objects to be identified in the data. For feature extraction, features in the environment have different features and these need to be detected. Algorithms, for example, Al, ML, image processing techniques may be so implemented to detect features from data. For object detection, the identified features may be converted into or identified as objects. Objects are then localised to estimate velocity relative to the remotely operated seaborne robot 104 and 106 and a distance from the remotely operated seaborne robot 104 and 106, for example, using various algorithms.
[0081] At optional step 304, the method comprises receiving, from the remote operating centre 102, a remote operating command for controlling the remotely operated seaborne robot 104 and 106.
[0082] At step 306, the method comprises determining a distance between the object 110 and the remotely operated seaborne robot 104 and 106. Again, the distance between the object 110 and the remotely operated seaborne robot 104 and 106 may be determined from sensor data obtained by the sensor module 208.
[0083] At step 308, the method comprises determining a velocity of the remotely operated seaborne robot 104 and 106 relative to the object 110. Again, the velocity of the remotely operated seaborne robot 104 and 106 relative to the object 110 may be determined from sensor data obtained by the sensor module 208.
[0084] Optionally, the method may comprise calculating a time to stop (TTS) representing the time the remotely operated seaborne robot 104 and 106 would need to come to a stop relative to the object 110 based on the velocity determined at step 308. Calculating the time to stop may further be based on a maximum possible deceleration of the remotely operated seaborne robot 104 and 106 and / or a maximum possible acceleration of the remotely operated seaborne robot 104 and 106 and / or a collision vector, defining a collision direction, in the form of a vector pointing from the object towards the remotely operated seaborne robot or from the remotely operated seaborne robot towards the object.
[0085] Optionally, the method may also comprise calculating a time to collision (TTC) representing the time it would take for the remotely operated seaborne robot 104 and 106 to collide with the object 110 based on the velocity determined at step 308 and the distance determined at step 306. Figure 5 and the corresponding description of Figure 5 provide detail on how the time to stop and time to collision may be used in generating safe operating commands for preventing impact.
[0086] At step 310, the method comprises predicting, based on the determined distance and the determined velocity, whether there would be an impact of the remotely operated seaborne robot 104 and 106 with the object 110. Step 310 refers to ‘determining’ whether there will be an impact. These terms ‘predicting’ and ‘determining’ can be used interchangeably.
[0087] Optionally, step 310 may comprise predicting whether there would be an impact of the remotely operated seaborne robot 104 and 106 with the object 110 based on the TTC and the TTS. The prediction of whether there would be an impact, may further be based on metocean factors, such as current, wind velocity and swell frequency. If the object is stationary, currents and / or wind velocities may impact the relative velocity between the robot and the object, such that it is beneficial to take these factors into account.
[0088] At step 312, the method comprises determining a safe operating command for preventing the impact, if the prediction at step 310 is that there would be an impact of the remotely operated seaborne robot 104 and 106 with the object 110. In an optional example implementation, determining safe operating command may comprise generating a local safe operating command for preventing the impact. In other words, the remotely operated seaborne robot 104 and 106 may generate a safe operating command locally to avoid the impact. As mentioned above, a safe operating command be any command that results in a remotely operated seaborne robot avoiding a collision or impact with an object. It could involve a command to alter one of the velocity, acceleration, direction of travel of a remotely operated seaborne robot, or the like.
[0089] At step 314, the method comprises executing the safe operating command, which may be implemented by drive module 210. In an example implementation, this may involve the drive module 210 controlling movement of the remotely operated seaborne robot 104 and 106 about its environment.
[0090] At optional step 316, the method comprises executing the remote operating command if the prediction at step 310 is that there will not be an impact of the remotely operated seaborne robot 104 and 106 with the object 110.
[0091] At optional step 318, the method comprises, after step 310, taking no action if prediction is there will not be an impact of remotely operated seaborne robot with the object. This step would apply where optional step 304 has not occurred and no remote operating command has been received.
[0092] While the steps of Figure 3 are described in order, as will be apparent to the skilled person, the steps may be carried out in a different order. An example of a possible re-ordering of the steps is, with reference to Figure 3, to first perform step 306 before step 304 (i.e. swapping the positions of steps 308 and 306).
[0093] The steps of Figure 3 may be continuously repeated by the remotely operated seaborne robot 104 and 106 so as to continuously account for objects 110 in the environment of the remotely operated seaborne robot 104 and 106.
[0094] Turning to Figure 4, an optional detailed implementation of steps carried out as part of step 312 of the method of Figure 3 is shown.
[0095] At optional step 402, the method comprises generating a local safe operating command for preventing the impact. Here the remotely operated seaborne robot 104 and 106, having predicted that there would be an impact with the object 110 at step 310, locally generates a command to avoid the impact.
[0096] At optional step 404, the method comprises determining whether the remote operating command received at optional step 304 will prevent the impact with the object 110.
[0097] At optional step 406, if the remote operating command is determined to prevent the impact with the object, the remote operating command is adopted as the safe operating command to be executed at step 314.
[0098] At optional step 408, if the remote operating command is not determined to prevent the impact with the object, the local safe operating command generated at step 402 is adopted as the safe operating command to be executed at step 314.
[0099] Determining whether the remote operating command will prevent the impact with the object 110 at step 404 may, optionally, comprise comparing the remote operating command with a locally generated safe operating command, generated by the remotely operated seaborne robot 104 and 106. In an implementation, determining whether the remote operating command will prevent the impact with the object 110 at step 404 may, optionally, comprise comparing the remote operating command with a plurality of locally generated safe operating commands, generated by the remotely operated seaborne robot 104 and 106.
[0100] Determining whether the remote operating command will prevent the impact with the object110 at step 404 may, optionally, comprise determining whether the remote operating command would change the direction of the remotely operated seaborne robot 104 and 106 so that the remotely operated seaborne robot 104 and 106 would move away from the object 110, move past the object, or otherwise avoid the object. For example, if the remote operating command is determined to change the direction of the remotely operated seaborne robot 104 and 106 so that it would move in a direction that falls within the 180° facing away from the object 110, it may be determined, at step 404, to prevent the impact with the object 110. Conversely, if the remote operating command is determined to change the direction of the remotely operated seaborne robot 104 and 106 so that it would move in adirection that falls within the 180° facing towards from the object 110, it would not be determined, at step 404, to prevent the impact with the object 110.
[0101] Turning to Figure 5, example zones are shown in which different actions can be taken at step 312 / 402 of Figures 3 and 4 described above to reflect a collision risk that the remotely operated seaborne robot 104 and 106 will collide with the object 110. Thresholds defining the zones can be used in the step of predicting whether there would be an impact of remotely operated seaborne robot 104 and 106 with object 110 at step 310 of Figure 3 described above.
[0102] The axis shown in Figure 5 represents the time to collision (TTC), optionally determined as part of the method of Figure 3, of the remotely operated seaborne robot 104 and 106. The remotely operated seaborne robot 104 and 106 is depicted in zone 502 in Figure 5. An object 110 is also depicted in Figure 5. Between the remotely operated seaborne robot 104 and 106 and the object 110 are further zones 504, 506 and 508. The depicted axis represents the aforementioned TTC calculated for the remotely operated seaborne robot 104 and 106. Thresholds TTS1 TTS2 and TTSMAX on the depicted TTC axis are shown between the zones 502, 504, 506 and 508.
[0103] While the determined TTC of the remotely operated seaborne robot 104 and 106 is in zone 502, the remotely operated seaborne robot 104 and 106 operates under normal operating conditions. For example, this could mean that the determination at step 310 is that there will not be an impact of remotely operated seaborne robot 104 and 106 with the object 110. Operating under normal conditions may require that no restrictions are placed on the velocity, acceleration or the like of the remotely operated seaborne robot 104 and 106.
[0104] The TTS MAX threshold (also described as a first threshold time herein) represents a threshold time that may be equal to the aforementioned time to stop (TTS) of the remotely operated seaborne robot 104 and 106. When the TTC of the remotely operated seaborne robot 104 and 106 is equal too and / or falls below the TTSMAX threshold, the remotely operated seaborne robot 104 and 106 is within zone 508. This may be identified in the determination at step 310 and a local safe operating command (also described as a first local safe operating command) for controlling the remotely operated seaborne robot to come to a stop relative to the object 110 may be generated, for example, at step 312 / 402 and executed at step 314. This action reflects that the collision risk is at a maximum level as the TTC is equal to or less that the TTS in zone 508.
[0105] The TTS AX threshold may also be greater than the aforementioned TTS to provide a buffer, such that the local safe operating command for controlling the remotely operated seaborne robot to come to a stop relative to the object 110 is generated before the TTC is equal to or less that the TTS.
[0106] The TTS? threshold (also described as a second threshold time herein) represents a threshold time that is greater than the aforementioned threshold TTS X. When the TTC of the remotely operated seaborne robot 104 and 106 falls below the TTS2 threshold, the remotely operated seaborne robot 104 and 106 is within zone 506. This may be identified in the determination at step 310 and a local safe operating command (also described as a second local safe operating command) for limiting the velocity of the remotely operated seaborne robot to below a first velocity may be generated, for example, at step 312 / 402 and executed at step 314. This action reflects that the collision risk is at a lower level than in zone 508 as the TTC greater than the TTS in zone 506.
[0107] The TTSi threshold (also described as a third threshold time herein) represents a threshold time that is greater than the aforementioned TTS2 threshold. When the TTC of the remotely operated seaborne robot 104 and 106 falls below the TTS1 threshold, the remotely operated seaborne robot 104 and 106 is within zone 504. This may be identified in the determination at step 310 and a local safe operating command (also described as a third local safe operating command) for limiting the velocity of the remotely operated seaborne robot to below a second velocity greater than the first velocity may be generated, for example, at step 312 / 402 and executed at step 314. This action reflects that the collision risk is at a lower level than in zone 506 as the TTC greater than the TTS by a larger amount than in zone 506.
[0108] Rather than the zones and thresholds shown in Figure 5, a continuous spectrum could be provided with the reduction in velocity being dependent on a determined location of the TTC of the remotely operated seaborne robot 104 and 106 on the spectrum, wherein the limiting velocity of the remotely operating seaborne robot increases proportionately with respect to the TTC.
[0109] Rather than the velocity of the remotely operated seaborne robot 104 and 106 being limited, the acceleration, direction of travel or the like could be limited in place of or in addition to the velocity.
[0110] Turning to Figure 6, a schematic representation of an example remotely operated seaborne robot, in this instance an ROV 104 operated in accordance with the methods described herein, is shown. Also shown is an example docking location 602. In this depicted example, the docking location 602 is provided on a USV 106. The object 110 in this example takes the form of an exclusion zone provided in the form of a geofence located either side of the docking location 602. As can be seen in Figure 6, the geofence forms a funnel shape that narrows towards the docking location 602. The docking location 602 need not be provided on a USV 106 and could, instead be provided on any suitable vessel or ship, another ROV 104, a floating dock, on land, in a harbour or any other suitable location.
[0111] The provision of the object 110 in the form of a geofence in this example helps the operator to guide the ROV 104 into the docking location 602 as operating commands that would take the remotely operated seaborne robot away from the docking location are adjusted by the methods described herein to prevent that from happening. For example, any safe operating commands determined at step 312 or generated at step 402 could involve steering the remotely operated seaborne robot away from the geofence. The funnel shape of the geofence further helps guide the remotely operated seaborne robot into the docking location 602.
[0112] The object 110 could take the form of an exclusion zone provided in the form of a geofence with a different shape to the depicted shape. The geofence provided could act to guide a remotely operated seaborne robot 104 and 106 to any suitable location, not just a docking location 602.
[0113] Figure 7 shows a block diagram of one implementation of a computing device 700 within which a set of instructions, for causing the computing device to perform any one or more of the methodologies discussed herein, may be executed. In alternative implementations, the computing device may be connected (e.g., networked) to other machines in a Local Area Network (LAN), an intranet, an extranet, or the Internet. The computing device may operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) networkenvironment. The computing device may be a personal computer (PC), a tablet computer, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. In some implementations, the computing device may be part of a remotely operated seaborne robot 104 and 106 comprising means for performing the methods described herein, such as the remotely operated seaborne robot 104 and 106 depicted in Figures 1 , 2, 5 and 6.
[0114] Further, while only a single computing device is illustrated, the term “computing device” shall also be taken to include any collection of machines (e.g., computers) that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. More particularly, a number of computing devices can part of a remotely operated seaborne robots 104 and 106 comprising means for performing the methods described herein. Each computing device may have the structure shown in Fig. 7. Alternatively, a plurality of processors within a single computing device, such as computing device 700, can perform the independent computations.
[0115] The example computing device 700 includes a processor 702, a main memory 704 (e.g., readonly memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 706 (e.g., flash memory, static random access memory (SRAM), etc.), and a secondary memory (e.g., a data storage device 718), which communicate with each other via a bus 730.
[0116] Processor 702 represents one or more general-purpose processors such as a microprocessor, central processing unit, or the like. More particularly, the processor 702 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processor 702 may also be one or more special-purpose processors such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. Processor 702 is configured to execute the processing logic (instructions 722) for performing the operations and steps discussed herein.
[0117] The computing device 700 may further include a network interface device 708. The computing device 700 also may include a video display unit 710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 712 (e.g., a keyboard or touchscreen), a cursor control device 714 (e.g., a mouse or touchscreen), and an audio device 716 (e.g., a speaker).
[0118] It will be apparent that some features of computer device 700 shown in Fig. 7 may be absent. For example, one or more computing devices 700 may have no need for display device 710 (or any associated adapters). This may be the case, for example, for particular server-side computer apparatuses 700 which are used only for their processing capabilities and do not need to display information to users. Similarly, user input device 712 may not be required. In its simplest form, computing device 700 comprises processor 702 and memory 704.
[0119] The data storage device 718 may include one or more machine-readable storage media (or more specifically one or more non-transitory computer-readable storage media) 728 on which is storedone or more sets of instructions 722 embodying any one or more of the methodologies or functions described herein. The instructions 722 may also reside, completely or at least partially, within the main memory 704 and / or within the processor 702 during execution thereof by the computer system 700, the main memory 704 and the processor 702 also constituting computer-readable storage media.
[0120] The various methods described above may be implemented by a computer program. The computer program may include computer code arranged to instruct a computer to perform the functions of one or more of the various methods described above. The computer program and / or the code for performing such methods may be provided to an apparatus, such as a computer, on one or more computer readable media or, more generally, a computer program product. The computer readable media may be transitory or non-transitory. The one or more computer readable media could be, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, or a propagation medium for data transmission, for example for downloading the code over the Internet. Alternatively, the one or more computer readable media could take the form of one or more physical computer readable media such as semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disc, and an optical disk, such as a CD-ROM, CD-R / W or DVD.
[0121] In an implementation, the modules, components and other features described herein can be implemented as discrete components or integrated in the functionality of hardware components such as ASICS, FPGAs, DSPs or similar devices.
[0122] A “hardware component” is a tangible (e.g., non-transitory) physical component (e.g., a set of one or more processors) capable of performing certain operations and may be configured or arranged in a certain physical manner. A hardware component may include dedicated circuitry or logic that is permanently configured to perform certain operations. A hardware component may be or include a special-purpose processor, such as a field programmable gate array (FPGA) or an ASIC. A hardware component may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations.
[0123] Accordingly, the phrase “hardware component” should be understood to encompass a tangible entity that may be physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner orto perform certain operations described herein.
[0124] In addition, the modules and components can be implemented as firmware or functional circuitry within hardware devices. Further, the modules and components can be implemented in any combination of hardware devices and software components, or only in software (e.g., code stored or otherwise embodied in a machine-readable medium or in a transmission medium).
[0125] Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as "generating”, “identifying”, “determining”, “receiving”, “sending”, “adopting” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registersand memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
[0126] It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other implementations will be apparent to those of skill in the art upon reading and understanding the above description. Although the present disclosure has been described with reference to specific example implementations, it will be recognized that the disclosure is not limited to the implementations described but can be practiced with modification and alteration within the spirit and scope of the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Claims
CLAIMS1 . A computer-implemented method of controlling a remotely operated seaborne robot, the method being carried out by the remotely operated seaborne robot, the method comprising: identifying an object in an environment of the remotely operated seaborne robot; determining a distance between the object and the remotely operated seaborne robot; determining a velocity of the remotely operated seaborne robot relative to the object; predict, based on the determined distance and the determined velocity, whether there would be an impact of the remotely operated seaborne robot with the object; if the prediction is that there would be an impact of the remotely operated seaborne robot with the object, determining a safe operating command for preventing the impact; and executing the safe operating command.
2. The computer-implemented method of claim 1 , further comprising: receiving, from a remote operating centre, a remote operating command for controlling the remotely operated seaborne robot, wherein determining a safe operating command comprises: determining whether the remote operating command will prevent the impact with the object; if the remote operating command is determined to prevent the impact with the object, adopting the remote operating command as the safe operating command.
3. The computer-implemented method of claim 2, wherein the step of determining whether the remote operating command will prevent the impact with the object comprises: comparing the remote operating command with a locally generated safe operating command.
4. The computer-implemented method of either of claims 2 or 3, wherein the step of determining whether the remote operating command will prevent the impact with the object comprises: determining whether the remote operating command would change the direction of the remotely operated seaborne robot so that the remotely operated seaborne robot would move away from the object.
5. The computer-implemented method of any of claims 2 to 4, wherein if the determination is that there will not be an impact of the remotely operated seaborne robot with the object, the remote operating command is executed.
6. The computer-implemented method of any of claims 2 to 5, wherein determining a safe operating command comprises: generating a local safe operating command for preventing the impact, wherein if the remote operating command is not determined to prevent the impact with the object, adopting the local safe operating command as the safe operating command.
7. The computer-implemented method of any preceding claim, further comprising: calculating a time to stop representing the time the remotely operated seaborne robot would need to come to a stop relative to the object based on the determined velocity; and calculating a time to collision representing the time it would take for the remotely operated seaborne robot to collide with the object based on the determined velocity and the determined distance, wherein the step of predicting whether there would be an impact of the remotely operated seaborne robot with the object is based on the time to stop and the time to collision.
8. The computer-implemented method of claim 7, wherein calculating the time to stop is further based on a maximum possible deceleration of the remotely operated seaborne robot and / or a maximum possible acceleration of the remotely operated seaborne robot and / or a collision vector, defining a collision direction, in the form of a vector pointing from the object towards the remotely operated seaborne robot or from the remotely operated seaborne robot towards the object.
9. The computer-implemented method of either of claims 7 or 8, wherein the step of predicting whether there would be an impact of the remotely operated seaborne robot with the object comprises determining whether the time to collision is: equal to or less than a first threshold time, wherein the first threshold time is greater than or equal to the time to stop.
10. The computer-implemented method of claim 9, wherein the step of determining a safe operating command comprises: generating a first local safe operating command for controlling the remotely operated seaborne robot to come to a stop relative to the object; and if the time to collision is equal to or less than the first threshold time, adopting the first local safe operating command as the safe operating command.11 . The computer-implemented method of either of claims 9 or 10, wherein the step of predicting whether there would be an impact of the remotely operated seaborne robot with the object comprises determining whether the time to collision is: equal to or less than a second threshold time, wherein the second threshold time the greater than the first threshold time.
12. The computer-implemented method of claim 11 , wherein the step of determining a safe operating command comprises: generating a second local safe operating command for limiting the velocity of the remotely operated seaborne robot to below a first velocity; andif the time to collision is equal to or less than the second threshold time, adopting the second local safe operating command as the safe operating command.
13. The computer-implemented method of either of claims 11 or 12, wherein the step of predicting whether there would be an impact of the remotely operated seaborne robot with the object comprises determining whether the time to collision is: equal to or less than a third threshold time, wherein the third threshold time the greater than the second threshold time.
14. The computer-implemented method of claim 13, wherein the step of determining a safe operating command comprises: generating a third local safe operating command for limiting the velocity of remotely operated seaborne robot to below a second velocity when the time to collision is equal to or less than the third threshold time; and if the time to collision is equal to or less than the third threshold time, adopting the third local safe operating command as the safe operating command, wherein the second velocity is greater than the first velocity.
15. The computer-implemented method of any preceding claim, wherein the object is virtual and comprises at least one geofence, the geofence at least partially defining an outer boundary of the object.
16. The computer-implemented method of claim 15, wherein the at least one geofence is located on either side of a docking location for docking the remotely operated seaborne robot.
17. The computer-implemented method of claim 16, wherein the at least one geofence forms a funnel shape that narrows towards the docking location.
18. The computer-implemented method of any of claims 15 to 17, wherein the docking location is provided on a floating dock or a seaborne vessel, such as an uncrewed surface vessel, USV.
19. A remotely operated seaborne robot comprising: one or more processors; and a computer readable medium comprising instructions that, when executed by the one or more processors, cause the remotely operated seaborne robot to perform the method of any preceding claim.