Traction control for surface-cleaning robot

The robot's torque redistribution system addresses the issue of traction loss by adjusting wheel torque based on normal reaction forces, maintaining stability and preventing falls, especially above the waterline.

GB2702297APending Publication Date: 2026-06-10JOTUN AS

Patent Information

Authority / Receiving Office
GB · GB
Patent Type
Applications
Current Assignee / Owner
JOTUN AS
Filing Date
2024-10-31
Publication Date
2026-06-10

AI Technical Summary

Technical Problem

Hull-cleaning robots face the risk of slipping and falling due to loss of traction, particularly when operating on vertical surfaces, which can lead to irretrievable failure and damage, especially when above the waterline where buoyancy is not offsetting the robot's weight.

Method used

A robot with magnetic wheels and a processor that redistributes torque between wheels based on normal reaction forces, using formulas that account for the robot's acceleration and magnetic force to maintain traction, especially when above the waterline.

Benefits of technology

The torque redistribution system effectively minimizes the risk of wheel slip, preventing the robot from sliding or falling, ensuring continuous operation and reducing the need for replacements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A robot 102 for cleaning a surface of a man-made object such as a hull of a marine vessel, ship and boat includes a number of magnetic wheels 206 configured to attach the robot to the surface by exert
Need to check novelty before this filing date? Find Prior Art

Description

FIELD OF THE INVENTION The invention relates to a traction control system for a robot for cleaning the surface of a man-made object, particularly to a robot for cleaning ship hulls. BACKGROUND TO THE INVENTION All surfaces submerged in seawater will experience fouling of organisms such as bacteria, diatoms, algae, mussels, tube worms and barnacles. Marine fouling is the undesirable accumulation of microorganisms, algae and animals on structures submerged in seawater. The fouling organisms can be divided into microfouling (bacterial and diatomic biofilms) and macrofouling (e.g. macroalgae, barnacles, mussels, tubeworms, bryozoans) which live together forming a fouling community. In a simplistic overview of the fouling process, the first step is the development of a conditioning film where organic molecules adhere to the surface. This happens instantaneously when a surface is submerged in seawater. The primary colonizers, the bacteria and diatoms, will settle within a day. The secondary colonizers, spores of macroalgae and protozoa, will settle within a week. Finally, the tertiary colonizers, the larvae of macrofouling, will settle within 2-3 weeks. The development of marine fouling is a known problem. On the hull of an actively trading vessel this will lead to increased drag resistance and increased fuel consumption or reduced speed. Increased fuel consumption will lead to increased CO2, NOX and sulphur emissions. Many commercial vessels (e.g. container ships, bulk carriers, tankers, passenger ships) are trading worldwide. It is known that fouling organisms on the ship hull can be transported from one geographical area to another. This can be problematic if an invasive species is introduced into a new ecosystem with resulting ecological or commercial consequences. Similar marine fouling may affect other man-made objects such as, for example, the legs of oil rigs which are partially submerged in the sea. Traditionally, antifouling coatings have been used to prevent the settlement and growth of marine organisms. The most efficient antifouling coatings contain biocides that will leak out from the coating film and thereby reduce the amount of fouling. Robots, sometimes phrased as “crawlers” or ROVs (remotely operated vehicles), have also previously been used for cleaning of surfaces submerged in water e.g. for use on ship’s hulls. SUMMARY OF THE INVENTION The inventors have recognised that hull-cleaning robots moving over the surface of a man-made object to remove fouling are at the risk of slipping, and consequently falling or becoming detached. Such a fall is likely to render a hull-cleaning robot unable to continue operating, thereby incurring significant difficulty and delay in obtaining a replacement. Slipping may occur during cleaning, or during other operations that involve moving over the surface such as inspection of the surface. In particular, the specific technical context of a hull-cleaning robot with magnetic wheels clinging to a vertical surface results in the particular problem that a loss of traction between the wheels and the surface may result in the robot accelerating downwards under its own weight. This contrasts with, for example, a vehicle travelling over a horizontal surface, wherein the vehicle’s weight points into the surface and does not accelerate the vehicle in the case of a loss of traction. Aspects of the present disclosure therefore relate to a hull-cleaning robot with systems for mitigating the risk of loss of traction and a resultant slip or fall. According to an aspect of the invention, there is presented a robot for cleaning a surface of a man-made object, the robot comprising: a plurality of magnetic wheels configured to attach the robot to the surface by exerting a magnetic force on the object; for each wheel, a respective motor configured to drive the wheel, thereby causing the robot to move over the surface; and a processor configured to: obtain a value of an acceleration of the robot; determine, based on the acceleration and a magnitude of the magnetic force, a respective normal reaction force between the surface and each wheel; and control the motors to redistribute torque between the wheels in proportion to their respective normal reaction forces. This has the advantage that in situations where the robot’s weight causes an imbalance in the normal reaction force at different wheels, torque is redistributed to minimise the risk of a wheel slipping due to a reduced normal force. This provides traction control and reduces the risk of wheel slip that may result in the robot sliding down the side of the object, or even becoming detached and falling. Such a fall is likely to render the robot irretrievable and / or cause catastrophic damage to the robot, necessitating replacement in either case. This is particularly relevant when the robot is above the waterline of an ocean-based object, as then there is no buoyancy offsetting the robot’s weight. In these conditions a small slip is potentially disastrous. Alternatively, if the object is not in the ocean, for example a vessel in dry dock, traction control will be relevant wherever the robot is positioned on the surface. The processor may be configured to redistribute torque between the wheels by: dividing the plurality of magnetic wheels into two sets relative to a centre of mass of the robot, the first set comprising those wheels that are further in the direction of acceleration than the centre of mass, and the second set comprising those wheels that are on the other side of the centre of mass from the first set; and distributing an additional torque evenly between the first set of wheels, and removing the same additional torque evenly from the second set of wheels. In embodiments where the acceleration of the hull-cleaning robot is small compared to gravity, it is noted that the direction of acceleration is gravitationally downwards. This therefore has the advantage that additional torque is redistributed to wheels that are lower than the robot’s centre of mass, which have an increased normal reaction force due to the turning moment of the robot’s weight. Distributing additional torque to these wheels is beneficial as they have more traction with the surface. At the same time, torque is removed from the wheels that are higher up (further in the direction opposite to the direction of acceleration) as these wheels have a reduced normal reaction force and therefore less traction. This reduces the risk of a slip. The additional torque may be a proportion s of a total torque across all wheels, where ymCL s = —, wherein r is a distance from the centre of mass of the robot to the surface, m is a mass of the robot, a is the value of the acceleration, I is a distance between the first set of wheels and the second set of wheels, and Fm is the magnitude of the magnetic force. The inventors have found that this formula is particularly advantageous for making efficient use of the available traction without risking a slip. The robot may comprise an accelerometer, and the processor may be configured to determine the value of the acceleration of the robot using the accelerometer. This has the advantage of providing an accurate, real-time measure of the robot’s acceleration, allowing a more accurate and responsive measure of the normal reaction force at each wheel. The robot may comprise an orientation sensor, and the processor may be configured to obtain the value of the acceleration by: determining an orientation of the robot using the orientation sensor; and assuming that the acceleration is in a downward direction and entirely due to gravity, such that the value of the acceleration is equal to g; wherein the orientation sensor comprises a gyroscope or an inclinometer. It is noted that in this specification the term downward is used to mean in the direction of gravity. Correspondingly, the term upward means in a direction opposite to gravity. This has the advantage of simplifying the calculation of normal reaction force by allowing a fixed value of acceleration. It is noted that this method assumes that the robot’s own acceleration is small compared to the gravitational acceleration g. The processor may be configured to retrieve an assumed magnitude of the magnetic force from a memory accessible to the processor. The magnetic force is difficult to measure during operation. This feature therefore has the advantage of allowing a value obtained during testing to be applied without needing a live measure of the force. The robot may further comprise a cleaning mechanism for cleaning the surface, the cleaning mechanism optionally comprising a brush, a waterjet, or a scraper. This has the advantage of enabling the removal of fouling from the surface of the object. The robot may further comprise a sensor, and the processor may be further configured to: receive sensor data from the sensor; and determine, based on the sensor data, that it is necessary to redistribute torque between the wheels. This has the advantage of enabling the robot to autonomously begin normal force-based torque redistribution in circumstances where this process is likely to be most beneficial. The processor may be configured to determine from the sensor data that the robot is not immersed in liquid. This has the advantage that the processor begins normal force-based torque redistribution when the robot does not benefit from buoyancy. As noted above, slipping poses the largest risks when the robot is above the waterline and not supported by the sea, such that the robot is at risk of being dragged down by its full unsupported weight if the wheels slip. The processor may be configured to determine that it is necessary to redistribute torque between the wheels based on user input. This has the advantage of simplicity of design, removing the need for sensors. This makes the robot easier to manufacture and more reliable, as there are fewer components to potentially fail. The user input may comprise a command to the robot to enter or exit a docking station. In embodiments, the robot may go above the waterline only when deploying from or returning to a docking station. For example, the docking station may be on or adjacent to a deck of the ship to allow easier access to the robot. Since, as noted above, the risk of slipping is greatest when above the waterline, in these embodiments normal force based traction control is most important when the robot is deploying from or returning to the docking station. Beginning traction control when ordered to return to the docking station is therefore an efficient means of ensuring that normal force-based torque redistribution is used when it will be most important and beneficial, without needing to process sensor data. The processor may be configured to redistribute torque between the wheels such that wheels that are vertically lower with respect to a direction of gravity receive more torque. This is advantageous because lower wheels will be pressed against the surface by the turning moment of the robot’s weight, allowing these wheels to receive more torque without slipping. Conversely, torque is removed from wheels that are higher, as these wheels are pulled away from the surface and cannot receive as much torque as the lower wheels without slipping and risking a fall. According to a further aspect of the disclosure there is presented a computer-implemented method of traction control for a robot for cleaning a surface of a man-made object, the method comprising: obtaining a value of an acceleration of the robot; determining, based on the acceleration and a magnitude of a magnetic force exerted on the object by a plurality of magnetic wheels of the robot, a respective normal reaction force between the surface and each wheel; and controlling a respective motor corresponding to each wheel to redistribute torque between the wheels in proportion to their respective normal reaction forces. This method has the advantages described above for the corresponding robot. The object may be a marine vessel. According to a further aspect of the disclosure there is presented a computer program comprising programming instructions that, when executed by a processor of a robot for cleaning a surface of a man-made object, cause the processor to perform any of the methods described herein. According to another aspect of the present disclosure there is provided a non-transitory computer-readable storage medium comprising instructions which, when executed by a processor, cause the processor to perform any of the methods described herein. The instructions referred to herein may be provided on a carrier such as a disk, CD- or DVD-ROM, programmed memory such as read-only memory (Firmware), or on a data carrier such as an optical or electrical signal carrier. Code (and / or data) to implement embodiments of the present disclosure may comprise source, object or executable code in a conventional programming language (interpreted or compiled) such as C, or assembly code, code for setting up or controlling an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array), or code for a hardware description language. These and other aspects will be apparent from the embodiments described in the following. The scope of the present disclosure is not intended to be limited by this summary nor to implementations that necessarily solve any or all of the disadvantages noted. BRIEF DESCRIPTION OF THE DRAWINGS For a better understanding of the present disclosure and to show how embodiments may be put into effect, reference is made to the accompanying drawings in which: Fig. 1 shows a schematic of a hull-cleaning robot in operation; Fig. 2 shows an example hull-cleaning robot; Fig. 3 shows a block diagram of an example hull-cleaning robot; Fig. 4 shows a hull-cleaning robot climbing a hull; and Fig. 5 shows a method of traction control for a robot for cleaning a surface of a manmade object. DETAILED DESCRIPTION Embodiments will now be described by way of example only. Fig. 1 illustrates an aquatic vessel 100 for example a container ship, bulk carrier, tanker, or passenger ship. The aquatic vessel comprises a hull 101. Before operation, a robot 102 may be stationary ata robot station 104 (a docking station) which may be used to charge the robot 102. The robot station 104 may be positioned on the vessel above the sea level as shown in Figure 1. In embodiments, the robot station 104 may allow for parking of the robot 102 when cleaning operations performed by the robot are paused. During cleaning of the surface of the hull 101, the robot 102 may traverse any surface of the hull 101 where marine fouling may form (e.g. a flat bottom or side bottom of the hull). Reference to “cleaning” is used herein to refer to the removal of fouling organisms from the surface of the hull 101. The cleaning may be “reactive cleaning” or “proactive cleaning”. As used herein, reactive cleaning refers to cleaning when fouling has been detected above a certain tolerated level, whereas proactive cleaning refers to cleaning at an early stage and may be regular cleaning even without the detection of fouling. The cleaning is preferably “proactive cleaning”. “Proactive cleaning” is sometimes referred to as “grooming”. By performing “proactive cleaning” of the surface of the hull 101, the robot 102 typically performs removal of fouling at an early stage (e.g. primary colonizers) that has adhered to the surface of the hull 101. However, it will be appreciated that the cleaning performed by the robot 102 may also involve removal of secondary colonizers and any subsequent colonizers. The robot 102 may, for example, clean the surface with a brush such as the cleaning brush assembly described below with regard to Fig. 2. The robot 102 may perform other operations not including cleaning. For example, in embodiments, the robot 102 may initially inspect the hull 101 to determine a level of fouling (for example using a camera or a fouling sensor as described below). If fouling is detected, a subsequent cleaning mission may then be scheduled. The methods of traction control described herein may be implemented in both the inspection mission and the cleaning mission, and may further be implemented for any other operation involving the robot 102 moving over the hull 101. As shown in Fig. 1 a computing device 106 may be provided in a deckhouse (or other area) of the vessel for communication with the robot 102. Additionally or alternatively, a computing device 106 may be provided elsewhere, for example ashore. The robot 102 may be controlled or otherwise directed by a user using the computing device 106. Additionally or alternatively, the robot 102 may perform some functions autonomously as described herein. In particular, during normal operation (which may include e.g. cleaning and / or inspecting the surface 101) the robot 102 may operate autonomously, may be remote controlled by a user using the computing device 106, or may perform some functions autonomously and some based on the user’s control. Whilst Fig. 1 illustrates a single robot 102 on the vessel for simplicity, it will be appreciated that there may be multiple robots on the vessel. Similarly, whilst a single robot station 104 is shown in Fig. 1, it will be appreciated that there may be multiple robot stations on the vessel. While Fig. 1 shows a vessel 100, robots such as the robot 102 may be used to clean the surface of other objects instead, such as for example the legs of oil rigs. Fig. 2 shows an example robot 102 for cleaning the hull 101 of a marine vessel. It will be appreciated that the robot 102 described herein may be used for cleaning the surface 101 of other man-made objects such as off-shore drilling platforms. As shown in Fig. 2, the robot 102 comprises a plurality of wheels 202 which are coupled to a frame 204. The example robot 102 shown in Fig. 2 comprises four wheels 202 but the robot 102 may have less, or more than, four wheels. The wheels 202 are magnetic, in order to adhere to ferrous hulls. The wheels 202 may include permanent magnets arranged around the circumference of the wheel and held within a metal housing. Additionally or alternatively, the wheels 202 may comprise electromagnets. The robot 102 is driven by the wheels 202, and the wheels 202 are driven by respective electric motors (described below with regard to Fig. 3). A thin layer (cover, lining) of a resilient material such as a rubber or polymer material may be formed around the outside of each wheel 202 in order to distribute contact with the hull 101. During a cleaning operation, the robot 102 traverses the hull surface 101 of a vessel at the sides, as well as the bilge in-between the sides and the bottom of the hull 101. The robot 102 includes a cleaning mechanism 206 attached to the frame 204. The cleaning mechanism 206 shown in Fig. 2 is attached to the front of the robot 102, however this is merely an example. The cleaning mechanism 206 may comprise a brush, such as a rotary cylindrical brush; more generally, the cleaning mechanism 206 may comprise any device or mechanism that is operable to remove fouling from a surface 101 of a man-made object such as the hull of a ship. The robot 102 may comprise one or more sealed containers which are waterproof and sealed to prevent water ingress. The sealed containers can therefore house electronics that are vulnerable to water damage, such as for example a power supply. The frame 204 itself may form a sealed container. Alternatively the frame 204 may form a chassis to which a sealed container may be mounted. The frame 204 may be divided into two separate parts that are coupled together. In particular the frame 204 may be divided into a front portion and rear portion that can rotate in relation to each other (e.g. around the x-axis.) Fig. 3 shows a schematic block diagram of a hull-cleaning robot such as the robot 102. As shown, the robot 102 comprises a processor 302, wheels 202, and motors 316. The robot 102 may comprise further components such as, for example, a communication interface 318, a cleaning mechanism 206 as described above, a memory 310, one or more sensors 312, or a power source 314. The wheels 202 are magnetic as described above, and are therefore operable to exert a magnetic force on magnetic objects. For example, if the surface 101 shown in Fig. 1 is magnetic, or if there is a magnetic material beneath the surface (e.g. if the surface 101 is a non-magnetic coating over a ferrous material), the magnetic wheels 202 may exert a force capable of attaching the robot to the object. The wheels 202 may comprise electromagnets or may comprise permanent magnets. Each motor 316 is operable to drive a respective wheel, and is controlled by the processor 302. In embodiments, there may be one motor 316 for every wheel 202 of the robot 102. For example, if the robot 102 has four wheels 202 as shown in Fig. 2, the robot 102 may comprise four motors 316, which each motor 316 driving a respective wheel. Alternatively, the robot 102 may comprise both driven wheels 202 and non-driven wheels. In this case, there may be a motor 316 for each driven wheel 202, and the nondriven wheels may then not have an associated motor. The memory 310 may be configured to store information for retrieval by the processor 302. The sensor(s) 312 may comprise a fouling sensor for sensing the degree of fouling on the hull 101. Additionally or alternatively, the sensor(s) 312 may comprise a location sensor configured to sense a location of the robot 102 on the vessel 100. The location sensor may, for example, be configured to detect a signal emitted from a beacon located on the vessel, and the processor 302 may then correlate the detected signal with a position on the vessel associated with the beacon. Additionally or alternatively, the sensor(s) 312 may comprise an accelerometer operable to determine an acceleration of the robot 102. Additionally or alternatively, the sensor(s) 312 may comprise a gyroscope operable to determine an angular velocity of the robot 102. Additionally or alternatively, the sensor(s) 312 may comprise a pressure sensor operable to determine a pressure acting on the robot 102. Additionally or alternatively, the sensor(s) 312 may comprise a liquid sensor operable to detect liquid in contact with the robot 102. Additionally or alternatively, the sensor(s) 312 may comprise an inclinometer operable to determine an orientation of the robot relative to a direction of gravity. A location sensor may, for example, enable the processor 302 to determine whether the robot 102 is above the water level, or whether the robot 102 is immersed in liquid (such as the ocean), by determining a location of the robot 102 relative to a known waterline. Such a determination may also be made using a pressure sensor, to determine whether the robot 102 is subject to water pressure associated with being beneath a surface of the sea, and / or a liquid sensor which may detect seawater in contact with the robot 102. The power source 314 may comprise a battery. The power source 314 may be rechargeable e.g. using the robot station 104. The communication interface 318 may be configured to enable the processor 302 to receive and transmit data, wirelessly or via a wired connection. For example, the communication interface 318 may be operable to communicate with the computing device 106 to receive user commands and / or convey information relating to the operation of the robot 102 to a user. Fig. 4 shows an example of a situation in which the processor 302 may implement traction control by redistributing torque between the wheels 202 based on considerations relating to the normal reaction forces between the surface 101 and the wheels 202. In this situation, the robot 102 is climbing the surface 101 vertically upwards, and is above the waterline. This may arise, for example, when the robot 102 is returning to the robot station 104 shown in Fig. 1. This situation is chosen for illustrative purposes due to the simplicity of the directions of the forces involved, and because the robot 102 being above the waterline removes the effect of buoyancy; however, the principles discussed below apply to any situation wherein the robot 102 is clinging to the surface 101, in any orientation. The position of the centre of mass 402 of the robot 102 is indicated schematically with a circle. As an overview, in the situation shown in Fig. 4, the robot 102 may be considered to have two sets of wheels: upper wheels 202a, being the two wheels 202 that are vertically higher in the direction of gravity; and lower wheels 202b, being the two wheels 202 that are vertically lower in the direction of gravity. The weight of the robot 102 creates a turning moment about the contact points of the lower wheels 202b, because the centre of mass 402 of the robot 102 is at a distance from the surface 101. This turning moment acts to pull the upper wheels 202a off the wall and urge the lower wheels 202b into the wall. As a result, the lower wheels 202b experience a greater normal reaction force with the surface 101 than the upper wheels 202a. This difference in normal reaction force is affected by any acceleration of the robot 102, not just gravitational acceleration. For example, if the processor 302 is controlling the motors 316 to accelerate the robot 102 upwards towards the robot station 104, the total acceleration of the robot will be increased, and so will the difference in normal reaction force between the upper wheels 202a and lower wheels 202b. When the lower wheels 202b experience an increased normal reaction force, it follows that they can achieve proportionally more traction with the surface 101. Conversely, the reduced normal reaction force at the upper wheels 202a proportionally reduces the traction between the upper wheels 202a and the surface 101. Therefore, if the same torque is sent to all four wheels 202 via the motors 316, there is a risk that the upper wheels 202a will slip excessively and lose traction, even at a torque where the lower wheels 202b remain secure. To adapt to this situation, it is therefore desirable for the processor 302 to control the motors 316 to redistribute torque from the upper wheels 202a to the lower wheels 202b. This allows the total torque to be kept the same, while capitalising on the increased normal reaction force at the lower wheels 202b and mitigating the effect of the reduced normal reaction force at the upper wheels 202a. It will be appreciated that many different formulas or numerical ratios could be used to achieve this goal of torque redistribution. However, the inventors have found that in the situation shown in Fig. 4 (a four-wheeled robot 102 moving vertically upwards above the waterline) a particularly advantageous approach is to assign each front wheel a torque Tf and each back wheel a torque Tr, where 2Tf + 2Tr is the total torque Tt, and Tf = Tr = |(l-s)Tt where rma S ” IF m where ris a distance from the centre of mass 402 of the robot 102 to the surface 101, m is a mass of the robot 102, a is the value of the acceleration of the robot 102, I is a distance between the contact points of the upper wheels 202a and the lower wheels 202b on the surface 101, and Fm is the magnitude of the total magnetic force exerted by all the wheels 202 on the object (that is, the magnitude of the combined normal force produced by the magnetic wheels 202). The distances rand / are indicated schematically in Fig. 4. The situation can be understood in terms of these variables as the weight of the robot 102 creating a turning moment about the contact points of the upper wheels 202a with the surface 101 with lever arm r, that is counteracted by the lower wheels 202b by the lever arm I resulting in an additional normal force component on the lower wheels 202b. Since the weight of the robot 102 is acting perpendicularly to the normal forces in this scenario, and as such cannot change the total normal force, an equal normal force component has to be subtracted from the upper wheels 202a to balance the forces. In embodiments, Tt may be set by an external speed control system. For example, the processor 302 may set the value of Tt. As noted above, the torque redistribution methods described herein may act to keep Tt constant by reassigning torque between wheels without reducing or increasing the sum of torques across all wheels. Generally speaking, this formula corresponds to redistributing torque in proportion to the respective normal reaction force at each wheel 202, in the simplified situation where the robot 102 has four wheels 202 and is facing vertically. It is noted that the above formula remains valid only as long as s has a value between 0 and 1. This remains the case as long as Fm is larger than the difference in normal force between the upper wheels 202a and the lower wheels 202b. If this is no longer the case it also means that the normal force on one set of wheels 202a, 202b is negative, meaning that they have likely already detached. Another way of expressing this assumption is that Fm is larger than the normal force contribution arising from the weight of the robot 102. Additionally, there may be circumstances where the traction control systems described herein operate when the robot 102 is underwater (for example, if the system is left active all the time as the robot 102 moves over an ocean-going vessel). In that instance it is noted that the above equation does not take account of buoyancy, which will reduce the effect of the weight of the robot 102 by providing a supporting force. In embodiments it may not be necessary to explicitly account for this situation, as buoyancy may reduce the effect of weight to the point that torque redistribution is not critical. In situations where the robot 102 has four wheels 202 that are not positioned symmetrically, or has a different number of driven wheels, or is not facing vertically, the same principals can be applied. For example, a more general approach would be to divide the wheels 202 into two sets, the first set being below the centre of mass 402 of the robot 102 (corresponding to the lower wheels 202a) and the second set being above the centre of mass 402 of the robot 102 (corresponding to the upper wheels 202a). Additional torque given sTt can then be taken from the second set of wheels and redistributed to the first set of wheels. The simplest way of doing this would be to remove this additional torque evenly from each of the second set of wheels and redistribute the additional torque equally among the first set of wheels. As another example, another approach would be to estimate the normal force at each wheel 202 based on the acceleration of the centre of mass 402 of the robot 102, the position of the wheel 202 in relation to the centre of mass 402 and the other wheels, and the expected normal force contribution from the magnetic attraction. The estimated normal forces for all wheels 202 may then be summed to obtain a total normal force. For each wheel 202 a ratio may then be calculated equal to the estimated normal force for the wheel 202 divided by the total normal force. The torque contribution for each wheel 202 may then be set to the desired total torque Tr of the robot 102 multiplied by the calculated ratio. The torque T, of the / th wheel may then be written as where F is the normal force at the / th wheel. It then follows that = Tt. More generally still, the approach of redistributing torque in proportion to the normal reaction force at each wheel 202 may be applied regardless of the number or distribution of wheels, or the orientation of the robot. The parameters r, m, and I in the above formula are features of the design of the robot 102 that can be measured in advance of operation. For example, such parameters (or just the combination —) could be stored in the memory 310 discussed above and retrieved by the processor 302. The value of Fm is challenging to measure while the robot is in operation. One approach to implementing the formula would therefore be to measure Fm under laboratory conditions to derive an approximate value, then use this approximate value for the calculation performed by the processor 302. The approximate value of Fm may, for example, be stored in the memory 310 for retrieval by the processor 302. Regarding a, a value of the acceleration of the robot may be derived in several different ways. In some implementations, the processor 302 may obtain a value for a using the sensor 312. For example, if the sensor 312 comprises an accelerometer, the processor 302 may use the accelerometer to determine the acceleration of the robot 102. Additionally or alternatively, the processor 302 may use one or more of the sensor(s) 312 to determine an orientation of the robot 102, and may then assume that the acceleration of the robot is equal to g (the acceleration due to gravity, equal to approximately 9.81 ms-2) in a vertical direction. This approximation may generally be valid in situations where the acceleration of the robot 102 due to the motion of the wheels 202 is known to be small, which is often the case for a hull-cleaning robot to reduce the risk of slipping and potentially falling. For example, if the sensor(s) 312 comprise a gyroscope, the processor 302 may track the angular motion of the robot 102 from a known starting orientation using the gyroscope. This method may, however, be difficult to implement due to the accumulation of errors. As a further example, if the sensor(s) 312 comprise an inclinometer, the processor 302 may determine the orientation of the robot 102 relative to the direction of gravity using the inclinometer. For clarity, it is noted that the acceleration of the robot 102 while attached to the hull 101 may be considered to be equal to g vertically upwards compared to a free-falling reference frame. Alternatively, the acceleration may be considered to be g vertically downwards relative to a non-accelerating reference frame. The above formulas may be implemented equally well using either convention. As a further example, in a particular application it may be known that the robot 102 will only ever be travelling vertically while above the waterline, for example to return to the robot station 104. In this application, when the robot is instructed by a user to return to the robot station 104, the processor 302 may assume that the robot 102’s acceleration will be approximately g in the robot 102’s direction of travel (as the robot 102 is travelling vertically upward to the robot station 104). Conversely, when the robot 102 is setting out from the robot station 104, the processor 104 may assume that the robot 102’s acceleration will be approximately g in the opposite direction to the robot 102’s direction of travel (since the robot 102 is travelling vertically downward away from the robot station 104). If the robot 102 comprises any undriven wheels in addition to the wheels 202, the undriven wheels may be included in the calculation of the normal forces, but may then be ignored when redistributing torque (with torque being redistributed only between driven wheels 202 having respective motors 316). Fig. 5 shows a method 500 of traction control for a robot for cleaning a surface of a manmade object; for example, for the robot 102 cleaning the surface 101. The method 500 may, for example, be performed by the processor 302. At step S502, the method comprises obtaining a value of an acceleration of the robot. For example, the processor 302 may obtain a value for the acceleration of the robot 102, using any of the approaches described above with regard to Fig. 4. At step S504, the method comprises determining, based on the acceleration and a magnitude of a magnetic force exerted on the object by a plurality of magnetic wheels of the robot, a respective normal reaction force between the surface and each wheel. For example, the processor 302 may determine a respective normal reaction force between each wheel 202 and the surface 101 using any of the approaches described above. At step S506, the method comprises controlling a respective motor corresponding to each wheel to redistribute torque between the wheels in proportion to their respective normal reaction forces such that the wheels are prevented from slipping. For example, the processor 302 may control the motors 316 to redistribute torque between the wheels 202 as described above with reference to Fig. 4. The processor 302 may be configured to perform the traction control method 500 at all times when the robot 102 is active and / or powered on. Alternatively, the processor 302 may perform the method 500 based on detecting a particular set of circumstances. For example, the processor 302 may be configured to perform normal reaction forcebased torque redistribution using the method 500 autonomously, based on detecting that the robot 102 is above the waterline and therefore not immersed in liquid. This may be detected using data from the sensor 312 as described above with reference to Fig. 3. As a further example, if the sensor 312 comprises a gyroscope, the processor 302 may be configured to perform the method 500 when the robot 102 is vertical, based on the assumption that the robot 102 is most likely to be vertical when moving to or from the robot station 104 above the waterline. Additionally or alternatively, the processor 302 may be configured to perform the method 500 when the robot 102 is instructed to emerge from or return to the robot station 104 by a user. For example, a user may use a computing device (such as the computing device 106) to send user input to the processor 302 via the communication interface 318, and this user input may comprise a command to return to the robot station 104. This command may be an instruction for the robot 102 to return autonomously to the robot station 104, and / or may form part of the user controlling the robot 102 to return to the robot station 104 under remote control. Again, it is generally envisioned that deploying from or returning to the robot station 104 may involve vertical travel above the waterline. Generally, any of the functions described herein with reference to the robot 102 can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), or a combination of these implementations. The terms “functionality” and “module” as used herein generally represent software, firmware, hardware, or a combination thereof. In the case of a software implementation, the functionality or module represents program code that performs specified tasks when executed on a processor (e.g. CPU or CPUs). The program code can be stored in one or more computer readable memory device (e.g. memory 310). The features of the techniques described below are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors. While the present disclosure has been particularly shown and described with reference to preferred embodiments, it will be understood to those skilled in the art that various changes in form and detail may be made without departing from the scope of the present disclosure as defined by the appendant claims.

Claims

1. A robot for cleaning a surface of a man-made object, the robot comprising: a plurality of magnetic wheels configured to attach the robot to the surface by exerting a magnetic force on the object;for each wheel, a respective motor configured to drive the wheel, thereby causing the robot to move over the surface; anda processor configured to:obtain a value of an acceleration of the robot;determine, based on the acceleration and a magnitude of the magnetic force, a respective normal reaction force between the surface and each wheel; andcontrol the motors to redistribute torque between the wheels in proportion to their respective normal reaction forces.

2. The robot of claim 1 wherein the processor is configured to redistribute torque between the wheels by:dividing the plurality of magnetic wheels into two sets relative to a centre of mass of the robot, the first set comprising those wheels that are further in the direction of acceleration than the centre of mass, and the second set comprising those wheels that are on the other side of the centre of mass from the first set; anddistributing an additional torque evenly between the first set of wheels, and removing the same additional torque evenly from the second set of wheels.

3. The robot of claim 2, wherein the additional torque is a proportion s of a total torque across all wheels, wherermaS ” IF mwherein r is a distance from the centre of mass of the robot to the surface, m is a mass of the robot, a is the value of the acceleration, I is a distance between the first set of wheels and the second set of wheels, and Fm is the magnitude of the magnetic force.

4. The robot of any preceding claim, further comprising an accelerometer, wherein the processor is configured to determine the value of the acceleration of the robot using the accelerometer.

5. The robot of any of claims 1 to 3, further comprising an orientation sensor, wherein the processor is configured to obtain the value of the acceleration by:determining an orientation of the robot using the orientation sensor; andassuming that the acceleration is in a downward direction and entirely due to gravity, such that the value of the acceleration is equal to g;wherein the orientation sensor comprises a gyroscope or an inclinometer.

6. The robot of any preceding claim, wherein the processor is configured to retrieve an assumed magnitude of the magnetic force from a memory accessible to the processor.

7. The robot of any preceding claim, further comprising a cleaning mechanism for cleaning the surface, the cleaning mechanism optionally comprising a brush, a waterjet, or a scraper.

8. The robot of any preceding claim further comprising a sensor, wherein the processor is further configured to:receive sensor data from the sensor; anddetermine, based on the sensor data, that it is necessary to redistribute torque between the wheels.

9. The robot of claim 8, wherein the processor is configured to determine from the sensor data that the robot is not immersed in liquid.

10. The robot of any of claims 1-7, wherein the processor is configured to determine that it is necessary to redistribute torque between the wheels based on user input.

11. The robot of claim 10, wherein the user input comprises a command to the robot to enter or exit a docking station.

12. The robot of any preceding claim, wherein the processor is configured to redistribute torque between the wheels such that wheels that are vertically lower with respect to a direction of gravity receive more torque.

13. A computer-implemented method of traction control fora robot for cleaning a surface of a man-made object, the method comprising:obtaining a value of an acceleration of the robot;determining, based on the acceleration and a magnitude of a magnetic force5 exerted on the object by a plurality of magnetic wheels of the robot, a respective normal reaction force between the surface and each wheel; andcontrolling a respective motor corresponding to each wheel to redistribute torque between the wheels in proportion to their respective normal reaction forces.10 14. The method of claim 13, wherein the object is a marine vessel.

15. A computer program comprising programming instructions that, when executed by a processor of a robot for cleaning a surface of a man-made object, cause the processor to perform the method of claim 13 or 14.